engine::targets holds a device's qubits (T1, T2, frequency, the readout
assignment matrix, the measurement time), its native gates with per-qubit
and per-pair errors and durations, the coupling map and the calibration
snapshot, as one strictly read document (wai.quantum.target/1) with a JSON
Schema and a canonical RFC 8785 text whose BLAKE3 names it in a receipt.
- import reads the per-qubit and per-gate calibration properties a
superconducting-device service publishes (alone or beside its
configuration), an instruction-properties target, the device-capabilities
document a cloud service returns, and the open provider protocol's
describe. Four synthetic built-in targets, one in each shape, made up by a
fixed-seed generator.
- noise derives a schedule per qubit and per pair: each gate's reported
error as the depolarising channel that, with its relaxation, gives exactly
that average infidelity; amplitude damping and dephasing from T1, T2 and
the durations, idling included; readout from the assignment matrix.
quantum_noisy gains Channel and Schedule for the density matrix and the
branching trajectories; the global model keeps its bits.
- layout compares many layouts and their most reliable routes and keeps the
highest expected success; the compiler's own (fewest swaps) wins unless
beaten, and the program is checked against the circuit. native.rs gains
compile_at and weighted routes; compile is unchanged.
- A job's target field (a document or a built-in name) plans and runs the
program as the device would: the plan states the layout, the expected
success and the noise, and the result carries the target's hash.
Ground truth: zero errors give the ideal distribution to 1e-12 in all three
bases; T1 decay, T2 coherence and the assignment matrix match their closed
forms; a gate's channels reproduce its reported average infidelity exactly
(by the Choi state); the layout equals an exhaustive search on a line.
Co-Authored-By: Claude Opus 5.5 <[email protected]>