diff --git a/papers/coloring_nested_tire_graphs/experiments/level_d_pinch_attempt.py b/papers/coloring_nested_tire_graphs/experiments/level_d_pinch_attempt.py new file mode 100644 index 0000000..475a634 --- /dev/null +++ b/papers/coloring_nested_tire_graphs/experiments/level_d_pinch_attempt.py @@ -0,0 +1,93 @@ +"""Attempt to construct a level-d pinch in a maximal planar graph. + +Construction: + v_0 at center, pentagon a_1, ..., a_5 around v_0. + Outside the pentagon, vertex v adjacent to a_1, a_3 (non-adjacent + pentagon vertices). The "lobe" between v and the pentagon edge + a_1-a_2-a_3 contains a_2 and is triangulated by adding vertex x + in the lobe, x adjacent to a_1, a_2, a_3, v. On the OTHER side of + v (outside the V formed by edges v-a_1, v-a_3), we triangulate by + adding w_1 adjacent to a_1, a_3, a_4, a_5, v. + +Vertex labels: + 0 = v_0 (source) + 1..5 = a_1..a_5 (pentagon, level 1) + 6 = v (level 2) + 7 = x (level 2) + 8 = w_1 (level 2) + +If this is planar and is a maximal planar graph, then v has level-1 +neighbours a_1=1, a_3=3 in DIFFERENT arcs of v's rotation, separated +by level-2 neighbours x=7 on the lobe side and w_1=8 on the outer side. +This would be a level-d (d=2) pinch. +""" +import os +import sys +from collections import defaultdict +from sage.all import Graph + +EDGES = [ + (0, 1), (0, 2), (0, 3), (0, 4), (0, 5), + (1, 2), (2, 3), (3, 4), (4, 5), (5, 1), + (6, 1), (6, 3), (6, 7), (6, 8), + (7, 1), (7, 2), (7, 3), + (8, 1), (8, 3), (8, 5), (8, 4), +] + + +def main(): + G = Graph(EDGES) + print(f"n = {G.order()}, m = {G.size()}") + print(f"Max planar would need m = 3n - 6 = {3 * G.order() - 6}") + print(f"Planar: {G.is_planar()}") + if not G.is_planar(): + print("Not planar -- construction failed.") + return + + G.is_planar(set_embedding=True) + emb = G.get_embedding() + print(f"Rotation around v=6: {emb[6]}") + + dist = G.shortest_path_lengths(0) + print(f"BFS distances from source v_0=0: {dict(dist)}") + print() + + # Pretty-print rotation of vertex 6 with levels + rot_6 = emb[6] + print(f"v=6's rotation in Pi_G: {rot_6}") + print(f" levels: {[dist[u] for u in rot_6]}") + + # Check faces around vertex 6 + faces = G.faces(embedding=emb) + faces_at_6 = [] + for f in faces: + verts = [e[0] for e in f] + if 6 in verts: + d = min(dist[v] for v in verts) + faces_at_6.append((verts, d)) + print(f"\nFaces at vertex 6:") + for f, d in faces_at_6: + print(f" {f} depth={d}") + + # Check the depth-(d-1=1)? No, we want vertex 6 at level 2. + # We're checking: vertex 6 (level 2) with level-1 neighbors {1, 3}. + # Are they in the same arc of vertex 6's rotation? + level1_nbrs = [u for u in rot_6 if dist[u] == 1] + print(f"\nLevel-1 neighbours of v=6: {level1_nbrs}") + if len(level1_nbrs) > 1: + # Find arcs + positions = [i for i, u in enumerate(rot_6) if dist[u] == 1] + print(f" positions in rotation: {positions}") + # Are they contiguous? Count runs + in_l1 = [dist[u] == 1 for u in rot_6] + n_runs = sum(1 for i in range(len(in_l1)) + if in_l1[i] and not in_l1[(i - 1) % len(in_l1)]) + print(f" number of arcs of level-1 neighbours: {n_runs}") + if n_runs > 1: + print(" ==> LEVEL-d PINCH! Counterexample constructed.") + else: + print(" ==> single contiguous arc. No pinch.") + + +if __name__ == '__main__': + main() diff --git a/papers/coloring_nested_tire_graphs/paper.aux b/papers/coloring_nested_tire_graphs/paper.aux index 86a1424..7f0b0f7 100644 --- a/papers/coloring_nested_tire_graphs/paper.aux +++ b/papers/coloring_nested_tire_graphs/paper.aux @@ -4,19 +4,20 @@ \@writefile{lof}{\contentsline {figure}{\numberline {1}{\ignorespaces Dual depth in a stacked-ring triangulation $G$ with level source $S = \{0\}$. Each $G$ vertex is labelled by its level $\ell $. Each bounded face carries a dual vertex (square, joined by dashed dual edges) coloured by its dual depth $\delta (d_f) = \qopname \relax m{min}_{v \in V(f)} \ell (v)$: the central fan has depth $0$, the inner annulus depth $1$, and the outer annulus depth $2$. The outer face (the level-$3$ triangle) is excluded from the inner dual and carries no dual vertex.}}{2}{}\protected@file@percent } \newlabel{fig:dual-depth}{{1}{2}} \newlabel{def:tire-graph}{{1.5}{2}} -\citation{bauerfeld-pds} \@writefile{lof}{\contentsline {figure}{\numberline {2}{\ignorespaces A tire graph with non-degenerate boundaries: outer boundary $B_{\mathrm {out}}$ a $6$-cycle on vertices $0,\dots ,5$ (blue), inner boundary $B_{\mathrm {in}}$ a $4$-cycle on vertices $6,\dots ,9$ (red), inner outerplanar graph $O = B_{\mathrm {in}} \cup \{7\text {--}9\}$ (with one chord, orange), and $E_{\mathrm {ann}}$ (grey) tiling the annulus between $B_{\mathrm {out}}$ and $B_{\mathrm {in}}$ by ten triangular faces.}}{3}{}\protected@file@percent } \newlabel{fig:tire-example}{{2}{3}} \newlabel{rem:tire-counts}{{1.6}{3}} -\newlabel{lem:tire-component}{{1.7}{3}} +\newlabel{prop:no-level-d-pinch}{{1.7}{3}} \citation{bauerfeld-pds} +\newlabel{lem:tire-component}{{1.8}{4}} +\citation{bauerfeld-pds} +\newlabel{rem:tire-component-degenerate}{{1.9}{5}} \bibcite{bauerfeld-pds}{1} \newlabel{tocindent-1}{0pt} \newlabel{tocindent0}{12.7778pt} \newlabel{tocindent1}{17.77782pt} \newlabel{tocindent2}{0pt} \newlabel{tocindent3}{0pt} -\newlabel{rem:tire-component-degenerate}{{1.8}{5}} -\newlabel{rem:tire-no-extra-hypotheses}{{1.9}{5}} -\@writefile{toc}{\contentsline {section}{\tocsection {}{}{References}}{5}{}\protected@file@percent } -\gdef \@abspage@last{5} +\newlabel{rem:tire-no-extra-hypotheses}{{1.10}{6}} +\@writefile{toc}{\contentsline {section}{\tocsection {}{}{References}}{6}{}\protected@file@percent } +\gdef \@abspage@last{6} diff --git a/papers/coloring_nested_tire_graphs/paper.log b/papers/coloring_nested_tire_graphs/paper.log index 4e088e5..699a6c6 100644 --- a/papers/coloring_nested_tire_graphs/paper.log +++ b/papers/coloring_nested_tire_graphs/paper.log @@ -1,4 +1,4 @@ -This is pdfTeX, Version 3.141592653-2.6-1.40.24 (TeX Live 2022) (preloaded format=pdflatex 2022.10.5) 25 MAY 2026 16:37 +This is pdfTeX, Version 3.141592653-2.6-1.40.24 (TeX Live 2022) (preloaded format=pdflatex 2022.10.5) 25 MAY 2026 17:03 entering extended mode restricted \write18 enabled. %&-line parsing enabled. @@ -207,36 +207,39 @@ File: fig_tire_example.png Graphic file (type png) Package pdftex.def Info: fig_tire_example.png used on input line 160. (pdftex.def) Requested size: 280.79956pt x 188.56097pt. - [3 <./fig_tire_example.png>] [4] [5] (./paper.aux) ) + [3 <./fig_tire_example.png>] [4] +Underfull \vbox (badness 1270) has occurred while \output is active [] + + [5] +[6] (./paper.aux) ) Here is how much of TeX's memory you used: - 3007 strings out of 478268 - 42015 string characters out of 5846347 - 344166 words of memory out of 5000000 - 21054 multiletter control sequences out of 15000+600000 + 3008 strings out of 478268 + 42038 string characters out of 5846347 + 345177 words of memory out of 5000000 + 21055 multiletter control sequences out of 15000+600000 475666 words of font info for 53 fonts, out of 8000000 for 9000 1302 hyphenation exceptions out of 8191 69i,8n,76p,625b,289s stack positions out of 10000i,1000n,20000p,200000b,200000s - -Output written on paper.pdf (5 pages, 483570 bytes). + + +Output written on paper.pdf (6 pages, 492830 bytes). PDF statistics: - 105 PDF objects out of 1000 (max. 8388607) - 61 compressed objects within 1 object stream + 108 PDF objects out of 1000 (max. 8388607) + 63 compressed objects within 1 object stream 0 named destinations out of 1000 (max. 500000) 11 words of extra memory for PDF output out of 10000 (max. 10000000) diff --git a/papers/coloring_nested_tire_graphs/paper.pdf b/papers/coloring_nested_tire_graphs/paper.pdf index a4e2680..f20f5c6 100644 Binary files a/papers/coloring_nested_tire_graphs/paper.pdf and b/papers/coloring_nested_tire_graphs/paper.pdf differ diff --git a/papers/coloring_nested_tire_graphs/paper.tex b/papers/coloring_nested_tire_graphs/paper.tex index 7846514..4ad81c7 100644 --- a/papers/coloring_nested_tire_graphs/paper.tex +++ b/papers/coloring_nested_tire_graphs/paper.tex @@ -178,6 +178,68 @@ boundary is degenerate (so $\min(m, k) = 1$), there are $m + k - 1$ triangular faces and $|E_{\mathrm{ann}}| = m + k - 1$. \end{remark} +\begin{proposition}[Source-side simple-cycle property] +\label{prop:no-level-d-pinch} +Let $G$ be a maximal planar graph with planar embedding $\Pi_G$ and +single-vertex source $v_0$. Let $d \geq 1$, $v \in L_d$, and let +$C'$ be a connected component of $G'_d$ such that $v$ is incident to +some face in $F_{C'}$. Then the depth-$d$ faces in $F_{C'}$ incident +to $v$ form a single contiguous arc in $v$'s rotation in $\Pi_G$. + +Equivalently: for any such component, the source-side boundary of +$R_{C'}$ is a simple cycle in $L_d$ (no cut-vertices at level $d$). +\end{proposition} + +\begin{proof} +Suppose for contradiction that the depth-$d$ faces in $F_{C'}$ at $v$ +lie in two or more disjoint arcs of $v$'s rotation. Adjacent vertices +in $G$ differ in level by at most $1$, so a face at $v$ has depth +exactly $d$ iff both other vertices have level $\geq d$, and depth +$\leq d-1$ iff at least one has level $d-1$. Hence the gaps between +the depth-$d$ arcs at $v$ are populated by level-$(d-1)$ neighbours of +$v$, occurring in at least two disjoint arcs of $v$'s rotation. Pick +$p$ in one such gap and $q$ in another. + +The BFS ball $G[L_{