Imports
/-
Copyright (c) 2026 Google LLC. All rights reserved.
Released under Apache 2.0 license as described in the file LICENSE.
-/
module
public import Cryptids.Riemann104
public import Cryptids.Semantics.Riemann120.VonMangoldt
public import Cryptids.Semantics.Riemann120.Bridge
Halting Equivalence for riemann120 and riemann104
This module connects all layers of the formalization of Joseph M. Shunia's 120-state,
2-symbol Turing machine (riemann120, arXiv:2609.30306, September 2026) and its 104-state
reduction (riemann104) into the complete end-to-end equivalences:
Halts riemann120 ↔ ¬ RiemannHypothesis
Halts ConjectureMachines.Riemann104.candidate ↔ ¬ RiemannHypothesis.
@[expose] public sectionnamespace ConjectureMachines.Riemann120open Turing ConjectureMachinestheorem quarterClock_eq_quarterClockStep :
∀ z : ℕ, VonMangoldt.quarterClock z = Riemann120Analytic.quarterClockStep z
⊢ VonMangoldt.quarterClock 0 = Riemann120Analytic.quarterClockStep 0 ⊢ VonMangoldt.quarterClock 0 = Riemann120Analytic.quarterClockStep 0 All goals completed! 🐙
| z + 1 => z:ℕ⊢ VonMangoldt.quarterClock (z + 1) = Riemann120Analytic.quarterClockStep (z + 1) by z:ℕ⊢ VonMangoldt.quarterClock (z + 1) = Riemann120Analytic.quarterClockStep (z + 1)
rw [VonMangoldt.quarterClock, z:ℕ⊢ 1 + VonMangoldt.quarterClock (z / 4) = Riemann120Analytic.quarterClockStep (z + 1) Riemann120Analytic.quarterClockStep z:ℕ⊢ 1 + VonMangoldt.quarterClock (z / 4) = 1 + Riemann120Analytic.quarterClockStep (z / 4)] z:ℕ⊢ 1 + VonMangoldt.quarterClock (z / 4) = 1 + Riemann120Analytic.quarterClockStep (z / 4)
exact congrArg (1 + ·) (quarterClock_eq_quarterClockStep (z / 4)) All goals completed! 🐙theorem halts_riemann120_iff_not_riemannHypothesis :
Halts riemann120 ↔ ¬ RiemannHypothesis := by ⊢ ConjectureMachines.Halts riemann120 ↔ ¬RiemannHypothesis
refine halts_riemann120_iff_not_riemannHypothesis_of_large ?_ ⊢ RiemannHypothesis →
∀ (n : ℕ),
21845 < n →
↑n - Chebyshev.theta ↑n ≤
(↑(Riemann120Analytic.quarterClockStep (n - 1)) + 1) * 2 ^ Riemann120Analytic.quarterClockStep (n - 1) *
Real.log ↑n
intro hRH n hn hRH:RiemannHypothesisn:ℕhn:21845 < n⊢ ↑n - Chebyshev.theta ↑n ≤
(↑(Riemann120Analytic.quarterClockStep (n - 1)) + 1) * 2 ^ Riemann120Analytic.quarterClockStep (n - 1) * Real.log ↑n
have hlt :=
ConjectureMachines.Riemann120.VonMangoldt.theta_sub_lt_quarterClock_of_ge_21846 hRH n hn hRH:RiemannHypothesisn:ℕhn:21845 < nhlt:↑n - Chebyshev.theta ↑n < (↑(VonMangoldt.quarterClock (n - 1)) + 1) * 2 ^ VonMangoldt.quarterClock (n - 1) * Real.log ↑n⊢ ↑n - Chebyshev.theta ↑n ≤
(↑(Riemann120Analytic.quarterClockStep (n - 1)) + 1) * 2 ^ Riemann120Analytic.quarterClockStep (n - 1) * Real.log ↑n
rw [quarterClock_eq_quarterClockStep hRH:RiemannHypothesisn:ℕhn:21845 < nhlt:↑n - Chebyshev.theta ↑n <
(↑(Riemann120Analytic.quarterClockStep (n - 1)) + 1) * 2 ^ Riemann120Analytic.quarterClockStep (n - 1) * Real.log ↑n⊢ ↑n - Chebyshev.theta ↑n ≤
(↑(Riemann120Analytic.quarterClockStep (n - 1)) + 1) * 2 ^ Riemann120Analytic.quarterClockStep (n - 1) * Real.log ↑n] at hlt hRH:RiemannHypothesisn:ℕhn:21845 < nhlt:↑n - Chebyshev.theta ↑n <
(↑(Riemann120Analytic.quarterClockStep (n - 1)) + 1) * 2 ^ Riemann120Analytic.quarterClockStep (n - 1) * Real.log ↑n⊢ ↑n - Chebyshev.theta ↑n ≤
(↑(Riemann120Analytic.quarterClockStep (n - 1)) + 1) * 2 ^ Riemann120Analytic.quarterClockStep (n - 1) * Real.log ↑n
exact le_of_lt hlt All goals completed! 🐙end ConjectureMachines.Riemann120namespace ConjectureMachines.Riemann104.Semanticsopen ConjectureMachines
The 104-state record machine riemann_104 (ConjectureMachines.Riemann104.candidate) halts on
the blank tape if and only if Mathlib's RiemannHypothesis is false.
theorem halts_candidate_iff_not_riemannHypothesis :
Halts ConjectureMachines.Riemann104.candidate ↔ ¬ RiemannHypothesis :=
ConjectureMachines.Riemann104.candidate_equivalent.trans
ConjectureMachines.Riemann120.halts_riemann120_iff_not_riemannHypothesisend ConjectureMachines.Riemann104.Semanticsend