A job's receipt showed that a result is the one its signer sealed. A verdict
(wai.quantum.verdict/1) already said how far the engine checked a circuit
job's intent, as a level. It now names what did the checking, a job on a
provider's device and a qudit job carry one, and a verifier works a sealed
verdict out again. The contract is quantum-providers §8.9.
The layer. Every check, and the verdict, names its layer and that layer's
limits: exact_simulation, stabilizer, pass_equivalence, reading, certificate,
random_states, agreement, samples, physical_consistency or unchecked
(verdict::LAYERS). The verdict's is the weakest of its checks', and unchecked
where an intent was not decided or none was given. The result's accuracy
class is beside it under executed.accuracy.
More intents. expectation (an observable's exact value on the program's
state), and four of the answer the job returned: outcomes, conserves (weight
or parity), counts (the job's own counts held to a stated distribution, by a
test at a level or within a distance) and agrees (those counts held to the
exact distribution the engine computes of the program). outcomes and
conserves are decided by the program's exact distribution where the run is
the program's own, and on the counts otherwise.
More jobs. provider::read reads an intent before the job is sent and refuses
a sampled one there (J020); provider::seal seals the verdict with the
device's answer. A qudit job takes an intent of its counts. An
energy-landscape job's own sealed word reads as a verdict (verdict::of_job,
which panicked on one: its `verdict` is a word, not an object). A job whose
form holds no intent, or one another host sealed, is signed off
(engine::signoff, wai.quantum.signoff/1, schemas/signoff.v1.json): a job
about that job, sealing its digest, the intent and the verdict together.
Verifying. job::answer_of routes a job that seals a verdict to job::rerun,
and job::verdict and verdict_of_text work it out again too
(verdict::recheck, within the state vector of 22 qubits): `answer` gives the
level, holds, the layer and its limits, the accuracy class, and `again`:
reproduced, partly, host_statement or differs. A verdict that is not of its
own form, names another method or class than the result, another job than a
sign-off holds, or a check decided here otherwise, differs, and the job is
not valid though its seal holds. A sampled check's samples and a proof
another engine version reached are the host's statement, not a difference.
A verdict sealed before layers were named is held to its level and its
checks. A job that asks for no verdict gives the bytes it gave.
Conformance. quantum-conformance/verdicts/: 21 sealed jobs and what a
verifier must say of each, written by hand from §8.9: verdicts that hold, one
that fails, ones no layer decided, ones past what a verifier works out
again, five a host sealed that its job does not bear out, one changed after
its seal, a provider's, a qudit job's, and sign-offs of a wasmQ job and an
energy-landscape job. tests/verdict_conformance.rs holds the kept jobs to the
manifest (natively and under wasm32-wasip2) and makes each again with this
engine. quantum-conformance/intents/ gains twelve cases, and its harness
holds each verdict to its layer, every kind of intent and every layer a
circuit job's verdict can stand on. wai-quantum-verdict.yml runs the new set
and requires the new tests by name.
What moves with it: the answer set's stored seal is over a verdict, so it is
written again (WAI_ANSWER_BUNDLE_WRITE=1); wai-web's pinned course check
holds each case's verdict, so its digest moves, and the page gains
QuantumEngine.signoff and a wasm test (wai-web-wasm.yml counts 24);
schema::FILES gains signoff.v1.json (acknowledged in the changes entry);
the qudit referee reads `intent` as a member of a request.
Co-Authored-By: Claude Fable 5.2 <[email protected]>