Audit of the structural proof of Conjecture 5.1 (via deciding-face
conjecture) identifies one real proof gap:
Lemma (Flank covering, n_i = 6), Case (b) sub-case (ii) -- when
φ(A_i P_1) = c_1 AND φ(P_1 P_2) = c_0 -- the propagation argument
"the cycle at P_2 passes from P_2 to P_1" requires the {c, c_0}-Kempe
cycle through P_2 to be K_b, which forces P_1 onto K_b via the c_0
edge P_1 P_2. Properness at P_2 only forces P_2 ∈ V(K_c) (via
φ(A_{i+1} P_2) = c_1), not P_2 ∈ V(K_b). The further step requires
controlling the {c, c_0}-walk through the rest of the graph, which
the local argument doesn't do.
experiments/audit_tight_coverage.py quantifies the impact across
empirical data:
- 7,930 / 7,930 (G, v, i) triples up to |V(G)| ≤ 20 are covered
by the FULL partial proof (including the n_i = 6 lemma);
- 7,531 / 7,930 (94.97%) are covered by the TIGHT subset
(n_i = 5 OR n_{i+1} = 5 OR (n_{i+2}, n_{i+4}) = (5, 5)) which
has no proof gap;
- 399 (5.03%) genuinely require the n_i = 6 lemma.
So the gap matters: empirical coverage of the tight subset alone is
~95%, not 100%.
Paper changes:
- Lemma (Flank covering, n_i = 6) marked as "partial" with a status
note in the statement itself.
- Proof of Lemma includes an "Audit note" identifying the open
sub-case explicitly, after establishing the parts that ARE proven.
- Empirical coverage remark softened: the 100% claim is restated
as "modulo the open sub-case", with the 94.97% tight figure
given separately.
Empirically the n_i = 6 lemma is robust (all 142,812 colourings have
a deciding face), so the gap is probably patchable — likely either
via a structural argument that rules out the bad sub-case in
chord-apex+Kempe colourings, or via a global K_b-walk argument
showing P_2 ∈ V(K_b) anyway. But this is open.
Paper stays at 21 pages (only added text within existing lemma + remark).
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