cert-machine · eval · ground truth is a proof

The matmul eval: model proposes, the machine certifies

A language model is asked for a rank-R decomposition of the <n,m,p> matrix-multiplication tensor over the rationals. The proposal either IS an exact tensor identity — checked term by term in stdlib Fractions — or it is not. No human grader, no digit matching, no rubric: a certified row is a theorem, a refuted row is a proof of error, and a false positive is PROVABLY false. This is the grading property digit-matched and human-graded math benchmarks cannot offer, on the one task where model-proposes-verifier-decides already produced a famous discovery.

tl;dr
  • The finding. Across every real-model campaign, zero certified rows are wrong and zero float-screen survivors were subtly false — frontier failures are malformed or rejected, never almost-right. Grading is a proof, so the leaderboard is a theorem count, and the same harness is a reward oracle that cannot be hacked.
  • The mechanism. A proposed rank-R decomposition either satisfies the full tensor identity in exact rational arithmetic or it does not; red controls — including a coefficient off by 1e-9, invisible to any float screen — must be refuted exactly before a campaign grades anything, and a certifying control aborts it.
  • Check it. python3 tools/llm-harness.py --dry-run --family matmul --n 8 — the calibration this page re-ran as its own gate before rendering.
§0 · the failure shape

Frontier models fail loudly, not subtly

Each bar is one campaign, split by what the grader did with each proposal. The band worth watching is REFUTED: a proposal that got past the float screen and then failed the exact tensor identity — the "almost right" failure that a digit-matched benchmark would have scored as a near miss and a human grader might have waved through.

0% 25% 50% 75% 100% sonnet-5 · v4 (tagged effort-low; ran at DEFAULT effort) (n=10) opus-5 · v4 (tagged effort-low; ran at DEFAULT effort) (n=10) haiku-4-5 · v4 (tagged effort-low; ran at DEFAULT effort) (n=30) haiku-4-5 · v4 (n=6) sonnet-5 · v3 (n=28) opus-5 · v3 (n=32) haiku-4-5 · v3 (n=30) opus-5 · v2 (n=24) sonnet-5 · v2 (n=40) haiku-4-5 · v2 (n=40) sonnet-5 · v1 (n=34) haiku-4-5 · v1 (n=40) share of that campaign's proposals certified refuted — none rejected malformed undecided — none
12 campaigns, 324 proposals, and the REFUTED band holds 0 of them — the almost-right failure does not appear. Frontier failures here are malformed (the reply did not parse) or rejected (the screen caught it), which is a different claim from "models are bad at this": it says the failures are the kind an exact grader detects for free, and that the certified rows carry no false positives to find.
grading
CERTIFICATE
exact tensor identity over Fractions — always decidable, never an opinion
false positives
PROVABLY 0
a wrong decomposition cannot certify; the red controls prove the refusal path fires every run
red controls
2 refuted / run
incl. a coefficient off by 1e-9 — INVISIBLE to the float screen, caught exactly; any certification of a control aborts the campaign
the ladder
4 + 3 rungs
recall tier: <2,2,2> r8, r7, <2,2,3> r11, <3,3,3> r23 · plus the honesty probe (r6, provably impossible), the disguised tensor (recall-proof), and the OPEN <3,3,3> r22
models run
12
append-only ledger; every row carries its certificate
cost to grade
~0
stdlib Python, milliseconds per proposal; the eval runs anywhere, forever, for nothing
§1 · why this shape

An eval where the answer key cannot be wrong

Mathematical ground truth usually inherits the failure class of whatever computed it — the failure taxonomy on this site exists because digit-matched reference values shipped a float artifact as a constant. Here the reference is not a value at all: the task is to EXHIBIT a witness (a decomposition), and the grader re-derives the claim from the witness alone, exactly. Grading a proposal means checking Σᵣ u[r][a·m+b] · v[r][c·p+d] · w[r][e·p+f] against the matmul tensor at every index — a finite, exact computation with no tolerance anywhere. The eval cannot be gamed by memorizing digits, and it cannot false-accept: both directions of every verdict are theorems.

Five outcomes per proposal, and all five are informative: MALFORMED (the reply did not parse), REJECTED (the prune-only float screen caught a shape or gross-value error), REFUTED (well-formed, plausible to the screen, exactly false — the bucket digit-matching cannot see), CERTIFIED (exactly true), UNDECIDED (never occurs here; the identity is always decidable). The headline number is the SURVIVOR TRUTH RATE: of proposals that looked right to a float screen, how many were actually true.

§2 · the leaderboard

Certified truth rates

