A multi-track research effort attacking the Riemann Hypothesis (RH) from the computational and machine-verified side. The unifying idea is the chain
Cayley-graph eigenvalues → Hecke eigenvalues → L-functions → ζ(s)
and the project attacks it along four parallel tracks:
A Neo4j knowledge graph (194 nodes, 161 relationships, 28 RH equivalences)
encodes the theory chain, a 3,460-paper literature corpus is curated in
literature/, and an interactive three.js visualization is deployed on GitHub
Pages.
Seven experiment tracks asked whether GNNs can predict spectral or number-theoretic invariants from graph structure alone. The answer is consistent: GNNs learn within their training distribution but fail to generalize across primes.
| Track | Graph | Target | Baseline R² | GNN R² | Verdict |
|---|---|---|---|---|---|
| 1 | Cayley SL(2,𝔽_p), subgraphs | spectral gap | — | < 0 | failed |
| 2 | Cayley SL(2,𝔽_p), full graph | spectral gap | 0.782 | 0.824 | marginal |
| 3 | Farey graph | spectral gap | 0.9999 | −7.57 | trivial |
| 4 | Cayley, 1 generator | Hecke eigenvalues | 0.41 | −0.21 | failed |
| 5 | Cayley, 10 generators | Hecke eigenvalues | 0.977 | −0.32 | failed |
| 6 | Cayley, 10 generators | spectral gap | 0.43 | −2.12 | failed |
| 7 | Pizer graphs (Hecke T₂) | T₃ eigenvalues | 0.057 | 0.000 | zero generalization |
The failures are mathematically explained, not fixable by tuning:
gap ≈ 2.65/n^(0.999);
a log-log linear baseline hits R² = 0.9999 (0.07% median error). No model can
meaningfully beat a closed-form law.Lesson recorded in the project: distinguishing params of a graph family are global (size, generator set), and learned "explanations" from local structure are not arithmetic. These may be the first systematic negative results at the GNN × number theory interface.
After the Cayley failures, the project pivoted to data scaling: 200,000 weight-2 newforms from LMFDB, 100 Hecke trace coefficients each. This track produced the project's strongest results (see also the comprehensive modular forms paper):
Three new empirical findings came out of this, after fixing a normalization error in the Sato–Tate moment analysis:
The statistical study now archived on Zenodo (DOI 10.5281/zenodo.21974748) analyzes 63,844 weight-2 newforms (568,708 nearest-neighbor zero spacings), fitting the Brody distribution β per form and splitting by Hecke-field dimension:
| Group | β (MLE) | Interpretation |
|---|---|---|
| All forms, aggregate | 0.620 | "intermediate" — misleading |
| dim = 1 (CM) | 1.879 | GUE-like (KS distance 0.017) |
| dim ≥ 2 (non-CM) | 0.242 | near-Poisson |
| rank 0 / rank 1 | 0.676 / 0.538 | intermediate |
The headline: the aggregate "intermediate" repulsion is a mixing artifact. CM forms (~15% of the population) are essentially GUE; non-CM forms (~85%) show dramatically weakened — near-Poisson — level repulsion. A deep-dive confirmed the 1,748 "GUE outliers" among dim ≥ 2 are genuinely repulsive (pooled Brody β) and that CM status explains only 1.1% of them (3.58× enrichment, but 102 forms) — level and root number matter more. This contradicts the folklore that all L-function zeros converge to the same random-matrix limit. Full details in The Dimension Split in L-Function Zero Statistics.
Interactive versions of these findings (ζ landscape, critical line, Brody waterfall through the phase transition) are live at tobias-weiss-ai-xr.github.io/riemann/.
The current active frontier is a machine-verified formalization of the
transfer-operator route to RH in Lean 4 / Mathlib, 38 modules under
lean/Riemann/. The honest accounting is maintained in research/FRONTIER.md
and lean/Riemann/AxiomAudit.lean — every load-bearing declaration carries a
#print axioms dependency bill.
All of the following depend only on the standard [propext, Classical.choice, Quot.sound]:
L_s on C([0,1], ℂ) is a
bounded operator with explicit constant ‖L_s‖ ≤ Σ (n+1)^(−2·Re s) = ζ(2·Re s), together with full summability groundwork.Complex.I), the weak and strong forms are proved
unconditionally — the last gap was closed by a direct resolvent blow-up
argument that made the whole β-stabilization machinery obsolete.‖T_n‖ ≤ 1/(n+1)², and the compact tail assembly — all gate-clean, 0 sorries.The repository carries exactly one open sorry at
lean/Riemann/TransferOperator/Complete.lean:152:
theorem no_zeros_right_half_plane (ρ : ℂ) (hρ : riemannZeta ρ = 0)
(hRe : 1 / 2 < ρ.re ∧ ρ.re < 1) : False := by sorry
This statement — no zero in the strip 1/2 < Re ρ < 1 — is equivalent to the hard half of RH (the FE reflection turns it into the full critical-strip statement). Everything else downstream that looks like a "proof" of RH is honestly labeled:
fredholmDet is a definitional model — ζ(2s)/C(s) by definition, not
det(1−L_s). "Mayer's identity" holds by unfolding, not by spectral theory.modelLeadingEigenvalue = exp(1/2 − s) is a model, chosen so the wanted
unit-disk inequalities hold by calculus; it is not the spectrum of L_s.The honest upgrade path to close the frontier is: (1) Mayer's analytic class — done in phase 1–2; (2) a genuine trace-class Fredholm determinant and Mayer identity on it; (3) Krein–Rutman/ρ(L_s) < 1 down to Re s > 1/4 — each step is exactly as hard as the corresponding half of RH. No free lunch, and the project's own documents say so.
In the MayerHalf campaign the one discrete technical gap is:
isCompactOperator_mayerTail is proven conditionally on every summand
n ≥ 1 being compact. Closing it needs the normal-families fact that pointwise
cluster limits of uniformly bounded holomorphic maps on a domain are
holomorphic (Montel / Vitali–Porter) — which current Mathlib lacks. The
phase-3 queue is: Vitali–Porter, the mayerOperator_eq assembly, and the
Fredholm determinant.
Two Mathlib upstream PRs are in flight: #43744 (Gauss map, CI-green,
awaiting review) and #43776 (LinearMap.det_one_sub_smulRight, rank-1
determinant formula).
The formalization is executed by a task-fleet orchestration — fleets of
worker AI agents in isolated git worktrees, dispatched against Lean tasks with
strict acceptance gates (MAX_SORRY limits, mandatory #print axioms probes,
grep-based admit sweeps). The orchestration log
(TASKFLEET_RH_ORCHESTRATION.md) records hard-won process lessons:
Infrastructure: a Docker research stack (PyTorch 2.10 / CUDA 12.6, PyG, CayleyPy, SageMath profile, Neo4j), a Makefile, and the 3,460-paper literature corpus (853 GNN/Cayley, 251 transfer-operator, 861 Hecke/L-function papers).
| Track | State |
|---|---|
| GNN on Cayley/Farey/Pizer graphs | completed — negative results, documented |
| ML on 200k newforms | completed — 3 new findings, comprehensive paper |
| L-function zero statistics | published — Zenodo DOI, interactive viz live |
| Lean 4 formalization | active — one open sorry (the RH-equivalent statement), everything else axiom-clean |
| Mathlib upstream PRs | 2 open (#43744, #43776) |
| Literature corpus | 3,460 papers curated |
| Knowledge graph | 194 nodes, 28 RH equivalences |
Bottom line: the project has a clean bill of health on honesty — the hyped
"RH PROVEN" slogans of earlier status sheets were audited, corrected, and
replaced by a machine-checkable account of what actually holds. What holds is
substantial and real (transfer-operator analysis, full Krein–Rutman, zero-free
regions, a published statistical discovery about GUE vs. Poisson splitting in
L-function zeros), and the remaining open step is stated with surgical
precision: one Lean sorry that is exactly RH's hard half — plus one
missing normal-families lemma in Mathlib to finish the Mayer compactness
argument. The next milestones are phase 3 of the Mayer campaign and landing
the two Mathlib PRs.