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 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 studio and desktop / desktop app · windows (push) Successful in 12m31s
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

70 lines
4.1 KiB
Markdown

# 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`:
```sh
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
```