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.
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.
| model | prompt | proposals | certified | refuted | rejected | malformed | certified rate | survivor truth |
|---|---|---|---|---|---|---|---|---|
| claude-opus-5 | v2 | 24 | 17 | 0 | 1 | 6 | 71% | 100% |
| claude-sonnet-5 | v2 | 40 | 28 | 0 | 2 | 10 | 70% | 100% |
| claude-haiku-4-5-20251001 | v2 | 40 | 0 | 0 | 38 | 2 | 0% | — |
| claude-sonnet-5 | v1 | 34 | 25 | 0 | 0 | 9 | 74% | 100% |
| claude-haiku-4-5-20251001 | v1 | 40 | 0 | 0 | 38 | 2 | 0% | — |
| fake calibration baseline | v1 | 24 | 8 | 0 | 10 | 6 | 33% | 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.
| model | prompt | rung | proposals | certified | refuted | rejected | malformed | certified rate |
|---|---|---|---|---|---|---|---|---|
| claude-haiku-4-5-20251001 | v2 | <2,2,2> r7 | 10 | 0 | 0 | 9 | 1 | 0% |
| claude-haiku-4-5-20251001 | v2 | <2,2,2> r8 | 10 | 0 | 0 | 10 | 0 | 0% |
| claude-haiku-4-5-20251001 | v2 | <2,2,3> r11 | 10 | 0 | 0 | 10 | 0 | 0% |
| claude-haiku-4-5-20251001 | v2 | <3,3,3> r23 | 10 | 0 | 0 | 9 | 1 | 0% |
| claude-haiku-4-5-20251001 | v1 | <2,2,2> r7 | 10 | 0 | 0 | 9 | 1 | 0% |
| claude-haiku-4-5-20251001 | v1 | <2,2,2> r8 | 10 | 0 | 0 | 9 | 1 | 0% |
| claude-haiku-4-5-20251001 | v1 | <2,2,3> r11 | 10 | 0 | 0 | 10 | 0 | 0% |
| claude-haiku-4-5-20251001 | v1 | <3,3,3> r23 | 10 | 0 | 0 | 10 | 0 | 0% |
| claude-opus-5 | v2 | <2,2,2> r7 | 6 | 5 | 0 | 1 | 0 | 83% |
| claude-opus-5 | v2 | <2,2,2> r8 | 6 | 6 | 0 | 0 | 0 | 100% |
| claude-opus-5 | v2 | <2,2,3> r11 | 6 | 6 | 0 | 0 | 0 | 100% |
| claude-opus-5 | v2 | <3,3,3> r23 | 6 | 0 | 0 | 0 | 6 | 0% |
| claude-sonnet-5 | v2 | <2,2,2> r7 | 10 | 9 | 0 | 1 | 0 | 90% |
| claude-sonnet-5 | v2 | <2,2,2> r8 | 10 | 9 | 0 | 1 | 0 | 90% |
| claude-sonnet-5 | v2 | <2,2,3> r11 | 10 | 10 | 0 | 0 | 0 | 100% |
| claude-sonnet-5 | v2 | <3,3,3> r23 | 10 | 0 | 0 | 0 | 10 | 0% |
| claude-sonnet-5 | v1 | <2,2,2> r7 | 9 | 9 | 0 | 0 | 0 | 100% |
| claude-sonnet-5 | v1 | <2,2,2> r8 | 9 | 9 | 0 | 0 | 0 | 100% |
| claude-sonnet-5 | v1 | <2,2,3> r11 | 8 | 7 | 0 | 0 | 1 | 88% |
| claude-sonnet-5 | v1 | <3,3,3> r23 | 8 | 0 | 0 | 0 | 8 | 0% |
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.
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.
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.