Formal verification · pilot

How the formal-verification pilot actually works

This is a visual walk of the pipeline as it exists today, on four named kernels, not a description of a shipped capability. Every claim on this page is method transparency, not an assurance grade: it shows what ran and what a signed spec covers, and names what is deliberately out of scope. See Methods for the six general checking mechanisms this pilot sits alongside, and How the Kernel VM Works for the execution runtime this pipeline binds to.

Panel 1 of 7

Clause to spec

LLM-drafted, verifier-checked.

Regulation clause or declared house rubric, no-clause kernels LLM-drafted spec drafted from clause text, not from the kernel Verifier-checked spec only trusted after §2 gates below source retrieval date clause digest snapshot pinned per kernel, e.g. cited_clause_digest, clause_snapshot_location

A candidate spec is drafted from the cited regulation text itself, never from reading the kernel: a spec derived from the implementation would only show that the implementation matches itself. Every spec file in this pilot carries the clause's source document, the date it was retrieved, a content digest of that document, and a stored snapshot location, so the exact text a spec claims to implement can be checked later even if the live regulation page changes. One kernel in this pilot, the payee name-match scorer, deviated from that order in its first draft; the deviation was self-disclosed, the spec was independently re-derived from the declared contract without reading the kernel, and the two versions matched, so the signed spec stands.

Panel 2 of 7

Independence gates before trust

A spec earns trust by surviving checks it could fail.

Fixture-oracle gate spec vs. regulation's own worked examples ✓ must reproduce them Negative control a deliberately wrong spec is run through the same gate ✗ must be rejected, this is the check Spec-strength gates mutation testing + vacuity check catches specs too weak to fail on anything ✓ must actually constrain Eligible for human sign-off

The kernel's own golden fixtures are the obvious oracle and a weak one: a spec transliterated from the kernel passes them trivially. Where a stronger public oracle exists, the pilot uses it, for example Appendix J's own four worked transactions, matched to two decimals before any proof is trusted. The negative control is the gate that actually earns trust: a spec that never fails, even a spec deliberately built wrong, is not verifying anything. Mutation and vacuity checks close that gap by confirming the spec's obligations are strong enough to catch a broken proof, not merely present.

Panel 3 of 7

Human adjudication

A human signs the spec, never the proof.

DRAFT FIXTURE-VERIFIED SIGNED (named human) PROVISIONAL (challenge window) ATTESTED Single-adjudicator today: the person who prompted the spec draft and the signer are the same person, stated as an assumption, not hidden.

The proof itself is never what a human adjudicates; by the time a proof runs, the spec it proves against is already the human-signed artifact. Today's process runs under a stated single-adjudicator assumption: the person who prompted a spec's drafting and the person who signs it are the same person, and no other person reviewed it. A routine template instance of an already-signed spec family may publish provisionally under a named review-cadence challenge window rather than wait for a fresh pre-sign; a novel spec is always pre-signed before its proof is trusted. Nothing about the window implies a stake, a bond, or an adversarial dispute; it is a labeling and review-cadence device, and today the only reviewer able to challenge within it is the same signer.

Panel 4 of 7

Verification tiers

"Proven" names a machine-checked theorem. Nothing here is bare "correct."

Class A
Verified by exhaustive enumeration (all N inputs)
Every point in the declared input space is computed and checked against the signed spec, with the result recorded as zero failures across that full space, not a sample of it.
art-157 (24 inputs) · art-27 (531,441 inputs)
Class B
Property-tested over stated ranges
Stated properties are checked over a declared range rather than every possible input, alongside a hand proof for the properties the generated tests can't reach directly.
art-376
Class C
Machine-checked proof (Dafny)
The algorithm is ported to Dafny and Z3 discharges the stated proof obligations against a spec signed by a human. Shown here only because a real Dafny artifact exists for this pilot today; where none exists, this tier is not claimed.
art-215

These are Tim's own tier labels, used verbatim, not a marketing paraphrase of them. "Verified" always ships with the spec and its stated assumptions visible next to the claim, never as a bare word standing alone.

