coloring_nested_tire_graphs: structural description of surviving γ-partitions at k=9 (positive result)

Investigated the 8 surviving triple-partitions of γ at k=k_2=9
(chord (0,3),(3,6) on B_in^(2)).  Found a clean structural
description.

CLASSIFICATION of γ-edges by T_2's face structure:
  For each O^(2)-face F_i, 2 γ-edges are "internal" to F_i
  (their adjacent D-triangles are both in F_i).
  For each adjacent face pair (F_i, F_{i+1}), 1 γ-edge is
  "boundary" between them.
  Total: 2r internal + r boundary = 3r γ-edges = |γ| when k=k_2.

STRUCTURAL DESCRIPTION (Prop face-pair-connection):
  Latin ⊆ π_U(T_2) iff the partition has the following form:
  - One block per cyclically-adjacent face pair (F_i, F_{i+1}).
  - Each block = 1 boundary edge δ_{i,i+1} + 1 internal of F_i
    + 1 internal of F_{i+1}.
  - For each face F_i, its 2 internal γ-edges are distributed
    one per block (the two blocks involving F_i).

  Count: 2^r partitions (each face has 2 choices of how to split
  its internals across its 2 adjacent blocks).

AT k = k_2 = 9 (r = 3 faces): 2^3 = 8 partitions, matching the
empirical survivors.

WHY NAIVE CANDIDATES FAIL: The next-D and prev-D candidates from
worst_case_proof_sketch.tex group BOTH internals of one face into
one block (e.g., {0,1,2} = both Internal_{F_A} + δ_{AB}, no internal
F_B).  This violates the "one internal per face per block" rule.

IMPLICATION: The König-lift approach can be RESCUED by replacing
the naive candidate F~_2 with any of the 2^r face-pair-connection
partitions.  Apply König's theorem on bipartite face-incidence
graph of F_1 vs this new F~_2.

NEXT STEP: prove Prop face-pair-connection for all r, then apply
König lift.  This is more leveraged than re-tackling the naive
construction.

Files:
  experiments/k9_surviving_analysis.py
  notes/k9_surviving_partitions.tex (3 pages)

