coloring_nested_tire_graphs: empirical findings on the König-lift conjecture (negative)

Tested the candidate induced γ-partition from
worst_case_proof_sketch.tex (Conj t2-induces-partition).

Findings:

1. AT k = k_2 = 6 (antipodal chord, faces 3+3): Candidate
   partition (next-D or prev-D) gives Latin ⊆ π_U.  ✓

   But this is partly coincidental: |π_U| = 90 is so large that
   ALL 10 triple-partitions of {0,..,5} have Latin ⊆ π_U.

2. AT k = k_2 = 9 (chords (0,3)(3,6), faces 3+3+3): Candidate
   partition FAILS.  Only 8 of all 280 triple-partitions of
   {0,..,8} have Latin ⊆ π_U, and the candidate is not one of
   them.  The 8 surviving partitions have no obvious geometric
   interpretation.

3. ASYMMETRIC k ≠ k_2 (e.g. k=6, k_2=3): Candidate doesn't
   produce a triple-partition at all, and no triple-partition
   has Latin ⊆ π_U.  Conjecture as stated doesn't cover the
   case where the empirical worst-case overlap lives.

Implication: The candidate construction is wrong past k = 6.
Step 3 (prove inclusion) is not the right next move -- we'd
be proving a false statement.

Reassessment of Approach 2: the König-overlap proposition (when
both tires give direct γ-face partitions) is still cleanly proven,
but applies to fewer cases than hoped.  The asymmetric pairs that
witness the empirical worst case are not covered.

Both approaches now have known structural obstacles:
- Approach 1 (2-SAT): single open Conjecture 1.5, empirically true.
- Approach 2 (König): natural construction empirically wrong past
  k=6, plus asymmetric pairs out of scope.

Honest status: chain pigeonhole has no full proof yet.

