From 59410747ea75a880a8a212abfb2ecd5799f19b71 Mon Sep 17 00:00:00 2001 From: didericis Date: Mon, 1 Jun 2026 20:56:19 -0400 Subject: [PATCH] Test inner-boundary conjecture on Holton-McKay duals Co-Authored-By: Claude Sonnet 4.6 --- .../check_inner_boundary_on_holton_mckay.py | 103 ++++++++++++++++++ .../paper.fdb_latexmk | 6 +- papers/coloring_nested_tire_graphs/paper.log | 6 +- papers/coloring_nested_tire_graphs/paper.pdf | Bin 1022633 -> 1022921 bytes papers/coloring_nested_tire_graphs/paper.tex | 7 ++ 5 files changed, 116 insertions(+), 6 deletions(-) create mode 100644 papers/coloring_nested_tire_graphs/experiments/check_inner_boundary_on_holton_mckay.py diff --git a/papers/coloring_nested_tire_graphs/experiments/check_inner_boundary_on_holton_mckay.py b/papers/coloring_nested_tire_graphs/experiments/check_inner_boundary_on_holton_mckay.py new file mode 100644 index 0000000..c4c9495 --- /dev/null +++ b/papers/coloring_nested_tire_graphs/experiments/check_inner_boundary_on_holton_mckay.py @@ -0,0 +1,103 @@ +"""Test the tire inner-boundary three-colour conjecture +(Conjecture 1.31, conj:tire-inner-boundary-three-colour) on the six +duals of the non-Hamiltonian 38-vertex cubic plane graphs found by +Holton & McKay. + +Each Holton-McKay graph G' is a 3-connected cubic plane graph on 38 +vertices; its planar dual G is a 21-vertex triangulation. We run the +exists-source, vertex-rooted inner-boundary check on each dual. + +Run with: + sage -python experiments/check_inner_boundary_on_holton_mckay.py +""" +from __future__ import annotations + +import os +import sys +from typing import cast + +from sage.all import Graph # type: ignore[attr-defined] # pylint: disable=no-name-in-module + +HERE = os.path.dirname(os.path.abspath(__file__)) +sys.path.insert(0, HERE) + +from check_level_cycle_three_color import ( # noqa: E402 + level_sources, + test_graph, +) + + +HM_FILE = ( + "/Users/didericis/Code/math-research/papers/" + "even_level_graph_generators/experiments/nonham38m4.pc" +) + + +def parse_planar_code_to_sage(path: str) -> list[Graph]: + """Parse McKay's planar_code file -> list of Sage Graphs.""" + with open(path, "rb") as f: + data = f.read() + header = b">>planar_code<<" + assert data.startswith(header), data[:20] + pos = len(header) + out: list[Graph] = [] + while pos < len(data): + n = data[pos] + pos += 1 + edges = set() + for v in range(n): + while True: + w = data[pos] + pos += 1 + if w == 0: + break + edges.add(frozenset((v, w - 1))) + g = Graph([tuple(e) for e in edges], multiedges=False, loops=False) + g.is_planar(set_embedding=True) + out.append(g) + return out + + +def main() -> int: + hm = parse_planar_code_to_sage(HM_FILE) + print(f"Loaded {len(hm)} Holton-McKay graphs from {HM_FILE}\n") + + all_pass = True + for i, gprime in enumerate(hm, start=1): + # Dual: triangulation of the sphere. Sage's planar_dual requires a + # plane embedding; gprime already has one set above. + dual = cast(Graph, gprime.planar_dual()) + n = dual.order() + e = dual.size() + print(f"=== HM #{i}: G' has {gprime.order()} vertices, " + f"{gprime.size()} edges; dual has n={n}, m={e} ===") + # Sanity: triangulation has 3n - 6 edges. + if e != 3 * n - 6: + print(f" WARNING: dual is not a triangulation (m != 3n-6)") + + sources = list(level_sources(dual, "vertex", None)) + passed, complete, checked = test_graph( + dual, + sources, + max_colorings=None, + stop_first=True, + quantifier="exists-source", + restriction="inner-boundary", + ) + status = "PASS" if (passed and complete) else ( + "UNKNOWN" if not complete else "FAIL" + ) + print(f" {status}: sources_tried={checked}/{len(sources)}\n") + if not (passed and complete): + all_pass = False + + print("---") + print( + "All Holton-McKay duals satisfy the inner-boundary conjecture: " + f"{all_pass}" + ) + return 0 if all_pass else 1 + + +if __name__ == "__main__": + raise SystemExit(main()) diff --git a/papers/coloring_nested_tire_graphs/paper.fdb_latexmk b/papers/coloring_nested_tire_graphs/paper.fdb_latexmk index aa0767a..5d469ed 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"] 1780341904 "paper.tex" "paper.pdf" "paper" 1780341906 +["pdflatex"] 1780361150 "paper.tex" "paper.pdf" "paper" 1780361151 "/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 "" @@ -146,8 +146,8 @@ "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" 1780341906 8992 aa580f9d36e55b0f1c12ef76f2e58090 "pdflatex" - "paper.tex" 1780341827 80807 9fc330654feb3dd6b936274a0cc57040 "" + "paper.aux" 1780361151 8992 aa580f9d36e55b0f1c12ef76f2e58090 "pdflatex" + "paper.tex" 1780361128 81166 412ad5cc268416100823025ff610b3f4 "" (generated) "paper.aux" "paper.log" diff --git a/papers/coloring_nested_tire_graphs/paper.log b/papers/coloring_nested_tire_graphs/paper.log index e9c1ba0..b19dbfa 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) 1 JUN 2026 15:25 +This is pdfTeX, Version 3.141592653-2.6-1.40.24 (TeX Live 2022) (preloaded format=pdflatex 2022.10.5) 1 JUN 2026 20:45 entering extended mode restricted \write18 enabled. %&-line parsing enabled. @@ -542,7 +542,7 @@ Package pdftex.def Info: fig_universal_level_cycle_counterexample.png used on input line 1303. (pdftex.def) Requested size: 280.79956pt x 156.91663pt. [17 <./fig_universal_level_cycle_counterexample.png>] [18] [19] [20] -Overfull \hbox (1.78508pt too wide) in paragraph at lines 1644--1646 +Overfull \hbox (1.78508pt too wide) in paragraph at lines 1651--1653 []\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 @@ -584,7 +584,7 @@ ve/2022/texmf-dist/fonts/type1/public/amsfonts/cm/cmti8.pfb> -Output written on paper.pdf (22 pages, 1022633 bytes). +Output written on paper.pdf (22 pages, 1022921 bytes). PDF statistics: 218 PDF objects out of 1000 (max. 8388607) 132 compressed objects within 2 object streams diff --git a/papers/coloring_nested_tire_graphs/paper.pdf b/papers/coloring_nested_tire_graphs/paper.pdf index f6d1bce3f38537fafcfd26ebe0328dcc0583936b..eb61f0ccf1ddafc2eef2a1f960cb6dd80c848776 100644 GIT binary patch delta 17928 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'T+S;TR?k+WOAtLe`FVLJmK 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