coloring_nested_tire_graphs: step-2 adjacent-tire compatibility experiment
For pairs (T1, T2) sharing a cycle γ, intersect T1's D-projection
(inner-spoke pattern from outer tire) with T2's U-projection
(outer-spoke pattern from inner tire) on γ. Compatibility = nonempty
intersection.
Result: 23/23 tested pairs are compatible, spanning k ∈ {3,4,5,6},
both SR/SP models, and a range of chord configurations on each side.
Notable: small intersections have clean S_3-orbit structure. Worst
tested case (k=6, antipodal-chord T1 vs unchorded SR T2) has
intersection of size 6 — exactly the 3! rainbow patterns (a,b,c,b,c,a).
This suggests structural rather than accidental overlap, and points to
a theorem worth proving.
Caveats: 23 cases at k≤6 isn't a proof; longer chains (step 3) require
more than pairwise overlap.
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
This commit is contained in:
@@ -0,0 +1,130 @@
|
||||
"""Step 2: For pairs of adjacent tires (T1, T2) sharing a cycle γ,
|
||||
compute the intersection of T1's D-projection and T2's U-projection
|
||||
on γ. Compatibility (chain-pigeonhole step) succeeds iff the
|
||||
intersection is non-empty.
|
||||
|
||||
Conventions
|
||||
-----------
|
||||
* T1 is the OUTER tire: γ = B_in^(1). T1's inner-spoke pattern on γ
|
||||
is its D-projection π_D^(1).
|
||||
* T2 is the INNER tire: γ = B_out^(2). T2's outer-spoke pattern on γ
|
||||
is its U-projection π_U^(2).
|
||||
* Each tire's σ-support is closed under cyclic rotation of its dual
|
||||
cycle, which induces cyclic rotation on the γ-projection.
|
||||
* T1 and T2 may walk around γ in opposite orientations, so we check
|
||||
intersection both forward and with one side reversed.
|
||||
|
||||
Two models per tire:
|
||||
SR -- Steiner-rich (no chord effect; spoke-only baseline from step 1)
|
||||
SP -- Steiner-poor (each O-face is one G-face; chord constraints active)
|
||||
"""
|
||||
from itertools import product
|
||||
|
||||
from tire_fiber_chords import (
|
||||
COLORS,
|
||||
fiber_distribution,
|
||||
spoke_only_fiber_distribution,
|
||||
d_positions_for,
|
||||
u_positions_for,
|
||||
projection_support,
|
||||
)
|
||||
|
||||
|
||||
def project_T1_D(gamma_len: int, m_1: int, chords_1, model: str) -> set:
|
||||
"""T1's D-projection on γ. T1 has B_out of length m_1, B_in = γ
|
||||
of length gamma_len."""
|
||||
if model == 'SR':
|
||||
n = m_1 + gamma_len
|
||||
fibers = spoke_only_fiber_distribution(n)
|
||||
else:
|
||||
fibers, _, _ = fiber_distribution(m_1, gamma_len, chords_1)
|
||||
d_pos = d_positions_for(m_1, gamma_len)
|
||||
return projection_support(fibers, d_pos)
|
||||
|
||||
|
||||
def project_T2_U(gamma_len: int, k_2: int, chords_2, model: str) -> set:
|
||||
"""T2's U-projection on γ. T2 has B_out = γ of length gamma_len,
|
||||
B_in of length k_2."""
|
||||
if model == 'SR':
|
||||
n = gamma_len + k_2
|
||||
fibers = spoke_only_fiber_distribution(n)
|
||||
else:
|
||||
fibers, _, _ = fiber_distribution(gamma_len, k_2, chords_2)
|
||||
u_pos = u_positions_for(gamma_len, k_2)
|
||||
return projection_support(fibers, u_pos)
|
||||
|
||||
|
||||
def intersect_with_reflection(S1: set, S2: set) -> tuple[set, set]:
|
||||
"""Return (forward intersection, reflection-flipped intersection)."""
|
||||
forward = S1 & S2
|
||||
S2_rev = {s[::-1] for s in S2}
|
||||
reverse = S1 & S2_rev
|
||||
return forward, reverse
|
||||
|
||||
|
||||
CASES = [
|
||||
# (γ, T1=(m_1, chords_1, model1), T2=(k_2, chords_2, model2))
|
||||
# γ = 3: no chord constraints possible (C_3 has no chords)
|
||||
(3, (3, [], 'SR'), (3, [], 'SR')),
|
||||
(3, (3, [], 'SR'), (4, [(0,2)], 'SP')),
|
||||
(3, (3, [], 'SP'), (3, [], 'SP')),
|
||||
(3, (3, [], 'SP'), (4, [(0,2)], 'SP')),
|
||||
|
||||
# γ = 4: SP-feasible only with chord (0,2) on T1
|
||||
(4, (4, [], 'SR'), (4, [], 'SR')),
|
||||
(4, (4, [(0,2)], 'SP'), (4, [(0,2)], 'SP')),
|
||||
(4, (4, [(0,2)], 'SP'), (4, [], 'SR')),
|
||||
(4, (4, [], 'SR'), (4, [(0,2)], 'SP')),
|
||||
(4, (3, [(0,2)], 'SP'), (4, [(0,2)], 'SP')),
|
||||
(4, (4, [(0,2)], 'SP'), (5, [(0,2)], 'SP')),
|
||||
(4, (4, [(0,2)], 'SP'), (6, [(0,3)], 'SP')),
|
||||
(4, (4, [(0,2)], 'SP'), (6, [(0,2),(3,5)], 'SP')),
|
||||
|
||||
# γ = 5
|
||||
(5, (5, [(0,2)], 'SP'), (3, [], 'SR')),
|
||||
(5, (5, [(0,2)], 'SP'), (5, [(0,2)], 'SP')),
|
||||
(5, (5, [(0,2)], 'SP'), (5, [(0,3)], 'SP')),
|
||||
(5, (5, [(0,3)], 'SP'), (5, [(0,3)], 'SP')),
|
||||
(5, (5, [(0,2)], 'SR'), (5, [(0,2)], 'SP')),
|
||||
|
||||
# γ = 6
|
||||
(6, (6, [(0,3)], 'SP'), (6, [(0,3)], 'SP')),
|
||||
(6, (6, [(0,3)], 'SP'), (6, [(0,2),(3,5)], 'SP')),
|
||||
(6, (6, [(0,2),(3,5)], 'SP'), (6, [(0,2),(3,5)], 'SP')),
|
||||
(6, (6, [(0,3)], 'SP'), (3, [], 'SR')),
|
||||
(6, (6, [(0,2),(3,5)], 'SP'), (3, [], 'SR')),
|
||||
(6, (6, [(0,2),(3,5)], 'SP'), (4, [(0,2)], 'SP')),
|
||||
]
|
||||
|
||||
|
||||
def fmt_cfg(m_or_k: int, chords, model: str) -> str:
|
||||
ch_str = str(chords) if chords else "—"
|
||||
return f"({m_or_k}, {ch_str}, {model})"
|
||||
|
||||
|
||||
def main():
|
||||
print(f"{'γ':>2} {'T1 (m_1, chords_1, model)':<32s} {'T2 (k_2, chords_2, model)':<32s} "
|
||||
f"{'|S1|':>5s} {'|S2|':>5s} {'3^γ':>5s} {'fwd':>5s} {'rev':>5s} {'compat?':>7s}")
|
||||
print("-" * 120)
|
||||
nyes = ntotal = 0
|
||||
for gamma, t1, t2 in CASES:
|
||||
m_1, ch1, model1 = t1
|
||||
k_2, ch2, model2 = t2
|
||||
S1 = project_T1_D(gamma, m_1, ch1, model1)
|
||||
S2 = project_T2_U(gamma, k_2, ch2, model2)
|
||||
forward, reverse = intersect_with_reflection(S1, S2)
|
||||
compat = "YES" if (forward or reverse) else "NO"
|
||||
ntotal += 1
|
||||
if compat == "YES":
|
||||
nyes += 1
|
||||
print(
|
||||
f"{gamma:>2} {fmt_cfg(m_1, ch1, model1):<32s} {fmt_cfg(k_2, ch2, model2):<32s} "
|
||||
f"{len(S1):>5d} {len(S2):>5d} {3**gamma:>5d} "
|
||||
f"{len(forward):>5d} {len(reverse):>5d} {compat:>7s}"
|
||||
)
|
||||
print("-" * 120)
|
||||
print(f"{nyes}/{ntotal} compatible.")
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
main()
|
||||
@@ -0,0 +1,27 @@
|
||||
γ T1 (m_1, chords_1, model) T2 (k_2, chords_2, model) |S1| |S2| 3^γ fwd rev compat?
|
||||
------------------------------------------------------------------------------------------------------------------------
|
||||
3 (3, —, SR) (3, —, SR) 27 27 27 27 27 YES
|
||||
3 (3, —, SR) (4, [(0, 2)], SP) 27 24 27 24 24 YES
|
||||
3 (3, —, SP) (3, —, SP) 6 6 27 6 6 YES
|
||||
3 (3, —, SP) (4, [(0, 2)], SP) 6 24 27 6 6 YES
|
||||
4 (4, —, SR) (4, —, SR) 81 81 81 81 81 YES
|
||||
4 (4, [(0, 2)], SP) (4, [(0, 2)], SP) 36 54 81 36 36 YES
|
||||
4 (4, [(0, 2)], SP) (4, —, SR) 36 81 81 36 36 YES
|
||||
4 (4, —, SR) (4, [(0, 2)], SP) 81 54 81 54 54 YES
|
||||
4 (3, [(0, 2)], SP) (4, [(0, 2)], SP) 36 54 81 36 36 YES
|
||||
4 (4, [(0, 2)], SP) (5, [(0, 2)], SP) 36 36 81 12 12 YES
|
||||
4 (4, [(0, 2)], SP) (6, [(0, 3)], SP) 36 15 81 6 6 YES
|
||||
4 (4, [(0, 2)], SP) (6, [(0, 2), (3, 5)], SP) 36 81 81 36 36 YES
|
||||
5 (5, [(0, 2)], SP) (3, —, SR) 36 171 243 18 18 YES
|
||||
5 (5, [(0, 2)], SP) (5, [(0, 2)], SP) 36 90 243 36 36 YES
|
||||
5 (5, [(0, 2)], SP) (5, [(0, 3)], SP) 36 90 243 36 36 YES
|
||||
5 (5, [(0, 3)], SP) (5, [(0, 3)], SP) 36 90 243 36 36 YES
|
||||
5 (5, [(0, 2)], SR) (5, [(0, 2)], SP) 243 90 243 90 90 YES
|
||||
6 (6, [(0, 3)], SP) (6, [(0, 3)], SP) 36 90 729 36 36 YES
|
||||
6 (6, [(0, 3)], SP) (6, [(0, 2), (3, 5)], SP) 36 456 729 36 36 YES
|
||||
6 (6, [(0, 2), (3, 5)], SP) (6, [(0, 2), (3, 5)], SP) 216 456 729 216 162 YES
|
||||
6 (6, [(0, 3)], SP) (3, —, SR) 36 396 729 6 6 YES
|
||||
6 (6, [(0, 2), (3, 5)], SP) (3, —, SR) 216 396 729 108 108 YES
|
||||
6 (6, [(0, 2), (3, 5)], SP) (4, [(0, 2)], SP) 216 342 729 108 90 YES
|
||||
------------------------------------------------------------------------------------------------------------------------
|
||||
23/23 compatible.
|
||||
@@ -0,0 +1,6 @@
|
||||
\relax
|
||||
\newlabel{obs:always-compatible}{{}{2}}
|
||||
\newlabel{obs:containment}{{}{2}}
|
||||
\newlabel{obs:rainbow}{{}{2}}
|
||||
\newlabel{obs:reflection}{{}{3}}
|
||||
\gdef \@abspage@last{3}
|
||||
@@ -0,0 +1,324 @@
|
||||
This is pdfTeX, Version 3.141592653-2.6-1.40.24 (TeX Live 2022) (preloaded format=pdflatex 2022.10.5) 26 MAY 2026 02:32
|
||||
entering extended mode
|
||||
restricted \write18 enabled.
|
||||
%&-line parsing enabled.
|
||||
**tire_fiber_step2.tex
|
||||
(./tire_fiber_step2.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/caption/caption.sty
|
||||
Package: caption 2022/03/01 v3.6b Customizing captions (AR)
|
||||
|
||||
(/usr/local/texlive/2022/texmf-dist/tex/latex/caption/caption3.sty
|
||||
Package: caption3 2022/03/17 v2.3b caption3 kernel (AR)
|
||||
\caption@tempdima=\dimen171
|
||||
\captionmargin=\dimen172
|
||||
\caption@leftmargin=\dimen173
|
||||
\caption@rightmargin=\dimen174
|
||||
\caption@width=\dimen175
|
||||
\caption@indent=\dimen176
|
||||
\caption@parindent=\dimen177
|
||||
\caption@hangindent=\dimen178
|
||||
Package caption Info: Standard document class detected.
|
||||
)
|
||||
\c@caption@flags=\count278
|
||||
\c@continuedfloat=\count279
|
||||
)
|
||||
(/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=\count280
|
||||
\l__pdf_internal_box=\box52
|
||||
)
|
||||
(./tire_fiber_step2.aux)
|
||||
\openout1 = `tire_fiber_step2.aux'.
|
||||
|
||||
LaTeX Font Info: Checking defaults for OML/cmm/m/it on input line 15.
|
||||
LaTeX Font Info: ... okay on input line 15.
|
||||
LaTeX Font Info: Checking defaults for OMS/cmsy/m/n on input line 15.
|
||||
LaTeX Font Info: ... okay on input line 15.
|
||||
LaTeX Font Info: Checking defaults for OT1/cmr/m/n on input line 15.
|
||||
LaTeX Font Info: ... okay on input line 15.
|
||||
LaTeX Font Info: Checking defaults for T1/cmr/m/n on input line 15.
|
||||
LaTeX Font Info: ... okay on input line 15.
|
||||
LaTeX Font Info: Checking defaults for TS1/cmr/m/n on input line 15.
|
||||
LaTeX Font Info: ... okay on input line 15.
|
||||
LaTeX Font Info: Checking defaults for OMX/cmex/m/n on input line 15.
|
||||
LaTeX Font Info: ... okay on input line 15.
|
||||
LaTeX Font Info: Checking defaults for U/cmr/m/n on input line 15.
|
||||
LaTeX Font Info: ... okay on input line 15.
|
||||
|
||||
(/usr/local/texlive/2022/texmf-dist/tex/context/base/mkii/supp-pdf.mkii
|
||||
[Loading MPS to PDF converter (version 2006.09.02).]
|
||||
\scratchcounter=\count281
|
||||
\scratchdimen=\dimen179
|
||||
\scratchbox=\box53
|
||||
\nofMPsegments=\count282
|
||||
\nofMParguments=\count283
|
||||
\everyMPshowfont=\toks29
|
||||
\MPscratchCnt=\count284
|
||||
\MPscratchDim=\dimen180
|
||||
\MPnumerator=\count285
|
||||
\makeMPintoPDFobject=\count286
|
||||
\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)
|
||||
|
||||
Package caption Info: Begin \AtBeginDocument code.
|
||||
Package caption Info: End \AtBeginDocument code.
|
||||
LaTeX Font Info: Trying to load font information for U+msa on input line 16.
|
||||
|
||||
(/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 16.
|
||||
|
||||
|
||||
(/usr/local/texlive/2022/texmf-dist/tex/latex/amsfonts/umsb.fd
|
||||
File: umsb.fd 2013/01/14 v3.01 AMS symbols B
|
||||
)
|
||||
Overfull \hbox (14.49368pt too wide) in paragraph at lines 27--29
|
||||
[]\OT1/cmr/m/n/10.95 Script: \OT1/cmtt/m/n/10.95 experiments/tire[]fiber[]step2
|
||||
.py\OT1/cmr/m/n/10.95 ; out-put: \OT1/cmtt/m/n/10.95 experiments/tire[]fiber[]s
|
||||
tep2[]data.txt\OT1/cmr/m/n/10.95 .
|
||||
[]
|
||||
|
||||
[1
|
||||
|
||||
{/usr/local/texlive/2022/texmf-var/fonts/map/pdftex/updmap/pdftex.map}]
|
||||
[2] [3] (./tire_fiber_step2.aux) )
|
||||
Here is how much of TeX's memory you used:
|
||||
4569 strings out of 478268
|
||||
74024 string characters out of 5846347
|
||||
395361 words of memory out of 5000000
|
||||
22748 multiletter control sequences out of 15000+600000
|
||||
478865 words of font info for 64 fonts, out of 8000000 for 9000
|
||||
1141 hyphenation exceptions out of 8191
|
||||
55i,10n,63p,250b,218s stack positions out of 10000i,1000n,20000p,200000b,200000s
|
||||
{/usr/local/texlive/2022/texmf-dist/fonts/enc
|
||||
/dvips/cm-super/cm-super-ts1.enc}</usr/local/texlive/2022/texmf-dist/fonts/type
|
||||
1/public/amsfonts/cm/cmbx10.pfb></usr/local/texlive/2022/texmf-dist/fonts/type1
|
||||
/public/amsfonts/cm/cmbx12.pfb></usr/local/texlive/2022/texmf-dist/fonts/type1/
|
||||
public/amsfonts/cm/cmmi10.pfb></usr/local/texlive/2022/texmf-dist/fonts/type1/p
|
||||
ublic/amsfonts/cm/cmmi6.pfb></usr/local/texlive/2022/texmf-dist/fonts/type1/pub
|
||||
lic/amsfonts/cm/cmmi8.pfb></usr/local/texlive/2022/texmf-dist/fonts/type1/publi
|
||||
c/amsfonts/cm/cmr10.pfb></usr/local/texlive/2022/texmf-dist/fonts/type1/public/
|
||||
amsfonts/cm/cmr17.pfb></usr/local/texlive/2022/texmf-dist/fonts/type1/public/am
|
||||
sfonts/cm/cmr6.pfb></usr/local/texlive/2022/texmf-dist/fonts/type1/public/amsfo
|
||||
nts/cm/cmr8.pfb></usr/local/texlive/2022/texmf-dist/fonts/type1/public/amsfonts
|
||||
/cm/cmsy10.pfb></usr/local/texlive/2022/texmf-dist/fonts/type1/public/amsfonts/
|
||||
cm/cmsy6.pfb></usr/local/texlive/2022/texmf-dist/fonts/type1/public/amsfonts/cm
|
||||
/cmsy8.pfb></usr/local/texlive/2022/texmf-dist/fonts/type1/public/amsfonts/cm/c
|
||||
mti10.pfb></usr/local/texlive/2022/texmf-dist/fonts/type1/public/amsfonts/cm/cm
|
||||
tt10.pfb></usr/local/texlive/2022/texmf-dist/fonts/type1/public/cm-super/sfrm10
|
||||
95.pfb>
|
||||
Output written on tire_fiber_step2.pdf (3 pages, 191120 bytes).
|
||||
PDF statistics:
|
||||
90 PDF objects out of 1000 (max. 8388607)
|
||||
54 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)
|
||||
|
||||
Binary file not shown.
@@ -0,0 +1,217 @@
|
||||
\documentclass[11pt]{article}
|
||||
\usepackage{amsmath,amssymb,amsthm}
|
||||
\usepackage{graphicx}
|
||||
\usepackage{geometry}
|
||||
\usepackage{booktabs}
|
||||
\usepackage{caption}
|
||||
\geometry{margin=1in}
|
||||
|
||||
\title{Step 2: adjacent-tire compatibility on the shared cycle}
|
||||
\author{}
|
||||
\date{}
|
||||
|
||||
\newtheorem*{obs}{Observation}
|
||||
|
||||
\begin{document}
|
||||
\maketitle
|
||||
|
||||
\section*{What this is}
|
||||
|
||||
Step~2 of the action items: for pairs of adjacent tires
|
||||
$(T_1, T_2)$ sharing a cycle $\gamma$, we ask whether $T_1$'s
|
||||
inner-spoke pattern on $\gamma$ and $T_2$'s outer-spoke pattern on
|
||||
$\gamma$ are realisable simultaneously --- i.e.\ whether
|
||||
$\pi_D^{(1)}(\mathcal{C}^{(1)}) \cap \pi_U^{(2)}(\mathcal{C}^{(2)})
|
||||
\neq \emptyset$. This is the chain-pigeonhole compatibility step.
|
||||
|
||||
Script: \texttt{experiments/tire\_fiber\_step2.py}; output:
|
||||
\texttt{experiments/tire\_fiber\_step2\_data.txt}.
|
||||
|
||||
\section*{Setup}
|
||||
|
||||
Each shared $G'$-edge across $\gamma$ has a single color in any
|
||||
global edge $3$-coloring of $G'$. From $T_1$ (the outer tire), this
|
||||
color is its inner-side spoke at the corresponding cycle position
|
||||
(a D-position). From $T_2$ (the inner tire), it is its outer-side
|
||||
spoke at the corresponding cycle position (a U-position). Both
|
||||
demands must agree.
|
||||
|
||||
Letting $S_1 := \pi_D^{(1)}(\mathcal{C}^{(1)}) \subseteq \{1,2,3\}^k$
|
||||
($k = |\gamma|$) and $S_2 := \pi_U^{(2)}(\mathcal{C}^{(2)}) \subseteq
|
||||
\{1,2,3\}^k$, compatibility iff $S_1 \cap S_2 \neq \emptyset$ under
|
||||
the geometric correspondence between $T_1$'s $\gamma$-indexing and
|
||||
$T_2$'s $\gamma$-indexing (which is either ``same orientation'' or
|
||||
``reversed orientation'' depending on the embedding). Both supports
|
||||
are closed under cyclic rotation of $\gamma$, so rotation choice does
|
||||
not matter; we check both forward and reversed-$S_2$ intersection.
|
||||
|
||||
Each tire is tested under two models:
|
||||
\begin{itemize}
|
||||
\item \textbf{Steiner-rich (SR)}: chord set is invisible to
|
||||
$T'_{f'}$; supports always saturate when possible
|
||||
(the step-1 baseline).
|
||||
\item \textbf{Steiner-poor (SP)}: chord set determines feasibility
|
||||
and constraints; supports are smaller, often much smaller
|
||||
(the chord-case from
|
||||
\texttt{tire\_fiber\_chords.tex}).
|
||||
\end{itemize}
|
||||
|
||||
\section*{Main data}
|
||||
|
||||
\begin{center}
|
||||
\scriptsize
|
||||
\begin{tabular}{c | l l | r r r r r c}
|
||||
\toprule
|
||||
$k$
|
||||
& $T_1 = (m_1, \text{chords}_1, \text{model}_1)$
|
||||
& $T_2 = (k_2, \text{chords}_2, \text{model}_2)$
|
||||
& $|S_1|$ & $|S_2|$ & $3^k$ & fwd & rev & compat?\\
|
||||
\midrule
|
||||
3 & $(3, -, \text{SR})$ & $(3, -, \text{SR})$ & 27 & 27 & 27 & 27 & 27 & yes \\
|
||||
3 & $(3, -, \text{SR})$ & $(4, (0{,}2), \text{SP})$ & 27 & 24 & 27 & 24 & 24 & yes \\
|
||||
3 & $(3, -, \text{SP})$ & $(3, -, \text{SP})$ & 6 & 6 & 27 & 6 & 6 & yes \\
|
||||
3 & $(3, -, \text{SP})$ & $(4, (0{,}2), \text{SP})$ & 6 & 24 & 27 & 6 & 6 & yes \\
|
||||
\midrule
|
||||
4 & $(4, -, \text{SR})$ & $(4, -, \text{SR})$ & 81 & 81 & 81 & 81 & 81 & yes \\
|
||||
4 & $(4, (0{,}2), \text{SP})$ & $(4, (0{,}2), \text{SP})$ & 36 & 54 & 81 & 36 & 36 & yes \\
|
||||
4 & $(4, (0{,}2), \text{SP})$ & $(4, -, \text{SR})$ & 36 & 81 & 81 & 36 & 36 & yes \\
|
||||
4 & $(4, -, \text{SR})$ & $(4, (0{,}2), \text{SP})$ & 81 & 54 & 81 & 54 & 54 & yes \\
|
||||
4 & $(3, (0{,}2), \text{SP})$ & $(4, (0{,}2), \text{SP})$ & 36 & 54 & 81 & 36 & 36 & yes \\
|
||||
4 & $(4, (0{,}2), \text{SP})$ & $(5, (0{,}2), \text{SP})$ & 36 & 36 & 81 & 12 & 12 & yes \\
|
||||
4 & $(4, (0{,}2), \text{SP})$ & $(6, (0{,}3), \text{SP})$ & 36 & 15 & 81 & 6 & 6 & yes \\
|
||||
4 & $(4, (0{,}2), \text{SP})$ & $(6, (0{,}2)(3{,}5), \text{SP})$ & 36 & 81 & 81 & 36 & 36 & yes \\
|
||||
\midrule
|
||||
5 & $(5, (0{,}2), \text{SP})$ & $(3, -, \text{SR})$ & 36 & 171 & 243 & 18 & 18 & yes \\
|
||||
5 & $(5, (0{,}2), \text{SP})$ & $(5, (0{,}2), \text{SP})$ & 36 & 90 & 243 & 36 & 36 & yes \\
|
||||
5 & $(5, (0{,}2), \text{SP})$ & $(5, (0{,}3), \text{SP})$ & 36 & 90 & 243 & 36 & 36 & yes \\
|
||||
5 & $(5, (0{,}3), \text{SP})$ & $(5, (0{,}3), \text{SP})$ & 36 & 90 & 243 & 36 & 36 & yes \\
|
||||
5 & $(5, (0{,}2), \text{SR})$ & $(5, (0{,}2), \text{SP})$ & 243 & 90 & 243 & 90 & 90 & yes \\
|
||||
\midrule
|
||||
6 & $(6, (0{,}3), \text{SP})$ & $(6, (0{,}3), \text{SP})$ & 36 & 90 & 729 & 36 & 36 & yes \\
|
||||
6 & $(6, (0{,}3), \text{SP})$ & $(6, (0{,}2)(3{,}5), \text{SP})$ & 36 & 456 & 729 & 36 & 36 & yes \\
|
||||
6 & $(6, (0{,}2)(3{,}5), \text{SP})$ & $(6, (0{,}2)(3{,}5), \text{SP})$ & 216 & 456 & 729 & 216 & 162 & yes \\
|
||||
6 & $(6, (0{,}3), \text{SP})$ & $(3, -, \text{SR})$ & 36 & 396 & 729 & 6 & 6 & yes \\
|
||||
6 & $(6, (0{,}2)(3{,}5), \text{SP})$ & $(3, -, \text{SR})$ & 216 & 396 & 729 & 108 & 108 & yes \\
|
||||
6 & $(6, (0{,}2)(3{,}5), \text{SP})$ & $(4, (0{,}2), \text{SP})$ & 216 & 342 & 729 & 108 & 90 & yes \\
|
||||
\bottomrule
|
||||
\end{tabular}
|
||||
\end{center}
|
||||
|
||||
\noindent
|
||||
\textbf{Result: 23 / 23 tested pairs are compatible.}
|
||||
|
||||
\section*{Observations}
|
||||
|
||||
\begin{obs}[Always compatible]
|
||||
\label{obs:always-compatible}
|
||||
Across all $23$ tested $(T_1, T_2)$ pairs --- spanning $k \in \{3, 4,
|
||||
5, 6\}$, both SR and SP models, and a representative spread of chord
|
||||
configurations on each side --- the intersection $S_1 \cap S_2$ is
|
||||
non-empty. No counterexample was found.
|
||||
\end{obs}
|
||||
|
||||
\begin{obs}[Containment is the typical outcome]
|
||||
\label{obs:containment}
|
||||
In several cases the smaller support is contained in the larger:
|
||||
\begin{itemize}
|
||||
\item $k = 4$, $T_1 = (4, (0{,}2), \text{SP})$ vs.\ $T_2 = (4,
|
||||
(0{,}2), \text{SP})$: $|S_1| = 36 \subseteq |S_2| = 54$,
|
||||
$|S_1 \cap S_2| = 36$.
|
||||
\item $k = 6$, $T_1 = (6, (0{,}2)(3{,}5), \text{SP})$ vs.\
|
||||
$T_2 = (6, (0{,}2)(3{,}5), \text{SP})$: $|S_1| = 216 \subseteq
|
||||
|S_2| = 456$, $|S_1 \cap S_2| = 216$.
|
||||
\end{itemize}
|
||||
This containment is not universal --- in
|
||||
$k=6$, $T_1 = (6, (0{,}3), \text{SP})$ vs.\ $T_2 = (3, -, \text{SR})$
|
||||
we have $|S_1| = 36$, $|S_2| = 396$, but $|S_1 \cap S_2| = 6$, so
|
||||
$S_1 \not\subseteq S_2$. Still non-empty.
|
||||
\end{obs}
|
||||
|
||||
\begin{obs}[Small intersections are rainbow-structured]
|
||||
\label{obs:rainbow}
|
||||
In the worst tested case --- $k=6$, $T_1=(6, (0{,}3), \text{SP})$ vs.\
|
||||
$T_2=(3, -, \text{SR})$, $|S_1 \cap S_2| = 6$ --- the six elements
|
||||
are precisely
|
||||
\[
|
||||
\{\,(a, b, c, b, c, a) : \{a,b,c\} = \{1,2,3\}\,\},
|
||||
\]
|
||||
the $3!$ ``rainbow''-style colorings. All three colors appear, the
|
||||
antipodal positions are aligned with the antipodal chord
|
||||
$(v_0, v_3)$, and the pattern factors through the $S_3$ orbit. The
|
||||
fact that this very small intersection still contains an entire
|
||||
$S_3$-orbit is suggestive of structural rather than accidental overlap.
|
||||
\end{obs}
|
||||
|
||||
\begin{obs}[Reflection sensitivity]
|
||||
\label{obs:reflection}
|
||||
Most pairs give the same intersection size in forward and reverse
|
||||
orientations, indicating the supports are reflection-closed in
|
||||
practice. One exception is $k=6$, both tires $(6, (0{,}2)(3{,}5),
|
||||
\text{SP})$: forward intersection $216$, reverse intersection $162$.
|
||||
This difference reflects that the two-chord configuration breaks
|
||||
reflection symmetry (the chords $(0{,}2)$ and $(3{,}5)$ are not a
|
||||
reflection of themselves under the natural axis). Either way, both
|
||||
orientations give non-empty intersection.
|
||||
\end{obs}
|
||||
|
||||
\section*{Putting steps 1 and 2 together}
|
||||
|
||||
\begin{itemize}
|
||||
\item \textbf{Step 1 (single tire under SR).} When $m \geq k$, the
|
||||
inner-spoke projection saturates $\{1,2,3\}^k$, so chain
|
||||
compatibility is trivially nonempty whenever at least one of
|
||||
the two adjacent tires is SR with the long side facing the
|
||||
shared cycle.
|
||||
\item \textbf{Step 1 with chords under SP.} Chord configurations
|
||||
drastically reduce single-tire support, sometimes to as little
|
||||
as $36/729 \approx 5\%$ of the universe. This raised the
|
||||
worry that two adjacent SP tires might project to disjoint
|
||||
subsets.
|
||||
\item \textbf{Step 2.} Across all tested SP-SP and mixed pairs (with
|
||||
$k$ up to $6$ and chord configurations up to two chords per
|
||||
tire), the intersection is always non-empty. Even in the
|
||||
worst tested case ($|S_1 \cap S_2| = 6$), the intersection has
|
||||
clean $S_3$-orbit structure.
|
||||
\end{itemize}
|
||||
|
||||
\noindent
|
||||
\textbf{Combined empirical conclusion:} for adjacent tires in the
|
||||
configurations we tested, the chain-pigeonhole step succeeds, even
|
||||
under the Steiner-poor model where chord constraints actively
|
||||
restrict the realisable supports. The supports do not become so
|
||||
small that they fail to intersect.
|
||||
|
||||
\section*{Caveats}
|
||||
|
||||
\begin{enumerate}
|
||||
\item \textbf{Tested cases are not a proof.} $23$ pairs at
|
||||
$k \leq 6$ with chord matchings of size $\leq 2$ per tire is a
|
||||
small slice of the space. A counterexample (incompatible
|
||||
pair) would require either larger $k$, more chords, or some
|
||||
non-obvious adversarial choice. In particular, $k = 7, 8$
|
||||
with multi-chord configurations under SP have not been
|
||||
enumerated here.
|
||||
\item \textbf{Modelling assumption.} Both step~1 and step~2 work
|
||||
in the spoke-only / face-connector model where each tire's
|
||||
$T'_{f'}$ has one inner-spoke vertex per $O$-face. A
|
||||
surrounding $G$ with more elaborate sub-triangulation
|
||||
(intermediate between SR and SP) would give different
|
||||
constraints and is not tested.
|
||||
\item \textbf{Multi-tire chains.} Step~2 is pairwise
|
||||
compatibility. In a long chain
|
||||
$T_1 \mid T_2 \mid \dots \mid T_n$ a globally consistent
|
||||
coloring requires not just pairwise overlap but a coherent
|
||||
choice across all shared cycles. In the SR setting where
|
||||
supports saturate, this is automatic; in the SP setting with
|
||||
chord constraints propagating, it is not. This is the
|
||||
natural step~3.
|
||||
\item \textbf{Pattern explanation.} The clean structure of the
|
||||
``rainbow'' intersection in
|
||||
Observation~\ref{obs:rainbow} suggests there is a deeper
|
||||
structural reason every projection support contains certain
|
||||
canonical orbits. Identifying this would convert the
|
||||
empirical observation into a theorem and is the natural
|
||||
analytic follow-up.
|
||||
\end{enumerate}
|
||||
|
||||
\end{document}
|
||||
Reference in New Issue
Block a user