Named theorems of number theory, verified from scratch in C++ — where the process is designed to catch fitting the answer.
github.com/DerekMarshall/primeknots · 63 tests, 0 failing · MIT
Act I — the failure mode
A survey that read as mathematics
A research roadmap mixed real arithmetic topology with a fabricated object — a "chaotic operator O_x" with invented properties.
In prose, the fiction was indistinguishable from the facts: same register, same citations-shaped scaffolding.
Nothing in the reading experience separated the true claims from the false one.
The behavior, not the tool: unverified synthesis — assembling plausible text without a mechanism that could reject a wrong piece.
Act I — the failure mode
Why it survived five revisions
Each critique was absorbed as camouflage: the text got more plausible, not more true.
Every review pass raised the polish and lowered the visibility of the seam.
Agreement with a reviewer is not evidence. Neither is agreement with expectation.
Related behaviors seen elsewhere in the project's own history: fitting a result to an expected value, and fabricating a citation. Same root — no falsifying step.
Act I — the moral
Rule 1
Agreement with expectation is evidence only when the process makes fitting detectable and costly.
Never fit conventions to expected answers. If a published anchor comes out wrong, the bug is in the code or in our reading of the source — go fix the reading. Flipping a sign until the known number appears is falsification of the experiment.
Everything after this slide is the machinery built to enforce Rule 1.
Act II
The dictionary and the ladder
One analogy — primes as knots — climbed one theorem at a time, each rung a running test.
Act II — the dictionary
Primes ↔ knots
Spec ℤ[1/S] ↔ a 3-manifold with boundary (one "knot" per prime in S).
Legendre symbol ↔ linking number.
Rédei symbol ↔ triple (Milnor) linking.
class group ↔ H₁; ζ-zeros ↔ a spectrum.
Morishita's Knots and Primes [M12] is the dictionary; the whole ladder is this one analogy, made executable.
Legendre/Jacobi symbols, Tonelli–Shanks, Miller–Rabin — from scratch, u128 built-ins only.
Twin: every symbol computed by Euler's criterion and by the reciprocity law — two algorithms, cross-checked.
Three coverages, stated separately (not one "exhaustive to 10⁷"):
the reciprocity law over all pairs of odd primes < 3×10⁴ — 5,260,146 pairs;
both supplements over all 664,578 odd primes < 10⁷;
the Euler-vs-reciprocity twin — 53,165,634 symbol agreements, exhaustive to 10⁷.
reciprocity 5,260,146 pairs to 3×10⁴ · supplements 664,578 primes to 10⁷ · twin 53,165,634 agreements to 10⁷
Act II — Stage 1
The linking matrix
The matrix (p/q) = (−1)^{lk₂(p,q)} over primes ≡ 1 (mod 4). It is symmetric — the picture is quadratic reciprocity.symmetry over 39175×39175 (1.53×10⁹ bits, no sampling)
Act II — Stage 2
The Rédei symbol
The triple symbol [a,b,c] ∈ {±1} is the mod-2 triple Milnor invariant — a Massey product in Galois cohomology (Morishita [M04]).
Rédei reciprocity: full S₃ symmetry under all six permutations of the arguments — 2022 mathematics (Stevenhagen [S22]), verified over every valid triple in range.
The 2-adic normalization is the delicate part: pinned to the source before any code (stage2-pinning §8), with invariance senior to anchor.
702,788 triples × 6 = 4,216,728 symbol evaluations agree
Act II — Stage 2
Borromean primes
Triples pairwise unlinked yet triple-linked ([a,b,c]=−1). Anchor: [13,61,937] = −1, the standard Borromean triple (Morishita [M12]); the normalization is pinned to Stevenhagen [S22]/Corsman [C07].[13,61,937] = −1, the [M12] standard Borromean triple
Act II — Stage 3
Class groups as H₁ — the 4-rank
Rédei–Reichardt: the 4-rank of the narrow class group (form side) equals the F₂-rank of the linking matrix (linking side). Two computations, one diagonal.1,986 discriminants; form-rank = linking-rank; oracle bnfnarrow
Act II — Stage 4
Arithmetic Chern–Simons (mod 2)
The mod-2 Dijkgraaf–Witten partition function Z_c, computed as a brute character sum (LHS) and a closed form (RHS) — in separate translation units, disjoint authoring sessions. Agreed on first comparison.LHS = RHS over 386 gated prime sets (4,810 extended)
Act II — Stage 4 · honesty
The degenerate case, named as such
The mod-2 (Hirano) case is the degenerate one: Chern–Simons is F₂-linear, so the identity reduces to linear algebra on the linking matrix.
The contribution was the pinning and a hypothesis erratum: RESEARCH.md's "p = 2 over ℚ" is unlicensed — CKKPPY Thm 1.1 needs odd p over a totally imaginary field.
The odd-p Gauss-sum case is future work, not a result here.
A slide that oversold this would fail our own review.
Act II — Stage 5
The Weil explicit formula
ψ(x) rebuilt from ζ zeros. Zeros by Riemann–Siegel, twinned against Euler–Maclaurin, completeness Turing-certified (not Gram's law). Beside it: a model flow (next slide).first 10⁴ zeros match Odlyzko to ≥8 dp (max dev 2.9×10⁻⁹)converges to the jump midpoint ψ₀, not ψ(x)
Act II — Stage 5 · the model flow
Where the identity IS geometry — and where it isn't
A subshift's Ruelle zeta: Euler product over closed orbits = 1/det(I−L_s), exactly — orbits genuinely exist, the identity is geometry.
Arithmetic satisfies the same identity shape (primes ↔ orbits, zeros ↔ spectrum)…
…but no such dynamical system is constructed.
Deninger's foliated flow: not constructed — that gap is the program [D98].
Euler product = determinant, agreement ~9×10⁻¹⁶ over an s-grid
Act II — Stage 6
Non-abelian S₃ counting
Z_DW = |Hom(π₁,S₃)|/6 = 1/6 + (2ᵗ−1)/2 + (3ᵏ−1)/6 + c. The S₃ term c (cubic iso classes) refereed two independent ways: PARI nflist and K. Belabas's cubic.mass formula exact over 16 sweep instances (exact rational)Belabas = PARI on all 14 feasible sets (2 skipped: D_max = ∏p² > the 10⁷ full-enumeration bound)
Act III
The harness
The part that makes agreement mean something.
Act III — the five categories
How every claim is tested
twin_ — two independent algorithms agree (never optimize both; keep the naive one as referee).
theorem_ — a named theorem over an exhaustive/sampled range.
anchor_ — a specific published value (e.g. [13,61,937]=−1).
invariance_ — independence from an arbitrary choice (sqrt branch, solution, ordering).
oracle_ — PARI/GP, the Odlyzko table, Belabas's cubic — referee, never in src/; SKIP visibly when absent.
invariance_ is senior to anchor_. A passing anchor with a failing invariance means the convention is still wrong.
Act III — process
Gates, pinning, pre-registration
Two-phase gates: convention-free code first; the normalization is pinned to a source in docs/notes/ before the load-bearing code is written.
Pre-registration: Stage 4's LHS and RHS were built in separate translation units, in disjoint sessions, each seeing only its own spec. A mismatch would have been a deliverable, not a bug to reconcile.
Stratify the sweep — and sometimes prove the stratum void: mod-8 third slot, corank cells, all-odd×odd-r (empty by parity), and the signature stratum void by Stickelberger.
Scope: this is n=1 — one project, one problem class, one operator. It is an existence proof that the discipline can be applied here, not evidence that it generalizes.
Act III — the ledger
ERRATA — everyone was caught
Every party that touched this project was caught in at least one error. Every catch was a computation or a citation — never an argument from authority.
roadmap generator — O_x, by a coherence check
spec author — two RESEARCH.md errata, by pinning + a witness value
human reviewer — R1, equal-parity (killed by the √65 witness), signature-mix (void by Stickelberger)
external (LLM) referee — a fabricated citation, by the verbatim-quote protocol — the same referee made a genuine catch
coding agent — strat counter (parity), signed-a (associativity), generator cap (sweep), 2c/6c (mass formula), PDFs-in-history, missing headers (a second compiler)
(A selection — the full ledger has 18 rows, including this deck review's own two and the CI freshness guard's finding.)
18 entries in docs/ERRATA.md (selection above); authority-catches: 0
Act IV
Results and horizons
Act IV — results
What was verified
The full ladder, Stages 0–6, green.
Every number on these slides is verified numerically over N cases, N pulled from emitted JSON or test output — never "proved" (that word is for literature theorems, with citation).
Empirics are labeled observed, not asserted: Borromean rate 51.6%; negative-Pell fraction 0.666 vs the Koymans–Pagano asymptotic 0.5805; N_{S₃} growth.
63 tests, 0 failing (10 oracle-refereed); extended run all green
Act IV — honesty
What is NOT claimed
No new mathematics. Every theorem verified here is known (Gauss 1801 through Stevenhagen 2022); the outputs are the verification, the tables, and the method.
Verified numerically over N cases ≠ proved. No slide asserts anything the suite doesn't test.
Deninger's dynamical system is not constructed — the gap is the program, not a result.
The mod-2 Chern–Simons case is degenerate (F₂-linear); the odd-p Gauss sum is future work.
Act IV — horizons
Where it goes
Odd-p arithmetic Chern–Simons over totally imaginary fields (CKKPPY in-hypothesis) — the non-degenerate case, as future infrastructure.
Murmurations — an active area (2022): statistical structure in arithmetic data that this kind of harness is built to probe.
References: RESEARCH.md §10. The pictures on these slides are the repo's own viewers, rendering the same emitted JSON the tests consume.