Current task: —

Formal Verification — Lean 4

The machine-checked proof chain behind the finite-height Li theorem (package research/lean/NguyenRH1/, built against Mathlib + the vendored zeta-23-lean). Toolchain: leanprover/lean4:v4.33.0-rc2.

29
source files
27906
lines of Lean
879
declarations
5
sorries (skeletons only)
22
axiom audits
483
declarations audited

Axiom policy — the transparency guarantee

Every proved declaration in the chain depends on exactly the three standard axioms: propext, Classical.choice, Quot.sound — the same axioms any Mathlib proof uses. Zero sorryAx (no skipped proofs) anywhere in the proved chain; the 5 sorries below are confined to the two skeleton files (Suzuki / valley — future tiers, not used by the closed theorem). The audit transcripts at the bottom of this page are the raw #print axioms output verifying this, per declaration.

The closed theorem — LiClosed.lean (verbatim)

/-
LiClosed.lean — tier ii′-7: THE CLOSED finite-height Li theorem (R-004
endpoint, D-062 §4). `lambda_pos_finite_height_closed`: λ_n > 0 for all
1 ≤ n ≤ N₁ = (3×10¹²−1)² ≈ 9×10²⁴ from the SEVEN declared hypotheses:
the two computational certificates (Platt–Trudgian `RHUpTo`; the finite
Li verification `LiVerifiedUpTo` — E-011/E-015 to 3000 + Johansson 2015
§ 4.2 to 10⁵) and the five analytic perimeter Props (Trudgian N(T)/S(T):
`ZeroCountProp` unit-window, `ZeroCountProp2` two-unit,
`ZeroCountGlobalProp` global; the Platt-class zero-location certificate
`NoLowZeros`; the M₀ interval certificate `MZeroProp`) — the session-012
named analytic hypothesis `SfBoundProp` is now PROVED (tier ii′-6,
LiSideBounds).
-/
import Mathlib
import NguyenRH1.LiBasePoints
import NguyenRH1.LiSideBounds

open Zeta23 Complex Filter Topology

namespace NguyenRH1

/-- **THE CLOSED FINITE-HEIGHT LI THEOREM** (R-004, ii′-7 endpoint):
λ_n > 0 for ALL 1 ≤ n ≤ N₁ = (3×10¹²−1)² ≈ 9×10²⁴, from the SEVEN
declared hypotheses (two computational certificates + five analytic
perimeter Props). The session-012 named analytic hypothesis
`SfBoundProp` is discharged by ii′-6's `sfBoundProp`. -/
theorem lambda_pos_finite_height_closed
    (hRH : RHUpTo (3 * 10 ^ 12)) (hfinite : LiVerifiedUpTo (10 ^ 5))
    (hZC : ZeroCountProp) (hZC2 : ZeroCountProp2) (hZCG : ZeroCountGlobalProp)
    (hNLZ : NoLowZeros) (hMZ : MZeroProp) :
    ∀ n : ℕ, 1 ≤ n → (n : ℝ) ≤ (3 * 10 ^ 12 - 1 : ℝ) ^ 2 →
      0 < (liCoeff n).re :=
  lambda_pos_finite_height_verified hRH hfinite
    (sfBoundProp hRH hZC hZC2 hZCG hNLZ hMZ)

end NguyenRH1

The declared perimeter — 7 hypotheses

The theorem is conditional on these seven statements (two published computational certificates + five analytic perimeter Props from the declared literature). Each is shown verbatim from source; click to expand.

RHUpTo — Platt–Trudgian computational certificate: RH verified to height T₀ = 3×10¹². (LiSkeleton.lean, line 354)
def RHUpTo (T₀ : ℝ) : Prop :=
  ∀ ρ : ℂ, IsNontrivialZero ρ → |ρ.im| ≤ T₀ → ρ.re = 1 / 2
LiVerifiedUpTo — Finite Li-coefficient verification (our tables to n = 3000 + Johansson 2015 § 4.2 to 10⁵). (LiSkeleton.lean, line 361)
def LiVerifiedUpTo (N : ℕ) : Prop :=
  ∀ n : ℕ, 1 ≤ n → n ≤ N → 0 < (liCoeff n).re
ZeroCountProp — Trudgian N(T)/S(T): unit-window zero count, multiplicity-weighted. (LiContour.lean, line 86)
def ZeroCountProp : Prop :=
  ∀ t : ℝ, 2 ≤ t →
    (((zeroWindow_finite t).toFinset.sum fun ρ => zeroMult ρ) : ℝ) ≤ C0hat (t + 1)
ZeroCountProp2 — Trudgian two-unit window specialization. (LiContour.lean, line 115)
def ZeroCountProp2 : Prop :=
  ∀ t : ℝ, 10 ≤ t →
    (((zeroAbsWindow_finite t).toFinset.sum fun ρ => zeroMult ρ) : ℝ) ≤
      0.6 * Real.log (t + 2) + 0.886 * Real.log (Real.log (t + 2)) + 2.7
