Pieta · BSD program · October 2026

Pieta's first problem, worked to the end.

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.

hover a point
All 10,559 zeros, on 80 points. Every L-function in the certified corpus factors into cyclotomic polynomials, so every zero is a root of unity. Each dot is one root, sized by how many zeros land there. The large dot at z = 1 holds 1,915 zeros: added up, that is the total rank of the corpus. The 17 orders that appear are exactly the set Wachs's theorem allows.
1,976of 1,992 distinct curves certified under every gate
4independent evidence channels - counts, mirror, numpy, Sage
0disagreements across 1,961 cross-checked curves
1,137of 1,137 signs confirmed by first-principles root numbers

From idea engine to problem solver

Same engine, a different job.

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.

  1. Rule

    A manager model sets the question, the pre-registered bar, and the kill criteria before any run.

  2. Build

    A builder writes and runs the code: point counts, L-polynomials, gates, statistics. Every instrument is committed with a hash before its results exist.

  3. Audit

    An external auditor with its own instruments re-derives the headline numbers from raw data, hunts for gates that cannot fail, and proposes fixes.

  4. Gavel

    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

What we proved, and what we disproved.

Both columns count as results. A program that can kill its own claims is one whose remaining claims you can trust.

Proved · verified

A certified corpus of 1,976 curves

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.

Signs derived from first principles

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.

Three independent re-checks, zero mismatches

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).

A theorem-backed check from new literature

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.

A corrected type census: 143

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 degree law, proved twice

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.

An exact root-number witness

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.

Disproved · retracted

The murmuration detection

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.

The old certified counts

"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.

Six generator defects

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.

Naive transfer to ℚ

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 geometric wind tunnel

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

How the signal moved when the ranks were fixed

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.

v1, original ranksv4, corrected ranksBonferroni bar
z-values: T-22 FINAL run (4 degrees × 4 legs) — v4 from t103_final_output.txt (sha 1bc258bf…); v1 from T22_headline_figure_v4.svg (sha b81fbfbe…).

What we can do now

The machinery is the product.

The corrected pipeline is stronger than the one we started with, and every part of it now ships with a demonstrated way to fail.

Certify

Certified L-functions for curve families

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.

Second witness

Independent checks on rank claims

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.

Gate audit

Find the gates that cannot fail

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.

Provenance

A figure registry

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.

Theorem-grade ground truth

Towers with proven rank

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.

Method

Problem solving with separated roles

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

Read the work, and the correction record.

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

Fewer numbers, truer ones, and a bigger method.