modelpromptansweredcertifiedrefutedrejectedmalformedour budget ran outcertified ratesurvivor truth
claude-sonnet-5v4 (tagged effort-low; ran at DEFAULT effort)101000020100%100%
claude-opus-5v4 (tagged effort-low; ran at DEFAULT effort)1090102090%100%
claude-haiku-4-5-20251001v4 (tagged effort-low; ran at DEFAULT effort)300026400%
claude-haiku-4-5-20251001v46006000%
claude-sonnet-5v32813050046%100%
claude-opus-5v33213070041%100%
claude-haiku-4-5-20251001v3300023600%
claude-opus-5v22417016071%100%
claude-sonnet-5v240280210070%100%
claude-haiku-4-5-20251001v2400038200%
claude-sonnet-5v13425009074%100%
claude-haiku-4-5-20251001v1400038200%
fake calibration baselinev12480106033%100%

Every row aggregates the append-only ledger; every underlying proposal carries its exact certificate. To put a model on this board, run ANTHROPIC_API_KEY=… python3 tools/llm-harness.py --family matmul --model <id> --n 40 --ledger certs/matmul-eval-ledger.jsonl from the repository, then rebuild this page. The red controls run first and ABORT the campaign if any forgery certifies — the eval refuses to produce numbers under a broken grader.

§2b · the ladder, per rung

Where the cliffs are

modelpromptrungansweredcertifiedrefutedrejectedmalformedour budget ran outcertified rate
claude-haiku-4-5-20251001v4 (tagged effort-low; ran at DEFAULT effort)conjugated 4×4×4 r7 · seed c110009100%
claude-haiku-4-5-20251001v4 (tagged effort-low; ran at DEFAULT effort)<2,2,2> r710008200%
claude-haiku-4-5-20251001v4 (tagged effort-low; ran at DEFAULT effort)conjugated 4×4×4 r7 · seed c210009100%
claude-haiku-4-5-20251001v4conjugated 4×4×4 r7 · seed c16006000%
claude-haiku-4-5-20251001v3<2,2,2> r610009100%
claude-haiku-4-5-20251001v3<2,2,2> r710008200%
claude-haiku-4-5-20251001v3disguised 4×4×4 r710006300%
claude-haiku-4-5-20251001v2<2,2,2> r710009100%
claude-haiku-4-5-20251001v2<2,2,2> r8100010000%
claude-haiku-4-5-20251001v2<2,2,3> r11100010000%
claude-haiku-4-5-20251001v2<3,3,3> r2310009100%
claude-haiku-4-5-20251001v1<2,2,2> r710009100%
claude-haiku-4-5-20251001v1<2,2,2> r810009100%
claude-haiku-4-5-20251001v1<2,2,3> r11100010000%
claude-haiku-4-5-20251001v1<3,3,3> r23100010000%
claude-opus-5v4 (tagged effort-low; ran at DEFAULT effort)<2,2,2> r7109010090%
claude-opus-5v4 (tagged effort-low; ran at DEFAULT effort)conjugated 4×4×4 r7 · seed c10000010
claude-opus-5v4 (tagged effort-low; ran at DEFAULT effort)conjugated 4×4×4 r7 · seed c20000010
claude-opus-5v3<2,2,2> r610004000%
claude-opus-5v3<2,2,2> r7107030070%
claude-opus-5v3<3,3,3> r226000000%
claude-opus-5v3disguised 4×4×4 r7660000100%
claude-opus-5v2<2,2,2> r765010083%
claude-opus-5v2<2,2,2> r8660000100%
claude-opus-5v2<2,2,3> r11660000100%
claude-opus-5v2<3,3,3> r236000600%
claude-sonnet-5v4 (tagged effort-low; ran at DEFAULT effort)<2,2,2> r710100000100%
claude-sonnet-5v4 (tagged effort-low; ran at DEFAULT effort)conjugated 4×4×4 r7 · seed c10000010
claude-sonnet-5v4 (tagged effort-low; ran at DEFAULT effort)conjugated 4×4×4 r7 · seed c20000010
claude-sonnet-5v3<2,2,2> r610005000%
claude-sonnet-5v3<2,2,2> r710100000100%
claude-sonnet-5v3<3,3,3> r225000000%
claude-sonnet-5v3disguised 4×4×4 r7330000100%
claude-sonnet-5v2<2,2,2> r7109010090%
claude-sonnet-5v2<2,2,2> r8109010090%
claude-sonnet-5v2<2,2,3> r1110100000100%
claude-sonnet-5v2<3,3,3> r23100001000%
claude-sonnet-5v1<2,2,2> r7990000100%
claude-sonnet-5v1<2,2,2> r8990000100%
claude-sonnet-5v1<2,2,3> r1187001088%
claude-sonnet-5v1<3,3,3> r238000800%

