arithmetic topology, executable

primeknots

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

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

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.

Stage 0 reciprocity
Stage 1 linking matrix
Stage 2 Rédei / Borromean
Stage 3 4-rank
Stage 4 Chern–Simons (mod 2)
Stage 5 explicit formula
Stage 6 S₃ Dijkgraaf–Witten
Act II — Stage 0

Reciprocity, the base case

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

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.

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

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

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

63 tests, 0 failing (10 oracle-refereed); extended run all green
Act IV — honesty

What is NOT claimed

Act IV — horizons

Where it goes

References: RESEARCH.md §10. The pictures on these slides are the repo's own viewers, rendering the same emitted JSON the tests consume.

← / → · 1/1