Panel 5 of 7

Execution binding

Three digests, one binding, or the run is rejected.

kernel digest spec digest toolchain digest Triple-identity binding all three must match at proof time zk proof of execution twin_agreement in receipt execution_hash agrees, or the run is the finding, not something hidden

A proof is only meaningful bound to the exact code, spec, and toolchain that produced it: the kernel's content digest, the signed spec's digest, and the pinned toolchain digest (Dafny and Z3 versions, for the Class C leg) are each checked at proof time. Execution itself runs through the same zk compute-proof and runtime-twin machinery the rest of the suite uses; this page doesn't duplicate that mechanism, see How the Kernel VM Works for how one kernel source runs identically across runtimes and what execution_hash agreement actually checks.

Panel 6 of 7

Fixtures are not proofs: the Reg Z APR finding

A kernel can match every fixture and still be wrong past the fixtures' reach.

4 of 4 CFR worked examples matched, to 2dp 9.69 / 11.82 / 10.34 / 8.97, every fixture the kernel had ✓ fixtures pass, kernel looks correct F-1: odd-days compounding vs. simple interest breaches tolerance above ≈200% APR, near-full odd-day fraction ✗ only the proof's boundary corpus found it F-2: solveAPR could report converged: true over an APR it never actually computed Neither defect showed inside the fixture set. Both showed once the proof was pushed past it. This is the pilot's flagship demonstration, factual, not dramatized.

Reg Z Appendix J publishes four fully worked transactions with their APRs. The shipped kernel reproduces all four to the two decimals the regulation itself speaks in, and its own three golden fixtures pass unchanged. That is the entire evidence a fixture-only check would ever produce. The Dafny proof, discharged against a spec drafted from Appendix J's text rather than the kernel, went further: it found that the kernel compounds interest across an odd-days fraction where Appendix J (b)(6) and (b)(8) prescribe simple interest, a deviation invisible at ordinary rates and growing to a measured 5.56 percentage points at the most extreme rate probed, breaching the §1026.22(a) tolerance above roughly 200% APR with a near-full odd-day fraction. Separately, the proof's solver harness exposed a Newton-iteration exit that could mark an unconverged result converged: true, returning the caller's own guess as if it were computed. Both are documented findings against the specification, tracked for kernel repair as a separate landing step, not silently patched into this page. See Methods for the pilot's present canonical status per kernel.

Panel 7 of 7

What is not claimed

Honesty about scope is the differentiator, not a footnote.

Named narrow, on purpose
  • Existence of the root is not claimed. For the APR solver, Dafny's real type is rational and the root is irrational; uniqueness and the bisection bracket are proved, existence itself is not.
  • Date arithmetic is out of scope. Deriving day counts and period fractions from calendar dates is neither in the spec nor proved; it sits outside this pilot entirely.
  • The Class C floor is not the same claim as a proof. The site-wide property-test floor (below) is internal engineering QC over a much larger kernel set; it is a different, weaker guarantee than this pilot's four signed, proved kernels and is never presented as equivalent to them.
  • Single-adjudicator limitation. One person both prompts and signs today's specs; no second reviewer has checked any of them, and that assumption is stated wherever a spec's status is shown, not implied away.
  • Conformity of the shipped kernel to the clause is a separate question from spec correctness. A proof over a Dafny port establishes the port satisfies its obligations; whether the shipped JavaScript computes the same function is checked separately, by differential testing, exactly as Panel 6 shows it can diverge.
  • Coverage is four kernels, named, out of the catalog. No claim is made here about any other kernel, and nothing on this page certifies, warrants, or guarantees compliance with any regulation.
600 / 600
Live kernels carrying a digest-matched property-test floor, measured 2026-08-13. This is internal engineering QC across the whole catalog, not an assurance grade, and not the formal-verification pilot described on this page, which covers four named kernels only.

See the Terms & Reliance page for the full disclaimer, and Methods for the six general-purpose checking mechanisms this pilot sits alongside.