How outputs on AINumbers.co get checked
Being able to inspect how a result was produced is not the same as knowing the result is correct. This page explains how we check our outputs: six mechanisms, what each one covers, and where your own judgment still has to come in.
Six mechanisms, each narrow on purpose
No single mechanism here proves a tool is right for your situation. Each one closes off one specific way a result could be wrong, or could drift silently over time. Together they form the checking layer behind the OpenChainGraph-anchored tools. Simpler calculators without a ChainGraph node get the syntax and count-drift gates, but no compute proof.
§28§15§18Four kernels are formally verified
Beyond the six mechanisms above, we run a formal verification pilot. Four of our kernels are formally verified: two by exhaustive enumeration of every possible input, one by a machine-checked proof in Dafny, and one by property testing backed by a hand proof. Each is verified against a specification that survived independent mechanical validation, and the assumptions sit next to every claim. As far as we know, no shipped product yet chains a complete functional spec, proved for all inputs, to a zk proof of faithful execution for general-purpose business logic. The two closest efforts are Pi Squared / FastSet, which proves interpreter semantics rather than arbitrary business-logic specs, and Horus (Nethermind), annotation-scoped verification for Cairo contracts, still alpha-stage. This pilot works toward that combined claim on the four kernels below.
We draft each spec with an LLM, from the regulation text itself and never from the kernel's code: a spec copied from the implementation can only prove the code matches itself. We then run the draft through independent mechanical validation: it must reproduce the kernel's golden fixtures, and where a regulator publishes its own worked examples, it must match those too. A spec that fails this validation goes back for another draft rather than forward to a proof. By the time a proof runs, the spec it proves against is the one that survived validation, so the check that matters is re-runnable by anyone, not a read of the text we are asking you to trust. One spec (the payee name-match scorer) was initially drafted the wrong way around, from the code instead of the declared contract. Validation caught the mismatch: we re-derived the spec independently from the contract, and the two versions matched, so the validated spec stands.
art-157art-27art-215art-376Spec correctness: each spec passed independent mechanical validation against the kernel's golden fixtures and, where the regulator publishes its own worked examples, against those too. The proof checks the code against that validated spec, not whether the regulation means what its worked examples show, a question no machine, and no signature, ever answered.
Port gap, art-215 only: Dafny proves properties of the ported model. Whether the port and the shipped kernel compute the same function is established separately, by differential testing, not by the proof. That test was re-run against the current kernel and found agreement well inside the §1026.22(a)(2) tolerance, as noted above.
Toolchain: the Dafny proof was discharged on Dafny 4.11.0 with Z3 4.12.1/4.14.1, pinned by digest in the underlying artifact. A different prover version is a different toolchain identity and would need to re-establish the result.
Runtime: the enumeration harnesses ran under Node v24.15.0 with no hidden state. A changed harness environment is, again, a different identity to re-check against.
This covers four kernels, named above, out of the catalog. No claim is made here about coverage of any other kernel or about compliance, and nothing on this page certifies, warrants, or guarantees anything about the tools that use these kernels.
The published bytes are signed to their build
The mechanisms above check computations; this one covers the road they travel to you. Each site deploy is published by a public GitHub Actions workflow from one named commit of the public repository. At publish time the deploy job hashes every file it ships into a manifest, served at .well-known/deploy-manifest.json together with the raw hash list it digests, and signs an attestation binding those bytes to that workflow run: an in-toto statement carrying an SLSA build-provenance predicate, signed under a short-lived Sigstore certificate and stored in the repository's attestation API. The attestation establishes that the tree served by this site came out of one named commit of that repository, built by the named workflow. It is a claim about process; the mechanisms above remain the claims about content. Two commands re-derive the process half from where you sit:
# fetch what the site is serving right now
curl -sO https://ainumbers.co/.well-known/deploy-manifest.json
# who signed these bytes, as JSON for policy engines; passes when the signing
# certificate's identity is the deploy workflow running on main
gh attestation verify deploy-manifest.json -R PostOakLabs/ainumbers --format json \
| jq -e '.[] | select(.verificationResult.signature.certificate.subjectAlternativeName
| contains("deploy-to-dreamhost.yml@refs/heads/main"))'
# recompute the digest: check out the commit named in the manifest, rebuild the
# hash list by the documented rules, then compare the served copy byte for byte
# and check its sha256 equals site_content_digest in the manifest. Rules: all
# repo files except .git, .github, scripts/, specs/, docs/, reconciled/,
# node_modules, editor and OS metadata, and *.md other than chaingraph/okf/**
# and chaingraph/standard/SPEC.md; sorted by path; sha256sum format.
sha256sum deploy-checksums.txt
# verifiers without the gh CLI can check the same attestation with slsa-verifier
Two pages, one per kind of proof
Two pages go deeper on the proofs themselves. Groth16 receipts walks through the zero-knowledge receipt embedded in each proof-bearing node, field by field, reads one real receipt from the repository step by step, and shows four ways to verify one. Mechanical verification explains the standard behind our formal claims, walks through the evidence files for each of the five kernels that carry a claim, and lists the commands that re-run every check. SPEC.md remains the normative definition of every mechanism named on this page.