This repository contains formally verified 2-symbol Turing machines and Lean 4 semantics proofs for Goldbach's Conjecture, ZF Set Theory Consistency, and the Riemann Hypothesis, developed by Maxence Faldor and Moritz Firsching using Gemini Argon.
| Conjecture | Machine | States | Source / Provenance | Proved Halting Condition (Halts M ↔ ...) |
Lean 4 Proofs |
|---|---|---|---|---|---|
| Goldbach's Conjecture | goldbach_21 |
21 |
Reduced from goldbach_25 (25 states, Yao / Leng 2024) |
¬ GoldbachConjecture |
Goldbach21.lean, Semantics/Goldbach.lean |
| ZF Consistency | zf_380 |
380 |
Reduced from zf_393 (393 states, Wade Aug 2026) |
ZFInconsistent (¬ Halts candidate proved) |
Zf380.lean, Semantics/Zf393.lean |
| ZF Consistency | zf_393 |
393 |
Andrew Wade (turing_machine_explorer 9c5c2e82, Aug 2026) |
ZFInconsistent (¬ Halts zf393 proved) |
Zf393.lean, Semantics/Zf393.lean |
| ZF Consistency | zf_432 |
432 |
Andrew Wade (turing_machine_explorer 33b30300, Aug 2025) |
WadeZFInconsistent |
Semantics/Zf.lean |
| Riemann Hypothesis | riemann_104 |
104 |
Reduced from riemann_120 (120 states, Shunia Sept 2026) |
¬ RiemannHypothesis |
Riemann104.lean, Semantics/Riemann120.lean |
| Riemann Hypothesis | riemann_120 |
120 |
Joseph M. Shunia (arXiv:2609.30306, Sept 2026) |
¬ RiemannHypothesis |
Riemann120.lean, Semantics/Riemann120.lean |
| Riemann Hypothesis | riemann_744 |
744 |
Matiyasevich, O'Rear & Aaronson (riemann_744_sorear.tm, 2016) |
¬ RiemannHypothesis |
Semantics/Riemann.lean |
See RELATED_WORK.md for the historical progression across each domain.
All proofs in Cryptids/ are checked by the Lean 4 kernel (v4.35.0-rc4) without sorry and use only the standard axioms (propext, Classical.choice, Quot.sound):
-
State reduction and halting equivalence (
candidate.states < reference.statesandHalts candidate ↔ Halts reference): Each reduced record machine (goldbach_21,zf_380,riemann_104) has fewer states than its reference machine (goldbach_25,zf_393,riemann_120) and halts from the blank tape if and only if the reference machine halts (Goldbach21.lean,Zf380.lean,Riemann104.lean). -
End-to-end mathematical semantics (
Cryptids/Semantics/):-
Goldbach (
goldbach_21andgoldbach_25): Bothgoldbach_21andgoldbach_25halt if and only if Goldbach's conjecture is false (Halts candidate ↔ ¬ GoldbachConjecture). -
Riemann Hypothesis (
riemann_104,riemann_120, andriemann_744): All three machines (riemann_104, Shunia's 120-state machineriemann_120, and the 744-state machineriemann_744) halt if and only if Mathlib'sRiemannHypothesisis false (Halts candidate ↔ ¬ RiemannHypothesis,Halts riemann120 ↔ ¬ RiemannHypothesis, andHalts riemann744 ↔ ¬ RiemannHypothesis). -
ZF Consistency (
zf_380,zf_393, andzf_432): Bothzf_380and Wade's 393-state machinezf_393(incorporating upstream fix10fcf152b3) halt if and only if O'Rear'szf2.nqlHilbert system proves$v_0 \in v_0$ (Halts candidate ↔ ZFInconsistent,Halts zf393 ↔ ZFInconsistent), and hence never halt inZFSet.{0}(not_halts_candidate,not_halts_zf393), whilezf_432halts if and only if the 20-clause deductive system enumerated byzf_432_wade.tmderives$v_0 \in v_0$ (WadeZFInconsistent).
-
Goldbach (
Details on the proof architecture and mathematical background are in Cryptids/Semantics/README.md.
For the reduced machines in artifacts/, the state-space transformations affect execution step counts as follows:
goldbach_21(339,411vs.170,966steps throughn = 40,1.99x): Eliminating 4 states (1, 8, 10, 17) reverses the partition enumeration to test larger summands first and routes divisor acceptance through the main counter-tape scanner.zf_380(+0.093%step overhead at1,000,000steps;0step overhead during39,753-step bootstrap): Eliminating 13 states (65, 68, 266, 278, 322, 335, 341, 353, 359, 361, 379, 387, 389) via a 5-cell sliding-window invariant (validState) and non-destructive leftward head bounces (1, 3, 5, 7, 9steps) preserves 100% bit-exact tape equality after every macro-step.riemann_104(9,037vs.89,775,610bootstrap steps,9,934.23xfaster initialization;498,382vs.111,294,346total steps over the first1,000register instructions,223.31xspeedup): Eliminating 16 states (120 -> 104) splits merged scanner state32via a 5-cell window invariant (120 -> 121), replaces the two-phase89.8M-step bootstrap (-9states) with a self-bootstrapping header and dynamic on-demand zero padding (padTotal -> padTotal + 1), and consolidates return scanners and binary call-stack frames (mapStack,-8states).
Build all Lean 4 proofs:
lake exe cache get
lake buildIndependently audit the proofs against Challenge.lean with leanprover/comparator:
lake comparator --config comparator/all.jsonRun the standalone zero-dependency Python verifier (re-compiles upstream baseline sources, checks SHA-256 digests and transition tables, and simulates 250,000 steps per domain):
python3 verify.pyCryptids/— Shared problem definitions (Propositions.lean), Turing machine specifications (Machines.lean), halting-equivalence proofs, and end-to-end semantics (Cryptids/Semantics/README.md).Challenge.lean&comparator/— Self-contained target theorem specification and configuration files forleanprover/comparator.artifacts/— Canonicalmachine.txttransition tables and reduction write-ups forgoldbach_21,zf_380, andriemann_104.baselines/— Verbatim upstream source files, canonical 5-tuple tables, andPROVENANCE.md.RELATED_WORK.md— Literature lineage and(Q, 2)Turing machine conventions.verify.py— Standalone Python 3 verification script.
Pull requests and issues are welcome, especially for smaller Turing machines for these problems, machines for other conjectures, or streamlined Lean proofs. Please also open an issue if you notice anything amiss, such as a missing reference or provenance detail. See CONTRIBUTING.md for general guidelines.
We thank Eric Wieser for careful review, as well as the Busy Beaver Challenge community, Yijun Leng, Stefan O'Rear, Yuri Matiyasevich, Scott Aaronson, Adam Yedidia, Andrew Wade, and Joseph Shunia for the baseline Turing machines and compilers, and the Mathlib community.
Copyright 2026 Google LLC
All software is licensed under the Apache License, Version 2.0 (Apache 2.0); you may not use this file except in compliance with the Apache 2.0 license. You may obtain a copy of the Apache 2.0 license at: https://www.apache.org/licenses/LICENSE-2.0
All other materials are licensed under the Creative Commons Attribution 4.0 International License (CC-BY). You may obtain a copy of the CC-BY license at: https://creativecommons.org/licenses/by/4.0/legalcode
Unless required by applicable law or agreed to in writing, all software and materials distributed here under the Apache 2.0 or CC-BY licenses are distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the licenses for the specific language governing permissions and limitations under those licenses.
This is not an official Google product.