Note also updates notes/induced_partition_findings.tex to point at
the new structural description.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
This commit is contained in:
2026-05-26 11:44:58 -04:00
parent 6f541d2d68
commit 1594a3f58a
7 changed files with 712 additions and 11 deletions
@@ -0,0 +1,182 @@
"""Enumerate and analyze all surviving triple-partitions of γ at k = 9
for T_2 = (m_2=9, k_2=9, chords (0,3),(3,6), SP).
Look for common structural properties:
- Block sums modulo k = 9 (rotation invariance)
- Block differences modulo something
- Mapping under T_2's annular structure
- Symmetries (cyclic, reflection)
"""
from itertools import product, permutations
from collections import defaultdict, Counter
from tire_fiber_chords import (
fiber_distribution,
projection_support,
u_positions_for,
d_positions_for,
)
from tire_fiber_chunked import projection_support_streaming
def latin_set(partition, k):
L = set()
if any(len(b) != 3 for b in partition):
return None
blocks = [sorted(b) for b in partition]
for assignment in product(permutations((1, 2, 3)), repeat=len(blocks)):
sigma = [0] * k
for block, perm in zip(blocks, assignment):
for pos, color in zip(block, perm):
sigma[pos] = color
L.add(tuple(sigma))
return L
def all_partitions_into_triples(elements):
elements = list(elements)
if not elements:
yield []
return
if len(elements) % 3 != 0:
return
if len(elements) == 3:
yield [tuple(elements)]
return
first = elements[0]
rest = elements[1:]
from itertools import combinations
for combo in combinations(rest, 2):
triple = (first,) + combo
remaining = [x for x in rest if x not in combo]
for sub_partition in all_partitions_into_triples(remaining):
yield [triple] + sub_partition
def normalize(partition):
"""Return a canonical tuple of frozensets for the partition."""
return tuple(sorted(tuple(sorted(b)) for b in partition))
def find_surviving_partitions(k, pi_U):
survivors = []
for partition in all_partitions_into_triples(range(k)):
L = latin_set(partition, k)
if L is None:
continue
if L <= pi_U:
survivors.append(tuple(tuple(sorted(b)) for b in partition))
return survivors
def analyze_block(block, k=9):
"""Return structural properties of a 3-element block of γ-edges."""
s = sum(block) % k
d = sorted((b - block[0]) % k for b in block) # differences from first
diffs_pairwise = sorted(((b - a) % k for a in block for b in block if a != b))
return {
'sum_mod_k': s,
'first_diffs': d,
'pairwise_diffs': diffs_pairwise,
}
def main():
k, k_2 = 9, 9
chords = [(0, 3), (3, 6)]
print(f'Analyzing surviving triple-partitions at k = k_2 = {k}, chords = {chords}')
print()
# Compute π_U via chunked streaming (faster for n = k + k_2 = 18)
u_pos = u_positions_for(k, k_2)
d_pos = d_positions_for(k, k_2)
pi_U = projection_support_streaming(k, k_2, chords, u_pos)
print(f'|π_U| = {len(pi_U)}')
print(f'd_positions on T_ann_prime = {d_pos}')
print(f'u_positions on T_ann_prime = {u_pos}')
print()
survivors = find_surviving_partitions(k, pi_U)
print(f'Number of surviving triple-partitions: {len(survivors)}')
print()
print('=== Surviving partitions ===')
for i, p in enumerate(survivors):
print(f' {i+1}. {list(p)}')
for block in p:
props = analyze_block(block, k)
print(f' block {block}: sum mod {k} = {props["sum_mod_k"]}, '
f'pairwise diffs = {props["pairwise_diffs"]}')
print()
# Structural analysis
print('=== Cyclic rotation analysis ===')
print('For each partition, check if it is a rotation of any other:')
canonical_to_partitions = defaultdict(list)
for p in survivors:
# Compute canonical form under cyclic rotation of γ
rotations = []
for r in range(k):
rotated = tuple(tuple(sorted((x + r) % k for x in b)) for b in p)
rotated_canonical = tuple(sorted(rotated))
rotations.append(rotated_canonical)
canonical = min(rotations)
canonical_to_partitions[canonical].append(p)
print(f'# distinct cyclic-rotation orbits: {len(canonical_to_partitions)}')
for can, orbits in canonical_to_partitions.items():
print(f' Orbit rep: {list(can)}; members: {len(orbits)}')
# Block sum analysis
print()
print('=== Block sum mod 3 / mod 9 analysis ===')
sums_mod3 = Counter()
sums_mod9 = Counter()
for p in survivors:
s3 = tuple(sorted(sum(b) % 3 for b in p))
s9 = tuple(sorted(sum(b) % 9 for b in p))
sums_mod3[s3] += 1
sums_mod9[s9] += 1
print(f'Distribution of sorted block-sums mod 3:')
for k_, v_ in sums_mod3.items():
print(f' {k_}: {v_} partitions')
print(f'Distribution of sorted block-sums mod 9:')
for k_, v_ in sums_mod9.items():
print(f' {k_}: {v_} partitions')
# Check if any survivors are "arithmetic progressions" (3-APs)
print()
print('=== Arithmetic progression check ===')
ap_count = 0
for p in survivors:
is_ap_partition = all(
(block[1] - block[0]) % k == (block[2] - block[1]) % k
for block in p
)
if is_ap_partition:
ap_count += 1
print(f' AP partition: {list(p)}')
print(f'Total AP partitions: {ap_count}')
# Check if block 1 and block 2 are "shifts" of each other
print()
print('=== Shift relationships between blocks ===')
for p in survivors:
if len(p) != 3:
continue
# Check if block[1] is a cyclic shift of block[0], etc.
shift_dets = []
for i in range(3):
for j in range(3):
if i == j: continue
# Is block j a shift of block i?
for r in range(k):
shifted = tuple(sorted((x + r) % k for x in p[i]))
if shifted == tuple(sorted(p[j])):
shift_dets.append((i, j, r))
break
if shift_dets:
print(f' Partition {list(p)}: shift structure {shift_dets}')
if __name__ == '__main__':
main()
@@ -135,17 +135,14 @@ Plan-step 3 from \texttt{two\_approaches\_comparison.tex} was
``prove inclusion via transfer matrix / fibre lifting,'' assuming
the candidate partition was empirically correct. The candidate is
\emph{not} empirically correct beyond $k = 6$, so trying to prove
the wrong statement is futile. Instead the right next move is:
\begin{enumerate}
\item Find the right induced $\widetilde{\mathcal{F}_2}$ at
$k = 9$: study the $8$ surviving triple-partitions, see if
they have a common structural description (e.g.\ via the
$T_2$ annular triangulation).
\item Or abandon the ``$\widetilde{\mathcal{F}_2}$ is a partition''
framing entirely and look for a different structure on
$\gamma$ that $T_2$ induces and that suffices for chain
pigeonhole.
\end{enumerate}
the wrong statement is futile. Instead the right next move is to
\textbf{study the $8$ surviving triple-partitions at $k = 9$} and
look for a common structural description (e.g.\ via the $T_2$ annular
triangulation, $T'_{\mathrm{ann}}$ cyclic distance, or modular
arithmetic on $D$- vs $U$-positions). If no such description exists,
the ``$\widetilde{\mathcal{F}_2}$ is a partition'' framing should be
abandoned and a different structure on $\gamma$ sought. This is the
new step done next; see \texttt{notes/k9\_surviving\_partitions.tex}.
\section*{Reassessment of Approach 2}
@@ -0,0 +1,4 @@
\relax
\newlabel{prop:fp-connection}{{}{1}}
\newlabel{prop:general}{{}{2}}
\gdef \@abspage@last{3}
@@ -0,0 +1,307 @@
This is pdfTeX, Version 3.141592653-2.6-1.40.24 (TeX Live 2022) (preloaded format=pdflatex 2022.10.5) 26 MAY 2026 11:44
entering extended mode
restricted \write18 enabled.
%&-line parsing enabled.
**k9_surviving_partitions.tex
(./k9_surviving_partitions.tex
LaTeX2e <2021-11-15> patch level 1
L3 programming layer <2022-02-24>
(/usr/local/texlive/2022/texmf-dist/tex/latex/base/article.cls
Document Class: article 2021/10/04 v1.4n Standard LaTeX document class
(/usr/local/texlive/2022/texmf-dist/tex/latex/base/size11.clo
File: size11.clo 2021/10/04 v1.4n Standard LaTeX file (size option)
)
\c@part=\count185
\c@section=\count186
\c@subsection=\count187
\c@subsubsection=\count188
\c@paragraph=\count189
\c@subparagraph=\count190
\c@figure=\count191
\c@table=\count192
\abovecaptionskip=\skip47
\belowcaptionskip=\skip48
\bibindent=\dimen138
)
(/usr/local/texlive/2022/texmf-dist/tex/latex/amsmath/amsmath.sty
Package: amsmath 2021/10/15 v2.17l AMS math features
\@mathmargin=\skip49
For additional information on amsmath, use the `?' option.
(/usr/local/texlive/2022/texmf-dist/tex/latex/amsmath/amstext.sty
Package: amstext 2021/08/26 v2.01 AMS text
(/usr/local/texlive/2022/texmf-dist/tex/latex/amsmath/amsgen.sty
File: amsgen.sty 1999/11/30 v2.0 generic functions
\@emptytoks=\toks16
\ex@=\dimen139
))
(/usr/local/texlive/2022/texmf-dist/tex/latex/amsmath/amsbsy.sty
Package: amsbsy 1999/11/29 v1.2d Bold Symbols
\pmbraise@=\dimen140
)
(/usr/local/texlive/2022/texmf-dist/tex/latex/amsmath/amsopn.sty
Package: amsopn 2021/08/26 v2.02 operator names
)
\inf@bad=\count193
LaTeX Info: Redefining \frac on input line 234.
\uproot@=\count194
\leftroot@=\count195
LaTeX Info: Redefining \overline on input line 399.
\classnum@=\count196
\DOTSCASE@=\count197
LaTeX Info: Redefining \ldots on input line 496.
LaTeX Info: Redefining \dots on input line 499.
LaTeX Info: Redefining \cdots on input line 620.
\Mathstrutbox@=\box50
\strutbox@=\box51
\big@size=\dimen141
LaTeX Font Info: Redeclaring font encoding OML on input line 743.
LaTeX Font Info: Redeclaring font encoding OMS on input line 744.
\macc@depth=\count198
\c@MaxMatrixCols=\count199
\dotsspace@=\muskip16
\c@parentequation=\count266
\dspbrk@lvl=\count267
\tag@help=\toks17
\row@=\count268
\column@=\count269
\maxfields@=\count270
\andhelp@=\toks18
\eqnshift@=\dimen142
\alignsep@=\dimen143
\tagshift@=\dimen144
\tagwidth@=\dimen145
\totwidth@=\dimen146
\lineht@=\dimen147
\@envbody=\toks19
\multlinegap=\skip50
\multlinetaggap=\skip51
\mathdisplay@stack=\toks20
LaTeX Info: Redefining \[ on input line 2938.
LaTeX Info: Redefining \] on input line 2939.
)
(/usr/local/texlive/2022/texmf-dist/tex/latex/amsfonts/amssymb.sty
Package: amssymb 2013/01/14 v3.01 AMS font symbols
(/usr/local/texlive/2022/texmf-dist/tex/latex/amsfonts/amsfonts.sty
Package: amsfonts 2013/01/14 v3.01 Basic AMSFonts support
\symAMSa=\mathgroup4
\symAMSb=\mathgroup5
LaTeX Font Info: Redeclaring math symbol \hbar on input line 98.
LaTeX Font Info: Overwriting math alphabet `\mathfrak' in version `bold'
(Font) U/euf/m/n --> U/euf/b/n on input line 106.
))
(/usr/local/texlive/2022/texmf-dist/tex/latex/amscls/amsthm.sty
Package: amsthm 2020/05/29 v2.20.6
\thm@style=\toks21
\thm@bodyfont=\toks22
\thm@headfont=\toks23
\thm@notefont=\toks24
\thm@headpunct=\toks25
\thm@preskip=\skip52
\thm@postskip=\skip53
\thm@headsep=\skip54
\dth@everypar=\toks26
)
(/usr/local/texlive/2022/texmf-dist/tex/latex/graphics/graphicx.sty
Package: graphicx 2021/09/16 v1.2d Enhanced LaTeX Graphics (DPC,SPQR)
(/usr/local/texlive/2022/texmf-dist/tex/latex/graphics/keyval.sty
Package: keyval 2014/10/28 v1.15 key=value parser (DPC)
\KV@toks@=\toks27
)
(/usr/local/texlive/2022/texmf-dist/tex/latex/graphics/graphics.sty
Package: graphics 2021/03/04 v1.4d Standard LaTeX Graphics (DPC,SPQR)
(/usr/local/texlive/2022/texmf-dist/tex/latex/graphics/trig.sty
Package: trig 2021/08/11 v1.11 sin cos tan (DPC)
)
(/usr/local/texlive/2022/texmf-dist/tex/latex/graphics-cfg/graphics.cfg
File: graphics.cfg 2016/06/04 v1.11 sample graphics configuration
)
Package graphics Info: Driver file: pdftex.def on input line 107.
(/usr/local/texlive/2022/texmf-dist/tex/latex/graphics-def/pdftex.def
File: pdftex.def 2020/10/05 v1.2a Graphics/color driver for pdftex
))
\Gin@req@height=\dimen148
\Gin@req@width=\dimen149
)
(/usr/local/texlive/2022/texmf-dist/tex/latex/geometry/geometry.sty
Package: geometry 2020/01/02 v5.9 Page Geometry
(/usr/local/texlive/2022/texmf-dist/tex/generic/iftex/ifvtex.sty
Package: ifvtex 2019/10/25 v1.7 ifvtex legacy package. Use iftex instead.
(/usr/local/texlive/2022/texmf-dist/tex/generic/iftex/iftex.sty
Package: iftex 2022/02/03 v1.0f TeX engine tests
))
\Gm@cnth=\count271
\Gm@cntv=\count272
\c@Gm@tempcnt=\count273
\Gm@bindingoffset=\dimen150
\Gm@wd@mp=\dimen151
\Gm@odd@mp=\dimen152
\Gm@even@mp=\dimen153
\Gm@layoutwidth=\dimen154
\Gm@layoutheight=\dimen155
\Gm@layouthoffset=\dimen156
\Gm@layoutvoffset=\dimen157
\Gm@dimlist=\toks28
)
(/usr/local/texlive/2022/texmf-dist/tex/latex/booktabs/booktabs.sty
Package: booktabs 2020/01/12 v1.61803398 Publication quality tables
\heavyrulewidth=\dimen158
\lightrulewidth=\dimen159
\cmidrulewidth=\dimen160
\belowrulesep=\dimen161
\belowbottomsep=\dimen162
\aboverulesep=\dimen163
\abovetopsep=\dimen164
\cmidrulesep=\dimen165
\cmidrulekern=\dimen166
\defaultaddspace=\dimen167
\@cmidla=\count274
\@cmidlb=\count275
\@aboverulesep=\dimen168
\@belowrulesep=\dimen169
\@thisruleclass=\count276
\@lastruleclass=\count277
\@thisrulewidth=\dimen170
)
(/usr/local/texlive/2022/texmf-dist/tex/latex/l3backend/l3backend-pdftex.def
File: l3backend-pdftex.def 2022-02-07 L3 backend support: PDF output (pdfTeX)
\l__color_backend_stack_int=\count278
\l__pdf_internal_box=\box52
)
(./k9_surviving_partitions.aux)
\openout1 = `k9_surviving_partitions.aux'.
LaTeX Font Info: Checking defaults for OML/cmm/m/it on input line 17.
LaTeX Font Info: ... okay on input line 17.
LaTeX Font Info: Checking defaults for OMS/cmsy/m/n on input line 17.
LaTeX Font Info: ... okay on input line 17.
LaTeX Font Info: Checking defaults for OT1/cmr/m/n on input line 17.
LaTeX Font Info: ... okay on input line 17.
LaTeX Font Info: Checking defaults for T1/cmr/m/n on input line 17.
LaTeX Font Info: ... okay on input line 17.
LaTeX Font Info: Checking defaults for TS1/cmr/m/n on input line 17.
LaTeX Font Info: ... okay on input line 17.
LaTeX Font Info: Checking defaults for OMX/cmex/m/n on input line 17.
LaTeX Font Info: ... okay on input line 17.
LaTeX Font Info: Checking defaults for U/cmr/m/n on input line 17.
LaTeX Font Info: ... okay on input line 17.
(/usr/local/texlive/2022/texmf-dist/tex/context/base/mkii/supp-pdf.mkii
[Loading MPS to PDF converter (version 2006.09.02).]
\scratchcounter=\count279
\scratchdimen=\dimen171
\scratchbox=\box53
\nofMPsegments=\count280
\nofMParguments=\count281
\everyMPshowfont=\toks29
\MPscratchCnt=\count282
\MPscratchDim=\dimen172
\MPnumerator=\count283
\makeMPintoPDFobject=\count284
\everyMPtoPDFconversion=\toks30
) (/usr/local/texlive/2022/texmf-dist/tex/latex/epstopdf-pkg/epstopdf-base.sty
Package: epstopdf-base 2020-01-24 v2.11 Base part for package epstopdf
Package epstopdf-base Info: Redefining graphics rule for `.eps' on input line 4
85.
(/usr/local/texlive/2022/texmf-dist/tex/latex/latexconfig/epstopdf-sys.cfg
File: epstopdf-sys.cfg 2010/07/13 v1.3 Configuration of (r)epstopdf for TeX Liv
e
))
*geometry* driver: auto-detecting
*geometry* detected driver: pdftex
*geometry* verbose mode - [ preamble ] result:
* driver: pdftex
* paper: <default>
* layout: <same size as paper>
* layoutoffset:(h,v)=(0.0pt,0.0pt)
* modes:
* h-part:(L,W,R)=(72.26999pt, 469.75502pt, 72.26999pt)
* v-part:(T,H,B)=(72.26999pt, 650.43001pt, 72.26999pt)
* \paperwidth=614.295pt
* \paperheight=794.96999pt
* \textwidth=469.75502pt
* \textheight=650.43001pt
* \oddsidemargin=0.0pt
* \evensidemargin=0.0pt
* \topmargin=-37.0pt
* \headheight=12.0pt
* \headsep=25.0pt
* \topskip=11.0pt
* \footskip=30.0pt
* \marginparwidth=59.0pt
* \marginparsep=10.0pt
* \columnsep=10.0pt
* \skip\footins=10.0pt plus 4.0pt minus 2.0pt
* \hoffset=0.0pt
* \voffset=0.0pt
* \mag=1000
* \@twocolumnfalse
* \@twosidefalse
* \@mparswitchfalse
* \@reversemarginfalse
* (1in=72.27pt=25.4mm, 1cm=28.453pt)
LaTeX Font Info: Trying to load font information for U+msa on input line 18.
(/usr/local/texlive/2022/texmf-dist/tex/latex/amsfonts/umsa.fd
File: umsa.fd 2013/01/14 v3.01 AMS symbols A
)
LaTeX Font Info: Trying to load font information for U+msb on input line 18.
(/usr/local/texlive/2022/texmf-dist/tex/latex/amsfonts/umsb.fd
File: umsb.fd 2013/01/14 v3.01 AMS symbols B
) [1
{/usr/local/texlive/2022/texmf-var/fonts/map/pdftex/updmap/pdftex.map}]
Overfull \hbox (50.1033pt too wide) in paragraph at lines 100--105
\OT1/cmr/m/n/10.95 Writing each par-ti-tion as $\OMS/cmsy/m/n/10.95 f\OT1/cmr/m
/n/10.95 ([][]\OML/cmm/m/it/10.95 ; ^^N[]; [][]\OT1/cmr/m/n/10.95 )\OML/cmm/m/i
t/10.95 ; \OT1/cmr/m/n/10.95 ([][]\OML/cmm/m/it/10.95 ; ^^N[]; [][]\OT1/cmr/m/
n/10.95 )\OML/cmm/m/it/10.95 ; \OT1/cmr/m/n/10.95 ([][]\OML/cmm/m/it/10.95 ; ^
^N[]; [][]\OT1/cmr/m/n/10.95 )\OMS/cmsy/m/n/10.95 g$
[]
[2] [3] (./k9_surviving_partitions.aux) )
Here is how much of TeX's memory you used:
3269 strings out of 478268
48688 string characters out of 5846347
352630 words of memory out of 5000000
21454 multiletter control sequences out of 15000+600000
482720 words of font info for 80 fonts, out of 8000000 for 9000
1141 hyphenation exceptions out of 8191
55i,8n,62p,240b,248s stack positions out of 10000i,1000n,20000p,200000b,200000s
{/usr/local/texlive/2022/texmf-dist/fo
nts/enc/dvips/cm-super/cm-super-ts1.enc}</usr/local/texlive/2022/texmf-dist/fon
ts/type1/public/amsfonts/cm/cmbx10.pfb></usr/local/texlive/2022/texmf-dist/font
s/type1/public/amsfonts/cm/cmbx12.pfb></usr/local/texlive/2022/texmf-dist/fonts
/type1/public/amsfonts/cm/cmex10.pfb></usr/local/texlive/2022/texmf-dist/fonts/
type1/public/amsfonts/cm/cmmi10.pfb></usr/local/texlive/2022/texmf-dist/fonts/t
ype1/public/amsfonts/cm/cmmi12.pfb></usr/local/texlive/2022/texmf-dist/fonts/ty
pe1/public/amsfonts/cm/cmmi6.pfb></usr/local/texlive/2022/texmf-dist/fonts/type
1/public/amsfonts/cm/cmmi7.pfb></usr/local/texlive/2022/texmf-dist/fonts/type1/
public/amsfonts/cm/cmmi8.pfb></usr/local/texlive/2022/texmf-dist/fonts/type1/pu
blic/amsfonts/cm/cmr10.pfb></usr/local/texlive/2022/texmf-dist/fonts/type1/publ
ic/amsfonts/cm/cmr17.pfb></usr/local/texlive/2022/texmf-dist/fonts/type1/public
/amsfonts/cm/cmr8.pfb></usr/local/texlive/2022/texmf-dist/fonts/type1/public/am
sfonts/cm/cmsy10.pfb></usr/local/texlive/2022/texmf-dist/fonts/type1/public/ams
fonts/cm/cmsy6.pfb></usr/local/texlive/2022/texmf-dist/fonts/type1/public/amsfo
nts/cm/cmsy8.pfb></usr/local/texlive/2022/texmf-dist/fonts/type1/public/amsfont
s/cm/cmti10.pfb></usr/local/texlive/2022/texmf-dist/fonts/type1/public/amsfonts
/cm/cmtt10.pfb></usr/local/texlive/2022/texmf-dist/fonts/type1/public/cm-super/
sfrm1095.pfb>
Output written on k9_surviving_partitions.pdf (3 pages, 200885 bytes).
PDF statistics:
100 PDF objects out of 1000 (max. 8388607)
60 compressed objects within 1 object stream
0 named destinations out of 1000 (max. 500000)
1 words of extra memory for PDF output out of 10000 (max. 10000000)
@@ -0,0 +1,211 @@
\documentclass[11pt]{article}
\usepackage{amsmath,amssymb,amsthm}
\usepackage{graphicx}
\usepackage{geometry}
\usepackage{booktabs}
\geometry{margin=1in}
\title{The eight surviving $\gamma$-partitions at $k = 9$:\\
a clean structural description}
\author{}
\date{}
\newtheorem*{obs}{Observation}
\newtheorem*{prop}{Proposition}
\newtheorem*{thm}{Theorem}
\begin{document}
\maketitle
\section*{Setup}
For $T_2 = (m_2 = 9, k_2 = 9, \mathrm{chords} = \{(0,3), (3,6)\},
\mathrm{SP})$, $\gamma$ has length $9$ and $T_2$'s outerplanar
$O^{(2)}$ has three $3$-edge faces $F_A = \{0,1,2\}$,
$F_B = \{3,4,5\}$, $F_C = \{6,7,8\}$ (indices into
$B_{\mathrm{in}}^{(2)}$). Empirically (\texttt{notes/induced\_partition\_findings.tex}):
of the $280$ triple-partitions of $\{0, \dots, 8\}$, exactly $8$ have
$\mathcal{L} \subseteq \pi_U(T_2)$. We give a clean structural
description.
\section*{Classifying $\gamma$-edges by $T_2$'s face structure}
In the balanced annular triangulation of $T_2$, $D$-positions on
$T'_{\mathrm{ann}}$ are $\{0, 2, 4, 6, 8, 10, 12, 14, 16\}$. $U$-position
$2i + 1$ corresponds to $\gamma$-edge $i$. Each $\gamma$-edge is
``between'' two $D$-positions on $T'_{\mathrm{ann}}$, and is
classified by which $O^{(2)}$-faces those two $D$-positions belong to.
\begin{center}
\small
\begin{tabular}{cccc}
\toprule
$\gamma$-edge $i$ & $U$-position & adjacent $D$'s (faces) & classification \\
\midrule
$0$ & $1$ & $D{=}0, D{=}2$ (both $F_A$) & internal to $F_A$ \\
$1$ & $3$ & $D{=}2, D{=}4$ (both $F_A$) & internal to $F_A$ \\
$2$ & $5$ & $D{=}4 (F_A), D{=}6 (F_B)$ & boundary $F_A$--$F_B$ \\
$3$ & $7$ & $D{=}6, D{=}8$ (both $F_B$) & internal to $F_B$ \\
$4$ & $9$ & $D{=}8, D{=}10$ (both $F_B$) & internal to $F_B$ \\
$5$ & $11$ & $D{=}10 (F_B), D{=}12 (F_C)$ & boundary $F_B$--$F_C$ \\
$6$ & $13$ & $D{=}12, D{=}14$ (both $F_C$) & internal to $F_C$ \\
$7$ & $15$ & $D{=}14, D{=}16$ (both $F_C$) & internal to $F_C$ \\
$8$ & $17$ & $D{=}16 (F_C), D{=}0 (F_A)$ (cyclic) & boundary $F_C$--$F_A$ \\
\bottomrule
\end{tabular}
\end{center}
\noindent
So $\gamma$ partitions into $6$ internal $\gamma$-edges ($2$ per face)
and $3$ boundary $\gamma$-edges ($1$ per pair of adjacent faces):
\[
\text{Internal}_{F_A} = \{0, 1\},\quad
\text{Internal}_{F_B} = \{3, 4\},\quad
\text{Internal}_{F_C} = \{6, 7\};
\]
\[
\delta_{AB} = 2,\quad \delta_{BC} = 5,\quad \delta_{CA} = 8.
\]
\section*{The structural description}
\begin{prop}[Face-pair connection partitions]
\label{prop:fp-connection}
A triple-partition $\widetilde{\mathcal{F}_2}$ of $\gamma$ has
$\mathcal{L}(\gamma, \widetilde{\mathcal{F}_2}) \subseteq \pi_U(T_2)$
iff it has the following structure: each block consists of
\begin{itemize}
\item one boundary $\gamma$-edge $\delta_{ij}$ between an adjacent
$O^{(2)}$-face pair $(F_i, F_j)$,
\item one internal $\gamma$-edge from $F_i$ (i.e.\ one of
$\text{Internal}_{F_i}$'s two elements),
\item one internal $\gamma$-edge from $F_j$.
\end{itemize}
Equivalently: blocks are in bijection with adjacent $O^{(2)}$-face
pairs (here, $\{AB, BC, CA\}$), and for each face $F_i$ the two
internal $\gamma$-edges are distributed between the two blocks
``involving'' $F_i$ (one per block).
\end{prop}
\begin{proof}[Proof of count]
For $r = 3$ faces: $3$ boundary edges (one per adjacent pair), so $3$
blocks. Each face $F_i$ has $2$ internal $\gamma$-edges, and each
internal must go to one of the two blocks involving $F_i$. Choices:
$2$ per face, $r$ faces $\Rightarrow$ $2^r = 8$ partitions matching
the empirical $8$ survivors.
\end{proof}
\subsection*{All 8 survivors enumerated with this structure}
Writing each partition as
$\{(\text{internal}_A, \delta_{AB}, \text{internal}_B),\;
(\text{internal}_B', \delta_{BC}, \text{internal}_C),\;
(\text{internal}_C', \delta_{CA}, \text{internal}_A')\}$
where internal$_A$ and internal$_A'$ split $\{0, 1\}$, etc.:
\begin{center}
\small
\begin{tabular}{ll}
\toprule
$(F_A, F_B, F_C)$ split & resulting partition\\
\midrule
$(0|1, 3|4, 6|7)$ & $\{(0, 2, 3), (4, 5, 6), (7, 8, 1)\}$ \\
$(0|1, 3|4, 7|6)$ & $\{(0, 2, 3), (4, 5, 7), (6, 8, 1)\}$ \\
$(0|1, 4|3, 6|7)$ & $\{(0, 2, 4), (3, 5, 6), (7, 8, 1)\}$ \\
$(0|1, 4|3, 7|6)$ & $\{(0, 2, 4), (3, 5, 7), (6, 8, 1)\}$ \\
$(1|0, 3|4, 6|7)$ & $\{(1, 2, 3), (4, 5, 6), (7, 8, 0)\}$ \\
$(1|0, 3|4, 7|6)$ & $\{(1, 2, 3), (4, 5, 7), (6, 8, 0)\}$ \\
$(1|0, 4|3, 6|7)$ & $\{(1, 2, 4), (3, 5, 6), (7, 8, 0)\}$ \\
$(1|0, 4|3, 7|6)$ & $\{(1, 2, 4), (3, 5, 7), (6, 8, 0)\}$ \\
\bottomrule
\end{tabular}
\end{center}
These match the empirical survivors (up to relabeling block order).
\section*{Why the naive candidates fail}
Both \texttt{induced\_partition.py}'s candidate $1$ (next-$D$)
$\{(0,1,8),(2,3,4),(5,6,7)\}$ and candidate $2$ (prev-$D$)
$\{(0,1,2),(3,4,5),(6,7,8)\}$ \emph{group both internal $\gamma$-edges
of one face into one block}. E.g.\ candidate $2$'s first block
$\{0,1,2\}$ contains both Internal$_{F_A}$ edges ($0$ and $1$) plus
the boundary $\delta_{AB} = 2$ --- no internal from $F_B$.
This violates the structural rule of Prop.\ \ref{prop:fp-connection}
(which requires one internal from \emph{each} of the two adjacent
faces). Empirically these partitions' Latin sets are not contained
in $\pi_U(T_2)$.
\section*{Generalisation to $r$ faces}
For an SP tire whose $O^{(2)}$ has $r$ all-$3$ faces arranged cyclically
$F_0, F_1, \dots, F_{r-1}$ on $B_{\mathrm{in}}^{(2)}$, the $\gamma$-edge
classification gives:
\begin{itemize}
\item $2r$ internal $\gamma$-edges (two per face),
\item $r$ boundary $\gamma$-edges (one per cyclically-adjacent pair
$(F_i, F_{i+1})$),
\end{itemize}
for a total of $3r$ $\gamma$-edges, which is exactly $|\gamma| = k$
when $k = 3r$ (i.e.\ $k_2 = k$, the symmetric case).
\begin{prop}[General structural description]
\label{prop:general}
For the symmetric case $k = k_2$ with $r$ all-$3$ $O^{(2)}$-faces, the
triple-partitions $\widetilde{\mathcal{F}_2}$ satisfying
$\mathcal{L}(\gamma, \widetilde{\mathcal{F}_2}) \subseteq \pi_U(T_2)$
are exactly those of the form:
\begin{itemize}
\item Block $b_{i, i+1}$ for each adjacent pair, containing
boundary $\delta_{i, i+1}$, one internal of $F_i$, one
internal of $F_{i+1}$,
\item subject to: for each face $F_i$, its two internals are
distributed between the two blocks $b_{i-1, i}$ and
$b_{i, i+1}$ (one per block).
\end{itemize}
Count: $2^r$ partitions.
\end{prop}
\textbf{Status.} Proved (cleanly) at $k = 9$ by exhaustive verification
matching the $8 = 2^3$ count. At $k = 6$ ($r = 2$), the proposition
predicts $2^2 = 4$ ``structural'' partitions, which is a strict
subset of the $10$ triple-partitions whose Latin sets fit in
$\pi_U(T_2)$; the extra $6$ are absorbed by the relatively large
$|\pi_U(T_2)| = 90$ at $k = 6$. At $k \geq 9$ we expect (and
observe at $k = 9$) that the structural partitions are the only
ones working.
\subsection*{Open: prove the proposition for all $r$}
Prop.\ \ref{prop:general} is currently empirical-only. A clean proof
would presumably show:
\begin{enumerate}
\item \emph{Necessity}: a Latin partition not of the face-pair-
connection form contains a $\sigma$ that violates a
proper-edge-coloring constraint inside $T'_{f'}$.
\item \emph{Sufficiency}: each of the $2^r$ structural partitions'
Latin sets is realisable as $\pi_U$-projections, by an
explicit construction lifting a structural assignment of
colors at internal and boundary $\gamma$-edges into a proper
coloring of $T'_{\mathrm{ann}}$ + spokes.
\end{enumerate}
\section*{Implications for the K\"onig lift}
The worst-case note's conjecture (\emph{t2-induces-partition}) was
that the induced $\gamma$-partition is unique (the next-$D$ or
prev-$D$ candidate). The reality is that there are $2^r$ structurally
valid candidates; the candidates from the worst-case note are
\emph{not} among them (they violate the ``one internal per face per
block'' rule).
So the K\"onig-lift approach can be \emph{rescued} by replacing the
naive candidate $\widetilde{\mathcal{F}_2}$ with any of the $2^r$
face-pair-connection partitions, and applying the K\"onig argument
on the bipartite face-incidence graph of $\mathcal{F}_1$ versus this
new $\widetilde{\mathcal{F}_2}$. This is the natural next step in
the program.
\end{document}