Pieta · BSD program · October 2026
We pointed Pieta at the function-field analogue of Birch–Swinnerton-Dyer, the one place where BSD is already a theorem. It built a certified corpus of elliptic curves, then audited that corpus until every number held up. Along the way it found six bugs in its own generator and retracted its own favourite result. What remains has been checked four independent ways.
From idea engine to problem solver
Pieta began as an invention engine: generate structurally novel ideas, score them, package them. BSD was its first test as a problem solver, where the output is not a list of ideas but a body of claims that must survive checking. We set it up as a loop with separated roles, so no part of the system got to grade its own work.
A manager model sets the question, the pre-registered bar, and the kill criteria before any run.
A builder writes and runs the code: point counts, L-polynomials, gates, statistics. Every instrument is committed with a hash before its results exist.
An external auditor with its own instruments re-derives the headline numbers from raw data, hunts for gates that cannot fail, and proposes fixes.
A human reads the record and decides. Nothing is published, posted, or claimed without that call.
Why that matters: the loop caught what a single model would have shipped. An outside auditor rebuilt the point counter from scratch, found that the sign of the functional equation had been chosen by loop order rather than derived, and traced it to six concrete lines in the generator. The fix then passed independent checks. The auditor's independent re-derivation of the signs matched the corrected counts curve-for-curve: 1,137 of 1,137.
The ledger
Both columns count as results. A program that can kill its own claims is one whose remaining claims you can trust.
Curves y² = x³ + x + D(t) over 𝔽_q(t), q ∈ {7, 11, 13}, deg D ≤ 5. Each passes the functional equation, exact Riemann-hypothesis check, parity, and a real Sha-is-a-square gate. The other 16 are listed by name: their torsion cannot yet be pinned down, so they are reported but not certified.
The rebuilt generator computes each curve's sign from the global root number instead of trying both. It agrees with independent point counts on 1,137 / 1,137 curves, using neither the counts nor the functional equation.
A Python mirror computed every curve. Sage reproduced it exactly on the 1,143 curves it reached, and a separate numpy character-sum counter checked one more power sum per curve than the L-polynomial was built from: 1,961 pass · 0 fail (the other 31 have nothing to check).
Wachs (arXiv:2603.13802v2) shows these degree-5 L-functions come from Weyl-group elements of E8. All 504 / 504 of our full-degree cases land in his 106 allowed types, and that test now runs as a gate. A later cross-check went further: on every one of the 1,992 curves the certified rank equals mult1(w_D) — the multiplicity of 1 as an eigenvalue of Frobenius on the Mordell-Weil lattice — and every L-polynomial carries exactly the eigenvalue orders his theorem allows. Zero mismatches.
143 distinct cyclotomic types across the corpus (per degree 1 / 4 / 17 / 36 / 101). The old figure of 134 depended on the sign bug; the new one is recomputed and registered.
The certified law — L-function degree = deg rad(4+27D^2) - 2 — was found by counting. The wind-tunnel arc re-derived it from pure surface geometry (Shioda-Tate, infinity fibre included), and a third check read it straight off the L-polynomials: 1,992 / 1,992 agree. The bound rank <= deg rad - 2 holds with zero violations; on 91 curves the arithmetic rank saturates the geometric ceiling.
The tunnel's one built channel — curvilinear Hilbert/Igusa invariants of the bad fibres — reads each curve's root number from pure geometry with 0 / 1,992 ambiguity. Rank parity, no counting involved.
v1 reported a rank-0 versus rank-1 contrast at place degree 2 (z = +2.69). On corrected ranks it falls to z = +2.02, p = 0.047, which does not survive correction for the four degrees we tested. We retracted it under the rules we set before the run.
"2,937 certified" and the later "3,000 / 3,000" are superseded. About a third of the 3,000 rows were repeat draws of the same curve, and some of the old gates could not fail. The count of record is now 1,976 of 1,992 distinct curves.
The sign chosen by loop order, with a silent fallback; a middle coefficient overwritten (48 curves); silent integer truncation (215); a Tamagawa constant that should have depended on q; a hard-coded "perfect square" flag; and sampling with replacement. Each one was found, fixed, and re-tested.
Rank prediction from the function-field family does not transfer to curves over ℚ (AUC 0.5451, below the pre-registered 0.55). This verdict from v1 still stands: rank is encoded differently in the two worlds.
The idea pool's first feed into the math lane: one channel built to the pre-registered standard — from curvilinear Hilbert schemes and Igusa zeta functions, an idea the pool had mis-labelled as lithography — trained on q in {7,11}, tested once on q = 13 against a bar frozen in advance. It did not clear the bar (0.56 < 0.70 exact-rank match). Two further candidate channels were closed by rule before building. What the built channel did see: the root number exactly, and a faint rank-2 skew — since explained (empirically) as the tail of what the profile's coarse image of the Frobenius class leaves undetermined.
The retraction, in one picture
Rank-0 versus rank-1 contrast at each place degree, before and after correction. The dashed line is the significance bar after correcting for testing four degrees (|z| ≈ 2.50). The degree-2 bar was the original headline. On corrected data, no degree clears the line.
This is the pre-registered test working as designed: the same rules that let a result in also took it out.
What we can do now
The corrected pipeline is stronger than the one we started with, and every part of it now ships with a demonstrated way to fail.
For elliptic curves over 𝔽_q(t): an exact L-polynomial, the sign derived from the root number, rank, Tamagawa product, and a Sha check, all tied to a hashed engine version.
Re-derive another team's ranks, signs, or L-polynomials from raw point counts, with no access to their code. This is exactly how we caught our own errors.
Review a verification pipeline for circular checks, hard-coded passes, and validation sets that skip the risky regime. We found four in our own system.
Every rank-dependent number lives in one table with its source file, hash, and status (current, superseded, or retracted). A stale figure can no longer be quoted by accident.
Kummer and Ulmer towers whose ranks follow from a closed-form theorem — the computed examples reach rank 40,353,606. That gives training and test data at ranks nothing over ℚ can supply.
The rule, build, audit, gavel loop is domain-agnostic. BSD was the first hard test, and it carries over to any field where claims need to come with their evidence.
The research paper
The v1 paper set out the corpus, the two-witness certificate pipeline, and the murmuration detection. Everything on this page builds on it. The correction record — erratum v3.8, with the figure registry (v5, 29 rows) and the named 16-curve boundary — was published as Zenodo v1.1 on 7 October 2026; v1.2 is prepared and awaiting release. The sequel paper — audited corpus, type map, towers, the honest null, and the wind-tunnel chapter — is written and assembled. Working title: “Certified Ranks for y²=x³+x+D(t) over 𝔽_q(t): Certification, Correction, and Independent Geometric Channels.”
Count lineage: 2,937 → 2,969 → 2,900 + 100 → 2,978 → 3,000 → 1,976 / 1,992
Erratum: v1.0 → … → v3.2 → v3.3 → v3.8
Zenodo: v1.0 (30 Sep) → v1.1 live (7 Oct) → v1.2 prepared
What comes next
Release
v1.1 went live on 7 Oct with the correction record. v1.2 leads with the corrected numbers and adds a read-first cover, so the correction travels with the file and not just the page.
Paper v2
Assembled: audited corpus, type census, towers, boundary cell, the honest null, and the wind tunnel — pending a title and release.
Math
Resolve torsion on the named boundary curves and wire the Sha field into the certificate. The tunnel's rank-2 signal is now explained: the fibre profile is a coarse map of the Frobenius Weyl class, and the signal is the tail of what that map leaves undetermined.
Engine
The mine ran: two-thirds of the pool is one template. Next: canary curves that make stale figures impossible, and document links for 2,542 atoms — the citation lattice that closes at the atom layer today.