wai-quantum: a gate under many controls stays one operation on the state vector, the bit-exact method states what its lowering did, and the error-correction reader takes C_XYZ, E and PAULI_CHANNEL_1 #675

Merged
dcharlot merged 21 commits from wai/quantum-reader-scaling into main 2026-11-07 03:34:06 -05:00

2026-11-07

Transaction Science
Merge main
Some checks failed
WAI Studio / Studio in WebKit · linux (pull_request) Successful in 12m11s
wai-web reach builds / wai-web reach builds · this tree's wai-web, every rung on its engine line (pull_request) Successful in 15m13s
wai-web wasm32 / wai-web wasm32 build · corpus, menu and writers (pull_request) Failing after 16m6s
wai-quantum energy-landscape jobs / reader, kernels, answers and the stated result · linux, release (pull_request) Successful in 7m40s
wai-quantum energy-landscape jobs / native against WebAssembly, over many seeds (pull_request) Successful in 7m59s
WAI breaking changes and the conformance runner / WAI breaking and conform · their tests, and the independent verifiers through wai conform · linux (pull_request) Successful in 9m23s
WAI examples / WAI examples · portable · linux (pull_request) Successful in 20m44s
wai-quantum WebGPU member / member · GPU, Vulkan (jetson-hub) (pull_request) Successful in 22m11s
wai-quantum WebGPU member / member · GPU, Vulkan (thor) (pull_request) Successful in 23m11s
joule-code conformance gate / joule-moq-relay, every target (pull_request) Successful in 4m8s
WAI conformance / v2 vocabulary · manifests validate as stated (pull_request) Successful in 26s
WAI conformance / cargo-class corpora · linux-arm64 (pull_request) Failing after 3m43s
standards workspaces build + test / joule-code-rs (joule-code/joule-code-rs, joule-code-rs, linux-arm64, true) (pull_request) Failing after 9m34s
joule-code conformance gate / joule-moq-ingest, every target (pull_request) Successful in 11m0s
repository checks / lockfiles, advisories, tests in CI, workflow hygiene, spec and section references, public text (pull_request) Successful in 10m58s
WAI conformance / delivery telemetry · CMCD and CMSD against an independent library (pull_request) Successful in 58s
WAI conformance / cross-arch byte-equality · linux-arm64 (pull_request) Successful in 2m13s
wai-quantum HIP member / member · HIP absent (linux-arm64) (pull_request) Successful in 2m46s
WAI conformance / C2PA manifest emission · signed, read back, validated (pull_request) Successful in 4m13s
wai-quantum npu-cores member / member · npu-cores absent (linux-arm64) (pull_request) Successful in 3m12s
WAI conformance / independent verifiers · claims, JWP, key discovery and integer payloads (Python) (pull_request) Failing after 13m17s
wai-quantum pulse and dynamics / the same bits · linux-arm64 (pull_request) Successful in 4m32s
wai-quantum tensor-engine member / member · tensor engine absent (linux-arm64) (pull_request) Successful in 28s
wai-quantum variational and algorithm library / parameters, gradients, optimisers, VQE, QAOA and builders · linux-arm64, release (pull_request) Successful in 3m24s
wai-sink-android native sink library / the JNI layer and the platform-free half on the host JVM · linux-arm64 (pull_request) Successful in 3m28s
WAI conformance / each feature of the independent verifiers' steps compiles alone (pull_request) Successful in 19m22s
wai-quantum extension points / the registry and the example · linux-arm64 (pull_request) Successful in 7m37s
WAI examples / WAI examples · android-app · linux-arm64 (pull_request) Successful in 9m7s
wai-quantum energy-landscape jobs / the same bits · linux-arm64 (pull_request) Successful in 7m34s
WAI energy receipts / energy receipts · linux-arm64 (pull_request) Successful in 32m17s
Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-11-07 03:32:22 -05:00
Transaction Science
wai-quantum: the corpus rerun at the review's fixes, on both hosts
The same counts as before them: 1743 pass on macOS arm64, 1738 on Linux
x86_64, none failing; the self-test catches its 23 faults on each.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-11-07 03:31:54 -05:00
Transaction Science
Merge main
Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-11-07 02:18:26 -05:00
Transaction Science
wai-quantum: a request's options keep the members the methods list names
Naming `controls` in the schema made the strict check refuse the others.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-11-07 02:18:10 -05:00
Transaction Science
Merge main
Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-11-07 01:46:12 -05:00
Transaction Science
wai-quantum: the rest of the review's fixes on the reader-scaling branch
- A named method that needs standard gates reads them, so a program they
  cannot hold is refused as the reader refuses it: on its line, with Q208
  or Q210 and no J011. Both refusals past 16 controls say how a job holds
  the gate, and no longer say the bit-exact method does so by default.
