The language for claims an exact checker can decide
State a claim so that a machine can decide it, or learn exactly why it cannot.
A claim written for people is rarely precise enough for a machine: which file, which digits, which reading of the bytes, which bound. claimbox is the language that makes it precise, and cert-machine is the separate checker that decides it. The claim is printed back in plain words from the object the checker receives; every number points to a line of its source or to a pinned file; the reading of the bytes is declared; an unclear claim gets a named hole or a fork instead of a guess. claimbox never decides. Every verdict on this page is cert-machine’s: CERTIFIED, REFUTED with the object that breaks it, or REFUSED with the reason.
Today claimbox reads a closed list of claim shapes with patterns; the language is built in the order of the roadmap below. Every count on this page is read from claimbox’s run records when the page is built, and the build refuses a page whose text no longer matches them.
- finding
- On Google DeepMind’s cryptids release, 107 claims were written through claimbox and cert-machine decided 106 of them: 104 CERTIFIED and 2 REFUTED, the write-up’s own transition counts. Of the AI-written phrasings of the Riemann story’s claims, today’s patterns read 3 of 80. That gap is what the language is for.
- mechanism
- A claim is printed back in plain words from the object it compiles to, and cert-machine’s checker returns one of three words with what the word rests on.
- check it
- Every count names its record. The repository rebuilds this page and reads every count again.
From a sentence to one of three words
claimbox states; cert-machine decides; the two share no code.
- The sentence, the source, the bytesas the claimant printed and published them.
- claimbox reads the shapeor names the rule it cannot state the claim under, before anything runs.
- The objectthe pinned bytes, their declared reading, each bound as the exact rational its digits mean.
- cert-machine’s checkera separate program, run on the object as it is.
- One of three wordsCERTIFIED, REFUTED with the object that breaks it, or REFUSED with the reason.
A claimant’s lower bound, decided from the claimant’s own bytes
- as printed
- C ≥ 0.41030211724
- source
corpus/optconst-queue/next-2026-10-18/rozetyp/README.md- the bar, exactly
- 10257552931/25000000000
- reading
- the digits as printed, read as the exact rational they mean
- cert-machine
- REFUTED
records/primitive-run.json · sha256 878538ead7a8. The printed bound is underlined dashed: a number someone printed, which nothing decided until the checker did.
One claim, two phrasings
- the source’s line
- |D(1)| ≤ 0.82395317
- cert-machine
- CERTIFIED
- an AI abstract
- We show that the edge discrepancy of the 256-periodic law's form factor satisfies |D(1)| ≤ 0.82395317, where D(1) = T_256/256 − 1/2.
- today
- not stated, rule prose
records/riemann-run.json · sha256 d97286c2db9e · records/riemann-coverage.json · sha256 bdccf3410a6e.
What a claim will look like
A sketch of the syntax, which is the first step of the roadmap. The claim, its pin, the fields claimbox reads from it today and cert-machine’s word are the record’s; the layout is the design.
data M = artifacts/riemann_104/machine.txt -- pinned: sha256 ac0c7e8a76679ba2a3f2c1814166b392c8301e51110a08bcd2c06624be35f25d read M as a (Q, 2) transition table source V = verify.py -- the producer’s own checker claim "after 9,037 steps from the blank tape, artifacts/riemann_104/machine.txt is in state 19 with the head at -7, 19 nonzero cells" quote from V $ claimbox check means run M from the blank tape for 9,037 steps: the state is 19, the head is at -7, 19 cells are nonzero kind finite: decided now word CERTIFIED (cert-machine) rests on machine.txt as pinned, the definition “after”, the reading “(Q, 2) table”
records/cryptids-run.json · sha256 3504f66720c7.
One file, two readings, both decided
The claim: the 605 vectors of v form a kissing configuration in dimension 11, over 605 vectors pinned once.
| the bytes read as | cert-machine | pairs that break the condition | first pair it found |
|---|---|---|---|
| decimals: the digits as printed | REFUTED | 9,510 | vectors 0 and 48 |
| doubles: the IEEE values they denote | REFUTED | 9,480 | vectors 0 and 48 |
records/fork-605.json · sha256 d7df6d6bc37f. The same pinned bytes, two exact answers: the reading belongs to the claim. A fork shows every reading's word; when the words differ it says split, and claimbox never merges them into one.
- Printed back. The “means” line is printed from the object cert-machine receives, by the grammar run backwards, never by a model. What is read is what is checked.
- Every number has an address: a line of a source or a pinned file. A number with no address is not a claim.
- Every reading is written down: decimal digits or IEEE doubles, exact or wrapping integers. The same file read two ways can give two different exact answers, so the reading belongs to the claim.
- Holes. A claim that cannot be stated exactly yet keeps a named hole: the bytes are not published, no decider exists for this quantity. A hole is not a verdict.
- Forks. An ambiguous claim is decided under every declared reading, and every word is shown; when they differ the fork is split, and said so.
- Watchers. A claim about every case is run as a watcher that halts on a counterexample, and reports “not refuted up to N”, never CERTIFIED.
- Rests on. Every word comes with the files, definitions and readings it depends on.
What claimbox adds to the checker
The two are separate projects. cert-machine decides; claimbox makes a claim decidable and says what was decided.
| cert-machine alone | with claimbox | |
|---|---|---|
| who can state a claim | an expert writing the object by hand, or a script written for one audit | anyone, a person or an AI, in a readable language |
| what the claim means | implicit in the object | printed in plain words from the object itself |
| definitions | re-written for each audit | written once in a library and reused by name |
| unclear claims | left out, or refused | a named hole, or a fork with every reading decided |
| claims about every case | refused | a watcher that reports how far it searched |
| numbers in a report | copied by hand | the document builds from its claims |
| who decides | cert-machine | still only cert-machine |
What claimbox holds itself to
- cert-machine is the only judge. claimbox never prints CERTIFIED or REFUTED on its own; it shows cert-machine’s word.
- Say what is checked. The plain-words print-back comes from the object cert-machine receives, not from what was typed.
- Every number has an address: a line of a source or a pinned file.
- Every reading is written down. There is no default.
- Anyone may propose; only checks count. People, models and search may write claims; a proposal is marked as one until it is validated, and two proposals count as two only when they are of different kinds.
- Unclear is an answer. A named hole, or a fork with every reading decided.
- Planted wrong claims in every feature, every one of which must be caught, with the results, misses included, published.
- Never say more than was checked. CERTIFIED means this object, under this reading, holds on these bytes. It does not mean the sentence is true.
- The trusted part stays small: the step from a claim to the object the checker reads is short enough to read in an afternoon.
- cert-machine stays separate. claimbox sends it objects; a change there is made there first.
Every run, as recorded
Each row is one run record: the jobs a reader made from a source; what claimbox wrote, could not state, or skipped with the reason recorded (no sentence beside the bytes, or bytes that are not published or not readable); and the words cert-machine returned, from a record it decided or from the object itself.
| source | jobs | written | not stated | skipped | certified | refuted | admitted, undecided | refused by the checker |
|---|---|---|---|---|---|---|---|---|
| EinsteinArena's best solutions | 30 | 15 | 14 | 1 | 5 | 1 | 9 | none |
| AlphaEvolve's results notebook | 17 | 17 | none | none | 16 | none | 1 | none |
| The registry's step-function constants | 3 | 3 | none | none | 2 | 1 | none | none |
| The Qiushi Engine's kissing release | 19 | none | 19 | none | none | none | none | none |
| The Station's artifact folders | 8 | none | 6 | 2 | none | none | none | none |
| FunSearch's construction files | 4 | none | none | 4 | none | none | none | none |
| The Riemann story's finite certificate | 8 | 7 | none | 1 | 6 | none | 1 | none |
| AI-written claims about that certificate | 15 | 10 | 5 | none | 4 | 6 | none | none |
| Claims written for the Riemann test | 99 | 99 | none | none | 81 | 18 | none | none |
| Google DeepMind's cryptids release | 129 | 107 | 22 | none | 104 | 2 | none | 1 |
Columns are read from each run’s rows; a run whose own totals disagree with its rows refuses the page. ∅ marks an empty set.
Written down before the run
Of the AI-written claims about the Riemann certificate, 15 of 15 came out as the word written beside each before it ran; of the claims written for the Riemann test, 99 of 99. The false ones are REFUTED or not stated with their rule; the true ones are CERTIFIED.
From prose to claims, so far
Of the 80 AI-written phrasings, the grammar proposes 3 claims and a model, claude-opus-5-5, proposes 53; for the other 27 the model names a hole. A proposal is checked four ways: every number in it is found in its sentence, it reads back with the sentence’s relation, it moves exactly with the sentence when one digit of the bar is changed, and it compiles to the same object as the decided reference. Of the model’s 53 claims, 41 equal the reference field for field, 1 states the same bar printed another way, 2 state another claim their sentence also prints, and 9 have no decided reference to compare with. On a copy of the source with the bar moved, the model’s statement moved with it in 51 runs and did not in 2. cert-machine certifies 56 of the 56 claims proposed.
Each claim is then moved. With its bar one unit of the last digit up and down, a box must be refuted both ways and a bound must hold when weakened: 54 did so (failures: none); 17 of the bounds are tight to their last digit. Recompiled over planted copies of its bytes, 47 change cert-machine’s word and 9 do not: the decimal constant’s, which is arithmetic on a library constant and reads nothing from the file. Said another way, with the relation before the bar rewritten from symbol to words or back, the model stated the same claim 40 times, another claim 1 (a refusal), and nothing 2; the grammar reads none of the rewritten sentences (3). Where two kinds of proposer agreed, on 3 sentences, they agreed on the decided reference 3 times (on another claim: none).
Validated: 3, the sentences where two kinds of proposer agree. Proposed by one kind only: 46. Refused: 4, where a proposal fails a check; 2 of them fail the moved bar. The read-back reads a relation written in symbols, or in the words of a fixed table (“at most”, “does not exceed”, “below”), and numbers written in Lean’s notation; any other phrasing is refused, never guessed. Not stated: 27, each with a named hole. The model’s run took 184 calls and 1.1818 US dollars, under a cap of 20.
Helpers, begun
The first helpers propose claims by search, and cert-machine decides every candidate. Tighten finds the strongest bar it certifies beside a neighbour one unit stronger that it refutes: |D(1)| ≤ 0.823953160713, with 0.823953160712 refuted; over the rows, for every j in 0 < j < 256 : |256·S(j) - j| ≤ 1.837·10⁻⁴⁰, where the source prints 3·10⁻⁴⁰. From a refuted claim it walks the other way: the lower bound rounded up becomes C_1c(w) ≥ 0.41030211723. Extend reads further digits of a print cut off with an ellipsis, each the only digit that cert-machine certifies: c₁* = 0.753296067856070677…, and there it stops, because no digit is certified: the bytes do not decide the next one. Each is a proposal, quoted from the source the search wrote, and checked again as a claim in the language.
A watcher takes a claim about every case and decides it instance by instance, each instance cert-machine’s. Its results are a counterexample or “not refuted up to” a reach, never a certificate. Two planted twins, machines known to halt, must stop it exactly where predicted: the four-state busy-beaver champion at step 107, the five-state one at step 47,176,870. Over the Goldbach, Riemann and ZF machines it reports what it reached: not refuted up to 100,000,000, 100,000,000 and 100,000,000 steps.
The register’s sentences
Of cert-machine’s register, 97 of 132 sentences take a shape today. The rest are not stated: 22 print no quantity, 11 are prose, 2 are asymptotic. A refusal is a measurement, not a failure.
From prose to claims on the register: claimbox pins the bytes of 24 of its sentences, through the reader jobs the register was written from. The grammar states 23 of them: 16 are the same object as their job’s, and 7 have no decided object to compare with. The model, asked those 24 alone, states 19. cert-machine certifies 40 of the 42 claims proposed and refuses 2, where its own record’s word is not one it decides with. A decomposition named inside a file that prints many is written n["heading"], and a platform problem with no verifier written here is decided through the row cert-machine’s own decider wrote for those bytes. Validated: 19. Proposed by one kind only: 4. Refused: none. The rest name bytes claimbox does not pin (74) or are not claims the grammar reads.
What the planted defects missed
On the cryptids copies, two plants went through without a changed word:
- 10-proof-file: a proof file edited: no claim the sources print pins it.
- 11-theorem-removed: a theorem removed from a configuration file: counting its names has no decider.
- Every count is read from a record, and the page’s check reads it again from the built page.
- A verdict word is cert-machine’s, from a record it decided or from the object itself.
- A dashed underline marks a number someone printed. ∅ marks an empty set.
Where claimbox stands
Read from each project’s own documents on 30 October 2026. The comparison is about how a claim is stated and who checks it.
| project | how a claim is stated | who checks it | where claimbox differs |
|---|---|---|---|
| AWS Automated Reasoning checks | a natural-language policy turned into rules; at run time “multiple foundation models” translate text into logic | an automated reasoner; non-linear arithmetic may come back too complex | the statement layer is deterministic and printed back; the domain is exact numbers over pinned bytes |
| statcheck | regular expressions over statistics printed in APA style | recomputation, allowing for the rounding of the printed digits | the closest in spirit; claimbox covers other shapes, pins the bytes and hands the decision to a separate checker |
| Lean’s comparator | a challenge file holds the statement, a solution file the proof | the Lean kernel; the challenge is trusted, and definition holes “can be gamed without additional oversight” | whether a statement says what was meant is left to people there; claimbox’s print-back addresses that for its own domain |
| dbt tests, Great Expectations | tests and expectations over live tables | the engine itself; a failing row is a witness | claimbox declares how the numbers are read; a data engine inherits its own floating point |
| Grammatical Framework, Attempto | controlled language over one abstract syntax, read back to the writer | logic reasoners | the technique claimbox’s syntax uses; neither touches data or bytes |
| in-toto, nanopublications | a subject’s digest and a predicate; an assertion with its provenance | signatures say who, not whether | pinning exists there; how the bytes are read is never declared |
Not new, and said so: three verdicts, published denominators, controlled languages and hash pinning all exist elsewhere. What claimbox puts together is a deterministic statement layer, printed back from the object; every number anchored; the reading declared and forked; an exact separate checker with three words; and the refusal rate published with planted controls.
Limits, stated first
- Faithfulness to an author’s intent is not established. The best methods of 2026 for checking a translation still accept some wrong statements. claimbox tests its translations with planted changes and publishes how many it refuses; it does not certify them.
- Two models agreeing is not independent confirmation. Models tend to make the same mistakes, so agreement counts only between proposers of different kinds, and is tested on planted sources.
- CERTIFIED is about an object, not a sentence. It means this object, under this reading, holds on these pinned bytes.
- “Not refuted up to N” is not evidence for every case. A watcher reports exactly how far it searched.
- Real-number identities are not decided in general. Only the forms the checker admits are decided; the rest are refused with the reason.
- A small checker can still be wrong. Keeping it small and separate shrinks what must be trusted; planted controls are how it is watched.
The plan, in order
Read from the plan in the repository, so the page and the plan cannot disagree. Research steps run only on a decision to spend.
| # | step | what you get | how it is checked | status |
|---|---|---|---|---|
| 0 | Today's translator | a closed list of claim shapes read by patterns, readers of real sources, objects cert-machine decides | the calibration objects reproduced; planted defects caught; every refusal has a red control | built |
| 1 | The language, written down | LANGUAGE.md: the syntax, readings, holes, forks, the print-back, the object, and examples, each a claim already decided | every shape today's grammar reads and every rule it refuses with has its construct (a battery check); each claim's round trip is step 2's | built |
| 2 | Read it and print it back | a parser that rejects malformed claims with a reason, and the plain-words printer | every example round-trips; planted malformed claims are rejected | built |
| 3 | Compile and check | claim, object, cert-machine's word, and what it rests on | the same words cert-machine gives today, claim for claim | built |
| 4 | The library | the definitions written once: kissing, the autocorrelation constants, the platform scores, the Riemann functionals, machine runs, each with its conventions | identical objects to today's | built |
| 5 | Holes and forks | refusals become named holes; ambiguous readings become forks, every reading decided | the decimal and double readings of one file give their two exact counts; every refusal today maps to a hole | built |
| 6 | From prose to claims | anyone proposes a translation of a sentence; claimbox validates it: numbers found in the source, the print-back, two proposals of different kinds agreeing, also on planted sources | the AI phrasings and the register, measured; every planted mistranslation caught; the refusal rate published | built |
| 7 | Helpers and watchers | tighten, attack, fill; watchers for "for all" claims that report how far they searched | every proposal is decided by cert-machine; planted twins halt where predicted | next |
| 8 | Documents that build | a report whose numbers are claims: it does not build when one is refuted, and each number shows what it rests on | one existing report rebuilt this way | planned |
| 9 | Teaching models to write it | the Claim Court environment on the Hub; its first task is writing claims claimbox reads | the share of validated claims before and after training | research |
| 10 | Proposal loops at scale | many model proposals, the deterministic filter, cert-machine's word, counterexamples fed back | the target pinned first; red controls before every loop; every denominator published | research |
The repository, the commands
Standard-library Python. The test battery runs cert-machine’s checker as a separate program, so it needs a local copy of cert-machine.
git clone https://github.com/carlostoledo1891/claimbox cd claimbox python3 -m claimbox shape "K(11) >= 593" # the shape, or the rule that refuses it python3 tests/battery.py # red controls, calibration, coverage, planted defects python3 -m web.build --check # rebuild this page and read every count again
What the design rests on
- Gordon, Milner, Wadsworth (1979), Edinburgh LCF; Barendregt & Wiedijk (2005), “The challenge of computer mathematics”. A small checker is the only thing that decides.
- Pnueli, Siegel, Singerman (1998), “Translation validation”; McConnell, Mehlhorn, Näher, Schweitzer (2011), “Certifying algorithms”. Check each translation and each output, not the translator.
- Knight & Leveson (1986), on independently written versions failing together; Kim, Garg, Peng, Garg (2025), “Correlated errors in large language models”. Agreement is not independence.
- Fuchs, Kaljurand, Kuhn (2008), Attempto Controlled English; Ranta (2004), Grammatical Framework; Kuhn (2014), a survey of controlled natural languages. A readable syntax that parses one way and reads back.
- Bos (1996), Hole Semantics; Copestake, Flickinger, Pollard, Sag (2005), Minimal Recursion Semantics; Belnap (1977), a four-valued logic. Holes, forks, and a split that is not a refusal.
- Goldberg (1991), “What every computer scientist should know about floating-point arithmetic”; RFC 8259, on the precision of JSON numbers. The reading of the bytes is part of the claim.
- Mei & Douglas (2026), “Beyond LLM Judge: Mechanical Verification for Agentic Autoformalization”; Zhang et al. (2026), “Beyond Compilation”; Ammanamanchi, Bhat, Biderman (2026), “Faults in Our Formal Benchmarking”. Preprints. Mechanical checks over judges; compiling is not faithfulness; the statements themselves carry defects.
- Nuijten et al. (2016), statcheck; Brown & Heathers (2017), the GRIM test. Printed numbers recomputed: the closest precedents.
- Stroebl, Kapoor, Narayanan (2024), on the limits of resampling with imperfect verifiers; Georgiev, Gómez-Serrano, Tao, Wagner (2025), mathematical exploration at scale. A proposal loop finds the loophole; exact checking closes it.
- Aaronson (2020), “The Busy Beaver Frontier”; Google DeepMind, cryptids (2026). Claims about every case, and small machines that encode them.