Files:
  experiments/induced_partition.py
  notes/induced_partition_findings.tex (3 pages)

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
This commit is contained in:
2026-05-26 11:33:18 -04:00
parent f0bc82b88d
commit 6f541d2d68
5 changed files with 717 additions and 0 deletions
@@ -0,0 +1,210 @@
"""Verify the candidate induced γ-partition conjecture for T_2 (the inner
tire whose chord is on B_in^(2), not on γ).
Setup:
T_2 is an SP tire with B_out^(2) = γ (length k) and B_in^(2) = C_{k_2}
(length k_2 divisible by 3) plus chord(s) creating O^(2)-faces of
size 3 each. Balanced annular triangulation interleaves D-triangles
(one per B_in^(2)-edge) and U-triangles (one per γ-edge) on the dual
cycle T'_ann of length k + k_2.
The conjecture is that π_U(C(T_2)) ⊇ L(γ, ~F_2), the Latin subset for
some induced γ-face partition ~F_2. Candidate construction (from
worst_case_proof_sketch.tex): for each O^(2)-face F^(2) (a triple of
B_in^(2)-edges = a triple of D-triangles), the associated γ-edges are
the U-triangles that lie in the cyclic span of F^(2)'s D-positions on
T'_ann, with boundary U-triangles assigned by some rule (e.g. "next
F^(2) cyclically").
This script:
- Constructs the candidate induced partition.
- Computes π_U(C(T_2)) by brute enumeration.
- Checks whether L(γ, induced partition) ⊆ π_U.
- Reports findings.
"""
from itertools import permutations, product
from collections import defaultdict
from tire_fiber_chords import (
fiber_distribution,
u_positions_for,
projection_support,
)
from tire_fiber_chunked import projection_support_streaming
def induced_gamma_partition_candidate_1(k, k_2, chords, d_positions, u_positions):
"""Candidate 1: assign each U-triangle to the O^(2)-face whose
D-triangle interval on T'_ann contains it. Boundary U-triangles
are assigned to the cyclically-next F^(2)."""
n = k + k_2
# First find face structure of O^(2)
from tire_fiber_chords import compute_faces_from_chords
o_faces = compute_faces_from_chords(k_2, chords) # list of lists of B_in^(2)-edge indices
# For each B_in^(2)-edge a, find which face it's in
edge_to_face = {}
for face_idx, edges in enumerate(o_faces):
for a in edges:
edge_to_face[a] = face_idx
# d_positions[i] = T'_ann position of B_in^(2)-edge i.
# Walk T'_ann cyclically. At each U-position, find the next D-position
# cyclically, and assign U to that D's face.
d_pos_set = set(d_positions)
d_pos_to_edge = {p: i for i, p in enumerate(d_positions)}
u_to_face = {}
for u_pos in u_positions:
# Find the next D-position cyclically after u_pos
for offset in range(1, n):
check_pos = (u_pos + offset) % n
if check_pos in d_pos_set:
next_b_in_edge = d_pos_to_edge[check_pos]
u_to_face[u_pos] = edge_to_face[next_b_in_edge]
break
# Each U-position corresponds to a γ-edge. γ-edges are indexed by
# u_positions in cyclic order.
# u_positions[i] ↔ γ-edge i in the cyclic order on T'_ann
u_pos_to_gamma_edge = {p: i for i, p in enumerate(u_positions)}
# Build the partition: face_idx → list of γ-edge indices
partition = defaultdict(list)
for u_pos, face_idx in u_to_face.items():
partition[face_idx].append(u_pos_to_gamma_edge[u_pos])
return [sorted(v) for v in partition.values()]
def induced_gamma_partition_candidate_2(k, k_2, chords, d_positions, u_positions):
"""Candidate 2: assign each U-triangle to the O^(2)-face whose
D-triangle interval on T'_ann contains it (using PREVIOUS D for
boundary assignment instead of next)."""
n = k + k_2
from tire_fiber_chords import compute_faces_from_chords
o_faces = compute_faces_from_chords(k_2, chords)
edge_to_face = {}
for face_idx, edges in enumerate(o_faces):
for a in edges:
edge_to_face[a] = face_idx
d_pos_set = set(d_positions)
d_pos_to_edge = {p: i for i, p in enumerate(d_positions)}
u_to_face = {}
for u_pos in u_positions:
for offset in range(1, n):
check_pos = (u_pos - offset) % n
if check_pos in d_pos_set:
prev_b_in_edge = d_pos_to_edge[check_pos]
u_to_face[u_pos] = edge_to_face[prev_b_in_edge]
break
u_pos_to_gamma_edge = {p: i for i, p in enumerate(u_positions)}
partition = defaultdict(list)
for u_pos, face_idx in u_to_face.items():
partition[face_idx].append(u_pos_to_gamma_edge[u_pos])
return [sorted(v) for v in partition.values()]
def latin_set(partition, k):
"""Set of σ{1,2,3}^k where σ restricted to each partition block
is a permutation of {1,2,3} (= each block has exactly 3 elements
using all 3 colors)."""
L = set()
if any(len(b) != 3 for b in partition):
return None # not all triples
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):
"""Yield all ways to partition a set of 3n elements into triples."""
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 check_all_triple_partitions(pi_U, k):
"""Return all triple-partitions of {0,...,k-1} whose Latin set ⊆ π_U."""
if k % 3 != 0:
return []
good = []
for partition in all_partitions_into_triples(range(k)):
L = latin_set([list(b) for b in partition], k)
if L is None:
continue
if L <= pi_U:
good.append([sorted(b) for b in partition])
return good
def main():
cases = [
(6, 6, [(0, 3)], "k=k_2=6, antipodal chord (faces 3+3)"),
(6, 6, [(0, 2), (3, 5)], "k=k_2=6, two chords (faces 2+2+2)"),
(6, 3, [], "k=6, k_2=3 (T_2 inner = C_3, no chord, SP)"),
(9, 9, [(0, 3), (3, 6)], "k=k_2=9, two chords (faces 3+3+3)"),
]
for k, k_2, chords, desc in cases:
print(f'\n=== {desc} ===')
print(f' k = γ length = {k}, k_2 = {k_2}, chords = {chords}')
# Get T_2's projections. T_2's outer boundary = γ, so we use π_U.
from tire_fiber_chords import d_positions_for
d_pos = d_positions_for(k, k_2)
u_pos = u_positions_for(k, k_2)
try:
if k + k_2 <= 14:
fibers, _, _ = fiber_distribution(k, k_2, chords)
pi_U = projection_support(fibers, u_pos)
else:
# chunked streaming for larger cases
pi_U = projection_support_streaming(k, k_2, chords, u_pos)
except Exception as e:
print(f' computation failed: {e}')
continue
print(f' |π_U| = {len(pi_U)}, 3^k = {3**k}')
# Try candidate induced partitions
for cand_name, cand_fn in [
('Candidate 1 (next-D)', induced_gamma_partition_candidate_1),
('Candidate 2 (prev-D)', induced_gamma_partition_candidate_2),
]:
partition = cand_fn(k, k_2, chords, d_pos, u_pos)
partition_str = ", ".join(str(sorted(b)) for b in partition)
print(f' {cand_name}: partition = {partition_str}')
L = latin_set(partition, k)
if L is None:
print(f' partition not all-3-triples; skipping Latin test')
continue
print(f' |L| = {len(L)}, L ⊆ π_U? {L <= pi_U}')
# Enumerate all triple-partitions and find which give Latin ⊆ π_U
if k % 3 == 0:
good_partitions = check_all_triple_partitions(pi_U, k)
print(f' # triple-partitions with Latin ⊆ π_U: {len(good_partitions)}')
for p in good_partitions[:5]:
print(f' Latin ⊆ π_U: {p}')
if __name__ == '__main__':
main()
@@ -0,0 +1,2 @@
\relax
\gdef \@abspage@last{3}
@@ -0,0 +1,317 @@
This is pdfTeX, Version 3.141592653-2.6-1.40.24 (TeX Live 2022) (preloaded format=pdflatex 2022.10.5) 26 MAY 2026 11:33
entering extended mode
restricted \write18 enabled.
%&-line parsing enabled.
**induced_partition_findings.tex
(./induced_partition_findings.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
)
(./induced_partition_findings.aux)
\openout1 = `induced_partition_findings.aux'.
LaTeX Font Info: Checking defaults for OML/cmm/m/it on input line 16.
LaTeX Font Info: ... okay on input line 16.
LaTeX Font Info: Checking defaults for OMS/cmsy/m/n on input line 16.
LaTeX Font Info: ... okay on input line 16.
LaTeX Font Info: Checking defaults for OT1/cmr/m/n on input line 16.
LaTeX Font Info: ... okay on input line 16.
LaTeX Font Info: Checking defaults for T1/cmr/m/n on input line 16.
LaTeX Font Info: ... okay on input line 16.
LaTeX Font Info: Checking defaults for TS1/cmr/m/n on input line 16.
LaTeX Font Info: ... okay on input line 16.
LaTeX Font Info: Checking defaults for OMX/cmex/m/n on input line 16.
LaTeX Font Info: ... okay on input line 16.
LaTeX Font Info: Checking defaults for U/cmr/m/n on input line 16.
LaTeX Font Info: ... okay on input line 16.
(/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 17.
(/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 17.
(/usr/local/texlive/2022/texmf-dist/tex/latex/amsfonts/umsb.fd
File: umsb.fd 2013/01/14 v3.01 AMS symbols B
)
Overfull \hbox (3.63722pt too wide) in paragraph at lines 88--93
[]\OT1/cmr/m/n/10.95 The eight sur-viv-ing par-ti-tions are not con-tigu-ous bl
ocks. Ex-am-ples: $\OMS/cmsy/m/n/10.95 ff\OT1/cmr/m/n/10.95 0\OML/cmm/m/it/10.9
5 ; \OT1/cmr/m/n/10.95 2\OML/cmm/m/it/10.95 ; \OT1/cmr/m/n/10.95 3\OMS/cmsy/m/n
/10.95 g\OML/cmm/m/it/10.95 ; \OMS/cmsy/m/n/10.95 f\OT1/cmr/m/n/10.95 1\OML/cmm
/m/it/10.95 ; \OT1/cmr/m/n/10.95 6\OML/cmm/m/it/10.95 ; \OT1/cmr/m/n/10.95 8\OM
S/cmsy/m/n/10.95 g\OML/cmm/m/it/10.95 ; \OMS/cmsy/m/n/10.95 f\OT1/cmr/m/n/10.95
4\OML/cmm/m/it/10.95 ; \OT1/cmr/m/n/10.95 5\OML/cmm/m/it/10.95 ; \OT1/cmr/m/n/
10.95 7\OMS/cmsy/m/n/10.95 gg$\OT1/cmr/m/n/10.95 ,
[]
[1
{/usr/local/texlive/2022/texmf-var/fonts/map/pdftex/updmap/pdftex.map}]
[2]
LaTeX Font Info: Font shape `OT1/cmtt/bx/n' in size <10.95> not available
(Font) Font shape `OT1/cmtt/m/n' tried instead on input line 171.
[3] (./induced_partition_findings.aux) )
Here is how much of TeX's memory you used:
3256 strings out of 478268
48561 string characters out of 5846347
351623 words of memory out of 5000000
21440 multiletter control sequences out of 15000+600000
480708 words of font info for 72 fonts, out of 8000000 for 9000
1141 hyphenation exceptions out of 8191
55i,9n,62p,243b,242s 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/cmbxti10.pfb></usr/local/texlive/2022/texmf-dist/font
s/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/
type1/public/amsfonts/cm/cmmi12.pfb></usr/local/texlive/2022/texmf-dist/fonts/t
ype1/public/amsfonts/cm/cmmi7.pfb></usr/local/texlive/2022/texmf-dist/fonts/typ
e1/public/amsfonts/cm/cmmi8.pfb></usr/local/texlive/2022/texmf-dist/fonts/type1
/public/amsfonts/cm/cmr10.pfb></usr/local/texlive/2022/texmf-dist/fonts/type1/p
ublic/amsfonts/cm/cmr12.pfb></usr/local/texlive/2022/texmf-dist/fonts/type1/pub
lic/amsfonts/cm/cmr17.pfb></usr/local/texlive/2022/texmf-dist/fonts/type1/publi
c/amsfonts/cm/cmr7.pfb></usr/local/texlive/2022/texmf-dist/fonts/type1/public/a
msfonts/cm/cmr8.pfb></usr/local/texlive/2022/texmf-dist/fonts/type1/public/amsf
onts/cm/cmsy10.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/cmti12.pfb></usr/local/texlive/2022/texmf-dist/fonts/type1/public/amsfonts/
cm/cmtt10.pfb></usr/local/texlive/2022/texmf-dist/fonts/type1/public/amsfonts/c
m/cmtt12.pfb></usr/local/texlive/2022/texmf-dist/fonts/type1/public/cm-super/sf
rm1095.pfb>
Output written on induced_partition_findings.pdf (3 pages, 222172 bytes).
PDF statistics:
115 PDF objects out of 1000 (max. 8388607)
69 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,188 @@
\documentclass[11pt]{article}
\usepackage{amsmath,amssymb,amsthm}
\usepackage{graphicx}
\usepackage{geometry}
\usepackage{booktabs}
\geometry{margin=1in}
\title{Empirical findings on the K\"onig-lift conjecture\\
(Conj.\ \emph{t2-induces-partition} from
\texttt{worst\_case\_proof\_sketch.tex})}
\author{}
\date{}
\newtheorem*{obs}{Observation}
\begin{document}
\maketitle
\section*{What was tested}
The K\"onig-lift approach to chain pigeonhole
(\texttt{worst\_case\_proof\_sketch.tex}) conjectures that for an SP
tire $T_2$ with $B_{\mathrm{in}}^{(2)}$-chord structure such that
every $O^{(2)}$-face has exactly $3$ $B_{\mathrm{in}}^{(2)}$-edges,
there is an \emph{induced} face partition $\widetilde{\mathcal{F}_2}$
of $\gamma$ into triples with
\[
\pi_U(\mathcal{C}(T_2)) \supseteq
\mathcal{L}(\gamma, \widetilde{\mathcal{F}_2}).
\]
The candidate construction (worst-case note, ``one concrete
attempt'') groups $\gamma$-edges by the $O^{(2)}$-face whose
$D$-triangle is cyclically next (or previous) on $T'_{\mathrm{ann}}$.
Script: \texttt{experiments/induced\_partition.py}.
\section*{Findings}
\begin{center}
\small
\begin{tabular}{lll|cc|cc}
\toprule
$k = |\gamma|$ & $k_2 = |B_{\mathrm{in}}^{(2)}|$ & chords on $B_{\mathrm{in}}^{(2)}$
& $|\pi_U|$ & $3^k$
& candidate 1 OK? & candidate 2 OK? \\
\midrule
$6$ & $6$ & $(0,3)$ (faces $3{+}3$)
& $90$ & $729$ & \textbf{Yes} & \textbf{Yes}\\
$6$ & $6$ & $(0,2)(3,5)$ (faces $2{+}2{+}2$)
& $456$ & $729$ & N/A (not triples) & N/A\\
$6$ & $3$ & none (face $3$, single)
& $84$ & $729$ & N/A (not triples) & N/A\\
$9$ & $9$ & $(0,3)(3,6)$ (faces $3{+}3{+}3$)
& $978$ & $19683$ & \textbf{No} & \textbf{No}\\
\bottomrule
\end{tabular}
\end{center}
\subsection*{(a) The candidate works at $k = 6$}
For $k = k_2 = 6$ antipodal chord (the symmetric all-$3$-faces case),
both candidate $1$ (next-$D$) and candidate $2$ (prev-$D$) produce
the same kind of $\gamma$-partition (a two-block partition of size
$3$ each), and the Latin subset $\mathcal{L}(\gamma, \widetilde{
\mathcal{F}_2})$ of size $36$ is verified $\subseteq \pi_U$.
In fact \emph{every} two-block triple-partition of
$\{0, \ldots, 5\}$ (there are $10$ such) has Latin subset
$\subseteq \pi_U$ here, because $|\pi_U| = 90$ is much larger than
$36$ and absorbs all of them.
\subsection*{(b) The candidate \emph{fails} at $k = 9$}
This is the surprise. For $k = k_2 = 9$ with chords $(0,3),(3,6)$
producing three $O^{(2)}$-faces of size $3$ each:
\begin{itemize}
\item Candidate $1$ (next-$D$):
$\widetilde{\mathcal{F}_2} = \{\{0,1,8\},\;\{2,3,4\},\;\{5,6,7\}\}$.
$|\mathcal{L}| = 216$, but $\mathcal{L} \not\subseteq \pi_U$
(some Latin elements are missing).
\item Candidate $2$ (prev-$D$):
$\widetilde{\mathcal{F}_2} = \{\{0,1,2\},\;\{3,4,5\},\;\{6,7,8\}\}$.
$|\mathcal{L}| = 216$, but $\mathcal{L} \not\subseteq \pi_U$.
\item Of all $280$ possible triple-partitions of $\{0, \ldots, 8\}$,
only $8$ have $\mathcal{L} \subseteq \pi_U$.
\end{itemize}
The eight surviving partitions are not contiguous blocks. Examples:
$\{\{0,2,3\},\{1,6,8\},\{4,5,7\}\}$,
$\{\{0,2,4\},\{1,6,8\},\{3,5,7\}\}$, etc. They do not have an
obvious geometric interpretation in terms of $T_2$'s annular
triangulation.
\subsection*{(c) The asymmetric case ($k \ne k_2$) is outside scope}
For $k = 6, k_2 = 3$ (the configuration with $T_2 = (3, -, \mathrm{SP})$),
the candidate construction collapses to a single block of $6$
$\gamma$-edges (since there is only one $O^{(2)}$-face), so it is not a
triple-partition. Moreover, \emph{no} triple-partition of
$\{0, \ldots, 5\}$ has Latin subset $\subseteq \pi_U$ here.
So Conj.\ \emph{t2-induces-partition} as currently stated does not
cover $k \ne k_2$, and the empirical data shows there is no
``rescue'' partition of any kind.
\section*{Implications}
\subsection*{The K\"onig lift's natural construction breaks past $k = 6$}
The candidate $\widetilde{\mathcal{F}_2}$ from the worst-case note is
the geometrically natural one (group $\gamma$-edges by their nearest
$O^{(2)}$-face $D$-triangle), and it succeeds at $k = 6$ partly by
coincidence: $|\pi_U|$ is so large that every triple-partition fits.
At $k = 9$ the gap between $|\pi_U|$ and $3^k$ widens, and the
candidate's specific partition is no longer in the small set of
``correct'' partitions.
The fact that only $8 / 280$ partitions work at $k = 9$ suggests
that whatever the right $\widetilde{\mathcal{F}_2}$ is, it is
\emph{not} just a function of $T_2$'s outerplanar face structure ---
it must encode finer information about the annular triangulation.
\subsection*{Asymmetric pairs not covered at all}
The empirical worst-case overlap $|S_1 \cap S_2| = 6$ in step-$2$
data comes from \emph{asymmetric} pairs (e.g.\
$T_1 = (6, (0,3), \mathrm{SP})$ vs $T_2 = (3, -, \mathrm{SR})$)
where $k \ne k_2$. Even if the K\"onig lift were proved for the
symmetric case, it would not handle the asymmetric pairs that
witness the worst case.
\subsection*{Step 3 (proof) is not the right next move}
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}
\section*{Reassessment of Approach 2}
Approach 2 (K\"onig lift) was preferred in
\texttt{two\_approaches\_comparison.tex} on the grounds that ``the
hard step is already proven, only the induced-partition piece is
conjectural.'' These findings show:
\begin{itemize}
\item The induced-partition piece is \emph{not} just conjectural ---
the specific construction in the worst-case note is
\emph{wrong} for $k > 6$.
\item The K\"onig-overlap proposition (when both tires give direct
$\gamma$-face partitions) is still cleanly proved; it just
applies to fewer cases than was hoped.
\end{itemize}
\subsection*{Updated ranking}
Both approaches now have known structural obstacles:
\begin{itemize}
\item \textbf{Approach 1 (2-SAT, \texttt{rainbow\_proof.tex})}:
single open conjecture (2-SAT solvability), empirically true
for all tested $\sigma \in \mathcal{P}_m$ at $m \in \{4, 6\}$.
Limited to $m \in \{4, 6\}$ (SP feasibility) but at least
empirically holds throughout that range.
\item \textbf{Approach 2 (K\"onig lift,
\texttt{worst\_case\_proof\_sketch.tex})}: K\"onig-overlap
prop proved, but the natural induced-partition construction
is empirically wrong at $k = 9$. Asymmetric pairs (where
the worst case actually lives) are not covered at all.
\end{itemize}
Both approaches give partial structural results. Neither closes
the chain-pigeonhole step in its full generality. The honest
status: chain pigeonhole has no full proof yet, and both attempted
attacks have specific empirical limits.
\end{document}