- A verdict with no intent reads the program as it ran, so a gate past 16
  controls runs over MCP, as the docs say; an intent is checked in
  standard gates, and a job with one is refused there, on its line.
- lint's dynamic_steps counts standard steps, beside gates.
- options.controls is read: another value, or "whole" on a job that runs
  standard gates, is refused (J003), and the schema, methods list, API
  description, README and both MCP servers name it.
- accuracy.global_phase is stated against method statevector's state, not
  the language's, whose U and gphase differ from it; below_table and
  moved_angles say they count phase gates, at 1e-14 of a turn.
- operations is an engine member.
- Gates held whole may take 2,000,000 qubits in all (Q210), which holds
  nothing the standard form holds.
- A metered plan says `metered`, its work what the meter allows, and such a
  job does not set the method's measured rate.
- The refusal, service and QEC pages and the corpus say what changed; the
  tests are named in CI; the conformance set holds the new text forms; the
  service snapshot and the agent docs are regenerated.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-11-07 01:44:51 -05:00
Transaction Science
wai-quantum: tests for the rest of the reader-scaling review, before its fixes
Two seams with no behaviour come with them: a test's budget for an mps
run, and a plan's `metered`, false everywhere so far.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-11-07 01:32:16 -05:00
Transaction Science
Merge the corpus branch, with main
Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-11-07 01:27:03 -05:00

2026-11-06

Transaction Science
wai-quantum: the review's fixes on the reader-scaling branch
- The Clifford check of a program holding a gate whole counts its standard
  gates first (Program::standard_within, the count `lowered` already used)
  and refuses past 16 controls (Q208) and past MAX_OPS (Q210) before
  writing any. `ctrl(41) @ z` on 42 qubits, `ctrl(39) @ t`, a Grover
  iteration on 42 qubits, `ctrl(24) @ p(0)` and a loop of `ctrl(16) @ p(0)`
  hung the planner (each method, `auto` and a dry run) with memory growing;
  they are refused at once.
- A method's plan makes only the circuit it reads: the bit-exact circuit
  for `exact`, the Clifford gates for `stabilizer`.
- The whole gate's standard gates are read exactly in that check: a phase
  under many controls smaller than the reader's tolerance
  (`ctrl(16) @ p(1e-7)`) is not taken for none.
- The mps meter counts each move of the orthogonality center and each
  one-qubit gate, and holds the budget at each two-site update, inside a gate
  that crosses the chain. The plan walks the same steps at the bond asked
  for (WorkBound, over Program::local_steps, the walk local_matrices
  writes), so it still bounds the meter.
- PAULI_CHANNEL_1 takes every channel independent flips can give, rates
  above 1/2 and parities of zero among them.
- The frame reader refuses qubit 4294967295, the carrier's index, and a
  correlated error whose carrier has no index left (4294967294 named), at
  their lines; C_XYZ and C_ZYX refuse arguments.
