dual_decomposition: iterated-reduction algorithm + Kempe/chord-apex search

- Add section 3 with Algorithm 3.1 (iterated reduction with protected edges)
  and remarks on invariants and chord-apex applicability.
- Add fig:iterated-reduction-trace illustrating the algorithm on G' =
  dodecahedron (G' -> H_1 -> H_2 -> terminate).
- experiments/iterated_reduction.py: Sage implementation of the algorithm.
- experiments/draw_iterated_reduction.py: produces the 3 trace figures.
- experiments/check_dodecahedron_kempe.py: enumerate proper 3-edge-colorings
  of the dodecahedron's reduced dual and check the chord-apex + Kempe-cycle
  conditions (0 of 36 colorings satisfy all three).
- experiments/search_kempe_property.py: search across min-deg-5
  triangulations; the n = 14 first plantri triangulation is the smallest hit
  (reduced dual has 20 v, 30 e).

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
This commit is contained in:
2026-05-23 12:40:38 -04:00
parent 192ad33bd2
commit c987259c14
11 changed files with 1057 additions and 55 deletions
@@ -16,6 +16,7 @@
\theoremstyle{definition}
\newtheorem{definition}[theorem]{Definition}
\newtheorem{example}[theorem]{Example}
\newtheorem{algorithm}[theorem]{Algorithm}
\theoremstyle{remark}
\newtheorem{remark}[theorem]{Remark}
@@ -391,4 +392,103 @@ distinct colours, contradicting Lemma~\ref{lem:chord-apex} applied to
$\varphi'$.
\end{proof}
\section{An iterated reduction}
The reduced-dual construction in Definition~\ref{def:reduced-dual} can be
iterated: starting from a proper $3$-edge-colouring $\varphi_1$ of a reduced
dual $\widehat{G}'_{v,i}$, we apply the construction again to that graph at
a pentagonal face whose ten incident edges avoid the four named edges from
the first reduction, extending $\varphi_1$ across the new reduction. The
protected edges accumulate into a set $E$ that grows by four per iteration,
and the process terminates when $E$ has blocked every pentagonal face.
\begin{algorithm}[Iterated reduction with protected edges]
\label{alg:iterated-reduction}
Let $G$ be a triangulation we assume to be a minimal counterexample to the
Four Colour Theorem. The algorithm produces a sequence $H_1, H_2, \dots$ of
cubic plane graphs, proper $3$-edge-colourings $\varphi_t$ of $H_t$, and a
growing set $E$ of protected edges.
\begin{enumerate}
\item[(0)] Form $G' := \mathrm{dual}(G)$, a cubic plane graph.
\item[(1)] Choose a degree-$5$ vertex $v$ of $G$ (equivalently a pentagonal
face $F_v$ of $G'$) and an index $i_1 \in \{0, \dots, 4\}$. Apply
Definition~\ref{def:reduced-dual} to form
$H_1 := \widehat{G'}_{v, i_1}$, and fix any proper
$3$-edge-colouring $\varphi_1$ of $H_1$ (one exists by the minimality
of $G$).
\item[(2)] Initialise $E := \{\text{spike}, \text{side-}0, \text{side-}1,
\text{merged}\}$, the four named edges of the reduction in (1).
\item[(3)] (Iterate.) At step $t \geq 2$, given $H_{t-1}$, $\varphi_{t-1}$,
and $E \subseteq E(H_{t-1})$:
\begin{enumerate}
\item[(a)] Find a pentagonal face $F$ of $H_{t-1}$ whose ten
incident edges --- the five boundary edges of $\partial F$
and the five external edges at $\partial F$ --- are all
outside $E$. If no such $F$ exists, terminate.
\item[(b)] By Lemma~\ref{lem:pentagonal-externals} applied to
$H_{t-1}$ at $F$ under $\varphi_{t-1}$, the external vector
has shape $(a, b, c, c, c)$ up to cyclic rotation. Choose an
index $i_t$ for which
$\varphi_{t-1}(f_{i_t + 3}) = \varphi_{t-1}(f_{i_t + 4})$ and
$\varphi_{t-1}(f_{i_t}), \varphi_{t-1}(f_{i_t + 1}),
\varphi_{t-1}(f_{i_t + 2})$ are three distinct colours.
\item[(c)] Apply Definition~\ref{def:reduced-dual} to $H_{t-1}$ at
$(F, i_t)$ to form $H_t$.
\item[(d)] Extend $\varphi_{t-1}$ to a proper $3$-edge-colouring
$\varphi_t$ of $H_t$: every surviving edge keeps its
$\varphi_{t-1}$-colour, and each new edge takes the unique
colour completing the palette at its endpoint (consistent
across both endpoints of the chord by the choice of $i_t$).
\item[(e)] Add the four named edges of the step-$t$ reduction to
$E$.
\end{enumerate}
\item[(4)] Repeat (3) until termination.
\end{enumerate}
\end{algorithm}
\begin{remark}
\label{rem:alg-invariants}
At each iteration, $|V(H_t)| = |V(H_{t-1})| - 4$ and
$|E(H_t)| = |E(H_{t-1})| - 6$, so $H_t$ shrinks at a fixed rate; the
protected set $|E|$ grows by exactly four; and every protected edge survives
all subsequent reductions. Since the graph is finite, termination is
guaranteed. By Lemma~\ref{lem:pentagonal-externals}, step~(b) never fails:
some valid $i_t$ always exists for any pentagonal face under any proper
colouring. Termination is therefore combinatorial: it occurs precisely when
$E$ touches every pentagonal face of $H_{t-1}$.
\end{remark}
\begin{remark}
\label{rem:alg-chord-apex}
Lemma~\ref{lem:chord-apex} applies only at $t = 1$, when $H_1$ is a reduced
dual of $G'$. For $t \geq 2$, $H_t$ is a reduced dual of $H_{t-1}$ rather than
of $G'$, and $H_{t-1}$ is itself $3$-edge-colourable, so the
non-$3$-edge-colourability argument that drives Lemma~\ref{lem:chord-apex}
does not carry over. Whether the constraints accumulated in $E$ propagate
any further structure to $\varphi_t$ for $t \geq 2$ is left open.
\end{remark}
\begin{figure}[h]
\centering
\includegraphics[width=0.32\textwidth]{fig_alg_step0.png}\hfill
\includegraphics[width=0.32\textwidth]{fig_alg_step1.png}\hfill
\includegraphics[width=0.32\textwidth]{fig_alg_step2.png}
\caption{Algorithm~\ref{alg:iterated-reduction} on $G' = $ dodecahedron
(dual of the icosahedron). \emph{Left:} $G'$ (20 vertices, 30 edges), with
$F_v$ (the inner pentagon) shaded as the face chosen for the first reduction.
\emph{Centre:} $H_1$ (16 vertices, 24 edges) after step~(1) with $i_1 = 0$,
$3$-edge-coloured by Sage; the four edges around $v_n^{(1)}$ in $E$ are drawn
thicker. \emph{Right:} $H_2$ (12 vertices, 18 edges) after step~(3) with
$i_t = 0$; the only safe pentagonal face in $H_1$ was the outer pentagon,
whose deletion produces $v_n^{(2)}$ and a second chord, giving eight protected
edges. No safe pentagonal face remains, so the algorithm terminates. The
generating script is \texttt{experiments/draw\_iterated\_reduction.py}.}
\label{fig:iterated-reduction-trace}
\end{figure}
\end{document}