dual_decomposition: Conj 3.6 (face/Kempe witness) and constructive lift

Paper:
- Lemmas 3.4 (exactly one match) and 3.5 (all-distinct exists for 4-colourable
  G) replace the earlier conjecture; both have proofs.
- Add Conjecture 3.6: every proper 3-edge-colouring of a counterexample's
  reduced dual has a face with two same-colour edges that share a Kempe
  cycle with the merged edge, neither of them being the merged edge.

Experiments (all under experiments/):
- search_conj_3_6_counterexample.py: finds n=14 tri#1 i_red=0 where the
  algorithm's phi_t* sits in a Kempe class with no all-distinct colouring
  (disproves an earlier formulation).
- check_kempe_class.py / check_kempe_class_invariance.py /
  check_kempe_class_monotone.py: Kempe-class counts on H_1 and H_t* for
  small triangulations; neither monotonicity direction holds.
- check_all_distinct_exists.py: even in the conj-3.6 disproof case, H_t*
  itself admits all-distinct colourings in the *other* Kempe class.
- check_constrained_feasibility.py: literal H_t*-interpretation of
  C1 + K0 + K1 is empirically unsatisfiable (gap in proof strategy noted).
- check_conj_face_kempe.py / check_conj_face_kempe_n15.py: test Conj 3.6
  on chord-apex+Kempe colourings of reduced duals at n=12, 14, 15;
  216/216 colourings on n=14 satisfy the conjecture, others vacuous.
- draw_step1_conj36.py: figure showing a Conj 3.6 witness on H_1 with two
  new vertices on the witness edges and a new red bridge between them.
- draw_step1_conj36_recolored.py: same but with the Kempe cycle recoloured
  alternately from merged so propriety holds.
- draw_lift_to_Gprime.py: lifts the modified+recoloured H_1 back to a
  proper 3-edge-colouring of the modified G' (24+2 vertices, 39 edges,
  same Tutte layout as figure 3's first graphic so positions line up).

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
This commit is contained in:
2026-05-24 11:27:50 -04:00
parent 03dcd7c2fa
commit 464c524fa1
20 changed files with 3326 additions and 113 deletions
@@ -17,12 +17,14 @@
\newlabel{alg:iterated-reduction}{{3.1}{7}}
\newlabel{rem:alg-invariants}{{3.2}{7}}
\newlabel{rem:alg-chord-apex}{{3.3}{7}}
\@writefile{lof}{\contentsline {figure}{\numberline {3}{\ignorespaces Algorithm\nonbreakingspace 3.1\hbox {} on $G'=\mathrm {dual}(G)$, where $G$ is the first min-degree-$5$ plantri triangulation on $14$ vertices and $\varphi _1$ is a specific proper $3$-edge-colouring of $H_1$ that satisfies both the chord-apex condition (Lemma\nonbreakingspace 2.6\hbox {}) and the Kempe-cycle condition (Lemma\nonbreakingspace 2.7\hbox {}), found by \texttt {experiments/search\_kempe\_property.py}. \emph {Left:} $G'$ ($24$ vertices, $36$ edges) with the chosen pentagonal face shaded. \emph {Centre:} $H_1$ ($20$ vertices, $30$ edges) after step\nonbreakingspace (1) with $i_1 = 1$, $3$-edge-coloured by $\varphi _1$; the four edges around $v_n^{(1)}$ in $E$ are drawn thicker, and the spike and merged edges share the colour green. \emph {Right:} $H_2$ ($16$ vertices, $24$ edges) after step\nonbreakingspace (3) with $i_t = 3$; eight edges are protected, and the algorithm terminates one step later (no remaining safe pentagonal face in $H_2$). The generating script is \texttt {experiments/draw\_iterated\_reduction\_n14.py}; layouts are Tutte barycentric embeddings with the outer face picked to keep $v_n^{(1)}, v_n^{(2)}$ in the interior.}}{8}{}\protected@file@percent }
\newlabel{fig:iterated-reduction-trace}{{3}{8}}
\newlabel{lem:exactly-one-match}{{3.4}{8}}
\newlabel{tocindent-1}{0pt}
\newlabel{tocindent0}{0pt}
\newlabel{tocindent1}{17.77782pt}
\newlabel{tocindent2}{0pt}
\newlabel{tocindent3}{0pt}
\@writefile{lof}{\contentsline {figure}{\numberline {3}{\ignorespaces Algorithm\nonbreakingspace 3.1\hbox {} on $G'=\mathrm {dual}(G)$, where $G$ is the first min-degree-$5$ plantri triangulation on $14$ vertices and $\varphi _1$ is a specific proper $3$-edge-colouring of $H_1$ that satisfies both the chord-apex condition (Lemma\nonbreakingspace 2.6\hbox {}) and the Kempe-cycle condition (Lemma\nonbreakingspace 2.7\hbox {}), found by \texttt {experiments/search\_kempe\_property.py}. \emph {Left:} $G'$ ($24$ vertices, $36$ edges) with the chosen pentagonal face shaded. \emph {Centre:} $H_1$ ($20$ vertices, $30$ edges) after step\nonbreakingspace (1) with $i_1 = 1$, $3$-edge-coloured by $\varphi _1$; the four edges around $v_n^{(1)}$ in $E$ are drawn thicker, and the spike and merged edges share the colour green. \emph {Right:} $H_2$ ($16$ vertices, $24$ edges) after step\nonbreakingspace (3) with $i_t = 3$; eight edges are protected, and the algorithm terminates one step later (no remaining safe pentagonal face in $H_2$). The generating script is \texttt {experiments/draw\_iterated\_reduction\_n14.py}; layouts are Tutte barycentric embeddings with the outer face picked to keep $v_n^{(1)}, v_n^{(2)}$ in the interior.}}{8}{}\protected@file@percent }
\newlabel{fig:iterated-reduction-trace}{{3}{8}}
\newlabel{conj:no-all-distinct-coloring}{{3.4}{8}}
\gdef \@abspage@last{8}
\newlabel{lem:all-distinct-exists}{{3.5}{9}}
\newlabel{conj:face-monochromatic-pair-on-merged-kempe-cycle}{{3.6}{9}}
\gdef \@abspage@last{9}