| Filename | Latest commit message | Latest commit date |
|---|---|---|
|
Some checks failed
WAI breaking changes and the conformance runner / WAI breaking · does this change touch WAI (push) Successful in 15s
WAI operation catalogue / does this change touch it (push) Successful in 28s
wai-audit collector and player integration / does this change touch it (push) Successful in 36s
wai-quantum wasmQ / does this change touch it (push) Successful in 15s
wai-quantum docs, course and locales / does this change touch it (push) Successful in 21s
wai-quantum command line / does this change touch it (push) Successful in 28s
wai-quantum for Python / does this change touch it (push) Successful in 29s
wai-quantum error correction and mitigation / does this change touch it (push) Successful in 28s
wai-quantum resource estimation / does this change touch it (push) Successful in 52s
wai-quantum for JavaScript / does this change touch it (push) Successful in 40s
wai-quantum service / does this change touch it (push) Successful in 34s
wai-quantum extension points / does this change touch it (push) Successful in 28s
wai-quantum verdicts and repairs / does this change touch it (push) Successful in 21s
wai-quantum editors / does this change touch it (push) Successful in 1m18s
wai-quantum OpenQASM reader / does this change touch it (push) Successful in 1m12s
wai-quantum contract / does this change touch it (push) Successful in 1m23s
wai-quantum studio and desktop / does this change touch it (push) Successful in 54s
wai-quantum pulse and dynamics / does this change touch it (push) Successful in 1m12s
wai-quantum other formats / does this change touch it (push) Successful in 1m17s
WAI Studio / does this change touch it (push) Successful in 18s
wai-quantum views in agent hosts / does this change touch it (push) Successful in 25s
wai-quantum variational and algorithm library / does this change touch it (push) Successful in 31s
wai-sink-android native sink library / does this change touch it (push) Successful in 19s
wai-sink-swift native sink package / does this change touch it (push) Successful in 43s
repository checks / lockfiles, advisories, tests in CI, workflow hygiene, spec and section references, public text (push) Successful in 4m11s
WAI breaking changes and the conformance runner / WAI breaking · wire, record and API against main · linux (push) Successful in 4m14s
WAI breaking changes and the conformance runner / WAI breaking and conform · their tests, and the independent verifiers through wai conform · linux (push) Successful in 4m42s
wai-quantum wasmQ / the reference modules rebuild to their modules of record · linux (push) Successful in 43s
wai-quantum service / service energy · linux packages (push) Successful in 3m57s
wai-audit collector and player integration / collector, player integration and the browser end to end · macos (push) Successful in 1m27s
wai-quantum pulse and dynamics / the same bits · linux-arm64 (push) Successful in 2m58s
wai-quantum wasmQ / interpreter and vectors under wasm32-wasip2 (wasmtime) (push) Successful in 2m11s
wai-quantum docs, course and locales / the Studio's words in every locale · linux (push) Successful in 9s
wai-quantum extension points / the registry and the example · linux-arm64 (push) Failing after 4m15s
WAI operation catalogue / the catalogue and every door · linux (push) Failing after 3m20s
wai-audit collector and player integration / collector · linux (push) Successful in 3m30s
wai-quantum wasmQ / profile, engines, reference modules, adversarial, vectors · macos (push) Successful in 2m1s
wai-quantum command line / command line · macos (push) Successful in 2m12s
wai-quantum variational and algorithm library / parameters, gradients, optimisers, VQE, QAOA and builders · linux-arm64, release (push) Successful in 3m41s
wai-quantum for Python / python · macos (push) Successful in 2m33s
wai-sink-android native sink library / the JNI layer and the platform-free half on the host JVM · linux-arm64 (push) Successful in 4m30s
wai-quantum editors / editors · macos (push) Successful in 1m41s
wai-quantum extension points / the registry and the example · linux (push) Failing after 3m33s
wai-quantum pulse and dynamics / the same bits · macos (push) Successful in 1m23s
wai-quantum docs, course and locales / the course and the command line's languages · linux (push) Successful in 7m34s
wai-quantum extension points / the registry under wasm32-wasip2 (wasmtime) (push) Failing after 1m12s
wai-quantum wasmQ / profile, engines, reference modules, adversarial, vectors · linux (push) Successful in 9m17s
wai-quantum studio and desktop / desktop app · macos (push) Successful in 3m27s
wai-quantum verdicts and repairs / the intent set and the verdict under wasm32-wasip2 (wasmtime) (push) Successful in 1m20s
wai-quantum OpenQASM reader / corpus under wasm32-wasip2 (wasmtime) (push) Successful in 1m8s
wai-quantum contract / the policy is linked, and the deprecations page reads (push) Successful in 9s
wai-quantum verdicts and repairs / verdicts, repairs and the intent set · linux (push) Successful in 2m17s
wai-quantum service / service · macos (push) Successful in 6m13s
wai-quantum error correction and mitigation / codes, decoders, texts and mitigation · linux, release (push) Successful in 7m31s
wai-quantum OpenQASM reader / reader and corpus · linux (push) Successful in 2m12s
wai-quantum for JavaScript / javascript · linux (push) Successful in 7m6s
wai-quantum pulse and dynamics / reader, simulator and pulse jobs under wasm32-wasip2 (wasmtime) (push) Successful in 2m17s
wai-quantum editors / editors · linux (push) Successful in 4m56s
wai-quantum other formats / the set under wasm32-wasip2 (wasmtime) (push) Successful in 2m22s
wai-quantum for Python / python · linux (push) Successful in 11m30s
WAI Studio / the catalogue's actions, the unit tests and the core · linux (push) Successful in 1m6s
wai-quantum other formats / readers, writers and the set · linux (push) Successful in 3m50s
wai-quantum pulse and dynamics / reader, simulator and pulse jobs · linux, release (push) Successful in 4m28s
wai-quantum resource estimation / estimation and calibration · linux, release (push) Successful in 11m26s
wai-sink-android native sink library / every ABI, the AAR, and the instrumented tests in a headless emulator · macos (push) Successful in 7m3s
wai-quantum contract / API compatibility · linux (push) Successful in 6m42s
wai-quantum studio and desktop / desktop app · linux (push) Successful in 6m9s
wai-quantum variational and algorithm library / parameters, gradients, optimisers, VQE, QAOA and builders · linux, release (push) Successful in 4m27s
wai-quantum contract / schemas and the committed tool lists · linux (push) Successful in 7m23s
wai-quantum service / service · linux (push) Failing after 9m49s
WAI Studio / Studio in Chromium and Firefox · macos (push) Successful in 10m52s
wai-quantum views in agent hosts / views · the page and its engine (push) Successful in 4m27s
wai-sink-swift native sink package / libwai slices, desktop tests, simulator tests · macos (push) Successful in 10m46s
wai-quantum views in agent hosts / views · a scripted host (push) Successful in 8m54s
wai-quantum docs, course and locales / every command and snippet in the docs · linux (push) Successful in 27m7s
WAI Studio / Studio in WebKit · linux (push) Successful in 14m1s
wai-quantum command line / command line · linux (push) Successful in 31m36s
wai-quantum studio and desktop / studio · browser (push) Successful in 26m1s
wai-quantum studio and desktop / desktop app · windows (push) Successful in 15m1s
Three gaps the first independent provider (waiQ's run endpoint) found in
wai.quantum.provider/1, each closed within the version (section 10):
- Section 5.1: describe's billing gains a third form, {"free": false,
"priced": false}: not free, and no price set. It means an unknown cost
everywhere: shown as unknown, run only on the person's confirmation, and
sealed with its estimate unknown. `priced` is in that form only. The
checker passes it and still refuses {} and {"free": false}. Billing gains
the variant Unpriced; the conformance vectors gain `billing`, and the
protocol's schema the third form, held to each other by a test. The
client's own tests move from billing {} to the new form.
- Section 8.1: a provider sealing its own record of a run that is not free
records confirmed true and cost.confirmed_by "submit": it took the
authenticated submit as the confirmation, which it cannot see. Both
verifiers report cost_confirmation for a confirmed_by other than "submit"
(null included) or "submit" beside a confirmed that is not true; a host's
receipt, with no confirmed_by, is held as before. Four crafted receipts.
- Section 5.6: a job that had already failed answers its cancel with
failed and its reason. The checker now holds each cancel to how its job
ended (done, failed with a reason, or unsupported); before, any answer
passed.
Co-Authored-By: Claude Opus 5.5 <[email protected]>
|
||
| .. | ||
| accept | ||
| answers | ||
| eval | ||
| fabric | ||
| formats | ||
| intents | ||
| landscape | ||
| qasm3 | ||
| qec-text | ||
| receipts | ||
| reject | ||
| tools | ||
| v2 | ||
| vectors | ||
| wasmq | ||
| browser_verify.mjs | ||
| browser_webgpu.mjs | ||
| expected_hashes.json | ||
| README.md | ||
quantum-conformance
Statevector-equivalence for both capabilities of the quantum-sim extension
(../extensions/quantum-sim.md): given the same WQC circuit, a conforming sink
MUST reconstruct the identical fixed-point statevector — hash equality, no
tolerance.
Provenance. Generated here by wai_quantum_vectors from circuits authored in code. No media.
Four trees, each a pinned corpus:
| tree | capability | what |
|---|---|---|
vectors/ + expected_hashes.json |
wai.quantum.circuit (WQC1) |
bell, ghz3, qft3 and qft5, frozen as they were first written, then qft5_x22, dyadic_ladder and qft8_ones |
v2/vectors/ + v2/expected_hashes.json |
wai.quantum.circuit2 (WQC2) |
the same seven circuits; each entry names its capability |
reject/ + reject/reject.json |
both | payloads a conforming reader refuses, each with the class it is refused as: malformed, contract or invalid (extension §2) |
accept/ + accept/accept.json |
both | payloads a conforming reader accepts, at the edges of the same rules, each with how it reads: capability, n_qubits, op count, circuit hash and measurement (extension §2) |
The OpenQASM 3 reader's corpus, programs with what the reader must do with
each, is qasm3/, with a README of its own. The error-correction text formats
(noisy Clifford circuits and detector error models, read and written back byte
for byte, with what each must count and what must be refused) are qec-text/,
with a README of its own. Programs that call WebAssembly between their gates (wai.quantum.wasmq), the
reference modules of record and what a runner refuses are wasmq/, with a README of its
own. Programs in other formats (QIR under its profiles,
and jeff), each with the program it must read to, its round trip and its
refusals, and OpenQASM written to each, are formats/, with a README of its
own.
Energy-landscape jobs (../extensions/quantum-landscape.md) are landscape/: the
vectors a member is held to, the published table, the stated result and the script
that checks it, with a README of its own.
Job receipts, as the provider protocol's §8 states them (the seal, its strict
reader and signature, and the rules of a provider's result), are receipts/, with
a README of its own: receipts the command line, the job service and every built-in
provider kind made, and receipts crafted to break one rule each, judged by
wai-quantum verify and by a second verifier written from §8 alone
(tools/receipt_verify.py), held to each other by tools/receipt_differential.py.
An entry with no capability is a wai.quantum.circuit vector. The trees are the
one reference all three surfaces are checked against, rather than being checked
against each other.
Native
cargo build --release --no-default-features --features quantum --bin wai_quantum_vectors
./target/release/wai_quantum_vectors verify wai/quantum-conformance
WASI (the edge)
Same binary, same source, different architecture:
cargo build --release --target wasm32-wasip2 --no-default-features --features quantum \
--bin wai_quantum_vectors
wasmtime run -W nan-canonicalization=y -W relaxed-simd-deterministic=y --dir wai/quantum-conformance::/corpus \
target/wasm32-wasip2/release/wai_quantum_vectors.wasm verify /corpus
CI runs this leg as a debug build, so integer overflow panics instead of wrapping
(wai-conformance.yml, job quantum-wasip2, which also runs the crate's
bit_identity tests and the circuit core's unit tests under wasmtime).
Browser
node wai/quantum-conformance/browser_verify.mjs [path/to/quantum-ml/pkg] [module file]
Drives the deployed wasm-bindgen bundle in headless Chromium: the sink opens every
file of both vector trees to its manifest entry, refuses every reject file with
its listed class and reads every accept file as listed (the two 255-qubit accept
files only to the simulate stage: the sink simulates on construction, so they
are checked to be read, not compared), and the IDE builds its catalog circuits in each gateset to the
matching manifest. It is run by hand, before the website deploys a bundle. Note that
the IDE's statevector_hash_hex() is empty until run() is called — the circuit is
built eagerly, the state is not.
Browser, on the fabric's WebGPU member
WAI_QUANTUM_WEBGPU_REQUIRE=1 node wai/quantum-conformance/browser_webgpu.mjs
Serves wai-web/demo and this directory on 127.0.0.1 and opens
quantum_webgpu.html in Playwright's headless browser, with the quantum_webgpu
bundle built into wai-web/demo/pkg-webgpu (wai-web/demo/README.md). The gate
kernel runs on the page's WebGPU adapter, compiled by the browser's own WGSL
compiler. The page must certify the kernel bit-exact for both gatesets on random-v1
and fabric-v1 with the digests fabric/expected.json pins (the CPU reference's), and
run every vector of both trees to its statevector hash, on the per-gate implementation
and again on the tile implementation fabric/expected.json names (the browser's
compiler holds its barrier to WGSL's uniformity rules); refuse every reject file with
its listed class; and refuse a circuit wider than the member holds. Without
WAI_QUANTUM_WEBGPU_REQUIRE=1, a page offered no adapter is reported and passes. CI
runs it on macOS (wai-quantum-webgpu.yml, job browser).
Referee
python3 -I wai/quantum-conformance/tools/referee.py wai/quantum-conformance
A second implementation of the extension in Python, integers only, sharing no code
with the Rust reference. It derives both phase tables (circuit/1 by its recurrence,
circuit2 by an interval-certified procedure) and requires their literal values and
digests, and the extension's Appendix B to state the same; rebuilds every vector
file byte for byte and recomputes every manifest entry; refuses every reject file
with its listed class and by the rule its name states; accepts every accept file
and reads it as listed; and requires
dyadic_ladder to change its statevector hash under every ±1 change of every
phase-table entry, in both tables. CI runs it on Linux (wai-conformance.yml,
job independent-verifiers).
Scope
The corpus pins the container, the reader's refusals, the fixed-point arithmetic and both phase tables, where hash equality is the right bar. What it covers, and where it stops:
- Every phase-table entry. Under either table, a change of ±1 to either
component of any
P(1..32), withHfollowingre P(3), changesdyadic_ladder's statevector hash; the referee checks this on every run. A change of ±1 toHalone changes the hash of every vector that appliesH. - The four original vectors see no
P(k). They run the QFT from|0…0⟩, where every controlled phase acts on zero amplitudes, so no change to aP(k)entry moves their hashes except throughH, which followsre P(3); the three vectors after them are there for that. - One control at most. No vector applies a gate with more than one control. Such gates appear in the reject tree, and in the accept tree as circuit/1's repeated control.
- One measurement. The shot sampler is pinned by bell's measurement alone.
The floating-point layers (quantum_source, quantum_channel) are held to
exact IEEE-754 bits by unit tests instead, since they have no WQC circuit to
pin — see entropy_is_bit_identical_across_architectures.