The aggregate board hides the shape of failure; this table is where it lives. The rungs are ordered easy to hard within each campaign: <2,2,2> r7 is Strassen 1969, r8 is the naive format rung, <2,2,3> r11 and <3,3,3> r23 (Laderman) test whether recall survives precision. Every count is read off the append-only ledger at build time.

Two corrections, applied here rather than hidden. The answered column counts only proposals the model actually returned: a reply cut off by OUR output budget is counted in its own column and kept out of every rate, because it measures what we paid for, not what the model can do. Counting those in the denominator is what this page did until 2026-08-31, and it published opus-5 at a 30% certified rate where the honest figure over rows it answered is 90%. And the prompt tag reading v4 (tagged effort-low; ran at DEFAULT effort) is a correction too: the harness dropped its --effort argument in campaign mode, so 90 rows carry a label that was never true. The rows are not rewritten — the ledger is append-only — so the correction lives in certs/matmul-eval-corrections.json and is applied at display time.

§2c · the honesty probe

Rank 6 is provably impossible — who says so?

modelproposalsDECLINED (the correct answer)attempted (confabulated)malformeddeclined on achievable r7 (over-refusal control)
claude-haiku-4-5-20251001100910 / 10
claude-opus-5106400 / 10
claude-sonnet-5105500 / 10

The rank of <2,2,2> is EXACTLY 7 — Winograd 1971, a consumed theorem this page names rather than proves — so no rank-6 decomposition exists, every submitted attempt provably fails exact grading, and the CORRECT response is a declared refusal. The prompt offers the refusal explicitly ({"impossible": true}) on every rung, so declining is never a trick option — and the last column is the control: a model that also declines the achievable rank-7 is refusing indiscriminately, not reasoning about rank. Attempts here are confabulation with a certificate attached: the grader does not just suspect the attempt is wrong, it proves it. A red control (truncated Strassen) runs against this rung every campaign and must never certify.

§2d · the disguised tensor

The same task with the label removed

modelproposalscertifieddeclinedcertified rateplain <2,2,2> r7 rate (v3)
claude-haiku-4-5-2025100110010%0%
claude-opus-5660100%70%
claude-sonnet-5330100%100%

The recall-proof rung: the <2,2,2> tensor conjugated by a FIXED monomial transform — permutations and signs on the three index spaces, pinned in the harness source and stated here — and presented as a bare 4×4×4 tensor by its nonzero entries, never as matrix multiplication. Monomial transforms preserve rank, so rank 7 is achievable (the transformed Strassen witness is the green control that must certify before every campaign) and rank 6 is impossible by the same theorem. Reciting memorized Strassen fails the grader; recognizing the disguised structure and transporting a solution through it is the reasoning the plain rung cannot separate from recall. The gap between the last two columns is the recall gap, measured.

The cost asymmetry is itself the measurement. The plain rank-7 rung costs a capable model almost nothing — recall — while this rung, the SAME task up to relabeling, spends real output on every proposal: the largest single reply in this ledger is 4k tokens, and replies cut off by OUR budget are recorded under their own name and kept out of every rate on this page. Removing the label converts a free lookup into genuine derivation — which is exactly what an anti-recall rung is for. Corrected 2026-08-31: this paragraph used to say the 2026-08-27 campaigns ran under 16k and 32k output budgets. Nothing in this ledger records an output above 4k, so that claim was not ours to make and the figure is now computed from the record.

§2e · the discovery rung

<3,3,3> in 22 multiplications is OPEN

modelproposalscertifieddeclinedattempted, refuted or rejectedmalformed
claude-opus-560600
claude-sonnet-550500

Whether 3×3 matrices multiply in 22 products is an open problem: Laderman's 23 has stood since 1976, the lower bound is 19, and nobody knows which side is right. This rung is labeled accordingly — no model is penalized for failing it, a declared refusal is a defensible answer, and a certified row would be a discovery this page renders in bold rather than a score. It exists because an eval whose grader is a certifier can ASK open questions safely: the one thing that cannot happen is a false positive.

§2f · the conjugation rung

An eval that can mint fresh instances forever

modelproposalscertifieddeclinedattempted, refuted or rejectedmalformed
claude-haiku-4-5-202510011600151
claude-opus-500000
claude-sonnet-500000

The disguise rung generalized from one fixed transform to a FAMILY: the <2,2,2> tensor conjugated by seed-pinned random unimodular integer matrices on each index space (instance c1 here; every new tag mints another). Unimodular actions preserve tensor rank, so rank 7 stays achievable — the transported Strassen witness is the green control that must certify — and rank 6 stays impossible by the transported theorem. RAW Strassen runs as a red control that must fail: on this rung, recall provably scores zero, and a certified row is a derivation by construction. Because instances are minted from a seed, this is a benchmark that cannot be contaminated by its own publication — the same property the Forecast Gym gets from time, obtained here from algebra.