- The pinned mps job's digest moves with its plan's work, which now counts
  its one-qubit gates (975d7a6a… before); the CLI's llms-full.txt is
  regenerated (its feature table already said `exact` holds a gate whole
  only when asked).

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-11-06 14:33:41 -05:00
Transaction Science
wai-quantum: tests for the review of the reader-scaling branch, before its fixes
Each fails on c16cb2086: a whole gate too large for standard gates hangs
the Clifford check; a tiny phase under many controls reads as Clifford; the
mps meter charges no move of the center, and holds the budget only per gate;
Pauli channels with exact independent rates above 1/2 are refused; the
carrier's index is accepted in text; C_XYZ takes arguments.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-11-06 13:51:21 -05:00
Transaction Science
Merge the corpus branch's results and page, with this branch's comparison and timings
Some checks failed
WAI examples / WAI examples · portable · linux (pull_request) Successful in 29m7s
wai-quantum WebGPU member / member · software Vulkan (linux) (pull_request) Successful in 9m13s
wai-web wasm32 / wai-web wasm32 build · corpus, menu and writers (pull_request) Successful in 8m59s
wai-sink-swift native sink package / libwai slices, desktop tests, simulator tests · macos (pull_request) Successful in 16m58s
WAI Studio / Studio in Chromium and Firefox · macos (pull_request) Successful in 17m28s
WAI Studio / Studio in WebKit · linux (pull_request) Successful in 15m32s
WAI conformance / cargo-class corpora · linux (pull_request) Failing after 59m54s
repository checks / lockfiles, advisories, tests in CI, workflow hygiene, spec and section references, public text (pull_request) Successful in 2m29s
wai-quantum CUDA member / member · CUDA (jetson-hub) (pull_request) Successful in 1m45s
wai-quantum OpenCL member / member · OpenCL GPU and CPU (jetson-hub) (pull_request) Successful in 39s
wai-quantum service / service energy · linux packages (pull_request) Successful in 1m36s
wai-quantum portable tensor program / tensor program · GPUs (jetson-hub) (pull_request) Successful in 24s
wai-quantum WebGPU member / member · GPU, Vulkan (jetson-hub) (pull_request) Successful in 22m23s
WAI conformance / v2 vocabulary · manifests validate as stated (pull_request) Successful in 1m6s
standards workspaces build + test / joule-code-rs (joule-code/joule-code-rs, joule-code-rs, linux-arm64, true) (pull_request) Successful in 5m20s
WAI conformance / delivery telemetry · CMCD and CMSD against an independent library (pull_request) Successful in 15s
WAI conformance / cross-arch byte-equality · linux-arm64 (pull_request) Successful in 46s
WAI conformance / C2PA manifest emission · signed, read back, validated (pull_request) Successful in 2m46s
WAI conformance / each feature of the independent verifiers' steps compiles alone (pull_request) Successful in 17m54s
WAI conformance / cargo-class corpora · linux-arm64 (pull_request) Successful in 25m59s
wai-quantum HIP member / member · HIP absent (linux-arm64) (pull_request) Successful in 1m27s
wai-quantum npu-cores member / member · npu-cores absent (linux-arm64) (pull_request) Successful in 41s
WAI examples / WAI examples · android-app · linux-arm64 (pull_request) Successful in 8m10s
wai-quantum pulse and dynamics / the same bits · linux-arm64 (pull_request) Successful in 2m6s
wai-quantum tensor-engine member / member · tensor engine absent (linux-arm64) (pull_request) Successful in 32s
wai-quantum extension points / the registry and the example · linux-arm64 (pull_request) Successful in 3m20s
wai-quantum variational and algorithm library / parameters, gradients, optimisers, VQE, QAOA and builders · linux-arm64, release (pull_request) Successful in 2m29s
wai-sink-android native sink library / the JNI layer and the platform-free half on the host JVM · linux-arm64 (pull_request) Successful in 4m32s
WAI energy receipts / energy receipts · linux-arm64 (pull_request) Successful in 31m52s
WAI conformance / independent verifiers · claims, JWP, key discovery and integer payloads (Python) (pull_request) Successful in 1h37m18s
The comparison rerun on this branch's engine (commit d4282f680; each file
names its trees):

- macOS arm64 (M3 Ultra): 1743 pass, 0 fail; 11 known, 10 refused as
  listed, 12 not run, 12 recorded.
