open-standards/wai/quantum-conformance/qec-text/README.md
Transaction Science 8ccc374966
Some checks failed
joule-moq-room room service / joule-moq-room · does this change touch it (push) Successful in 42s
wai-audit collector and player integration / does this change touch it (push) Successful in 32s
joule-moq-remote host agent / joule-moq-remote · does this change touch it (push) Successful in 47s
wai-app and Create / wai-app · does this change touch it (push) Successful in 40s
wai-quantum command line / does this change touch it (push) Successful in 22s
wai-fleet service / does this change touch it (push) Successful in 35s
wai-ledger service / does this change touch it (push) Successful in 35s
WAI operation catalogue / does this change touch it (push) Successful in 35s
wai-quantum clippy / does this change touch it (push) Successful in 47s
wai-quantum contract / does this change touch it (push) Successful in 37s
wai-quantum docs, course and locales / does this change touch it (push) Successful in 37s
wai-quantum editors / does this change touch it (push) Successful in 37s
wai-quantum resource estimation / does this change touch it (push) Successful in 15s
wai-quantum other formats / does this change touch it (push) Successful in 29s
wai-quantum OpenQASM reader / does this change touch it (push) Successful in 39s
wai-quantum for JavaScript / does this change touch it (push) Successful in 42s
WAI breaking changes and the conformance runner / WAI breaking · does this change touch WAI (push) Successful in 17s
wai-quantum pulse and dynamics / does this change touch it (push) Successful in 28s
wai-quantum for Python / does this change touch it (push) Successful in 29s
wai-quantum qudit jobs / does this change touch it (push) Successful in 21s
wai-quantum error correction and mitigation / does this change touch it (push) Successful in 22s
wai-quantum wasmQ / does this change touch it (push) Successful in 18s
wai-quantum extension points / does this change touch it (push) Successful in 24s
wai-sink-swift native sink package / does this change touch it (push) Successful in 33s
wai-quantum views in agent hosts / does this change touch it (push) Successful in 36s
wai-app and Create / wai-app · tests, clippy, the line language's verifier (linux) (push) Successful in 31s
joule-moq-web browser client / joule-moq-web · does this change touch it (push) Successful in 4m4s
joule-moq-http live HTTP egress / joule-moq-http · does this change touch it (push) Successful in 4m13s
wai-audit collector and player integration / collector · linux (push) Successful in 2m13s
wai-fleet service / service · linux (push) Successful in 2m14s
wai-quantum contract / the policy is linked, and the deprecations page reads (push) Successful in 8s
wai-ledger service / service · linux (push) Successful in 2m34s
wai-quantum docs, course and locales / the Studio's words in every locale · linux (push) Successful in 21s
wai-quantum clippy / clippy, warnings denied, every feature set · linux (push) Successful in 3m14s
wai-quantum service / does this change touch it (push) Successful in 7m26s
wai-quantum service / service energy · linux packages (push) Failing after 5s
wai-quantum studio and desktop / does this change touch it (push) Successful in 7m56s
WAI Studio / does this change touch it (push) Successful in 7m38s
wai-quantum variational and algorithm library / does this change touch it (push) Successful in 7m56s
wai-sink-android native sink library / does this change touch it (push) Successful in 7m45s
wai-quantum verdicts and repairs / does this change touch it (push) Successful in 7m48s
wai-quantum studio and desktop / desktop app · windows (push) Waiting to run
wai-quantum docs, course and locales / the course and the command line's languages · linux (push) Successful in 4m17s
wai-quantum OpenQASM reader / corpus under wasm32-wasip2 (wasmtime) (push) Successful in 1m31s
wai-quantum OpenQASM reader / reader and corpus · linux (push) Successful in 2m41s
wai-quantum other formats / the set under wasm32-wasip2 (wasmtime) (push) Successful in 3m29s
wai-quantum editors / editors · linux (push) Successful in 5m35s
wai-quantum pulse and dynamics / reader, simulator and pulse jobs under wasm32-wasip2 (wasmtime) (push) Successful in 1m45s
WAI breaking changes and the conformance runner / WAI breaking · wire, record and API against main · linux (push) Successful in 1m45s
wai-quantum pulse and dynamics / reader, simulator and pulse jobs · linux, release (push) Successful in 2m26s
wai-quantum resource estimation / estimation and calibration · linux, release (push) Successful in 6m45s
joule-moq-remote host agent / joule-moq-remote, every target (linux-arm64) (push) Successful in 2m5s
wai-quantum other formats / readers, writers and the set · linux (push) Successful in 7m0s
wai-quantum for JavaScript / javascript · linux (push) Successful in 4m27s
wai-quantum qudit jobs / the module and the conformance set under wasm32-wasip2 (wasmtime) (push) Successful in 1m14s
wai-quantum wasmQ / the reference modules rebuild to their modules of record · linux (push) Successful in 29s
wai-quantum contract / API compatibility · linux (push) Successful in 10m36s
wai-quantum contract / schemas and the committed tool lists · linux (push) Successful in 10m38s
wai-quantum extension points / the registry under wasm32-wasip2 (wasmtime) (push) Successful in 2m10s
wai-quantum wasmQ / profile, engines, reference modules, adversarial, vectors · linux (push) Successful in 4m13s
wai-quantum error correction and mitigation / codes, decoders, texts and mitigation · linux, release (push) Successful in 5m12s
wai-quantum extension points / the registry and the example · linux (push) Successful in 4m20s
wai-quantum wasmQ / interpreter and vectors under wasm32-wasip2 (wasmtime) (push) Successful in 3m33s
WAI Studio / the catalogue's actions, the unit tests and the core · linux (push) Successful in 53s
wai-quantum pulse and dynamics / the same bits · linux-arm64 (push) Successful in 7m20s
WAI operation catalogue / the catalogue and every door · linux (push) Successful in 16m4s
WAI breaking changes and the conformance runner / WAI breaking and conform · their tests, and the independent verifiers through wai conform · linux (push) Successful in 10m4s
repository checks / lockfiles, advisories, tests in CI, workflow hygiene, spec and section references, public text (push) Successful in 10m57s
wai-quantum for Python / python · linux (push) Successful in 8m53s
wai-quantum qudit jobs / the module, the job, the conformance set, the referee and the verb · linux (push) Successful in 8m50s
wai-quantum variational and algorithm library / parameters, gradients, optimisers, VQE, QAOA and builders · linux, release (push) Successful in 2m29s
wai-quantum views in agent hosts / views · the page and its engine (push) Successful in 6m52s
joule-moq-room room service / joule-moq-room, every target (push) Successful in 11m36s
wai-quantum verdicts and repairs / verdicts, repairs and the intent set · linux (push) Successful in 3m8s
wai-quantum verdicts and repairs / the intent set and the verdict under wasm32-wasip2 (wasmtime) (push) Successful in 3m3s
joule-moq-http live HTTP egress / joule-moq-http, every target (push) Successful in 3m20s
wai-quantum studio and desktop / studio · browser (push) Successful in 5m43s
wai-quantum variational and algorithm library / parameters, gradients, optimisers, VQE, QAOA and builders · linux-arm64, release (push) Successful in 2m43s
wai-quantum studio and desktop / desktop app · linux (push) Successful in 6m59s
wai-quantum extension points / the registry and the example · linux-arm64 (push) Successful in 5m34s
wai-quantum views in agent hosts / views · a scripted host (push) Successful in 10m23s
wai-sink-android native sink library / the JNI layer and the platform-free half on the host JVM · linux-arm64 (push) Successful in 5m23s
wai-quantum service / service · linux (push) Successful in 9m57s
wai-quantum command line / command line · linux (push) Successful in 25m50s
wai-quantum docs, course and locales / every command and snippet in the docs · linux (push) Successful in 24m41s
joule-moq-remote host agent / joule-moq-remote, every target (macos) (push) Successful in 52s
wai-quantum command line / command line · macos (push) Successful in 2m44s
wai-fleet service / service · macos (push) Successful in 50s
wai-audit collector and player integration / collector, player integration and the browser end to end · macos (push) Successful in 3m20s
WAI Studio / Studio in WebKit · linux (push) Successful in 19m4s
wai-ledger service / service · macos (push) Successful in 1m12s
wai-quantum editors / editors · macos (push) Successful in 2m25s
wai-quantum pulse and dynamics / the same bits · macos (push) Successful in 2m50s
wai-quantum for Python / python · macos (push) Successful in 3m22s
wai-quantum qudit jobs / the same bits · macos (push) Successful in 1m55s
wai-app and Create / wai-app · Create, browser end-to-end (macos) (push) Successful in 9m53s
wai-quantum wasmQ / profile, engines, reference modules, adversarial, vectors · macos (push) Successful in 3m6s
wai-quantum service / service · macos (push) Successful in 7m32s
wai-quantum studio and desktop / desktop app · macos (push) Successful in 4m12s
joule-moq-web browser client / joule-moq-web · browser end-to-end (macos) (push) Successful in 15m5s
wai-sink-swift native sink package / libwai slices, desktop tests, simulator tests · macos (push) Successful in 17m31s
wai-sink-android native sink library / every ABI, the AAR, and the instrumented tests in a headless emulator · macos (push) Successful in 9m55s
WAI Studio / Studio in Chromium and Firefox · macos (push) Successful in 14m11s
WAI Quantum: measurement records from the frame simulator, the same bits on every machine, and cultivation circuits
The frame simulator gives every measurement's result (sample_measurements):
one noiseless run found by an inverse tableau, and each shot's frame over it.
The samples are specified (extensions/quantum-sim.md section 10) and pinned in
the conformance set with two digests a circuit. A noise draw whose skip passes
the batch takes no logarithm; a rate below 2^-53 no longer flips every shot.
Distance 7, 7 rounds, p = 0.001, one thread of the build host: 6.0 million
shots a second of detection events (4.0 million before), 6.2 million of records.

