diff --git a/papers/coloring_nested_tire_graphs/experiments/draw_medial_tire_graph.py b/papers/coloring_nested_tire_graphs/experiments/draw_medial_tire_graph.py new file mode 100644 index 0000000..8571775 --- /dev/null +++ b/papers/coloring_nested_tire_graphs/experiments/draw_medial_tire_graph.py @@ -0,0 +1,206 @@ +"""Draw the medial tire graph for the tire example in Figure 2. + +The example uses the same random tire parameters as fig_tire_example: +m=6, k=4, one chord of O, seed=3. The medial tire graph is built from +the plane graph obtained by omitting the chord edges of O, and then +deleting medial edges between two outer-boundary edges or two +inner-boundary edges. Its vertices are placed at the midpoints of the +retained tire edges. +""" +import os +import sys + +HERE = os.path.dirname(os.path.abspath(__file__)) +DUAL_EXP = os.path.abspath( + os.path.join(HERE, '..', '..', 'coloring_nested_tire_dual_graphs', 'experiments') +) +sys.path.insert(0, DUAL_EXP) + +import matplotlib.pyplot as plt +import matplotlib.patches as patches + +from tire_graph import random_tire, planar_positions + + +def edge_key(u, v): + return tuple(sorted((u, v))) + + +def is_inner_chord(edge, m, k): + u, v = edge + if not (m <= u < m + k and m <= v < m + k): + return False + a, b = u - m, v - m + d = abs(a - b) + return min(d, k - d) != 1 + + +def is_outer_boundary_edge(edge, outer): + outer_set = set(outer) + if not set(edge) <= outer_set: + return False + m = len(outer) + idx = {v: i for i, v in enumerate(outer)} + a, b = idx[edge[0]], idx[edge[1]] + return (a - b) % m in (1, m - 1) + + +def is_inner_boundary_edge(edge, inner): + inner_set = set(inner) + if not set(edge) <= inner_set: + return False + k = len(inner) + idx = {v: i for i, v in enumerate(inner)} + a, b = idx[edge[0]], idx[edge[1]] + return (a - b) % k in (1, k - 1) + + +def suppress_boundary_medial_edge(e1, e2, outer, inner): + return ( + is_outer_boundary_edge(e1, outer) and is_outer_boundary_edge(e2, outer) + ) or ( + is_inner_boundary_edge(e1, inner) and is_inner_boundary_edge(e2, inner) + ) + + +def face_edges(face): + return [edge_key(face[i], face[(i + 1) % len(face)]) for i in range(len(face))] + + +def build_medial_tire(tire): + m, k = tire['m'], tire['k'] + outer = tire['outer'] + inner = tire['inner'] + + omitted = {edge_key(m + a, m + b) for a, b in tire['inner_chords']} + retained_edges = sorted( + edge_key(u, v) + for u, v in tire['edges'] + if edge_key(u, v) not in omitted + ) + retained = set(retained_edges) + + faces = [tuple(tri) for tri in tire['triangles']] + faces.append(tuple(outer)) + faces.append(tuple(reversed(inner))) + + medial_edges = set() + for face in faces: + boundary = [e for e in face_edges(face) if e in retained] + for i, e in enumerate(boundary): + nxt = boundary[(i + 1) % len(boundary)] + if suppress_boundary_medial_edge(e, nxt, outer, inner): + continue + medial_edges.add(tuple(sorted((e, nxt)))) + + return retained_edges, sorted(medial_edges), omitted + + +def draw_medial_tire_graph(tire, filename): + m, k = tire['m'], tire['k'] + outer_set = set(tire['outer']) + inner_set = set(tire['inner']) + pos = planar_positions(tire, R_out=1.0, R_in=0.45) + medial_vertices, medial_edges, omitted = build_medial_tire(tire) + medial_pos = { + e: ((pos[e[0]][0] + pos[e[1]][0]) / 2, (pos[e[0]][1] + pos[e[1]][1]) / 2) + for e in medial_vertices + } + + C = { + 'outer_cycle': '#1f77b4', + 'inner_cycle': '#d62728', + 'inner_chord': '#ff7f0e', + 'annular': '#c7c7c7', + 'medial_edge': '#0f766e', + 'medial_vertex': '#134e4a', + } + + fig, ax = plt.subplots(figsize=(7.2, 7.2)) + + for r in (1.04, 0.41): + ax.add_patch(patches.Circle((0, 0), r, fill=False, + edgecolor='lightgray', + linewidth=0.5, linestyle='--')) + + for u, v in sorted(edge_key(u, v) for u, v in tire['edges']): + x1, y1 = pos[u] + x2, y2 = pos[v] + e = edge_key(u, v) + if e in omitted: + color, lw, ls, alpha = C['inner_chord'], 1.6, (0, (4, 3)), 0.45 + elif u in outer_set and v in outer_set: + color, lw, ls, alpha = C['outer_cycle'], 2.0, '-', 0.35 + elif u in inner_set and v in inner_set: + color, lw, ls, alpha = C['inner_cycle'], 2.0, '-', 0.35 + else: + color, lw, ls, alpha = C['annular'], 1.0, '-', 0.55 + ax.plot([x1, x2], [y1, y2], color=color, linewidth=lw, + linestyle=ls, alpha=alpha, zorder=1) + + for e1, e2 in medial_edges: + x1, y1 = medial_pos[e1] + x2, y2 = medial_pos[e2] + ax.plot([x1, x2], [y1, y2], color=C['medial_edge'], + linewidth=1.8, alpha=0.92, zorder=3) + + for idx, e in enumerate(medial_vertices): + x, y = medial_pos[e] + ax.scatter([x], [y], s=58, color=C['medial_vertex'], + edgecolors='white', linewidths=0.8, zorder=4) + ax.annotate(f"$m_{{{idx}}}$", (x, y), xytext=(3, 3), + textcoords='offset points', color=C['medial_vertex'], + fontsize=6.5, zorder=5) + + for v in tire['outer']: + x, y = pos[v] + ax.scatter([x], [y], s=150, color=C['outer_cycle'], + edgecolors='white', linewidths=0.8, alpha=0.6, zorder=2) + for v in tire['inner']: + x, y = pos[v] + ax.scatter([x], [y], s=135, color=C['inner_cycle'], + edgecolors='white', linewidths=0.8, alpha=0.6, zorder=2) + + legend_items = [ + plt.Line2D([], [], color=C['medial_edge'], linewidth=1.8, + label=r'medial tire graph edge'), + plt.Line2D([], [], marker='o', color='w', + markerfacecolor=C['medial_vertex'], markeredgecolor='white', + markersize=7, label=r'medial vertex at an edge midpoint'), + plt.Line2D([], [], color=C['inner_chord'], linewidth=1.6, + linestyle=(0, (4, 3)), alpha=0.55, + label=r'chord of $O$ omitted from medial construction'), + plt.Line2D([], [], color=C['annular'], linewidth=1.0, + label=r'underlying tire graph, faint'), + ] + ax.legend(handles=legend_items, loc='upper left', + bbox_to_anchor=(1.0, 1.0), fontsize=9, frameon=False) + + ax.set_xlim(-1.24, 1.24) + ax.set_ylim(-1.24, 1.24) + ax.set_aspect('equal') + ax.axis('off') + ax.set_title( + r"Medial tire graph $M_{\mathrm{tire}}(T)$ for Figure 2's tire" + "\n" + r"midpoint vertices; no medial edges between consecutive boundary edges", + fontsize=11, + ) + + fig.savefig(filename, dpi=180, bbox_inches='tight') + plt.close(fig) + print(f"wrote {filename}") + print(f"retained tire edges: {len(medial_vertices)}") + print(f"medial edges: {len(medial_edges)}") + print(f"omitted O chords: {sorted(omitted)}") + + +def main(): + paper_dir = os.path.abspath(os.path.join(HERE, '..')) + tire = random_tire(m=6, k=4, n_chords=1, seed=3) + out = os.path.join(paper_dir, 'fig_medial_tire_example.png') + draw_medial_tire_graph(tire, out) + + +if __name__ == '__main__': + main() diff --git a/papers/coloring_nested_tire_graphs/fig_medial_tire_example.png b/papers/coloring_nested_tire_graphs/fig_medial_tire_example.png new file mode 100644 index 0000000..d87e032 Binary files /dev/null and b/papers/coloring_nested_tire_graphs/fig_medial_tire_example.png differ diff --git a/papers/coloring_nested_tire_graphs/paper.aux b/papers/coloring_nested_tire_graphs/paper.aux index a7f14af..1d23887 100644 --- a/papers/coloring_nested_tire_graphs/paper.aux +++ b/papers/coloring_nested_tire_graphs/paper.aux @@ -19,60 +19,64 @@ \newlabel{fig:dual-depth}{{1}{3}} \@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.}}{4}{}\protected@file@percent } \newlabel{fig:tire-example}{{2}{4}} -\newlabel{rem:tire-counts}{{1.7}{4}} -\newlabel{prop:no-level-d-pinch}{{1.8}{4}} +\newlabel{def:medial-tire-graph}{{1.7}{4}} +\newlabel{thm:annular-medial-colour-bound}{{1.8}{4}} +\@writefile{lof}{\contentsline {figure}{\numberline {3}{\ignorespaces The medial tire graph for the tire in Figure\nonbreakingspace 2\hbox {}. The chord of $O$ is drawn faintly and omitted before taking the medial graph; medial edges between consecutive outer-boundary edges or consecutive inner-boundary edges are also omitted. Each medial vertex is placed at the midpoint of its corresponding retained tire edge.}}{5}{}\protected@file@percent } +\newlabel{fig:medial-tire-example}{{3}{5}} +\newlabel{rem:tire-counts}{{1.9}{5}} +\newlabel{prop:no-level-d-pinch}{{1.10}{6}} +\newlabel{lem:tire-component}{{1.11}{6}} \citation{bauerfeld-depth} -\newlabel{lem:tire-component}{{1.9}{5}} \citation{bauerfeld-depth} -\newlabel{thm:tread-partition}{{1.10}{6}} -\newlabel{rem:tire-component-degenerate}{{1.11}{7}} -\newlabel{rem:tire-no-extra-hypotheses}{{1.12}{7}} -\newlabel{thm:inner-dual-outerplanar}{{1.13}{8}} -\@writefile{lof}{\contentsline {figure}{\numberline {3}{\ignorespaces Case 1 ($R$ = disk, $k = 6$). The apex $v_0$ sits at the centre; the non-degenerate boundary $B_{\mathrm {non-deg}}$ (red) is the hexagonal outer cycle; spokes (grey) triangulate the disk into a fan of $6$ triangles around $v_0$. Each triangle has two spoke edges (interior, contributing $\Gamma $-edges) and one boundary edge (contributing a leaf in $D(T)$, no $\Gamma $-edge). The inner dual $\Gamma $ (blue) is the cycle $C_6$ formed by the six annular face centroids, a manifestly outerplanar graph.}}{8}{}\protected@file@percent } -\newlabel{fig:inner-dual-disk-case}{{3}{8}} +\newlabel{thm:tread-partition}{{1.12}{8}} +\newlabel{rem:tire-component-degenerate}{{1.13}{8}} +\newlabel{rem:tire-no-extra-hypotheses}{{1.14}{8}} +\newlabel{thm:inner-dual-outerplanar}{{1.15}{9}} +\@writefile{lof}{\contentsline {figure}{\numberline {4}{\ignorespaces Case 1 ($R$ = disk, $k = 6$). The apex $v_0$ sits at the centre; the non-degenerate boundary $B_{\mathrm {non-deg}}$ (red) is the hexagonal outer cycle; spokes (grey) triangulate the disk into a fan of $6$ triangles around $v_0$. Each triangle has two spoke edges (interior, contributing $\Gamma $-edges) and one boundary edge (contributing a leaf in $D(T)$, no $\Gamma $-edge). The inner dual $\Gamma $ (blue) is the cycle $C_6$ formed by the six annular face centroids, a manifestly outerplanar graph.}}{10}{}\protected@file@percent } +\newlabel{fig:inner-dual-disk-case}{{4}{10}} \citation{bauerfeld-nested-tire-duals} \citation{bauerfeld-nested-tire-duals} -\newlabel{rem:hamilton-cycle-spoke-only}{{1.14}{9}} -\newlabel{rem:bridge-case-theta}{{1.15}{9}} +\@writefile{lof}{\contentsline {figure}{\numberline {5}{\ignorespaces Case 2 ($R$ = annulus) with $O$ a barbell. $B_{\mathrm {out}}$ is the outer hexagon (red); $O$ has two triangles $\{a_1, a_2, a_3\}$ and $\{b_1, b_2, b_3\}$ joined by the bridge $a_3\text {--}b_1$ (all light red). The annulus is triangulated by $14$ annular triangles: $6$ ``outer-cap'' triangles (one per outer edge), $6$ ``inner-cap'' triangles (one per non-bridge edge of $O$), and $2$ ``bridge-cap'' triangles $\{u_0, a_3, b_1\}$ and $\{u_3, a_3, b_1\}$ adjacent to the bridge. Each blue dot sits at the centroid of an annular triangle; blue edges connect dual vertices whose triangles share an interior annular edge (spoke or bridge). The two bridge-cap vertices have $\Gamma $-degree $3$ (their triangles have no boundary edge) and are joined by the dashed blue \emph {chord} corresponding to the bridge; the remaining $13$ edges form the Hamilton cycle that wraps around the annulus. All $14$ vertices lie on the outer face of the cycle-with-chord embedding, so $\Gamma \cong \Theta (1, 7, 7)$ is outerplanar.}}{11}{}\protected@file@percent } +\newlabel{fig:inner-dual-annulus-case}{{5}{11}} +\newlabel{rem:hamilton-cycle-spoke-only}{{1.16}{11}} +\newlabel{rem:bridge-case-theta}{{1.17}{11}} \citation{tait-original} -\@writefile{lof}{\contentsline {figure}{\numberline {4}{\ignorespaces Case 2 ($R$ = annulus) with $O$ a barbell. $B_{\mathrm {out}}$ is the outer hexagon (red); $O$ has two triangles $\{a_1, a_2, a_3\}$ and $\{b_1, b_2, b_3\}$ joined by the bridge $a_3\text {--}b_1$ (all light red). The annulus is triangulated by $14$ annular triangles: $6$ ``outer-cap'' triangles (one per outer edge), $6$ ``inner-cap'' triangles (one per non-bridge edge of $O$), and $2$ ``bridge-cap'' triangles $\{u_0, a_3, b_1\}$ and $\{u_3, a_3, b_1\}$ adjacent to the bridge. Each blue dot sits at the centroid of an annular triangle; blue edges connect dual vertices whose triangles share an interior annular edge (spoke or bridge). The two bridge-cap vertices have $\Gamma $-degree $3$ (their triangles have no boundary edge) and are joined by the dashed blue \emph {chord} corresponding to the bridge; the remaining $13$ edges form the Hamilton cycle that wraps around the annulus. All $14$ vertices lie on the outer face of the cycle-with-chord embedding, so $\Gamma \cong \Theta (1, 7, 7)$ is outerplanar.}}{10}{}\protected@file@percent } -\newlabel{fig:inner-dual-annulus-case}{{4}{10}} -\newlabel{thm:tait-tire}{{1.16}{10}} -\newlabel{rem:count-general-outerplanar}{{1.17}{11}} -\newlabel{def:boundary-state-transfer}{{1.18}{11}} -\newlabel{thm:tire-chromatic-polynomial-transfer}{{1.19}{12}} -\newlabel{rem:spoke-only-chromatic-transfer}{{1.20}{12}} -\newlabel{thm:tread-tree}{{1.21}{13}} -\newlabel{rem:tree-multiple-children}{{1.22}{14}} -\newlabel{thm:tire-tree-decomposition}{{1.23}{14}} -\@writefile{lof}{\contentsline {figure}{\numberline {5}{\ignorespaces Tire-tree decomposition (Theorem\nonbreakingspace 1.23\hbox {}) on a $13$-vertex maximal planar example $G$ with five BFS levels. $(a)$ $G$ with vertex source $v_0$ and $\ell _G \in \{0,1,2,3,4\}$; four nested seams are highlighted, $C_{T_R} = \{a,b,c\}$ (orange), $C_{T_L} = \{a,c,d\}$ (red, including the chord $a$-$c$ shared with $C_{T_R}$), $C_{T_{LL}} = \{f_1, f_2, f_3\}$ (purple), $C_{T_{LLL}} = \{g_1, g_2, g_3\}$ (teal). Inset: the rooted tree of tire treads $\mathcal {T}(G, \{v_0\})$ branches at $T_0$ into the leaf $T_R$ (containing $e$) and a chain $T_L \to T_{LL} \to T_{LLL}$ (the highlighted sub-tree). $(b)$ The disk $G_{T_L}$ inside the seam $C_{T_L}$, drawn standalone with $C_{T_L}$ as cycle source and vertex labels rotated to match the new (cycle-source) role of the boundary triangle. $\ell _{G_{T_L}}(\cdot ) = \ell _G(\cdot ) - 1$ on $V(G_{T_L})$ (verified by the generator script), and $\mathcal {T}(G_{T_L}, C_{T_L})$ is the chain $T_L \to T_{LL} \to T_{LLL}$, iso to the highlighted sub-tree of $(a)$.}}{16}{}\protected@file@percent } -\newlabel{fig:tire-tree-decomposition}{{5}{16}} -\newlabel{rem:tree-coloring-factorisation}{{1.24}{16}} -\newlabel{rem:level-cycle-motivation}{{1.25}{17}} -\newlabel{def:level-cycle-three-colour-restriction}{{1.26}{17}} -\newlabel{conj:false-universal-level-cycle-three-colour}{{1.27}{17}} -\@writefile{lof}{\contentsline {figure}{\numberline {6}{\ignorespaces The $8$-vertex counterexample to the universal-source form. With source $S=\{7\}$, the level cycle $(3,4,5,8)$ lies in $L_2$ and forces all four colours in every proper $4$-vertex-colouring.}}{17}{}\protected@file@percent } -\newlabel{fig:universal-level-cycle-counterexample}{{6}{17}} -\newlabel{ex:universal-level-cycle-counterexample}{{1.28}{18}} -\@writefile{toc}{\contentsline {subsection}{\tocsubsection {}{}{An inner-boundary refinement}}{18}{}\protected@file@percent } -\newlabel{def:tire-inner-boundary-three-colour}{{1.29}{18}} -\newlabel{conj:tire-inner-boundary-three-colour}{{1.30}{18}} -\@writefile{toc}{\contentsline {subsection}{\tocsubsection {}{}{A counterexample at $n=14$}}{18}{}\protected@file@percent } -\newlabel{ex:inner-boundary-counterexample}{{1.31}{18}} -\@writefile{lof}{\contentsline {figure}{\numberline {7}{\ignorespaces The $14$-vertex counterexample $G^\star $ to Conjecture\nonbreakingspace 1.30\hbox {} in a planar embedding. The six degree-$3$ vertices split into two triples, $\{3,5,10\}$ each adjacent to a triangle in the core $\{1,2,4,6\}$, and $\{11,13,14\}$ each adjacent to a triangle in the core $\{7,8,9,12\}$; the two cores are joined by the edges $17,28,69$ together with $12$.}}{19}{}\protected@file@percent } -\newlabel{fig:inner-boundary-counterexample}{{7}{19}} -\@writefile{toc}{\contentsline {subsection}{\tocsubsection {}{}{The surviving level-cycle conjecture}}{19}{}\protected@file@percent } -\newlabel{conj:level-cycle-three-colour}{{1.32}{19}} -\@writefile{toc}{\contentsline {subsection}{\tocsubsection {}{}{Enumeration for small $n$}}{20}{}\protected@file@percent } -\@writefile{lot}{\contentsline {table}{\numberline {1}{\ignorespaces Exhaustive vertex-source search for the level-cycle three-colour conjecture on all triangulation isomorphism classes with $4 \leq n \leq 13$. Every triangulation in this range admits at least one vertex source witnessing the conjecture.}}{20}{}\protected@file@percent } -\newlabel{tab:level-cycle-three-colour-counts}{{1}{20}} -\@writefile{toc}{\contentsline {subsection}{\tocsubsection {}{}{The $5$-connected slice at $n \leq 24$}}{20}{}\protected@file@percent } -\@writefile{lot}{\contentsline {table}{\numberline {2}{\ignorespaces The $5$-connected triangulations at $14 \leq n \leq 24$ generated by \texttt {plantri -c5 -a}. All $9732$ graphs in this slice admit a vertex source witnessing the level-cycle three-colour conjecture.}}{20}{}\protected@file@percent } -\newlabel{tab:level-cycle-three-colour-c5-14-16}{{2}{20}} -\newlabel{def:seam}{{1.33}{21}} -\newlabel{def:partial-tire-tree}{{1.34}{21}} -\newlabel{lem:seam-edge-shared}{{1.35}{21}} -\newlabel{conj:seam-counterexample}{{1.36}{21}} +\newlabel{thm:tait-tire}{{1.18}{12}} +\newlabel{rem:count-general-outerplanar}{{1.19}{12}} +\newlabel{def:boundary-state-transfer}{{1.20}{13}} +\newlabel{thm:tire-chromatic-polynomial-transfer}{{1.21}{13}} +\newlabel{rem:spoke-only-chromatic-transfer}{{1.22}{14}} +\newlabel{thm:tread-tree}{{1.23}{14}} +\newlabel{rem:tree-multiple-children}{{1.24}{15}} +\newlabel{thm:tire-tree-decomposition}{{1.25}{15}} +\newlabel{rem:tree-coloring-factorisation}{{1.26}{17}} +\newlabel{rem:level-cycle-motivation}{{1.27}{17}} +\newlabel{def:level-cycle-three-colour-restriction}{{1.28}{17}} +\@writefile{lof}{\contentsline {figure}{\numberline {6}{\ignorespaces Tire-tree decomposition (Theorem\nonbreakingspace 1.25\hbox {}) on a $13$-vertex maximal planar example $G$ with five BFS levels. $(a)$ $G$ with vertex source $v_0$ and $\ell _G \in \{0,1,2,3,4\}$; four nested seams are highlighted, $C_{T_R} = \{a,b,c\}$ (orange), $C_{T_L} = \{a,c,d\}$ (red, including the chord $a$-$c$ shared with $C_{T_R}$), $C_{T_{LL}} = \{f_1, f_2, f_3\}$ (purple), $C_{T_{LLL}} = \{g_1, g_2, g_3\}$ (teal). Inset: the rooted tree of tire treads $\mathcal {T}(G, \{v_0\})$ branches at $T_0$ into the leaf $T_R$ (containing $e$) and a chain $T_L \to T_{LL} \to T_{LLL}$ (the highlighted sub-tree). $(b)$ The disk $G_{T_L}$ inside the seam $C_{T_L}$, drawn standalone with $C_{T_L}$ as cycle source and vertex labels rotated to match the new (cycle-source) role of the boundary triangle. $\ell _{G_{T_L}}(\cdot ) = \ell _G(\cdot ) - 1$ on $V(G_{T_L})$ (verified by the generator script), and $\mathcal {T}(G_{T_L}, C_{T_L})$ is the chain $T_L \to T_{LL} \to T_{LLL}$, iso to the highlighted sub-tree of $(a)$.}}{18}{}\protected@file@percent } +\newlabel{fig:tire-tree-decomposition}{{6}{18}} +\newlabel{conj:false-universal-level-cycle-three-colour}{{1.29}{18}} +\newlabel{ex:universal-level-cycle-counterexample}{{1.30}{18}} +\@writefile{lof}{\contentsline {figure}{\numberline {7}{\ignorespaces The $8$-vertex counterexample to the universal-source form. With source $S=\{7\}$, the level cycle $(3,4,5,8)$ lies in $L_2$ and forces all four colours in every proper $4$-vertex-colouring.}}{19}{}\protected@file@percent } +\newlabel{fig:universal-level-cycle-counterexample}{{7}{19}} +\@writefile{toc}{\contentsline {subsection}{\tocsubsection {}{}{An inner-boundary refinement}}{19}{}\protected@file@percent } +\newlabel{def:tire-inner-boundary-three-colour}{{1.31}{19}} +\newlabel{conj:tire-inner-boundary-three-colour}{{1.32}{19}} +\@writefile{toc}{\contentsline {subsection}{\tocsubsection {}{}{A counterexample at $n=14$}}{20}{}\protected@file@percent } +\newlabel{ex:inner-boundary-counterexample}{{1.33}{20}} +\@writefile{lof}{\contentsline {figure}{\numberline {8}{\ignorespaces The $14$-vertex counterexample $G^\star $ to Conjecture\nonbreakingspace 1.32\hbox {} in a planar embedding. The six degree-$3$ vertices split into two triples, $\{3,5,10\}$ each adjacent to a triangle in the core $\{1,2,4,6\}$, and $\{11,13,14\}$ each adjacent to a triangle in the core $\{7,8,9,12\}$; the two cores are joined by the edges $17,28,69$ together with $12$.}}{20}{}\protected@file@percent } +\newlabel{fig:inner-boundary-counterexample}{{8}{20}} +\@writefile{toc}{\contentsline {subsection}{\tocsubsection {}{}{The surviving level-cycle conjecture}}{21}{}\protected@file@percent } +\newlabel{conj:level-cycle-three-colour}{{1.34}{21}} +\@writefile{toc}{\contentsline {subsection}{\tocsubsection {}{}{Enumeration for small $n$}}{21}{}\protected@file@percent } +\@writefile{lot}{\contentsline {table}{\numberline {1}{\ignorespaces Exhaustive vertex-source search for the level-cycle three-colour conjecture on all triangulation isomorphism classes with $4 \leq n \leq 13$. Every triangulation in this range admits at least one vertex source witnessing the conjecture.}}{21}{}\protected@file@percent } +\newlabel{tab:level-cycle-three-colour-counts}{{1}{21}} +\@writefile{toc}{\contentsline {subsection}{\tocsubsection {}{}{The $5$-connected slice at $n \leq 24$}}{21}{}\protected@file@percent } +\newlabel{def:seam}{{1.35}{21}} +\@writefile{lot}{\contentsline {table}{\numberline {2}{\ignorespaces The $5$-connected triangulations at $14 \leq n \leq 24$ generated by \texttt {plantri -c5 -a}. All $9732$ graphs in this slice admit a vertex source witnessing the level-cycle three-colour conjecture.}}{22}{}\protected@file@percent } +\newlabel{tab:level-cycle-three-colour-c5-14-16}{{2}{22}} +\newlabel{def:partial-tire-tree}{{1.36}{22}} +\newlabel{lem:seam-edge-shared}{{1.37}{22}} +\newlabel{conj:seam-counterexample}{{1.38}{22}} \bibcite{tait-original}{1} \bibcite{bauerfeld-depth}{2} \bibcite{bauerfeld-nested-tire-duals}{3} @@ -89,5 +93,5 @@ \newlabel{tocindent1}{17.77782pt} \newlabel{tocindent2}{0pt} \newlabel{tocindent3}{0pt} -\@writefile{toc}{\contentsline {section}{\tocsection {}{}{References}}{22}{}\protected@file@percent } -\gdef \@abspage@last{22} +\@writefile{toc}{\contentsline {section}{\tocsection {}{}{References}}{23}{}\protected@file@percent } +\gdef \@abspage@last{23} diff --git a/papers/coloring_nested_tire_graphs/paper.fdb_latexmk b/papers/coloring_nested_tire_graphs/paper.fdb_latexmk index 10d5def..cba488c 100644 --- a/papers/coloring_nested_tire_graphs/paper.fdb_latexmk +++ b/papers/coloring_nested_tire_graphs/paper.fdb_latexmk @@ -1,5 +1,5 @@ # Fdb version 3 -["pdflatex"] 1780415103 "paper.tex" "paper.pdf" "paper" 1780415105 +["pdflatex"] 1780943955 "paper.tex" "paper.pdf" "paper" 1780943957 "/usr/local/texlive/2022/texmf-dist/fonts/map/fontname/texfonts.map" 1577235249 3524 cb3e574dea2d1052e39280babc910dc8 "" "/usr/local/texlive/2022/texmf-dist/fonts/tfm/public/amsfonts/cmextra/cmex7.tfm" 1246382020 1004 54797486969f23fa377b128694d548df "" "/usr/local/texlive/2022/texmf-dist/fonts/tfm/public/amsfonts/cmextra/cmex8.tfm" 1246382020 988 bdf658c3bfc2d96d3c8b02cfc1c94c20 "" @@ -144,11 +144,12 @@ "/usr/local/texlive/2022/texmf.cnf" 1647878952 577 209b46be99c9075fd74d4c0369380e8c "" "fig_dual_depth.png" 1779857443 255786 cb48aab5aa40fc161d13a75df0544511 "" "fig_inner_boundary_counterexample.png" 1780363332 86866 e15e4311e42fec20179ac6bb90683dea "" + "fig_medial_tire_example.png" 1780943640 209003 4349824e4f016bde4b938be6b2cb5b2c "" "fig_tire_example.png" 1779857443 104494 8f9ce26b469b4236b8b67829f73a5faa "" "fig_tire_tree_decomposition.png" 1780290287 372371 1b44f5a3e9f637d78ae951b1f2e3a89d "" "fig_universal_level_cycle_counterexample.png" 1780325973 75145 08f600be4e05c11d702bee45996ca222 "" - "paper.aux" 1780415105 9575 5bc3b6429f986d3a3f92f9358d9c8487 "pdflatex" - "paper.tex" 1780414965 82330 193cfffcd3ef710f6995d7f672780ac4 "" + "paper.aux" 1780943957 10167 b77d8e1ff2e4a1b03fd4e31e583defb0 "pdflatex" + "paper.tex" 1780943947 86241 c3ce5f87def8730855ab5ccd29b7016c "" (generated) "paper.aux" "paper.log" diff --git a/papers/coloring_nested_tire_graphs/paper.fls b/papers/coloring_nested_tire_graphs/paper.fls index 0882749..0632956 100644 --- a/papers/coloring_nested_tire_graphs/paper.fls +++ b/papers/coloring_nested_tire_graphs/paper.fls @@ -459,6 +459,11 @@ INPUT ./fig_tire_example.png INPUT fig_tire_example.png INPUT ./fig_tire_example.png INPUT ./fig_tire_example.png +INPUT ./fig_medial_tire_example.png +INPUT ./fig_medial_tire_example.png +INPUT fig_medial_tire_example.png +INPUT ./fig_medial_tire_example.png +INPUT ./fig_medial_tire_example.png INPUT /usr/local/texlive/2022/texmf-dist/fonts/tfm/public/cm/cmti7.tfm INPUT /usr/local/texlive/2022/texmf-dist/fonts/tfm/public/cm/cmti7.tfm INPUT /usr/local/texlive/2022/texmf-dist/fonts/tfm/public/cm/cmr9.tfm diff --git a/papers/coloring_nested_tire_graphs/paper.log b/papers/coloring_nested_tire_graphs/paper.log index 202edf0..cec5b01 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) 2 JUN 2026 11:45 +This is pdfTeX, Version 3.141592653-2.6-1.40.24 (TeX Live 2022) (preloaded format=pdflatex 2022.10.5) 8 JUN 2026 14:39 entering extended mode restricted \write18 enabled. %&-line parsing enabled. @@ -510,84 +510,94 @@ File: fig_tire_example.png Graphic file (type png) Package pdftex.def Info: fig_tire_example.png used on input line 244. (pdftex.def) Requested size: 280.79956pt x 188.56097pt. - [4 <./fig_tire_example.png>] [5] [6] [7] + +File: fig_medial_tire_example.png Graphic file (type png) + +Package pdftex.def Info: fig_medial_tire_example.png used on input line 278. +(pdftex.def) Requested size: 280.79956pt x 189.42558pt. + + +LaTeX Warning: `h' float specifier changed to `ht'. + +[4 <./fig_tire_example.png>] [5 <./fig_medial_tire_example.png>] [6] [7] [8] LaTeX Warning: `h' float specifier changed to `ht'. -[9] [10] [11] [12] -Underfull \vbox (badness 3396) has occurred while \output is active [] - - [13] -[14] [15] - +[9] [10] [11] [12] [13] [14] [15] [16] + File: fig_tire_tree_decomposition.png Graphic file (type png) -Package pdftex.def Info: fig_tire_tree_decomposition.png used on input line 12 -55. +Package pdftex.def Info: fig_tire_tree_decomposition.png used on input line 13 +34. (pdftex.def) Requested size: 341.9989pt x 196.86678pt. - [16 <./fig_tire_tree_decomposition.png>] - + + +LaTeX Warning: `h' float specifier changed to `ht'. + +[17] + File: fig_universal_level_cycle_counterexample.png Graphic file (type png) Package pdftex.def Info: fig_universal_level_cycle_counterexample.png used on -input line 1337. +input line 1416. (pdftex.def) Requested size: 280.79956pt x 156.91663pt. - [17 <./fig_universal_level_cycle_counterexample.png>] [18] - + [18 <./fig_tire_tree_decomposition.png>] [19 <./fig_universal_level_cycle_coun +terexample.png>] + File: fig_inner_boundary_counterexample.png Graphic file (type png) Package pdftex.def Info: fig_inner_boundary_counterexample.png used on input l -ine 1446. +ine 1525. (pdftex.def) Requested size: 280.79956pt x 156.02269pt. - [19 <./fig_inner_boundary_counterexample.png>] -[20] -Overfull \hbox (1.78508pt too wide) in paragraph at lines 1635--1637 + [20 <./fig_inner_boundary_counterexample.png>] [21] +[22] +Overfull \hbox (1.78508pt too wide) in paragraph at lines 1714--1716 []\OT1/cmr/m/n/10 Length lower bound (Birkhoff). \OT1/cmr/m/it/10 Ev-ery non-tr ivial seam $\OML/cmm/m/it/10 C$ \OT1/cmr/m/it/10 of $\OML/cmm/m/it/10 G$ \OT1/c mr/m/it/10 has $\OMS/cmsy/m/n/10 j\OML/cmm/m/it/10 V\OT1/cmr/m/n/10 (\OML/cmm/m /it/10 C\OT1/cmr/m/n/10 )\OMS/cmsy/m/n/10 j ^^U [] -[21] [22] (./paper.aux) ) +[23] (./paper.aux) ) Here is how much of TeX's memory you used: - 14107 strings out of 478268 - 281211 string characters out of 5846347 - 567570 words of memory out of 5000000 - 31928 multiletter control sequences out of 15000+600000 + 14117 strings out of 478268 + 281512 string characters out of 5846347 + 565616 words of memory out of 5000000 + 31937 multiletter control sequences out of 15000+600000 478386 words of font info for 63 fonts, out of 8000000 for 9000 1302 hyphenation exceptions out of 8191 84i,12n,89p,1168b,801s stack positions out of 10000i,1000n,20000p,200000b,200000s -< -/usr/local/texlive/2022/texmf-dist/fonts/type1/public/amsfonts/cm/cmr8.pfb> -Output written on paper.pdf (22 pages, 1085011 bytes). + + +Output written on paper.pdf (23 pages, 1252642 bytes). PDF statistics: - 220 PDF objects out of 1000 (max. 8388607) - 132 compressed objects within 2 object streams + 225 PDF objects out of 1000 (max. 8388607) + 134 compressed objects within 2 object streams 0 named destinations out of 1000 (max. 500000) - 38 words of extra memory for PDF output out of 10000 (max. 10000000) + 43 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 1e6e88d..1bc46fc 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 4f8b168..5f751ee 100644 --- a/papers/coloring_nested_tire_graphs/paper.tex +++ b/papers/coloring_nested_tire_graphs/paper.tex @@ -252,6 +252,85 @@ triangular faces.} \label{fig:tire-example} \end{figure} +\begin{definition}[Medial tire graph] +\label{def:medial-tire-graph} +Let $T = (B_{\mathrm{out}}, O, E_{\mathrm{ann}})$ be a tire graph. +Let $T^{\circ}$ be the plane graph obtained from $T$ by deleting every +edge of $O$ that is not on the inner boundary walk $B_{\mathrm{in}}$. +Equivalently, $T^{\circ}$ keeps $B_{\mathrm{out}}$, $B_{\mathrm{in}}$, +and the annular edges, but omits the chords of the inner outerplanar +graph $O$. + +The \emph{medial tire graph} of $T$, denoted $M_{\mathrm{tire}}(T)$, +is obtained from the medial graph $M(T^{\circ})$ by deleting every +medial edge whose two endpoint-vertices correspond either to two edges +of $B_{\mathrm{out}}$ or to two edges of $B_{\mathrm{in}}$. Thus +$V(M_{\mathrm{tire}}(T))$ is naturally indexed by the non-chord edges +of $T$, and two such vertices are adjacent exactly when the +corresponding edges are consecutive on the boundary of a face of +$T^{\circ}$, except for consecutive pairs lying wholly along one of +the two boundary walks. The medial vertices corresponding to edges of +$E_{\mathrm{ann}}$ are called the \emph{annular medial vertices}. +\end{definition} + +\begin{figure}[h] +\centering +\includegraphics[width=0.78\textwidth]{fig_medial_tire_example.png} +\caption{The medial tire graph for the tire in +Figure~\ref{fig:tire-example}. The chord of $O$ is drawn faintly and +omitted before taking the medial graph; medial edges between consecutive +outer-boundary edges or consecutive inner-boundary edges are also +omitted. Each medial vertex is placed at the midpoint of its +corresponding retained tire edge.} +\label{fig:medial-tire-example} +\end{figure} + +\begin{theorem}[Annular medial colour bound] +\label{thm:annular-medial-colour-bound} +Let $T = (B_{\mathrm{out}}, O, E_{\mathrm{ann}})$ be a tire graph with +non-degenerate boundaries and simple inner boundary $B_{\mathrm{in}}$. +Let $A(T)$ be the subgraph of $M_{\mathrm{tire}}(T)$ induced by the +annular medial vertices. For a graph $H$, write +$\operatorname{Col}_3(H)$ for the set of proper $3$-vertex-colourings +of $H$. Then $A(T)$ is a cycle and +\[ + |\operatorname{Col}_3(M_{\mathrm{tire}}(T))| + \;\leq\; |\operatorname{Col}_3(A(T))|. +\] +\end{theorem} + +\begin{proof} +Since the tread is a triangulated annulus with no vertices in its +interior, each annular face has exactly one boundary edge, lying either +on $B_{\mathrm{out}}$ or on $B_{\mathrm{in}}$, and exactly two annular +edges. As the annular faces are traversed cyclically around the tread, +consecutive faces share one annular edge. Equivalently, the annular +edges occur in a cyclic order in which each annular face contains two +consecutive annular edges. Hence the subgraph of +$M_{\mathrm{tire}}(T)$ induced by the annular medial vertices is a +cycle. + +Consider the restriction map from proper $3$-colourings of +$M_{\mathrm{tire}}(T)$ to colourings of this annular medial cycle +$A(T)$. We claim that this map is injective. Let $x$ be a +non-annular medial vertex. Then $x$ corresponds to an edge of +$B_{\mathrm{out}}$ or $B_{\mathrm{in}}$, since the chords of $O$ were +omitted before forming $M_{\mathrm{tire}}(T)$. This boundary edge is +incident to a unique annular face of $T^{\circ}$, and the other two +edges of that face are annular edges. Therefore $x$ is adjacent in +$M_{\mathrm{tire}}(T)$ to the two annular medial vertices corresponding +to those two annular edges. + +Those two annular medial vertices are adjacent to each other, because +their annular edges are consecutive on the same triangular annular +face. In any proper $3$-colouring they therefore receive two distinct +colours, and $x$ is forced to receive the remaining third colour. +Thus every non-annular medial vertex has its colour uniquely determined +by the colouring of $A(T)$. Two colourings of $M_{\mathrm{tire}}(T)$ +with the same restriction to $A(T)$ are identical, so the restriction +map is injective. The stated inequality follows. +\end{proof} + \begin{remark} \label{rem:tire-counts} Let $\mu = |V(B_{\mathrm{out}})|$ and $\nu = |V(B_{\mathrm{in}})|$. By