diff --git a/papers/even_level_graph_generators/experiments/core_n25_dual.g6 b/papers/even_level_graph_generators/experiments/core_n25_dual.g6 new file mode 100644 index 0000000..5ddb2a3 --- /dev/null +++ b/papers/even_level_graph_generators/experiments/core_n25_dual.g6 @@ -0,0 +1 @@ +msP@@?PE?O?`@??_?O?A@?G??OG?O??G??A@??o??A???C@??C???A????_???C????o????_????_G???OC???E?????_????A?_???K?????K?????C?????@_G????B??????CC?????G??????GG?????CC?????@@??????BG diff --git a/papers/even_level_graph_generators/experiments/draw_core_witness.py b/papers/even_level_graph_generators/experiments/draw_core_witness.py new file mode 100644 index 0000000..4190d7a --- /dev/null +++ b/papers/even_level_graph_generators/experiments/draw_core_witness.py @@ -0,0 +1,171 @@ +"""Draw a 5-connected non-Hamiltonian-dual core (= the dual of a non-Hamiltonian +cyclically 5-connected cubic planar graph) as a parity-coloured planar graph +with the bridge edges introduced by its witness Even Level Graph highlighted. +Style matches Fig. 6 (the n=24 core). + +The script picks the first valid parity partition of minimal total Betti for +which a backward bridge-orbit search returns an Even Level Graph, and prints +the witness data (source, added bridge edges). + +Usage: + sage -python draw_core_witness.py +""" +import sys +import os +sys.path.insert(0, '/Users/didericis/Code/math-research/papers/' + 'level_resolutions_of_maximal_planar_graphs/experiments') +sys.path.insert(0, os.path.dirname(os.path.abspath(__file__))) +import networkx as nx +import matplotlib +matplotlib.use('Agg') +import matplotlib.pyplot as plt +from matplotlib.lines import Line2D +from sage.all import Graph # type: ignore +from tutte_dual_treecolor import dual_triangulation +from test_tutte_bridge import valid_parity_partitions_via_coloring +from test_fig210_dual_bridge import sage_to_nx +from fast_bridge import EdgeCode, parity_bridges +from test_conjecture import is_even_level_graph + +EVEN_C = '#9ecae1' +ODD_C = '#fdae6b' + + +def betti(T, labels): + A = [v for v in T if labels[v] == 0] + B = [v for v in T if labels[v] == 1] + GA, GB = T.subgraph(A), T.subgraph(B) + return (GA.number_of_edges() - len(A) + nx.number_connected_components(GA)) + \ + (GB.number_of_edges() - len(B) + nx.number_connected_components(GB)) + + +def neighbors(code, labels, state): + G = code.graph_of(state) + ok, emb = nx.check_planarity(G) + ea = {v: set() for v in code.nodes if labels[v] == 0} + oa = {v: set() for v in code.nodes if labels[v] == 1} + for u, v in G.edges(): + if labels[u] == labels[v]: + (ea if labels[u] == 0 else oa)[u].add(v) + (ea if labels[u] == 0 else oa)[v].add(u) + br = parity_bridges(ea) | parity_bridges(oa) + for u, v in G.edges(): + f1 = emb.traverse_face(u, v) + if len(f1) != 3: + continue + f2 = emb.traverse_face(v, u) + if len(f2) != 3: + continue + w = next(a for a in f1 if a not in (u, v)) + x = next(b for b in f2 if b not in (u, v)) + if w == x or G.has_edge(w, x) or labels[w] != labels[x]: + continue + if labels[u] == labels[v] and frozenset((u, v)) not in br: + continue + yield (state & ~(1 << code.bit(u, v))) | (1 << code.bit(w, x)) + + +def elg_src(code, labels, state): + G = code.graph_of(state) + for s in code.nodes: + cs = labels[s] + nb = set(G.neighbors(s)) + if not nb or any(labels[w] == cs for w in nb): + continue + ok, lv = is_even_level_graph(G, frozenset({s})) + if ok and all((lv[v] % 2 == 0) == (labels[v] == cs) for v in code.nodes): + return s + return None + + +def find_witness(T, labels, cap): + code = EdgeCode(T.nodes()) + s0 = code.state_of(T) + parent = {s0: None} + frontier = [s0] + W = None + while frontier and W is None and len(parent) < cap: + nf = [] + for st in frontier: + if elg_src(code, labels, st) is not None: + W = st + break + for ns in neighbors(code, labels, st): + if ns not in parent: + parent[ns] = st + nf.append(ns) + if len(parent) >= cap: + break + if W or len(parent) >= cap: + break + if W: + break + frontier = nf + if W is None: + return None + path = [] + c = W + while c is not None: + path.append(c) + c = parent[c] + added = [] + for k in range(len(path) - 1): + A = set(map(frozenset, code.graph_of(path[k]).edges())) + B = set(map(frozenset, code.graph_of(path[k + 1]).edges())) + added.append(tuple(sorted(next(iter(B - A))))) + return elg_src(code, labels, W), added, len(path) - 1 + + +def main(): + if len(sys.argv) < 3: + print('usage: draw_core_witness.py ') + sys.exit(1) + in_g6_path, out_png = sys.argv[1], sys.argv[2] + g6 = open(in_g6_path).read().strip() + T, _ = dual_triangulation(sage_to_nx(Graph(g6))) + parts, _ = valid_parity_partitions_via_coloring(T) + order = sorted(range(len(parts)), key=lambda k: betti(T, parts[k])) + chosen = None + for k in order[:200]: + r = find_witness(T, parts[k], cap=40000) + if r is not None: + chosen = (k, parts[k], r) + break + if chosen is None: + print('no witness found in scanned partitions; aborting') + sys.exit(2) + k, labels, (src, added, depth) = chosen + print('partition=%d source=%d depth=%d added=%s' % (k, src, depth, added)) + + fig, ax = plt.subplots(figsize=(8, 8)) + pos = nx.planar_layout(T) + colors = [EVEN_C if labels[v] == 0 else ODD_C for v in T.nodes()] + hl = {frozenset(e) for e in added} + plain = [e for e in T.edges() if frozenset(e) not in hl] + nx.draw_networkx_edges(T, pos, edgelist=plain, ax=ax, + edge_color='#b0b0b0', width=0.9) + nx.draw_networkx_edges(T, pos, edgelist=[tuple(e) for e in hl], ax=ax, + edge_color='#2ca02c', width=2.6) + nx.draw_networkx_nodes(T, pos, node_color=colors, node_size=240, + edgecolors='#444444', linewidths=0.6, ax=ax) + nx.draw_networkx_labels(T, pos, font_size=8, ax=ax) + ax.margins(0.12) + ax.axis('off') + handles = [ + Line2D([0], [0], marker='o', color='w', markerfacecolor=EVEN_C, + markeredgecolor='#444', markersize=9, label='even parity'), + Line2D([0], [0], marker='o', color='w', markerfacecolor=ODD_C, + markeredgecolor='#444', markersize=9, label='odd parity'), + Line2D([0], [0], color='#2ca02c', lw=2.6, label='bridge edge introduced'), + ] + fig.legend(handles=handles, loc='lower center', ncol=3, fontsize=9, + frameon=False) + fig.tight_layout(rect=(0, 0.05, 1, 1)) + os.makedirs(os.path.dirname(out_png), exist_ok=True) + fig.savefig(out_png, dpi=160) + plt.close(fig) + print('wrote', out_png) + + +if __name__ == '__main__': + main() diff --git a/papers/even_level_graph_generators/experiments/verify_core_witness.py b/papers/even_level_graph_generators/experiments/verify_core_witness.py new file mode 100644 index 0000000..651ed89 --- /dev/null +++ b/papers/even_level_graph_generators/experiments/verify_core_witness.py @@ -0,0 +1,101 @@ +"""Step-verify the bridge-derivability witness for a 5-connected +non-Hamiltonian-dual core. Same outputs as verify_fig210_witness.py +(parity partition, ELG source/max level, both removed and added edges per +forward switch, bridge-condition validity check) but parametrized so it +works on any core's graph6. + +Usage: + sage -python verify_core_witness.py +""" +import sys +import os +sys.path.insert(0, '/Users/didericis/Code/math-research/papers/' + 'level_resolutions_of_maximal_planar_graphs/experiments') +sys.path.insert(0, os.path.dirname(os.path.abspath(__file__))) +import networkx as nx +from sage.all import Graph # type: ignore +from tutte_dual_treecolor import dual_triangulation +from test_tutte_bridge import valid_parity_partitions_via_coloring +from test_fig210_dual_bridge import sage_to_nx +from fast_bridge import EdgeCode, parity_bridges +from test_conjecture import is_even_level_graph +from draw_core_witness import betti, neighbors, elg_src, find_witness + + +def main(): + if len(sys.argv) < 2: + print('usage: verify_core_witness.py ') + sys.exit(1) + g6 = open(sys.argv[1]).read().strip() + T, _ = dual_triangulation(sage_to_nx(Graph(g6))) + parts, _ = valid_parity_partitions_via_coloring(T) + order = sorted(range(len(parts)), key=lambda k: betti(T, parts[k])) + + chosen = None + for k in order[:200]: + r = find_witness(T, parts[k], cap=40000) + if r is not None: + chosen = (k, parts[k], r) + break + assert chosen is not None, 'no witness found' + k, labels, (src, _, _) = chosen + + code = EdgeCode(T.nodes()) + s0 = code.state_of(T) + parent = {s0: None} + frontier = [s0] + W = None + while frontier and W is None: + nf = [] + for st in frontier: + if elg_src(code, labels, st) is not None: + W = st + break + for ns in neighbors(code, labels, st): + if ns not in parent: + parent[ns] = st + nf.append(ns) + if W: + break + frontier = nf + path = [] + c = W + while c is not None: + path.append(c) + c = parent[c] + + ok, lv = is_even_level_graph(code.graph_of(W), frozenset({src})) + print('partition %d, source %d, max level %d, depth %d, ELG verified %s' + % (k, src, max(lv.values()), len(path) - 1, ok)) + print('parity even =', sorted(v for v in T if labels[v] == 0)) + print('parity odd =', sorted(v for v in T if labels[v] == 1)) + + all_valid = True + for i in range(len(path) - 1): + A = set(map(frozenset, code.graph_of(path[i]).edges())) + B = set(map(frozenset, code.graph_of(path[i + 1]).edges())) + new = tuple(sorted(next(iter(B - A)))) + rem = tuple(sorted(next(iter(A - B)))) + Gp = code.graph_of(path[i + 1]) + ea = {v: set() for v in code.nodes if labels[v] == 0} + oa = {v: set() for v in code.nodes if labels[v] == 1} + for u, v in Gp.edges(): + if labels[u] == labels[v]: + (ea if labels[u] == 0 else oa)[u].add(v) + (ea if labels[u] == 0 else oa)[v].add(u) + br = parity_bridges(ea) | parity_bridges(oa) + if labels[new[0]] == labels[new[1]]: + valid = frozenset(new) in br + kind = 'same-parity bridge in %s subgraph' % ( + 'even' if labels[new[0]] == 0 else 'odd') + else: + valid = True + kind = 'cross-parity (enters neither subgraph)' + all_valid &= valid + print(' switch %d: remove %s, add %s [%s] valid=%s' + % (i + 1, rem, new, kind, valid)) + print('ALL STEPS VALID BRIDGE SWITCHES:', all_valid) + + +if __name__ == '__main__': + main() diff --git a/papers/even_level_graph_generators/figures/core_n25_dual.png b/papers/even_level_graph_generators/figures/core_n25_dual.png new file mode 100644 index 0000000..77219be Binary files /dev/null and b/papers/even_level_graph_generators/figures/core_n25_dual.png differ diff --git a/papers/even_level_graph_generators/paper.aux b/papers/even_level_graph_generators/paper.aux index 1e070ff..fbb687c 100644 --- a/papers/even_level_graph_generators/paper.aux +++ b/papers/even_level_graph_generators/paper.aux @@ -17,19 +17,19 @@ \providecommand\HyField@AuxAddToFields[1]{} \providecommand\HyField@AuxAddToCoFields[2]{} \@writefile{toc}{\contentsline {section}{\tocsection {}{1}{Introduction}}{1}{section.1}\protected@file@percent } -\@writefile{toc}{\contentsline {section}{\tocsection {}{2}{Definitions}}{2}{section.2}\protected@file@percent } +\@writefile{toc}{\contentsline {section}{\tocsection {}{2}{Definitions}}{3}{section.2}\protected@file@percent } \@writefile{lof}{\contentsline {figure}{\numberline {1}{\ignorespaces BFS levels from the degree-$3$ vertex source $S = \{4\}$. The source is level $0$, its three neighbours are level $1$, and the remaining vertices are level $2$. Colour encodes the level.}}{3}{figure.1}\protected@file@percent } \newlabel{fig:levels}{{1}{3}{BFS levels from the degree-$3$ vertex source $S = \{4\}$. The source is level $0$, its three neighbours are level $1$, and the remaining vertices are level $2$. Colour encodes the level}{figure.1}{}} -\@writefile{lof}{\contentsline {figure}{\numberline {2}{\ignorespaces A level cycle in the triangulation of Figure\nonbreakingspace \ref {fig:levels}. The triangle $1\!-\!2\!-\!3$ is a simple cycle whose three vertices all lie at level $1$, so it is a level cycle at level $1$.}}{3}{figure.2}\protected@file@percent } -\newlabel{fig:level-cycle}{{2}{3}{A level cycle in the triangulation of Figure~\ref {fig:levels}. The triangle $1\!-\!2\!-\!3$ is a simple cycle whose three vertices all lie at level $1$, so it is a level cycle at level $1$}{figure.2}{}} -\newlabel{def:edge-switch}{{2.4}{4}{Edge switch}{theorem.2.4}{}} +\newlabel{def:edge-switch}{{2.4}{3}{Edge switch}{theorem.2.4}{}} +\@writefile{lof}{\contentsline {figure}{\numberline {2}{\ignorespaces A level cycle in the triangulation of Figure\nonbreakingspace \ref {fig:levels}. The triangle $1\!-\!2\!-\!3$ is a simple cycle whose three vertices all lie at level $1$, so it is a level cycle at level $1$.}}{4}{figure.2}\protected@file@percent } +\newlabel{fig:level-cycle}{{2}{4}{A level cycle in the triangulation of Figure~\ref {fig:levels}. The triangle $1\!-\!2\!-\!3$ is a simple cycle whose three vertices all lie at level $1$, so it is a level cycle at level $1$}{figure.2}{}} \@writefile{lof}{\contentsline {figure}{\numberline {3}{\ignorespaces An edge switch on the level cycle of Figure\nonbreakingspace \ref {fig:level-cycle}. The chosen cycle edge $1\!-\!2$ is shared by the triangular faces $(0,1,2)$ and $(1,2,4)$; the switch deletes $1\!-\!2$ (red, left) and inserts $0\!-\!4$ (green, right). Vertex colours indicate the original levels in $G$.}}{4}{figure.3}\protected@file@percent } \newlabel{fig:edge-switch}{{3}{4}{An edge switch on the level cycle of Figure~\ref {fig:level-cycle}. The chosen cycle edge $1\!-\!2$ is shared by the triangular faces $(0,1,2)$ and $(1,2,4)$; the switch deletes $1\!-\!2$ (red, left) and inserts $0\!-\!4$ (green, right). Vertex colours indicate the original levels in $G$}{figure.3}{}} -\@writefile{lof}{\contentsline {figure}{\numberline {4}{\ignorespaces Parity subgraphs of $G' = T$ with respect to the level structure of Figure\nonbreakingspace \ref {fig:levels} (here we take $G = G' = T$). Left: $T$ with vertices coloured by $\ell _G \nonscript \mskip -\medmuskip \mkern 5mu\mathbin {\mathgroup \symoperators mod}\penalty 900 \mkern 5mu\nonscript \mskip -\medmuskip 2$ (blue $=$ even, orange $=$ odd). Middle: the even parity subgraph $E_{G,S}(G')$, induced on $\{0, 4, 5, 6\}$; only edges with both endpoints even appear. Right: the odd parity subgraph $O_{G,S}(G')$, induced on $\{1, 2, 3\}$; the highlighted triangle shows that $O_{G,S}(G')$ is not bipartite for this choice of $G'$.}}{4}{figure.4}\protected@file@percent } -\newlabel{fig:parity-subgraph}{{4}{4}{Parity subgraphs of $G' = T$ with respect to the level structure of Figure~\ref {fig:levels} (here we take $G = G' = T$). Left: $T$ with vertices coloured by $\ell _G \bmod 2$ (blue $=$ even, orange $=$ odd). Middle: the even parity subgraph $E_{G,S}(G')$, induced on $\{0, 4, 5, 6\}$; only edges with both endpoints even appear. Right: the odd parity subgraph $O_{G,S}(G')$, induced on $\{1, 2, 3\}$; the highlighted triangle shows that $O_{G,S}(G')$ is not bipartite for this choice of $G'$}{figure.4}{}} -\@writefile{toc}{\contentsline {section}{\tocsection {}{3}{Outerplanarity of level components}}{5}{section.3}\protected@file@percent } -\newlabel{sec:outerplanar-components}{{3}{5}{Outerplanarity of level components}{section.3}{}} -\newlabel{thm:outerplanar-component}{{3.1}{5}{}{theorem.3.1}{}} +\@writefile{toc}{\contentsline {section}{\tocsection {}{3}{Outerplanarity of level components}}{4}{section.3}\protected@file@percent } +\newlabel{sec:outerplanar-components}{{3}{4}{Outerplanarity of level components}{section.3}{}} +\newlabel{thm:outerplanar-component}{{3.1}{4}{}{theorem.3.1}{}} +\@writefile{lof}{\contentsline {figure}{\numberline {4}{\ignorespaces Parity subgraphs of $G' = T$ with respect to the level structure of Figure\nonbreakingspace \ref {fig:levels} (here we take $G = G' = T$). Left: $T$ with vertices coloured by $\ell _G \nonscript \mskip -\medmuskip \mkern 5mu\mathbin {\mathgroup \symoperators mod}\penalty 900 \mkern 5mu\nonscript \mskip -\medmuskip 2$ (blue $=$ even, orange $=$ odd). Middle: the even parity subgraph $E_{G,S}(G')$, induced on $\{0, 4, 5, 6\}$; only edges with both endpoints even appear. Right: the odd parity subgraph $O_{G,S}(G')$, induced on $\{1, 2, 3\}$; the highlighted triangle shows that $O_{G,S}(G')$ is not bipartite for this choice of $G'$.}}{5}{figure.4}\protected@file@percent } +\newlabel{fig:parity-subgraph}{{4}{5}{Parity subgraphs of $G' = T$ with respect to the level structure of Figure~\ref {fig:levels} (here we take $G = G' = T$). Left: $T$ with vertices coloured by $\ell _G \bmod 2$ (blue $=$ even, orange $=$ odd). Middle: the even parity subgraph $E_{G,S}(G')$, induced on $\{0, 4, 5, 6\}$; only edges with both endpoints even appear. Right: the odd parity subgraph $O_{G,S}(G')$, induced on $\{1, 2, 3\}$; the highlighted triangle shows that $O_{G,S}(G')$ is not bipartite for this choice of $G'$}{figure.4}{}} \@writefile{toc}{\contentsline {section}{\tocsection {}{4}{Even Level Graphs}}{5}{section.4}\protected@file@percent } \newlabel{sec:even-level-graphs}{{4}{5}{Even Level Graphs}{section.4}{}} \newlabel{def:even-level-graph}{{4.1}{5}{Even Level Graph}{theorem.4.1}{}} @@ -39,8 +39,8 @@ \newlabel{tab:elg-counts}{{1}{6}{Even Level Graph counts for $4 \leq n \leq 11$. The \emph {triangulations} column is the number of plane-triangulation iso classes (OEIS A000109). \emph {ELG iso classes} counts pairs $(G, S)$ up to isomorphism; \emph {flag-rooted ELGs} is the automorphism-free count $\sum _G \tfrac {4E}{|\mathrm {Aut}(G)|}\,s(G)$}{table.1}{}} \newlabel{def:derived-level-graph}{{4.3}{6}{Derived level graph}{theorem.4.3}{}} \newlabel{def:bridge-switch}{{4.4}{6}{Bridge switch}{theorem.4.4}{}} -\newlabel{def:bridge-derived-level-graph}{{4.5}{6}{Bridge-derived level graph}{theorem.4.5}{}} \citation{holton-mckay} +\newlabel{def:bridge-derived-level-graph}{{4.5}{7}{Bridge-derived level graph}{theorem.4.5}{}} \newlabel{def:intertwining-tree}{{4.6}{7}{Intertwining tree}{theorem.4.6}{}} \newlabel{thm:intertwining-iff-hamiltonian-dual}{{4.7}{7}{}{theorem.4.7}{}} \newlabel{conj:every-triangulation-derived}{{4.8}{7}{}{theorem.4.8}{}} @@ -53,12 +53,15 @@ \newlabel{fig:n21-duals}{{5}{9}{The six Holton--McKay duals, drawn as crossing-free planar graphs and coloured by parity (blue even, orange odd, with respect to the fixed level-parity labelling). The solid green edges are the bridge edges introduced by the bridge switches from each dual's witness Even Level Graph. Each green edge is a bridge of its parity subgraph, so no new cycle -- and in particular no odd cycle -- is created; duals $1$ and $2$ coincide with their Even Level Graphs and have no added edge}{figure.5}{}} \@writefile{lof}{\contentsline {figure}{\numberline {6}{\ignorespaces The $24$-vertex dual $T$ of the unique $44$-vertex non-Hamiltonian cyclically $5$-connected cubic planar graph (Holton--McKay Fig.\nonbreakingspace 2.10), drawn crossing-free and coloured by the fixed parity labelling (blue even, orange odd). $T$ is $5$-connected and not an intertwining tree, yet is a bridge-derived level graph: the two solid green edges $\{6,19\}$ and $\{20,22\}$ are the bridge edges introduced by the two bridge switches carrying its witness Even Level Graph (source $19$) to $T$. Each green edge is a bridge of its parity subgraph -- $\{6, 19\}$ in the even subgraph, $\{20,22\}$ in the odd -- so no new cycle, and in particular no odd cycle, is created.}}{10}{figure.6}\protected@file@percent } \newlabel{fig:n24-dual}{{6}{10}{The $24$-vertex dual $T$ of the unique $44$-vertex non-Hamiltonian cyclically $5$-connected cubic planar graph (Holton--McKay Fig.~2.10), drawn crossing-free and coloured by the fixed parity labelling (blue even, orange odd). $T$ is $5$-connected and not an intertwining tree, yet is a bridge-derived level graph: the two solid green edges $\{6,19\}$ and $\{20,22\}$ are the bridge edges introduced by the two bridge switches carrying its witness Even Level Graph (source $19$) to $T$. Each green edge is a bridge of its parity subgraph -- $\{6, 19\}$ in the even subgraph, $\{20,22\}$ in the odd -- so no new cycle, and in particular no odd cycle, is created}{figure.6}{}} -\@writefile{toc}{\contentsline {subsection}{\tocsubsection {}{}{Toward a characterization of bridge-derived graphs}}{10}{section*.4}\protected@file@percent } +\@writefile{toc}{\contentsline {subsection}{\tocsubsection {}{}{Beyond $n = 24$: enumeration and the next $5$-connected core}}{10}{section*.4}\protected@file@percent } +\@writefile{toc}{\contentsline {subsection}{\tocsubsection {}{}{Toward a characterization of bridge-derived graphs}}{11}{section*.5}\protected@file@percent } +\@writefile{lof}{\contentsline {figure}{\numberline {7}{\ignorespaces The $25$-vertex dual $T_{25}$ of the unique $46$-vertex non-Hamiltonian cyclically $5$-connected cubic planar graph -- the only such cubic graph at $46$ vertices and the second internally $6$-connected core known. Drawn crossing-free and coloured by parity (blue even, orange odd) for its witness partition. $T_{25}$ is internally $6$-connected and not an intertwining tree, yet is a bridge-derived level graph: the two solid green edges $\{1,6\}$ and $\{22,24\}$ are the bridge edges introduced by the two bridge switches carrying its witness Even Level Graph (source $24$) to $T_{25}$. Each is a bridge of the even parity subgraph.}}{12}{figure.7}\protected@file@percent } +\newlabel{fig:n25-dual}{{7}{12}{The $25$-vertex dual $T_{25}$ of the unique $46$-vertex non-Hamiltonian cyclically $5$-connected cubic planar graph -- the only such cubic graph at $46$ vertices and the second internally $6$-connected core known. Drawn crossing-free and coloured by parity (blue even, orange odd) for its witness partition. $T_{25}$ is internally $6$-connected and not an intertwining tree, yet is a bridge-derived level graph: the two solid green edges $\{1,6\}$ and $\{22,24\}$ are the bridge edges introduced by the two bridge switches carrying its witness Even Level Graph (source $24$) to $T_{25}$. Each is a bridge of the even parity subgraph}{figure.7}{}} \bibcite{holton-mckay}{1} \newlabel{tocindent-1}{0pt} \newlabel{tocindent0}{14.69437pt} \newlabel{tocindent1}{17.77782pt} \newlabel{tocindent2}{0pt} \newlabel{tocindent3}{0pt} -\@writefile{toc}{\contentsline {section}{\tocsection {}{}{References}}{11}{section*.5}\protected@file@percent } -\gdef \@abspage@last{11} +\@writefile{toc}{\contentsline {section}{\tocsection {}{}{References}}{13}{section*.6}\protected@file@percent } +\gdef \@abspage@last{13} diff --git a/papers/even_level_graph_generators/paper.log b/papers/even_level_graph_generators/paper.log index 251c826..9c2fec5 100644 --- a/papers/even_level_graph_generators/paper.log +++ b/papers/even_level_graph_generators/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) 22 MAY 2026 17:40 +This is pdfTeX, Version 3.141592653-2.6-1.40.24 (TeX Live 2022) (preloaded format=pdflatex 2022.10.5) 22 MAY 2026 20:05 entering extended mode restricted \write18 enabled. %&-line parsing enabled. @@ -354,46 +354,57 @@ File: epstopdf-sys.cfg 2010/07/13 v1.3 Configuration of (r)epstopdf for TeX Liv e )) [1{/usr/local/texlive/2022/texmf-var/fonts/map/pdftex/updmap/pdftex.map}] -[2] - +Underfull \vbox (badness 10000) has occurred while \output is active [] + + [2] + File: fig_levels.png Graphic file (type png) -Package pdftex.def Info: fig_levels.png used on input line 213. +Package pdftex.def Info: fig_levels.png used on input line 221. (pdftex.def) Requested size: 198.0011pt x 170.59666pt. - + File: fig_level_cycle.png Graphic file (type png) -Package pdftex.def Info: fig_level_cycle.png used on input line 227. +Package pdftex.def Info: fig_level_cycle.png used on input line 235. (pdftex.def) Requested size: 198.0011pt x 171.40878pt. - [3 <./fig_levels.png> <./fig_level_cycle.png>] - + + +LaTeX Warning: `h' float specifier changed to `ht'. + + File: fig_edge_switch.png Graphic file (type png) -Package pdftex.def Info: fig_edge_switch.png used on input line 246. +Package pdftex.def Info: fig_edge_switch.png used on input line 254. (pdftex.def) Requested size: 341.9989pt x 150.51671pt. - + +LaTeX Warning: `h' float specifier changed to `ht'. + + File: fig_parity_subgraph.png Graphic file (type png) -Package pdftex.def Info: fig_parity_subgraph.png used on input line 264. +Package pdftex.def Info: fig_parity_subgraph.png used on input line 272. (pdftex.def) Requested size: 360.0pt x 106.9477pt. - [4 <./fig_edge_switch.png> <./fig_parity_subgraph.png>] + +LaTeX Warning: `h' float specifier changed to `ht'. + +[3 <./fig_levels.png>] [4 <./fig_level_cycle.png> <./fig_edge_switch.png>] Package hyperref Warning: Token not allowed in a PDF string (Unicode): -(hyperref) removing `math shift' on input line 344. +(hyperref) removing `math shift' on input line 352. Package hyperref Warning: Token not allowed in a PDF string (Unicode): -(hyperref) removing `math shift' on input line 344. +(hyperref) removing `math shift' on input line 352. - -Overfull \hbox (5.73714pt too wide) in paragraph at lines 356--360 +[5 <./fig_parity_subgraph.png>] +Overfull \hbox (5.73714pt too wide) in paragraph at lines 364--368 \OT1/cmr/m/n/10 where $\OML/cmm/m/it/10 s\OT1/cmr/m/n/10 (\OML/cmm/m/it/10 G\OT 1/cmr/m/n/10 )$ is the num-ber of valid sources of $\OML/cmm/m/it/10 G$\OT1/cmr /m/n/10 . The flag-rooting is the automorphism- [] -[5] -Underfull \hbox (badness 1112) in paragraph at lines 383--383 + +Underfull \hbox (badness 1112) in paragraph at lines 391--391 \OT1/cmr/m/n/10 mor-phism; \OT1/cmr/m/it/10 flag-rooted ELGs \OT1/cmr/m/n/10 is the automorphism-free count [] @@ -401,51 +412,80 @@ Underfull \hbox (badness 1112) in paragraph at lines 383--383 [6] Package hyperref Warning: Token not allowed in a PDF string (Unicode): -(hyperref) removing `math shift' on input line 489. +(hyperref) removing `math shift' on input line 497. Package hyperref Warning: Token not allowed in a PDF string (Unicode): -(hyperref) removing `math shift' on input line 489. +(hyperref) removing `math shift' on input line 497. [7] - + File: figures/n21_duals.png Graphic file (type png) -Package pdftex.def Info: figures/n21_duals.png used on input line 549. +Package pdftex.def Info: figures/n21_duals.png used on input line 557. (pdftex.def) Requested size: 360.0pt x 227.35617pt. Package hyperref Warning: Token not allowed in a PDF string (Unicode): -(hyperref) removing `math shift' on input line 562. +(hyperref) removing `math shift' on input line 570. Package hyperref Warning: Token not allowed in a PDF string (Unicode): -(hyperref) removing `math shift' on input line 562. +(hyperref) removing `math shift' on input line 570. Package hyperref Warning: Token not allowed in a PDF string (Unicode): -(hyperref) removing `math shift' on input line 562. +(hyperref) removing `math shift' on input line 570. Package hyperref Warning: Token not allowed in a PDF string (Unicode): -(hyperref) removing `math shift' on input line 562. +(hyperref) removing `math shift' on input line 570. [8] - + File: figures/fig210_dual.png Graphic file (type png) -Package pdftex.def Info: figures/fig210_dual.png used on input line 611. +Package pdftex.def Info: figures/fig210_dual.png used on input line 619. (pdftex.def) Requested size: 251.9989pt x 251.99767pt. - [9 <./figures/n21_duals.png>] [10 <./figures/fig210_dual.png>] [11] -(./paper.aux) + [9 <./figures/n21_duals.png>] + +Package hyperref Warning: Token not allowed in a PDF string (Unicode): +(hyperref) removing `math shift' on input line 635. + + +Package hyperref Warning: Token not allowed in a PDF string (Unicode): +(hyperref) removing `math shift' on input line 635. + + +Package hyperref Warning: Token not allowed in a PDF string (Unicode): +(hyperref) removing `math shift' on input line 635. + + +Package hyperref Warning: Token not allowed in a PDF string (Unicode): +(hyperref) removing `math shift' on input line 635. + + +Overfull \hbox (9.14177pt too wide) in paragraph at lines 648--656 +\OT1/cmr/m/n/10 The $\OML/cmm/m/it/10 n \OT1/cmr/m/n/10 = 23$ row re-com-putes +Faulkner--Younger's min-i-mal-ity (no cycli-cally $5$-connected + [] + +[10 <./figures/fig210_dual.png>] + +File: figures/core_n25_dual.png Graphic file (type png) + +Package pdftex.def Info: figures/core_n25_dual.png used on input line 693. +(pdftex.def) Requested size: 251.9989pt x 251.9916pt. + [11] [12 <./figures/core_n25_dual.png>] +[13] (./paper.aux) Package rerunfilecheck Info: File `paper.out' has not changed. -(rerunfilecheck) Checksum: 07795806A5B77195784AD505FD598897;1669. +(rerunfilecheck) Checksum: D310C1D6D9F73494FC676A3DD19E31E8;2030. ) Here is how much of TeX's memory you used: - 9778 strings out of 478268 - 151395 string characters out of 5846347 - 454738 words of memory out of 5000000 - 27668 multiletter control sequences out of 15000+600000 + 9791 strings out of 478268 + 151651 string characters out of 5846347 + 455389 words of memory out of 5000000 + 27676 multiletter control sequences out of 15000+600000 475834 words of font info for 54 fonts, out of 8000000 for 9000 1302 hyphenation exceptions out of 8191 69i,9n,76p,822b,450s stack positions out of 10000i,1000n,20000p,200000b,200000s @@ -464,10 +504,10 @@ ive/2022/texmf-dist/fonts/type1/public/amsfonts/cm/cmti10.pfb> -Output written on paper.pdf (11 pages, 1245166 bytes). +Output written on paper.pdf (13 pages, 1384388 bytes). PDF statistics: - 236 PDF objects out of 1000 (max. 8388607) - 179 compressed objects within 2 object streams - 44 named destinations out of 1000 (max. 500000) - 103 words of extra memory for PDF output out of 10000 (max. 10000000) + 253 PDF objects out of 1000 (max. 8388607) + 192 compressed objects within 2 object streams + 48 named destinations out of 1000 (max. 500000) + 116 words of extra memory for PDF output out of 10000 (max. 10000000) diff --git a/papers/even_level_graph_generators/paper.out b/papers/even_level_graph_generators/paper.out index 2d13438..8231482 100644 --- a/papers/even_level_graph_generators/paper.out +++ b/papers/even_level_graph_generators/paper.out @@ -5,5 +5,6 @@ \BOOKMARK [2][-]{section*.1}{\376\377\000E\000n\000u\000m\000e\000r\000a\000t\000i\000o\000n\000\040\000f\000o\000r\000\040\000s\000m\000a\000l\000l\000\040\000n}{section.4}% 5 \BOOKMARK [2][-]{section*.2}{\376\377\000T\000h\000e\000\040\000b\000o\000u\000n\000d\000a\000r\000y\000\040\000c\000a\000s\000e\000\040\000n\000\040\000=\000\040\0002\0001}{section.4}% 6 \BOOKMARK [2][-]{section*.3}{\376\377\000T\000h\000e\000\040\000c\000y\000c\000l\000i\000c\000a\000l\000l\000y\000-\0005\000-\000c\000o\000n\000n\000e\000c\000t\000e\000d\000\040\000c\000a\000s\000e\000:\000\040\000n\000\040\000=\000\040\0002\0004}{section.4}% 7 -\BOOKMARK [2][-]{section*.4}{\376\377\000T\000o\000w\000a\000r\000d\000\040\000a\000\040\000c\000h\000a\000r\000a\000c\000t\000e\000r\000i\000z\000a\000t\000i\000o\000n\000\040\000o\000f\000\040\000b\000r\000i\000d\000g\000e\000-\000d\000e\000r\000i\000v\000e\000d\000\040\000g\000r\000a\000p\000h\000s}{section.4}% 8 -\BOOKMARK [1][-]{section*.5}{\376\377\000R\000e\000f\000e\000r\000e\000n\000c\000e\000s}{}% 9 +\BOOKMARK [2][-]{section*.4}{\376\377\000B\000e\000y\000o\000n\000d\000\040\000n\000\040\000=\000\040\0002\0004\000:\000\040\000e\000n\000u\000m\000e\000r\000a\000t\000i\000o\000n\000\040\000a\000n\000d\000\040\000t\000h\000e\000\040\000n\000e\000x\000t\000\040\0005\000-\000c\000o\000n\000n\000e\000c\000t\000e\000d\000\040\000c\000o\000r\000e}{section.4}% 8 +\BOOKMARK [2][-]{section*.5}{\376\377\000T\000o\000w\000a\000r\000d\000\040\000a\000\040\000c\000h\000a\000r\000a\000c\000t\000e\000r\000i\000z\000a\000t\000i\000o\000n\000\040\000o\000f\000\040\000b\000r\000i\000d\000g\000e\000-\000d\000e\000r\000i\000v\000e\000d\000\040\000g\000r\000a\000p\000h\000s}{section.4}% 9 +\BOOKMARK [1][-]{section*.6}{\376\377\000R\000e\000f\000e\000r\000e\000n\000c\000e\000s}{}% 10 diff --git a/papers/even_level_graph_generators/paper.pdf b/papers/even_level_graph_generators/paper.pdf index a8124f2..fb592ee 100644 Binary files a/papers/even_level_graph_generators/paper.pdf and b/papers/even_level_graph_generators/paper.pdf differ diff --git a/papers/even_level_graph_generators/paper.tex b/papers/even_level_graph_generators/paper.tex index c26e9e6..1af0c65 100644 --- a/papers/even_level_graph_generators/paper.tex +++ b/papers/even_level_graph_generators/paper.tex @@ -112,7 +112,15 @@ the unique $44$-vertex non-Hamiltonian \emph{cyclically $5$-connected} cubic planar graph -- settling a uniqueness question Holton--McKay left open -- whose $24$-vertex $5$-connected dual is the first test of the conjecture outside the $3$-cut family; it too is a bridge-derived level -graph, two bridge switches from an Even Level Graph. +graph, two bridge switches from an Even Level Graph. Iterating the same +generation procedure up to $n = 26$ produces, at $n = 25$, a second +non-Hamiltonian cyclically-$5$-connected cubic planar graph (likewise +unique at its size); its dual is verified \emph{internally +$6$-connected} -- the strongest connectivity possible for a planar +triangulation, and the level at which Birkhoff-style reductions +terminate -- and likewise bridge-derived, again at depth $2$. Both known +internally-$6$-connected non-Hamiltonian-dual cores thus satisfy the +conjecture, with identical witness signature. \end{abstract} \maketitle @@ -586,8 +594,8 @@ non-Hamiltonian cyclically $5$-connected cubic planar graph on $44$ vertices. Let $T$ be its dual: a $24$-vertex triangulation with vertex connectivity -$5$ and no separating triangle, and -- since its dual is non-Hamiltonian --- not an intertwining tree. We find that $T$ is nonetheless a +$5$ (in fact internally $6$-connected, verified in the next subsection), +and -- since its dual is non-Hamiltonian -- not an intertwining tree. We find that $T$ is nonetheless a bridge-derived level graph. Of its $333$ valid parity partitions most are useless: their backward bridge-orbits exceed $8 \times 10^5$ states with no Even Level Graph in sight. But one partition has a backward orbit of @@ -622,6 +630,80 @@ in particular no odd cycle, is created.} \label{fig:n24-dual} \end{figure} +\subsection*{Beyond $n = 24$: enumeration and the next $5$-connected core} + +The graph $T$ of the previous subsection is one core; iterating the same +generation procedure produces the rest. Below, the third column counts +$5$-connected triangulations on $n$ vertices (\texttt{plantri -c5} $n$), +and the fourth filters them by Hamiltonicity of the cubic dual: +\begin{center} +\begin{tabular}{cccc} +$n$ & dual $|V|$ & $5$-connected triangulations & non-Hamiltonian dual \\\hline +$23$ & $42$ & $1{,}970$ & $0$ \\ +$24$ & $44$ & $6{,}833$ & $1$ \quad (Holton--McKay Fig.~2.10) \\ +$25$ & $46$ & $23{,}384$ & $1$ \\ +$26$ & $48$ & $82{,}625$ & $0$ \\ +\end{tabular} +\end{center} +The $n = 23$ row recomputes Faulkner--Younger's minimality (no cyclically +$5$-connected non-Hamiltonian cubic planar graph below $44$ vertices). At +$n = 25$ we find a single new cyclically $5$-connected non-Hamiltonian +cubic planar graph on $46$ vertices; its dual we call $T_{25}$, a +$25$-vertex $5$-connected triangulation with degree sequence +$5^{21}\,8^{3}\,9^{1}$. At $n = 26$ there are again none. (All counts +depend on the correctness of \texttt{plantri} and of the Hamiltonicity +test.) + +An exhaustive scan of all $\binom{n}{5}$ candidate $5$-cuts confirms that +both $T$ and $T_{25}$ are \emph{internally $6$-connected}: every +$5$-element vertex cut is the neighbourhood of a single degree-$5$ +vertex, so neither admits a nontrivial separation of size $\le 5$. This +is the strongest connectivity a planar triangulation can have -- planar +graphs are never $6$-connected, because every planar graph has a vertex +of degree $\le 5$ -- and it is the level at which Birkhoff-style +reductions terminate (a minimal counterexample to the four colour theorem +can be assumed internally $6$-connected). Both cores are therefore +genuinely irreducible bases of any decomposition-based argument: nothing +in the cut-decomposition can simplify them further. + +The bridge-derivability test on $T_{25}$ follows the same recipe and +yields the same conclusion. Enumerating valid parity partitions and +ordering by total Betti, the minimum total Betti is $1$, and the very +first Betti-$1$ partition encountered with a small backward bridge-orbit +contains an Even Level Graph (source $s = 24$, maximum level $4$) at +depth $2$ in an orbit of $3{,}114$ states. The two bridge switches +carrying that Even Level Graph to $T_{25}$ are +\[ + \text{remove } \{21,23\},\ \text{add } \{22,24\} + \quad\text{and}\quad + \text{remove } \{3,5\},\ \text{add } \{1,6\}, +\] +each adding a same-parity edge that is a bridge of the even parity +subgraph; both steps are valid bridge switches +(Figure~\ref{fig:n25-dual}). The witness signature -- minimum total +Betti, a tiny bridge-orbit, a depth-$2$ Even Level Graph -- is the same +that worked on $T$, suggesting it is not an accident of the $n = 24$ +example but the generic shape of bridge-derivability witnesses on +internally-$6$-connected non-Hamiltonian-dual cores. The conjecture thus +survives every irreducible small case the connectivity bound forces us +to face. + +\begin{figure}[ht] +\centering +\includegraphics[width=0.7\textwidth]{figures/core_n25_dual.png} +\caption{The $25$-vertex dual $T_{25}$ of the unique $46$-vertex +non-Hamiltonian cyclically $5$-connected cubic planar graph -- the only +such cubic graph at $46$ vertices and the second internally +$6$-connected core known. Drawn crossing-free and coloured by parity +(blue even, orange odd) for its witness partition. $T_{25}$ is internally +$6$-connected and not an intertwining tree, yet is a bridge-derived level +graph: the two solid green edges $\{1,6\}$ and $\{22,24\}$ are the bridge +edges introduced by the two bridge switches carrying its witness Even +Level Graph (source $24$) to $T_{25}$. Each is a bridge of the even +parity subgraph.} +\label{fig:n25-dual} +\end{figure} + \subsection*{Toward a characterization of bridge-derived graphs} A bridge switch is a diagonal flip of the quadrilateral around a level