NEW PROOF STRATEGY for Conjecture 5.1 (face-monochromatic-pair):
1. NEW Conjecture (Deciding face): For every chord-apex+Kempe
colouring φ of every reduced dual, the reduced dual has a face f
with ∂f ⊆ V(K_b) ∪ V(K_c) and |f| ≢ 0 (mod 3).
2. NEW Theorem: Deciding-face conjecture implies Conj 5.1.
Proof: contradiction. Assume no clauses-(1)-(3) witness for some
chord-apex+Kempe φ. By Lemma 5.3, h_φ ≡ ε ∈ {±1} on V(K_b) ∪ V(K_c).
By the deciding-face conjecture, ∃ face f with ∂f ⊆ V(K_b) ∪ V(K_c),
|f| ≢ 0 (mod 3). Heawood's face-sum identity (Heawood 1898) gives
Σ_{v ∈ ∂f} h_φ(v) = ε|f| ≡ 0 (mod 3). Since gcd(|f|, 3) = 1, we get
ε ≡ 0 (mod 3), but ε ∈ {±1} — contradiction.
3. EMPIRICAL: Conjecture (Deciding face) verified on 142,812 / 142,812
chord-apex+Kempe colourings of reduced duals up to |V(G)| ≤ 20 --
matching the full coverage of check_constancy_obstruction.py.
Face-length distribution:
|f| = 4: 13,074
|f| = 5: 102,498 (most common)
|f| = 7: 18,570
|f| = 8: 7,752
|f| = 10: 846
|f| = 11: 72
(All ≢ 0 mod 3.)
New scripts:
- check_kb_kc_coverage.py: |V(K_b) ∪ V(K_c)| / |V(Ĝ')| distribution.
73.87% of colourings have V(K_b) ∪ V(K_c) = V (full coverage); the
remaining 26% have coverage ≥ 70%, mostly ≥ 90%.
- check_deciding_face.py: existence of deciding face across all
colourings; 100.00% / 142,812.
Why this is the right reduction:
- It uses ALL THREE pieces of chord-apex+Kempe structure: Lemma 5.3
(constancy from no-witness), forced colour-equality at merged/spike,
and forced Kempe-cycle containment of merged + spike + side edges
(the latter two enter via V(K_b) ∪ V(K_c) covering specific
structural vertices).
- It uses Heawood's face-sum identity, which is the classical 3-fold
parity constraint on cubic plane 3-edge-colourings.
- The C28 counterexample to Conjecture 5.5 is not affected: it's not
a chord-apex+Kempe colouring of a reduced dual, so the deciding-face
structure doesn't apply.
Remaining work: prove the deciding-face conjecture structurally (likely
via the specific F_01 / F_12 "flank face" of the reduced dual, whose
length n_0 - 1 from the adjacent G'-face of length n_0 ≥ 5 is ≢ 0 mod 3
exactly when n_0 ≢ 1 mod 3, plus boundary-in-V(K_b) ∪ V(K_c) which
follows from Lemma 5.X kempe-spike + colour analysis at A_i).
Paper grows from 17 to 18 pages.
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
math-research
Personal mathematics research repository by Eric Bauerfeld. Papers are written in AMS-LaTeX using the amsart document class.
Papers
kempe_style_search_for_smaller_contradiction
Humans Suffice: A Novel Proof of the Four Color Theorem
An in-progress proof of the Four Color Theorem via a minimal counterexample argument. The paper builds on Kempe's 1879 strategy — establishing valid cases for vertices of degree ≤ 4, then extending the argument to the degree-5 case using properties of non-adjacent degree-5 vertices, merged subgraphs, and locked colorings.
plane_depth_labelling
Plane Depth Labelling
Early-stage paper. Title and author information set; content in progress.
Creating a New Paper
Use run.sh to scaffold a new paper from the AMS-LaTeX template:
./run.sh init_paper "Your Paper Title"
This creates a new directory (name derived from the title) containing a paper.tex pre-filled with the title and author.
Setup
The Python library code in lib/ requires SageMath. Run setup once per machine:
./run.sh setup <sage_python_path> <sage_site_packages> [system_name]
sage_python_path— path to the SageMath Python interpreter (e.g./opt/sage/local/bin/python3)sage_site_packages— path to SageMath's site-packages directorysystem_name— optional label for this machine (defaults tohostname -s); used to store per-machine env files as.env.<system_name>
On subsequent runs the paths default to whatever was saved in .env, so ./run.sh setup alone re-runs setup with the existing configuration.
Setup also compiles the plantri submodule via make.
Running Sage
To run a Sage script with plantri available on PATH:
./run.sh sage <script.py> [args...]
Or to open an interactive Sage session:
./run.sh sage
Linting
./run.sh lint
Runs pyright and pylint on lib/ using the SageMath Python interpreter.
Shell Completion
To enable tab-completion for run.sh in zsh, add this to your .zshrc:
eval "$(path/to/run.sh completion)"
Or source it once in the current shell session:
eval "$(./run.sh completion)"
Building
Papers are compiled with LaTeX. From within a paper directory:
latexmk -pdf paper.tex