- Linux x86_64 (Ryzen AI Max+ 395): 1738 pass, 0 fail; 11 known, 10
  refused as listed, 14 not run, 12 recorded.
- The colour code, a correlated error and a general Pauli channel match the
  other engine mechanism by mechanism, and their rates; a Pauli channel with
  no independent form is refused, as listed. The bit-exact method meets its
  bound against OpenQASM's state with the phase its result states, on every
  circuit. The 30-qubit QFT at max_bond 256 runs, exact.

Timings on both hosts, and before-after-macos-arm64.json: the same harness
on the corpus branch's build, then this branch's, on the M3 Ultra.

The page says what the results now state, and the hand-written Pauli
channel's reason is corrected: the other engine does give its model (only
the reason text changed after the runs, so the tools and corpus trees they name differ
from this commit's by that description).

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-11-06 09:14:43 -05:00
Transaction Science
wai-quantum: the command line's committed tool list and docs follow the schemas, and the new code is clippy-clean
- The job request's `options` says what `controls` does now: whole on the
  state vector by default, standard on the bit-exact method unless "whole".
- docs/local-mcp.json and docs/llms-full.txt regenerated from the binary
  (WAI_QUANTUM_BLESS=1); the command line's tests and smoke.sh pass.
- Clippy's findings in this branch's new code fixed; the crate's older
  findings are left as they are (clippy is not a gate on it).
- The changelog says that a bit-exact result now carries its accuracy
  members, so its JSON and receipt hold them.

Checked on Linux aarch64: the engine's tests with every feature (library
and integration, 14 targets), its debug test build, every feature subset
the workflows check under -D warnings, and the command line's tests and
smoke checks; the library tests on x86_64 too.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-11-06 07:16:11 -05:00
Transaction Science
Merge the cross-simulator corpus's fixed checks into the reader-scaling branch
compare.py is the corpus branch's, with this branch's changes made again on
it: the bit-exact method held to OpenQASM's state with the global phase its
result states; error-correction circuits with C_XYZ, E and PAULI_CHANNEL_1
compared, a model the other engine cannot give held by its sampler; a wide
entry that names its engines and bond. The expected refusals follow the
reader: the colour code, E and the Pauli channel are no longer refused, and a
channel with no independent form must be. A timed row runs the bit-exact
method asked to hold a gate whole.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-11-06 03:23:02 -05:00
Transaction Science
wai-quantum: the bit-exact method keeps its bits, and gates count standard gates
Review of the first pass:

- The bit-exact method's bits are the rounding of each gate it applies, so a
  gate held whole gives other bits than its standard gates. A job on exact now
  runs standard gates by default, and gives the hash it always gave; it holds
  such a gate whole only when asked, "options": {"controls": "whole"}.
  catalog::runs_whole takes the request, and the planner's bit-exact circuit
  is the one the method runs.
- A result's and lint's `gates` count standard gates however the method ran
  them, as they always have, so a receipt's provenance is unchanged;
  `operations` (new, optional) says what a method holding gates whole ran.
  The schemas say so.
- The comparison's driver follows the job path: whole on the state vector,
  standard on exact unless asked.
- The tests hold the default bit-exact hash to the one before the change.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-11-06 03:17:58 -05:00
Transaction Science
wai-quantum: a gate under many controls held as one op (first pass, before review)
The state a first pass left uncommitted, recorded as it was so that the review
and its fixes read as changes against it:

- qasm::read_whole keeps a gate whose standard form doubles with its
  controls as one op; Program::lowered writes it in standard gates, one
  lowering (qasm/controls.rs) behind both forms.
- StateVector::run_ops applies such a gate as one; the bit-exact simulator
  walks only the indices its controls leave on.
- The bit-exact method reports the global phase its lowering drops and the
  angles below its table; a named mps job runs metered on the bond it
  reaches; the error-correction reader takes C_XYZ, E and PAULI_CHANNEL_1.

Not yet built or tested as a whole; later commits review it.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-11-06 03:07:06 -05:00