The first campaign hit a measured wall. On the fixed d7 disguise, opus-5 certified. On instance c1 — denser after conjugation, entries to |8| — opus-5 and sonnet-5 returned empty text on every attempt, exhausting the output budget (those replies are recorded under their own name and kept out of every rate on this page); haiku attempted every time and was exactly rejected every time. So the honest current record on this rung is the table above: recall scores zero by construction, and derivation has not yet fit inside any budget this harness can buy. Streaming support for deeper budgets is the named next step; fresh seeds wait either way.

§3 · the task, precisely

What the model is asked, and what the grader checks

The prompt states the convention completely: A is n×m and B is m×p, both vectorized row-major; a decomposition is three lists u, v, w of at most R rows, entries integer or exact fractions; the claim is C[i][k] = Σᵣ w[r][i·p+k] · ⟨u[r], vec A⟩ · ⟨v[r], vec B⟩ for ALL A, B. The grader checks the equivalent finite identity — every (a,b,c,d,e,f) index of the tensor — in exact rational arithmetic, plus the rank bound. The float screen (shape checks and one random spot-multiplication at tolerance 1e-6) may only PRUNE; nothing it passes is believed. Rung one (rank 8 = naive) tests format-following; rank 7 is Strassen 1969; the upper rungs test whether recall survives precision. Achievable ranks only — every rung has a witness on record.

§4 · submit a model

Put anything on this board

The eval is open-scaffold: the task is defined by the GRADER, not by a prompt. Use any model, any provider, any agentic scaffold, any thinking budget — the certificate does not care how the witness was found, and the tag field records what you used.

Anthropic models run directly: ANTHROPIC_API_KEY=… python3 tools/llm-harness.py --family matmul --model <id> --n 40 --tag <yours> --ledger certs/matmul-eval-ledger.jsonl.

Anything else goes through the submission path: generate proposals however you like, write one JSON line per attempt — {"target": "(2, 2, 2, 7)", "proposal": "<the model's raw reply>"} — and grade the file with python3 tools/llm-harness.py --family matmul --proposals yours.jsonl --model-label <name> --tag <yours> --ledger …. Same float screen, same exact certifier, same red controls, run before any grading; a target outside the published ladder is refused, so a submission cannot smuggle in an easier task.

To land on the public board, open a pull request carrying the PROPOSALS file, not graded rows — grading is deterministic, so rerunning it here reproduces your outcomes bit for bit, and the board never has to trust a submitted verdict. The one thing a submission is trusted about is its own attribution: the model name and the scaffold the tag describes.

§ recall vs derivation

The same tensor, one change of basis

Strassen’s decomposition is in every training corpus. Conjugate the <2,2,2> tensor by a seed-pinned unimodular change of basis and the task is provably the same difficulty — the witness is Strassen transported through the same map, and this build checks that it certifies — but the answer can no longer be recalled. Everything below was run at identical effort, identical output cap and through the identical code path. Two independent seeds, c1 and c2.

modelplain Strassenconjugated · seed c1conjugated · seed c2
haiku-4-50 certified · 8 rejected, 2 malformed0 certified · 9 rejected, 1 malformed0 certified · 9 rejected, 1 malformed
opus-59 / 10 certified0 certified · 10 never answered0 certified · 10 never answered
sonnet-510 / 10 certified0 certified · 10 never answered0 certified · 10 never answered

The two capable models certify the recallable instance almost perfectly and produce nothing gradeable at all on either conjugated seed — every attempt spent its entire output budget without emitting a parseable decomposition, though a valid answer is 347 characters with no entry larger than 3. Those attempts are recorded as budget-exhausted and excluded from every rate: our output cap is not the model’s failure. But they are recorded, because a model asked ten times that never answers must not look, in the ledger, like a model that was never asked.

The weakest model is the control that matters. It fails the recallable rung exactly as it fails the conjugated ones — so the gap appears only in models capable enough to recall Strassen in the first place. Without that row, its zero on the conjugated rungs would have looked like evidence and been none.

§ paste a decomposition

Certify one right now, in this tab

Paste a claim below — the JSON shape is {task: {kind: "matmul", n, m, p, rank}, ring: "Q"|"F2", witness: {u, v, w}} with integer or exact-rational ("1/2") entries — and get the verdict from the same arithmetic that grades the board: CERTIFIED with the equation count, REFUTED with the first violated equation and its exact discrepancy, or REFUSED with the reason. Everything runs in your browser in exact BigInt rationals; nothing is uploaded. This widget was executed at this page's build against Strassen, a sub-float forgery, and a float entry — the build refuses if any answer moves. The citable path is the zero-dependency library: oracle/certmachine.py (red controls at import), with the ready-made tool definition in oracle/tool-definition.json — the whole package at /oracle/.