quantum_cultivate generates the core of magic-state cultivation in the
distance-3 and distance-5 colour codes, as OpenQASM 3 and as a Clifford form
with detectors, and checks it by stabilizer simulation and exactly with every
fault and pair of faults. Not the published circuits: no growth, no escape,
and the distance-5 circuit is protected no better than the distance-3 one.

Co-Authored-By: Claude Fable 5.2 <[email protected]>
2026-11-11 08:46:24 -05:00

4.1 KiB

qec-text

The error-correction text formats, as the engine reads and writes them: noisy Clifford circuits with detectors and observables (circuits/), and detector error models (models/). The reader and writer are wai_quantum::quantum_qec_text; the circuits' meaning, sampling and models are wai_quantum::quantum_frame.

Every file here is in the writer's layout (NAME[tag](a, b) t1 t2, a block's body four spaces in), so each must come back from reading and writing byte for byte. vectors.json pins, for each:

field what
qubits, measurements, detectors, observables the circuit's counts after its blocks are unrolled
tags the tags its instructions carry, each once, in order
text_blake3 BLAKE3 of the file
model, model_blake3, mechanisms the file holding the circuit's detector error model, as the engine writes it (coordinates, tags, decompositions), and its hash and size
generator for a circuit the crate writes, the call that writes it: the file must be what the code writes today
reference one noiseless run of the circuit, every random result reading 0: how many results are random, and record_blake3, BLAKE3 of the record as 8-byte little-endian words of 64 measurements
samples at shots shots of seed: detections_blake3 and measurements_blake3, the digests of the detection events and of the measurement records. The algorithm and the digests are fixed in extensions/quantum-sim.md §10, so a second implementation can produce them

