coloring_nested_tire_graphs: write up closed-chain SR+PDS experiment and the outer-triangle absorption hypothesis
Note records the closed-chain experiment: forward-propagate state
through SR+PDS tire chains with degenerate-inner T_1 and outer-
triangle T_n (m_n=3). All 10 tested chains converge to the same
final state at L_n — exactly the 6 permutations of {1,2,3}.
Introduces the "outer triangle absorption" framing: distinguishes
H1 (chain-dependent: pigeonhole does real work to filter input to
T_n) vs H2 (T_n-only absorption: T_n's σ_U-projection is intrinsically
the 6 permutations regardless of input). Conjecture: H2 (testable by
single-tire computation).
If H2 holds, items 3-4 of the 4CT-via-tire-decomposition outline
become automatic from local data. If H1, the chain-pigeonhole does
structural work and the question is sharper.
Three-panel figure: (A) closed PDS chain (5,6,5,3) with concentric
levels and source apex; (B) outer-face dual constraint requiring
permutation-of-{1,2,3} on outer triangle; (C) state-size trajectory
showing absorption to 6 at the outer step.
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
This commit is contained in:
@@ -0,0 +1,220 @@
|
|||||||
|
"""Figures for the 'outer triangle absorption' note.
|
||||||
|
|
||||||
|
Three panels:
|
||||||
|
A. A closed PDS chain (concentric levels around source, ending at
|
||||||
|
outer triangle).
|
||||||
|
B. The outer-triangle constraint in G': dual vertex of degree 3
|
||||||
|
forces the 3 incident edges to have distinct colours.
|
||||||
|
C. The state-size trajectory across the chain showing the
|
||||||
|
'absorption' to size 6.
|
||||||
|
"""
|
||||||
|
import math
|
||||||
|
import os
|
||||||
|
import matplotlib.pyplot as plt
|
||||||
|
from matplotlib.patches import Polygon, FancyArrowPatch
|
||||||
|
import matplotlib.patches as patches
|
||||||
|
|
||||||
|
HERE = os.path.dirname(os.path.abspath(__file__))
|
||||||
|
|
||||||
|
|
||||||
|
def ring(n, r, phase=math.pi / 2):
|
||||||
|
return [(r * math.cos(phase + 2 * math.pi * i / n),
|
||||||
|
r * math.sin(phase + 2 * math.pi * i / n))
|
||||||
|
for i in range(n)]
|
||||||
|
|
||||||
|
|
||||||
|
# -----------------------------------------------------------------
|
||||||
|
# Panel A: the closed PDS chain (5, 6, 5, 3) — concentric layers
|
||||||
|
# -----------------------------------------------------------------
|
||||||
|
def panel_A(ax):
|
||||||
|
radii = [0.0, 0.9, 1.7, 2.5, 3.4]
|
||||||
|
sizes = [1, 5, 6, 5, 3] # L_0, L_1, L_2, L_3, L_4
|
||||||
|
rings = [None] + [ring(sizes[i], radii[i]) for i in range(1, 5)]
|
||||||
|
|
||||||
|
# Source vertex
|
||||||
|
ax.plot(0, 0, 'o', color='#333', markersize=10, zorder=5)
|
||||||
|
ax.annotate("$L_0$ (source)", (0, 0), xytext=(0.3, 0.15),
|
||||||
|
fontsize=9, color='#333')
|
||||||
|
|
||||||
|
colors = ['#1f77b4', '#2ca02c', '#d62728', '#9467bd']
|
||||||
|
labels = [r'$L_1$ ($|L_1|=5$)', r'$L_2$ ($|L_2|=6$)',
|
||||||
|
r'$L_3$ ($|L_3|=5$)', r'$L_4$ (outer triangle, $|L_4|=3$)']
|
||||||
|
|
||||||
|
# Draw the level cycles
|
||||||
|
for i, (pts, color, label) in enumerate(zip(rings[1:], colors, labels)):
|
||||||
|
for j in range(len(pts)):
|
||||||
|
x1, y1 = pts[j]
|
||||||
|
x2, y2 = pts[(j + 1) % len(pts)]
|
||||||
|
ax.plot([x1, x2], [y1, y2], color=color, linewidth=2.5, zorder=3)
|
||||||
|
for (x, y) in pts:
|
||||||
|
ax.plot(x, y, 'o', color=color, markersize=7, zorder=4)
|
||||||
|
ax.annotate(label,
|
||||||
|
xy=(0, radii[i + 1] + 0.05),
|
||||||
|
fontsize=9, color=color,
|
||||||
|
ha='center', va='bottom')
|
||||||
|
|
||||||
|
# Draw the annular triangulation between consecutive levels
|
||||||
|
# (simple even spacing — not geometrically faithful to a real PDS,
|
||||||
|
# just illustrative).
|
||||||
|
for i in range(4):
|
||||||
|
inner_pts = rings[i] if rings[i] else [(0, 0)] * sizes[i + 1]
|
||||||
|
# For L_0 the apex is at the origin — replicate per outer point
|
||||||
|
outer_pts = rings[i + 1]
|
||||||
|
m_in = len(inner_pts)
|
||||||
|
m_out = len(outer_pts)
|
||||||
|
if m_in == 1:
|
||||||
|
# All outer points connected to apex
|
||||||
|
for (x, y) in outer_pts:
|
||||||
|
ax.plot([0, x], [0, y], color='#aaa', linewidth=0.6, zorder=1)
|
||||||
|
else:
|
||||||
|
# Zig-zag triangulation: each outer to its "nearest" inner
|
||||||
|
# by angle. This is rough; just for illustration.
|
||||||
|
angles_in = [(math.atan2(y, x), j) for j, (x, y) in enumerate(inner_pts)]
|
||||||
|
for (xo, yo) in outer_pts:
|
||||||
|
ao = math.atan2(yo, xo)
|
||||||
|
# Find 2 nearest inner points by angle
|
||||||
|
diffs = sorted(((abs((a - ao + math.pi) % (2 * math.pi) - math.pi), j)
|
||||||
|
for a, j in angles_in))
|
||||||
|
for _, j in diffs[:2]:
|
||||||
|
xi, yi = inner_pts[j]
|
||||||
|
ax.plot([xo, xi], [yo, yi], color='#aaa', linewidth=0.6, zorder=1)
|
||||||
|
|
||||||
|
# Annotate tires (annular regions between consecutive levels)
|
||||||
|
tire_labels = [
|
||||||
|
("$T_1$\n(apex)", 0.45, 0),
|
||||||
|
("$T_2$", 1.3, 0),
|
||||||
|
("$T_3$", 2.1, 0),
|
||||||
|
("$T_4$ (outer)", 2.95, 0),
|
||||||
|
]
|
||||||
|
for lbl, x, y in tire_labels:
|
||||||
|
ax.text(x, y, lbl, fontsize=8, color='#555',
|
||||||
|
ha='center', va='center',
|
||||||
|
bbox=dict(boxstyle='round,pad=0.18', facecolor='white',
|
||||||
|
edgecolor='none', alpha=0.7))
|
||||||
|
|
||||||
|
ax.set_xlim(-3.8, 3.8)
|
||||||
|
ax.set_ylim(-3.8, 3.8)
|
||||||
|
ax.set_aspect('equal')
|
||||||
|
ax.axis('off')
|
||||||
|
ax.set_title(r"(A) Closed PDS chain: $L_0$ (source) $\to L_4$ (outer triangle)",
|
||||||
|
fontsize=10)
|
||||||
|
|
||||||
|
|
||||||
|
# -----------------------------------------------------------------
|
||||||
|
# Panel B: the outer-triangle constraint in G'
|
||||||
|
# -----------------------------------------------------------------
|
||||||
|
def panel_B(ax):
|
||||||
|
# Outer triangle vertices in G
|
||||||
|
pts = [(math.cos(math.pi/2 + 2*math.pi*i/3),
|
||||||
|
math.sin(math.pi/2 + 2*math.pi*i/3)) for i in range(3)]
|
||||||
|
# Outer face's dual vertex (outside the triangle)
|
||||||
|
outer_dual = (0, 1.9)
|
||||||
|
# Each outer triangle edge has a midpoint that connects to outer_dual
|
||||||
|
# in G'.
|
||||||
|
|
||||||
|
# Draw the outer triangle (in G)
|
||||||
|
for i in range(3):
|
||||||
|
x1, y1 = pts[i]
|
||||||
|
x2, y2 = pts[(i + 1) % 3]
|
||||||
|
ax.plot([x1, x2], [y1, y2], color='#9467bd', linewidth=2.5, zorder=3)
|
||||||
|
for (x, y) in pts:
|
||||||
|
ax.plot(x, y, 'o', color='#9467bd', markersize=9, zorder=4)
|
||||||
|
|
||||||
|
# Edge midpoints (these are 'duals' of the edges, in some sense)
|
||||||
|
mids = []
|
||||||
|
for i in range(3):
|
||||||
|
x1, y1 = pts[i]
|
||||||
|
x2, y2 = pts[(i + 1) % 3]
|
||||||
|
mids.append(((x1 + x2) / 2, (y1 + y2) / 2))
|
||||||
|
|
||||||
|
# Inside the triangle: the annular face dual of T_n on each edge
|
||||||
|
# (a single G'-vertex per outer edge, one of T_n's annular face duals).
|
||||||
|
inside_pts = [(0.5 * mx, 0.5 * my - 0.05) for (mx, my) in mids]
|
||||||
|
|
||||||
|
# Outer face dual vertex (above the triangle, on G' side)
|
||||||
|
ax.plot(outer_dual[0], outer_dual[1], 's', color='#d62728',
|
||||||
|
markersize=18, zorder=4)
|
||||||
|
ax.annotate("outer face\ndual vertex", outer_dual,
|
||||||
|
xytext=(outer_dual[0] - 1.7, outer_dual[1] + 0.1),
|
||||||
|
fontsize=9, color='#d62728',
|
||||||
|
arrowprops=dict(arrowstyle='->', color='#d62728', lw=1.0))
|
||||||
|
|
||||||
|
# Three G'-edges from outer face dual to inside (each crossing an outer-triangle edge)
|
||||||
|
g_prime_colors = ['#d62728', '#1f77b4', '#2ca02c'] # R, B, G — the three colors
|
||||||
|
for k, (mx, my) in enumerate(mids):
|
||||||
|
# Curve from outer_dual through this midpoint to inside_pts[k]
|
||||||
|
ix, iy = inside_pts[k]
|
||||||
|
ax.plot([outer_dual[0], mx], [outer_dual[1], my],
|
||||||
|
color=g_prime_colors[k], linewidth=2.2, zorder=2,
|
||||||
|
linestyle='--')
|
||||||
|
ax.plot([mx, ix], [my, iy],
|
||||||
|
color=g_prime_colors[k], linewidth=2.2, zorder=2,
|
||||||
|
linestyle='--')
|
||||||
|
ax.plot(ix, iy, 'o', color='#888', markersize=8, zorder=3)
|
||||||
|
|
||||||
|
# Annotate the inside vertices (T_n annular face duals)
|
||||||
|
ax.text(0, -0.55, r"$T_n$'s annular face duals", fontsize=8, color='#555',
|
||||||
|
ha='center')
|
||||||
|
|
||||||
|
# Annotate the constraint
|
||||||
|
ax.text(0, 2.6, "outer face dual has 3 incident\n"
|
||||||
|
"$G'$-edges → all 3 colours distinct",
|
||||||
|
fontsize=9, ha='center', va='bottom',
|
||||||
|
color='#d62728')
|
||||||
|
|
||||||
|
ax.set_xlim(-2.3, 2.3)
|
||||||
|
ax.set_ylim(-1.3, 3.1)
|
||||||
|
ax.set_aspect('equal')
|
||||||
|
ax.axis('off')
|
||||||
|
ax.set_title(r"(B) Outer-triangle dual constraint forces $\sigma|_{L_n}$ to be a permutation",
|
||||||
|
fontsize=10)
|
||||||
|
|
||||||
|
|
||||||
|
# -----------------------------------------------------------------
|
||||||
|
# Panel C: state-size trajectory
|
||||||
|
# -----------------------------------------------------------------
|
||||||
|
def panel_C(ax):
|
||||||
|
# Example trajectory from the experiment (7-tire chain)
|
||||||
|
chain_labels = [r"$L_1$", r"$L_2$", r"$L_3$", r"$L_4$",
|
||||||
|
r"$L_5$", r"$L_6$", r"$L_7$"]
|
||||||
|
traj = [63, 783, 9993, 14643, 1641, 60, 6]
|
||||||
|
xs = list(range(len(traj)))
|
||||||
|
ax.plot(xs, traj, 'o-', color='#1f3f70', linewidth=2, markersize=8)
|
||||||
|
# Annotate each value
|
||||||
|
for x, v in zip(xs, traj):
|
||||||
|
ax.annotate(str(v), (x, v),
|
||||||
|
textcoords="offset points", xytext=(0, 9),
|
||||||
|
ha='center', fontsize=8, color='#1f3f70')
|
||||||
|
ax.set_yscale('log')
|
||||||
|
ax.set_xticks(xs)
|
||||||
|
ax.set_xticklabels(chain_labels)
|
||||||
|
ax.set_xlabel("shared cycle (level)")
|
||||||
|
ax.set_ylabel("state size (log scale)")
|
||||||
|
ax.grid(True, alpha=0.3, axis='y')
|
||||||
|
ax.set_title(r"(C) State trajectory: chain (6,1)$|$(8,6)$|$(10,8)$|$(10,10)$|$(8,10)$|$(5,8)$|$(3,5)",
|
||||||
|
fontsize=10)
|
||||||
|
# Annotate the "absorption" at the last step
|
||||||
|
ax.annotate("absorption to\n6 permutations\nof $\\{1,2,3\\}$",
|
||||||
|
xy=(6, 6), xytext=(4.5, 30),
|
||||||
|
fontsize=9, color='#d62728',
|
||||||
|
arrowprops=dict(arrowstyle='->', color='#d62728', lw=1.2))
|
||||||
|
|
||||||
|
|
||||||
|
def main():
|
||||||
|
fig = plt.figure(figsize=(15.5, 5.5))
|
||||||
|
gs = fig.add_gridspec(1, 3, width_ratios=[1.0, 1.0, 1.2])
|
||||||
|
ax_A = fig.add_subplot(gs[0, 0])
|
||||||
|
ax_B = fig.add_subplot(gs[0, 1])
|
||||||
|
ax_C = fig.add_subplot(gs[0, 2])
|
||||||
|
panel_A(ax_A)
|
||||||
|
panel_B(ax_B)
|
||||||
|
panel_C(ax_C)
|
||||||
|
plt.tight_layout()
|
||||||
|
out = os.path.join(HERE, 'fig_outer_triangle_absorption.png')
|
||||||
|
plt.savefig(out, dpi=160, bbox_inches='tight')
|
||||||
|
plt.close()
|
||||||
|
print(f"wrote {out}")
|
||||||
|
|
||||||
|
|
||||||
|
if __name__ == '__main__':
|
||||||
|
main()
|
||||||
Binary file not shown.
|
After Width: | Height: | Size: 204 KiB |
@@ -0,0 +1,6 @@
|
|||||||
|
\relax
|
||||||
|
\@writefile{lof}{\contentsline {figure}{\numberline {1}{\ignorespaces (A) A representative closed PDS chain on a triangulated disk: source $L_0$, level cycles $L_1, L_2, L_3, L_4$ with sizes $5, 6, 5, 3$. Tires $T_1, T_2, T_3, T_4$ are the annular regions between consecutive levels. (B) The outer triangle's contribution in $G'$: the outer face of $G$ becomes a single $G'$-vertex of degree $3$. Proper edge $3$-colouring requires its three incident $G'$-edges (the duals of the three outer-triangle edges) to be distinct. So $\sigma |_{L_n}$ must be a permutation of $\{1,2,3\}$. (C) State trajectory for the chain $(6, 1) | (8, 6) | (10, 8) | (10, 10) | (8, 10) | (5, 8) | (3, 5)$: state grows where cycles are widest and \emph {collapses to exactly $6$ at the outer triangle}.\relax }}{2}{}\protected@file@percent }
|
||||||
|
\providecommand*\caption@xref[2]{\@setref\relax\@undefined{#1}}
|
||||||
|
\newlabel{fig:absorption}{{1}{2}}
|
||||||
|
\newlabel{conj:absorption-local}{{}{3}}
|
||||||
|
\gdef \@abspage@last{4}
|
||||||
@@ -0,0 +1,313 @@
|
|||||||
|
This is pdfTeX, Version 3.141592653-2.6-1.40.24 (TeX Live 2022) (preloaded format=pdflatex 2022.10.5) 26 MAY 2026 12:31
|
||||||
|
entering extended mode
|
||||||
|
restricted \write18 enabled.
|
||||||
|
%&-line parsing enabled.
|
||||||
|
**outer_triangle_absorption.tex
|
||||||
|
(./outer_triangle_absorption.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/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=\dimen158
|
||||||
|
\captionmargin=\dimen159
|
||||||
|
\caption@leftmargin=\dimen160
|
||||||
|
\caption@rightmargin=\dimen161
|
||||||
|
\caption@width=\dimen162
|
||||||
|
\caption@indent=\dimen163
|
||||||
|
\caption@parindent=\dimen164
|
||||||
|
\caption@hangindent=\dimen165
|
||||||
|
Package caption Info: Standard document class detected.
|
||||||
|
)
|
||||||
|
\c@caption@flags=\count274
|
||||||
|
\c@continuedfloat=\count275
|
||||||
|
)
|
||||||
|
(/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=\count276
|
||||||
|
\l__pdf_internal_box=\box52
|
||||||
|
)
|
||||||
|
(./outer_triangle_absorption.aux)
|
||||||
|
\openout1 = `outer_triangle_absorption.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=\count277
|
||||||
|
\scratchdimen=\dimen166
|
||||||
|
\scratchbox=\box53
|
||||||
|
\nofMPsegments=\count278
|
||||||
|
\nofMParguments=\count279
|
||||||
|
\everyMPshowfont=\toks29
|
||||||
|
\MPscratchCnt=\count280
|
||||||
|
\MPscratchDim=\dimen167
|
||||||
|
\MPnumerator=\count281
|
||||||
|
\makeMPintoPDFobject=\count282
|
||||||
|
\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 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 (43.46935pt too wide) in paragraph at lines 38--41
|
||||||
|
[]\OT1/cmr/m/n/10.95 Step 3 (chain-wide con-sis-tency for open chains): held in
|
||||||
|
ev-ery tested case in \OT1/cmtt/m/n/10.95 sr[]chain[]consistency.py\OT1/cmr/m/
|
||||||
|
n/10.95 ,
|
||||||
|
[]
|
||||||
|
|
||||||
|
<fig_outer_triangle_absorption.png, id=1, 1112.958pt x 388.45125pt>
|
||||||
|
File: fig_outer_triangle_absorption.png Graphic file (type png)
|
||||||
|
<use fig_outer_triangle_absorption.png>
|
||||||
|
Package pdftex.def Info: fig_outer_triangle_absorption.png used on input line
|
||||||
|
71.
|
||||||
|
(pdftex.def) Requested size: 469.75502pt x 163.95451pt.
|
||||||
|
|
||||||
|
LaTeX Warning: `h' float specifier changed to `ht'.
|
||||||
|
|
||||||
|
[1
|
||||||
|
|
||||||
|
{/usr/local/texlive/2022/texmf-var/fonts/map/pdftex/updmap/pdftex.map}]
|
||||||
|
[2 <./fig_outer_triangle_absorption.png>] [3] [4]
|
||||||
|
(./outer_triangle_absorption.aux) )
|
||||||
|
Here is how much of TeX's memory you used:
|
||||||
|
4510 strings out of 478268
|
||||||
|
73204 string characters out of 5846347
|
||||||
|
370630 words of memory out of 5000000
|
||||||
|
22693 multiletter control sequences out of 15000+600000
|
||||||
|
479218 words of font info for 67 fonts, out of 8000000 for 9000
|
||||||
|
1141 hyphenation exceptions out of 8191
|
||||||
|
55i,7n,63p,874b,352s stack positions out of 10000i,1000n,20000p,200000b,200000s
|
||||||
|
{/usr/local/texlive/2022/texmf-dist/fonts/en
|
||||||
|
c/dvips/cm-super/cm-super-ts1.enc}</usr/local/texlive/2022/texmf-dist/fonts/typ
|
||||||
|
e1/public/amsfonts/cm/cmbx10.pfb></usr/local/texlive/2022/texmf-dist/fonts/type
|
||||||
|
1/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/
|
||||||
|
public/amsfonts/cm/cmmi6.pfb></usr/local/texlive/2022/texmf-dist/fonts/type1/pu
|
||||||
|
blic/amsfonts/cm/cmmi8.pfb></usr/local/texlive/2022/texmf-dist/fonts/type1/publ
|
||||||
|
ic/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/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/cmsy6.pfb></usr/local/texlive/2022/texmf-dist/fonts/type1/public/amsfont
|
||||||
|
s/cm/cmsy8.pfb></usr/local/texlive/2022/texmf-dist/fonts/type1/public/amsfonts/
|
||||||
|
cm/cmti10.pfb></usr/local/texlive/2022/texmf-dist/fonts/type1/public/amsfonts/c
|
||||||
|
m/cmtt10.pfb></usr/local/texlive/2022/texmf-dist/fonts/type1/public/cm-super/sf
|
||||||
|
rm1095.pfb>
|
||||||
|
Output written on outer_triangle_absorption.pdf (4 pages, 344652 bytes).
|
||||||
|
PDF statistics:
|
||||||
|
91 PDF objects out of 1000 (max. 8388607)
|
||||||
|
54 compressed objects within 1 object stream
|
||||||
|
0 named destinations out of 1000 (max. 500000)
|
||||||
|
6 words of extra memory for PDF output out of 10000 (max. 10000000)
|
||||||
|
|
||||||
Binary file not shown.
@@ -0,0 +1,243 @@
|
|||||||
|
\documentclass[11pt]{article}
|
||||||
|
\usepackage{amsmath,amssymb,amsthm}
|
||||||
|
\usepackage{graphicx}
|
||||||
|
\usepackage{geometry}
|
||||||
|
\usepackage{caption}
|
||||||
|
\geometry{margin=1in}
|
||||||
|
|
||||||
|
\title{Closed PDS chains under SR:\\
|
||||||
|
outer-triangle absorption and the chain-pigeonhole conclusion}
|
||||||
|
\author{}
|
||||||
|
\date{}
|
||||||
|
|
||||||
|
\newtheorem*{obs}{Observation}
|
||||||
|
\newtheorem*{conj}{Conjecture}
|
||||||
|
|
||||||
|
\begin{document}
|
||||||
|
\maketitle
|
||||||
|
|
||||||
|
\section*{What this note records}
|
||||||
|
|
||||||
|
This is the experimental record of the SR + PDS closed-chain
|
||||||
|
experiment that followed the realisation (from
|
||||||
|
\texttt{tire\_fiber\_chunked.py} and \texttt{sr\_chain\_consistency.py})
|
||||||
|
that the Steiner-poor (SP) model with chord-on-$O$ constraints is
|
||||||
|
not the right setting for PDS-decomposed maximal planar graphs. In
|
||||||
|
the correct SR setting, each $\gamma$-edge has its own inner-spoke
|
||||||
|
pendant, and the chord-induced face structure of $O$ does not enter
|
||||||
|
$T'_{f'}$ directly. Under this regime:
|
||||||
|
|
||||||
|
\begin{itemize}
|
||||||
|
\item Step 1 (saturation) gives $\pi_D$ on the long-side saturates
|
||||||
|
$\{1,2,3\}^k$ when $m \geq k$ (proven empirically up to
|
||||||
|
$k = 12$ in \texttt{tire\_fiber\_data.tex}; conjectured in
|
||||||
|
general).
|
||||||
|
\item Step 2 (pairwise chain compatibility) is automatic from
|
||||||
|
step 1 whenever PDS grows outward ($m_1 \geq |\gamma|$ in
|
||||||
|
each adjacent tire's outer-side).
|
||||||
|
\item Step 3 (chain-wide consistency for open chains): held in
|
||||||
|
every tested case in \texttt{sr\_chain\_consistency.py},
|
||||||
|
with forward state size growing monotonically.
|
||||||
|
\end{itemize}
|
||||||
|
|
||||||
|
The remaining concern was the \textbf{boundary} of the chain. A PDS
|
||||||
|
on a planar triangulated disk has two ends:
|
||||||
|
|
||||||
|
\begin{itemize}
|
||||||
|
\item Innermost: $L_0$ a single source vertex (degenerate $B_{\text{in}}$
|
||||||
|
for $T_1$). No constraint on $\sigma$ at $L_0$.
|
||||||
|
\item Outermost: $L_n$ the boundary of the outer face of $G$. In
|
||||||
|
the standard reduction (Birkhoff: minimal counterexample is
|
||||||
|
internally $6$-connected, hence the outer face is a triangle),
|
||||||
|
$L_n$ is a $3$-cycle. Its dual constraint forces $\sigma$ at
|
||||||
|
$L_n$ to be a permutation of $\{1,2,3\}$.
|
||||||
|
\end{itemize}
|
||||||
|
|
||||||
|
\section*{The closed-chain experiment}
|
||||||
|
|
||||||
|
Script: \texttt{experiments/sr\_closed\_chain.py}. Output:
|
||||||
|
\texttt{experiments/sr\_closed\_chain\_data.txt}.
|
||||||
|
|
||||||
|
We forward-propagate state through a tire chain $T_1 | T_2 | \dots |
|
||||||
|
T_n$ with $T_1$'s $B_{\text{in}}$ degenerate (the source vertex) and
|
||||||
|
$T_n$'s $B_{\text{out}}$ being the outer triangle of length $3$.
|
||||||
|
Each tire is SR (no chord constraints) and the chain shape (the
|
||||||
|
sequence of level-cycle sizes) is varied. At each step, the state
|
||||||
|
is the set of $\sigma$-patterns realisable on the current shared
|
||||||
|
cycle.
|
||||||
|
|
||||||
|
\begin{figure}[h]
|
||||||
|
\centering
|
||||||
|
\includegraphics[width=\textwidth]{fig_outer_triangle_absorption.png}
|
||||||
|
\caption{(A) A representative closed PDS chain on a triangulated
|
||||||
|
disk: source $L_0$, level cycles $L_1, L_2, L_3, L_4$ with sizes
|
||||||
|
$5, 6, 5, 3$. Tires $T_1, T_2, T_3, T_4$ are the annular regions
|
||||||
|
between consecutive levels. (B) The outer triangle's contribution
|
||||||
|
in $G'$: the outer face of $G$ becomes a single $G'$-vertex of
|
||||||
|
degree $3$. Proper edge $3$-colouring requires its three incident
|
||||||
|
$G'$-edges (the duals of the three outer-triangle edges) to be
|
||||||
|
distinct. So $\sigma|_{L_n}$ must be a permutation of $\{1,2,3\}$.
|
||||||
|
(C) State trajectory for the chain
|
||||||
|
$(6, 1) | (8, 6) | (10, 8) | (10, 10) | (8, 10) | (5, 8) | (3, 5)$:
|
||||||
|
state grows where cycles are widest and \emph{collapses to exactly
|
||||||
|
$6$ at the outer triangle}.}
|
||||||
|
\label{fig:absorption}
|
||||||
|
\end{figure}
|
||||||
|
|
||||||
|
\section*{Results}
|
||||||
|
|
||||||
|
Across all $10$ tested chains (source degrees $5, 6, 7$; chain
|
||||||
|
lengths $4$ to $7$; various growth/shrink shapes; outer triangle
|
||||||
|
fixed at size $3$):
|
||||||
|
|
||||||
|
\begin{itemize}
|
||||||
|
\item Every chain is consistent (state never empties).
|
||||||
|
\item In every chain, the final state at $L_n$ has size
|
||||||
|
\textbf{exactly $6$}, with all $6$ elements being the
|
||||||
|
permutations of $\{1, 2, 3\}$ on the $3$ outer-triangle edges.
|
||||||
|
\item The outer-face dual-vertex constraint (degree $3$, distinct
|
||||||
|
colours) is satisfied automatically.
|
||||||
|
\end{itemize}
|
||||||
|
|
||||||
|
Sample trajectories:
|
||||||
|
|
||||||
|
\begin{center}
|
||||||
|
\small
|
||||||
|
\begin{tabular}{l l}
|
||||||
|
chain & state sizes \\ \hline
|
||||||
|
$(5,1) | (6,5) | (5,6) | (3,5)$ & $30 \to 132 \to 60 \to 6$ \\
|
||||||
|
$(5,1) | (7,5) | (5,7) | (3,5)$ & $30 \to 312 \to 60 \to 6$ \\
|
||||||
|
$(5,1) | (8,5) | (8,8) | (5,8) | (3,5)$ & $30 \to 708 \to 1476 \to 60 \to 6$ \\
|
||||||
|
$(6,1) | (9,6) | (8,9) | (5,8) | (3,5)$ & $63 \to 1836 \to 1623 \to 60 \to 6$ \\
|
||||||
|
$(6,1) | (8,6) | (10,8) | (10,10) | (8,10) | (5,8) | (3,5)$ & $63 \to 783 \to 9993 \to 14643 \to 1641 \to 60 \to 6$ \\
|
||||||
|
$(7,1) | (9,7) | (7,9) | (3,7)$ & $126 \to 2130 \to 546 \to 6$ \\
|
||||||
|
\end{tabular}
|
||||||
|
\end{center}
|
||||||
|
|
||||||
|
\section*{What ``outer triangle absorption'' means}
|
||||||
|
|
||||||
|
The empirical pattern is striking: the final state is always exactly
|
||||||
|
$6$, and those $6$ are exactly the permutations of $\{1,2,3\}$. But
|
||||||
|
this could be one of two distinct things:
|
||||||
|
|
||||||
|
\begin{description}
|
||||||
|
\item[(H1) Chain-dependent absorption.]
|
||||||
|
The state \emph{before} $T_n$ depends on the chain, but every
|
||||||
|
such state happens to filter through $T_n$ to the same
|
||||||
|
$6$-element set. In this case the chain-pigeonhole step is
|
||||||
|
non-trivial: it succeeds in feeding $T_n$ with the right
|
||||||
|
kind of input.
|
||||||
|
\item[(H2) $T_n$-only absorption.]
|
||||||
|
$T_n$ (the outer tire with $m_n = 3$) has the property that
|
||||||
|
its $\sigma_U$-support is intrinsically the $6$ permutations
|
||||||
|
of $\{1, 2, 3\}$, \emph{regardless} of what state is fed to
|
||||||
|
its $\sigma_D$-side. In this case the absorption is a local
|
||||||
|
property of $T_n$ alone, and the chain-consistency before
|
||||||
|
$T_n$ contributes nothing.
|
||||||
|
\end{description}
|
||||||
|
|
||||||
|
These two are testable empirically: under (H1), feeding $T_n$ an
|
||||||
|
unrelated or random $\sigma_D$ state should not always give $6$
|
||||||
|
permutations; under (H2), the output is always $6$ permutations
|
||||||
|
regardless of input.
|
||||||
|
|
||||||
|
\begin{conj}[$T_n$-absorption is local]
|
||||||
|
\label{conj:absorption-local}
|
||||||
|
For any tire $T_n$ with $m_n = 3$ and $k_n \geq 3$, the $\sigma_U$
|
||||||
|
projection of $T_n$'s joint support equals exactly the $S_3$-orbit
|
||||||
|
of $(1, 2, 3)$ on the $3$ outer-spoke positions. Equivalently:
|
||||||
|
every proper edge $3$-colouring of $C_{n_n}$, when restricted to the
|
||||||
|
$3$ U-positions, gives a permutation of $\{1, 2, 3\}$.
|
||||||
|
\end{conj}
|
||||||
|
|
||||||
|
If the conjecture holds, the closed-chain pattern is partly
|
||||||
|
\emph{trivial}: the outer tire takes care of itself. The non-trivial
|
||||||
|
content of the chain consistency lives in (a) chain non-emptiness
|
||||||
|
(state never collapses) and (b) the final state's intersection with
|
||||||
|
the $6$-element target being non-empty.
|
||||||
|
|
||||||
|
Under (H1), in contrast, the chain-pigeonhole is doing real work,
|
||||||
|
threading the input to $T_n$ through a specific structure that the
|
||||||
|
chain enforces.
|
||||||
|
|
||||||
|
\section*{Why this matters for 4CT}
|
||||||
|
|
||||||
|
A proof of 4CT via this approach would have four ingredients:
|
||||||
|
|
||||||
|
\begin{enumerate}
|
||||||
|
\item \textbf{PDS exists}: Bauerfeld's PDS gives a tire
|
||||||
|
decomposition of every maximal planar $G$ from a level
|
||||||
|
source.
|
||||||
|
\item \textbf{SR is correct}: for $G$ a triangulation with
|
||||||
|
sufficient connectivity (Birkhoff: internally $6$-connected),
|
||||||
|
the SR model accurately describes $T'_{f'}$ at each tire.
|
||||||
|
(This is what makes the chord-on-$O$ artifacts go away.)
|
||||||
|
\item \textbf{Open-chain compatibility}: at every shared $\gamma$,
|
||||||
|
$\pi_D$ from the outer tire saturates $\{1,2,3\}^\gamma$, so
|
||||||
|
every $\sigma$ from the inner tire admits a continuation.
|
||||||
|
(Step-1 saturation + outward PDS.)
|
||||||
|
\item \textbf{Closed-chain compatibility}: the forward-propagated
|
||||||
|
state at the outer triangle contains a permutation of
|
||||||
|
$\{1,2,3\}$. Empirically yes, in all tested cases.
|
||||||
|
\end{enumerate}
|
||||||
|
|
||||||
|
Items 1 and 2 are structural and depend on the PDS/Birkhoff theory.
|
||||||
|
Item 3 is step-1 saturation. Item 4 is what this note's experiment
|
||||||
|
addresses, with the data above.
|
||||||
|
|
||||||
|
If Conjecture~\ref{conj:absorption-local} is true, item 4 is automatic
|
||||||
|
from local structure of $T_n$. Combined with item 3 (chain
|
||||||
|
non-emptiness), the whole pigeonhole story closes for any PDS chain
|
||||||
|
ending at an outer triangle.
|
||||||
|
|
||||||
|
If Conjecture~\ref{conj:absorption-local} is false, item 4 still
|
||||||
|
holds empirically but for a genuinely chain-dependent reason: the
|
||||||
|
chain-pigeonhole does real structural work. Either resolution would
|
||||||
|
be informative.
|
||||||
|
|
||||||
|
\section*{What's next}
|
||||||
|
|
||||||
|
\begin{enumerate}
|
||||||
|
\item \textbf{Test the absorption conjecture directly.} Take a
|
||||||
|
tire $T_n = (m=3, k)$ for varying $k$ and check whether its
|
||||||
|
$\sigma_U$-projection equals exactly the $6$ permutations of
|
||||||
|
$\{1,2,3\}$. This is a single-tire computation, fast.
|
||||||
|
\item \textbf{Exhaustive chain enumeration.} The $10$ tested
|
||||||
|
chains are representative but not exhaustive. Generate all
|
||||||
|
valid PDS-shape chains of bounded length (e.g., $\leq 8$
|
||||||
|
tires, $\leq 12$ max cycle size) and run forward propagation
|
||||||
|
on each. Any chain where state collapses to $\emptyset$
|
||||||
|
before $T_n$, or where the final $L_n$ state misses some
|
||||||
|
permutation, would be a real counterexample.
|
||||||
|
\item \textbf{Connect to PDS in actual $G$.} Verify that for an
|
||||||
|
internally $6$-connected $G$, every PDS from any source gives
|
||||||
|
a chain with the right SR structure (item 2). This is the
|
||||||
|
outstanding gap to make the analysis genuinely a 4CT
|
||||||
|
argument.
|
||||||
|
\item \textbf{Symbolic proof of absorption.} If
|
||||||
|
Conjecture~\ref{conj:absorption-local} holds, prove it by
|
||||||
|
direct cycle-coloring analysis: any proper edge $3$-colouring
|
||||||
|
of $C_{m+k}$ (with $m=3$) restricted to $3$ spread positions
|
||||||
|
is a permutation. This should be elementary.
|
||||||
|
\end{enumerate}
|
||||||
|
|
||||||
|
\section*{Caveats}
|
||||||
|
|
||||||
|
\begin{itemize}
|
||||||
|
\item ``Outer triangle absorption'' is a name I have given to the
|
||||||
|
observed phenomenon; it is not yet a theorem.
|
||||||
|
\item The $10$ tested chains are hand-picked. An exhaustive
|
||||||
|
enumeration is warranted before claiming strong evidence.
|
||||||
|
\item The SR-is-correct claim (item 2 above) is the load-bearing
|
||||||
|
modelling assumption. It is not yet verified in the
|
||||||
|
literature in the form I am stating; tying this back to
|
||||||
|
actual PDS+G structure is the most important remaining gap.
|
||||||
|
\item The reflection-handling in
|
||||||
|
\texttt{sr\_closed\_chain.py} picks the orientation that
|
||||||
|
maximises forward state at each step. In a real $G$ with a
|
||||||
|
fixed embedding, the orientations are determined, and the
|
||||||
|
worst-of-orientations might differ from the best-of. This
|
||||||
|
is unlikely to matter under saturation but is worth checking.
|
||||||
|
\end{itemize}
|
||||||
|
|
||||||
|
\end{document}
|
||||||
Reference in New Issue
Block a user