ZeroCountGlobalProp — Trudgian global N(T) bound. (LiContour.lean, line 153)
def ZeroCountGlobalProp : Prop :=
  ∀ T : ℝ, 2 ≤ T →
    (((zeroGlobalWindow_finite T).toFinset.sum fun ρ => zeroMult ρ) : ℝ) ≤ FAlt T
NoLowZeros — Platt-class zero-location certificate: no zeros with |γ| < 14. (LiContour.lean, line 130)
def NoLowZeros : Prop :=
  ∀ ρ : ℂ, IsNontrivialZero ρ → 14 ≤ |ρ.im|
MZeroProp — M₀ interval certificate (the low-|t| gap bound). (LiContour.lean, line 163)
def MZeroProp : Prop :=
  ∀ t : ℝ, |t| ≤ 10 →
    ‖logDeriv riemannZeta ((-5 / 2 : ℂ) + (t : ℝ) * Complex.I)‖ ≤ 1.3352

Source files

FileLinesDeclarationsSorriesUpdated
LiArchimedean.lean 2526 0 08-22-2026
LiAssembly.lean 47616 0 08-25-2026
LiBasePoints.lean 71726 0 08-26-2026
LiCircleBound.lean 392965 0 08-24-2026
LiClosed.lean 371 0 08-26-2026
LiContour.lean 80733 0 08-25-2026
LiCrux.lean 4388 0 08-25-2026
LiDigamma.lean 103651 0 08-22-2026
LiDigammaLeft.lean 104315 0 08-23-2026
LiDisc.lean 136257 0 08-22-2026
LiDogLeg.lean 142344 0 08-26-2026
LiFEntire.lean 112930 0 08-23-2026
LiGapCircles.lean 2062 0 08-24-2026
LiMoments.lean 101450 0 08-25-2026
LiPrincipal.lean 31415 0 08-21-2026
LiRBound.lean 75528 0 08-22-2026
LiReflect.lean 99326 0 08-23-2026
LiResidue.lean 26416 0 08-21-2026
LiSeries.lean 60422 0 08-23-2026
LiSideBounds.lean 173127 0 08-26-2026
LiSides.lean 52225 0 08-22-2026
LiSkeleton.lean 2828115 0 08-26-2026
LiSqueeze.lean 3425 0 08-24-2026
LiSwaps.lean 41415 0 08-22-2026
LiTightR.lean 4480152 0 08-24-2026
LiTrivialZeros.lean 3479 0 08-23-2026
LiZetaCoeff.lean 2679 0 08-22-2026
SuzukiSkeleton.lean 725 1 (skeleton) 08-20-2026
ValleySkeleton.lean 1046 4 (skeleton) 08-20-2026

Axiom audits (#print axioms transcripts)

The session-013 audit predates the tier-ii′ closure: its 5 sorryAx lines are the intended skeleton statements (1 Suzuki + 4 valley — future tiers, not used by the closed theorem). Every later audit is fully clean.

AuditDeclarationsStatusUpdated
audit-session013-axioms.txt 139 5 sorryAx — intended skeletons 08-20-2026
audit-session024-axioms.txt 32 3 standard axioms only 08-22-2026
audit-session025-axioms.txt 26 3 standard axioms only 08-23-2026
audit-session026-axioms.txt 8 3 standard axioms only 08-23-2026
audit-session027-axioms.txt 2 3 standard axioms only 08-23-2026
audit-session027b-axioms.txt 11 3 standard axioms only 08-23-2026
audit-session027c-axioms.txt 15 3 standard axioms only 08-23-2026
audit-session028-axioms.txt 22 3 standard axioms only 08-23-2026
audit-session029-axioms.txt 30 3 standard axioms only 08-23-2026
audit-session032-axioms.txt 19 3 standard axioms only 08-24-2026
audit-session033-axioms.txt 14 3 standard axioms only 08-24-2026
audit-session034-axioms.txt 5 3 standard axioms only 08-24-2026
audit-session035-axioms.txt 5 3 standard axioms only 08-24-2026
audit-session036-axioms.txt 22 3 standard axioms only 08-24-2026
audit-session036b-axioms.txt 11 3 standard axioms only 08-24-2026
audit-session037-axioms.txt 1 3 standard axioms only 08-24-2026
audit-session038-axioms.txt 23 3 standard axioms only 08-25-2026
audit-session038b-axioms.txt 8 3 standard axioms only 08-25-2026
audit-session038c-axioms.txt 8 3 standard axioms only 08-25-2026
audit-session038d-axioms.txt 12 3 standard axioms only 08-25-2026
audit-session040-axioms.txt 41 3 standard axioms only 08-26-2026
audit-session041-axioms.txt 29 3 standard axioms only 08-26-2026