A block of stone split by a green beam, a machined channel revealed inside it
The method — from statute to predicate

A law is prose. A test has to be a boolean.

Between a published provision and a score there is a step most assurance skips: turning legal text into something a stranger can run and get the same answer. This page shows that step in full — the frozen corpus it starts from, the structure it is cut into, the boolean it ends as, and the signed record it produces.

Measurement, not certification. Board unreachable from this browser — read it yourself at /api/gspc

Design law 1

The verdict comes from a deterministic predicate. Never a vote. Never a model.

This is the rule the rest of the pipeline exists to serve. A human-in-the-loop audit varies by assessor and by mood; a language model asked to grade another language model varies by temperature and cannot show its working. Neither can be recomputed by someone who does not trust us — which makes both useless as evidence. A predicate can be handed to a stranger, run, and checked against our answer.

  • PainAn assessor's opinion cannot be re-run by the person relying on it
  • PainA model grading a model inherits the grader's failure modes silently
  • You getA frozen predicate returns the same verdict for anyone who runs it
  • Only hereNo model judges another model — anywhere in the scoring path
The raw material

We do not invent rules. We parse frozen ones.

The corpus is 417 published statutory provisions — the EU AI Act, GDPR and the Cyber Resilience Act, DORA and NIS2, NIST AI RMF and ISO/IEC 42001 among them. Frozen means the exact text we measured against is recorded with the result, so a disagreement can be traced to a provision rather than to an opinion. The board those predicates feed is fourteen slots; the measured count is read live from /api/gspc and is never typed into this page.

  • You get417 frozen provisions, each cited and dated
  • You getWhen a provision changes, the mapped predicates expire and we re-measure
  • Only hereThe instrument is the law as published, not our summary of it
  • PainWhere a date or a reading is genuinely disputed, we record the dispute rather than resolving it quietly
Step one — structure

A provision is cut into a tree until every leaf is a boolean

The text is parsed into its conditions: a root that is the statutory requirement, branches for each condition it imposes, and leaves that are true-or-false tests. Compilation removes ambiguity from the predicate — it does not remove ambiguity from the law, and it is not allowed to pretend otherwise. Where a provision admits more than one reasonable reading, that is recorded as a dispute rather than silently collapsed into one branch.

  • You getRoot: the statutory requirement, cited
  • You getLeaves: conditions that evaluate TRUE or FALSE, nothing in between
  • Only hereAn UNMEASURED slot stays empty — it is never rendered as a zero
A carved stone dissolving into particles and reforming as a branching tree whose leaves are labelled as boolean executable conditions
Step two — the worked example

Article 14, compiled

Take the human-oversight obligation: a deployer must log the initiating person, the timestamp and the reason for every halt. Structural extraction names the variables — initiating person, timestamp, reason code. The assertion then reads: the log has a non-null initiator AND a valid timestamp AND a reason drawn from the approved set. True is a pass, false is a fail, and there is no third path in which someone's judgement decides. The predicate is frozen: it cannot be lobbied, it cannot hallucinate, and it does not sample from a language model.

  • PainThe prose version is arguable; the assertion is not
  • You getThe same predicate, run by you, returns our answer or contradicts it in public
  • Only hereFrozen means a later disagreement is about the reading, and the reading is published
See how gold labels are set
Step three — the record

About 3KB of signed JSON that you hold, not us

The output is a small signed record: the scores, the sample size behind each one, the confidence interval where one is honest, the hashes, and the signature. It is Ed25519 over RFC-8785 canonical JSON, against the trust root at did:web:csoai.org, and it is deliberately small enough to email or attach to a tender. Re-attestation issues a new record; the old one is never edited. Verification is free, needs no account, and runs in your browser.

  • You getEd25519 over RFC-8785 canonical JSON — recomputable without our code
  • You getAppend-only: a correction is a new record, never an edit
  • Only hereYou keep the card. It does not live on our server for us to amend later.
Verify a card now — free
A white slab bearing a green tag reading Ed25519 Verified, a signature seam running through it
Read this before you quote us

What this page does not claim

We publish the limits with the results. Everything below is something a reader could reasonably assume from a page like this one — and each is something we cannot presently evidence, so we say so rather than let the assumption stand.

  • We do not claim this produces absolute or mathematical proof of anything. A predicate is exactly as good as the reading of the provision behind it, and that reading is a human judgement we publish so it can be argued with.
  • We do not determine compliance. We measure behaviour against frozen, published instruments and sign the result. Whether an organisation complies is a determination for a regulator, and we are not one.
  • We do not sign with ML-DSA-65 today. Signing is Ed25519. The post-quantum path is built and not shipped, and we say so rather than let the stronger word stand.
  • We do not publish an execution-latency figure. Nothing here runs in a stated number of milliseconds, because we do not measure that for publication.
  • We do not implement TrueSkill or OpenSkill rating in the shipped board, and no rating claim on this page depends on either.
  • We do not claim environment parity, matched interfaces or action-rate caps as running features. They are design, and the arena's isolation apparatus is doctrine — see /metrology, where it is marked as such.
  • We do not claim humans are absent from the method. Humans author the gold labels and the readings. What is excluded is a model, or a vote, deciding a verdict.

Coverage on this page is never typed by hand. Board unreachable from this browser — read it yourself at /api/gspc Corrections to anything we have published live in the refutation ledger — append-only, never a silent edit.