A model's vector gives its detectors, observables and mechanisms after its repeat blocks are unrolled and shift_detectors applied, how many are decomposed (parts joined by ^) and how many tagged.

The files:

  • surface_z_d3_r3, surface_z_d5_r1: the rotated surface-code memory experiment, Z basis, every noise knob at p.
  • bb72_z_c2, bb72_x_c1: the [[72,12,6]] bivariate-bicycle memory, its depth-8 syndrome cycle, in each basis.
  • cultivate_d3_k2, cultivate_d5_k2: the Clifford form of a magic-state cultivation circuit in the triangular colour code (quantum_cultivate: every T an S), noise at 0.001, a detector on every measurement. The circuits themselves, T gates and all, are cultivation/*.qasm; the cultivation list pins each one's counts, the order its checks meet the data qubits in, its text's BLAKE3 and unseen_faults: the fewest faults of the Clifford form that fire no detector and flip the observable, searched to four.
  • tagged: written by hand. Tags on a gate, on noise and on a REPEAT; Pauli-target observables (OBSERVABLE_INCLUDE(1) X0 X1 X2 on a three-qubit cat state, OBSERVABLE_INCLUDE(0) rec[-1] Z2 beside a measurement record); an inverted measurement target (M !0 1); coordinates shifted by SHIFT_COORDS. A tag on a noise instruction is the tag of every mechanism it makes, and mechanisms with one symptom set but different tags stay apart.
  • correlated: written by hand. C_XYZ and C_ZYX on a qubit that a detector reads through them; E and CORRELATED_ERROR on Pauli targets, so the circuit holds one qubit more than its text names; PAULI_CHANNEL_1, as the independent flips with its law, one rate above 1/2.
  • refuse/no_independent_flips.circuit: PAULI_CHANNEL_1(0.1, 0.1, 0), which no independent flips give.
  • models/decomposed.dem: written by hand. Decomposed errors, a tagged one, a repeat block with shift_detectors, detector coordinates and a declared observable no error flips.

refuse/ holds text the engine must refuse, each with its line and the words of its refusal in vectors.json: an instruction it does not implement (T, and a Pauli product measurement it reads but does not run), an observable that is random without noise, a record before the first measurement, a tag left open, an empty part of a decomposed error, and an unknown model instruction.

The test is wai/wai-quantum/tests/qec_text_conformance.rs:

cargo test --release --features full --test qec_text_conformance
WAI_QUANTUM_BLESS=1 cargo test --release --features full --test qec_text_conformance   # rewrite the generated files