Gate G25 · Nexus cross-check
Three Nexus lanes, one decoder
Five representative circuits from the existing gates were re-run on every Quantinuum Nexus backend this account can reach, and compared against the local Selene baseline with the same observable decoder. Each cell carries a job id and a meter record; the tolerance is the binomial 4σ band, 4·√(0.5/shots) = 0.125 at 512 shots.
Circuit × device grid
| Ref | Circuit | Selene | H2-1LE | H2-Emulator | Helios-1E-lite |
|---|---|---|---|---|---|
| G16 | QPDE ethylene interference cell (k=4, beta=1/2) 512 shots | 0.0000 | verdict verified nexus_cross_check_verified4/4 criteriaEach criterion below is recomputed from the committed rows by quantum/verdicts.py; this chip reads the result rather than restating it.
0.0000 PASS Δ 0.0000 / tol 0.125 | verdict verified nexus_cross_check_verified4/4 criteriaEach criterion below is recomputed from the committed rows by quantum/verdicts.py; this chip reads the result rather than restating it.
0.0000 PASS Δ 0.0000 / tol 0.125 | verdict verified nexus_cross_check_verified4/4 criteriaEach criterion below is recomputed from the committed rows by quantum/verdicts.py; this chip reads the result rather than restating it.
0.0020 PASS Δ 0.0020 / tol 0.125 |
| G24a | Simon n=3 -- Nadarasa rewriter form 512 shots | 1.0000 | verdict verified nexus_cross_check_verified4/4 criteriaEach criterion below is recomputed from the committed rows by quantum/verdicts.py; this chip reads the result rather than restating it.
1.0000 PASS Δ 0.0000 / tol 0.125 | verdict verified nexus_cross_check_verified4/4 criteriaEach criterion below is recomputed from the committed rows by quantum/verdicts.py; this chip reads the result rather than restating it.
1.0000 PASS Δ 0.0000 / tol 0.125 | verdict verified nexus_cross_check_verified4/4 criteriaEach criterion below is recomputed from the committed rows by quantum/verdicts.py; this chip reads the result rather than restating it.
0.9980 PASS Δ 0.0020 / tol 0.125 |
| G24b | Simon n=3 -- TKET level-2 compiled form 512 shots | 1.0000 | verdict verified nexus_cross_check_verified4/4 criteriaEach criterion below is recomputed from the committed rows by quantum/verdicts.py; this chip reads the result rather than restating it.
1.0000 PASS Δ 0.0000 / tol 0.125 | verdict verified nexus_cross_check_verified4/4 criteriaEach criterion below is recomputed from the committed rows by quantum/verdicts.py; this chip reads the result rather than restating it.
1.0000 PASS Δ 0.0000 / tol 0.125 | verdict verified nexus_cross_check_verified4/4 criteriaEach criterion below is recomputed from the committed rows by quantum/verdicts.py; this chip reads the result rather than restating it.
0.9980 PASS Δ 0.0020 / tol 0.125 |
| G22 | NHS discharge QAOA, 2 patients x 2 placements 512 shots | 0.1895 | verdict verified nexus_cross_check_verified4/4 criteriaEach criterion below is recomputed from the committed rows by quantum/verdicts.py; this chip reads the result rather than restating it.
0.1582 reference | verdict verified nexus_cross_check_verified4/4 criteriaEach criterion below is recomputed from the committed rows by quantum/verdicts.py; this chip reads the result rather than restating it.
0.1855 reference | verdict verified nexus_cross_check_verified4/4 criteriaEach criterion below is recomputed from the committed rows by quantum/verdicts.py; this chip reads the result rather than restating it.
0.1934 reference |
| G20 | Floquet chain n=6, 2 cycles, eps=0 512 shots | 1.0000 | verdict verified nexus_cross_check_verified4/4 criteriaEach criterion below is recomputed from the committed rows by quantum/verdicts.py; this chip reads the result rather than restating it.
1.0000 PASS Δ 0.0000 / tol 0.125 | verdict verified nexus_cross_check_verified4/4 criteriaEach criterion below is recomputed from the committed rows by quantum/verdicts.py; this chip reads the result rather than restating it.
0.9980 PASS Δ 0.0020 / tol 0.125 | verdict verified nexus_cross_check_verified4/4 criteriaEach criterion below is recomputed from the committed rows by quantum/verdicts.py; this chip reads the result rather than restating it.
0.9948 PASS Δ 0.0052 / tol 0.125 |
G22 is a reference row rather than a pass/fail one: the QAOA energy on a two-patient discharge instance is a distribution statistic, not a single analytic target, so it is compared against the emulator value rather than a closed form.
No hardware leg — and why
No H-series hardware backend is reachable for this account; every lane below is an emulator. The --device H2-1 submission path is implemented and guarded by max_cost, but unexecuted.
The device census this account returns is: aer_simulator, Aer, aer_simulator_statevector, AerState, aer_simulator_unitary, AerUnitary, sv1, Braket, Helios-1E-lite, H1-1LE, Quantinuum, H2-1LE, H1-Emulator, H2-Emulator, Qulacs, Selene, SelenePlus. Neither H2-1, H2-1E nor H1-1 appears, so no lane here ran on a QPU.
Helios-1E-lite now runs. Its earlier "You do not have access to this machine (code: 14)" was our bug, not an entitlement gap: HeliosConfig() defaults to system_name="Helios-1" — the hardware system — so every submission asked for a QPU. Carrying the device name into system_name, and supplying the required HeliosEmulatorConfig(n_qubits=…), makes the emulator accept the job. Its results decode as a QsysResult with Guppy-style tagged entries, not a pytket distribution.
The --device H2-1 submission path is implemented and guarded by max_cost; it fires unchanged the moment hardware access is granted on the account.
Per-job meters
| Device | Mode | Qubits | Shots | Seed | Est. HQC | Billed HQC | Job id |
|---|---|---|---|---|---|---|---|
| H2-1LE | live | 2 | 512 | 25 | 5.512 | 0 | 8248d834… |
| H2-1LE | live | 6 | 512 | 25 | 5.512 | 0 | 4ff92f6e… |
| H2-1LE | live | 6 | 512 | 25 | 5.3072 | 0 | faa322bb… |
| H2-1LE | live | 4 | 512 | 25 | 5.8192 | 0 | c2a3e361… |
| H2-1LE | live | 6 | 512 | 25 | 7.048 | 0 | 811e2229… |
| H2-Emulator | live | 2 | 512 | 25 | 5.512 | 0 | c55c7ccc… |
| H2-Emulator | live | 6 | 512 | 25 | 5.512 | 0 | cbd39908… |
| H2-Emulator | live | 6 | 512 | 25 | 5.3072 | 0 | 362f7c6a… |
| H2-Emulator | live | 4 | 512 | 25 | 5.8192 | 0 | 827e6ce5… |
| H2-Emulator | live | 6 | 512 | 25 | 7.048 | 0 | b3dbc461… |
| Helios-1E-lite | live | 2 | 512 | 25 | 5.512 | 0 | bb107bd4… |
| Helios-1E-lite | live | 6 | 512 | 25 | 5.3072 | 0 | 698cb9c8… |
| Helios-1E-lite | live | 6 | 512 | 25 | 5.3072 | 0 | 476b6381… |
| Helios-1E-lite | live | 4 | 512 | 25 | 5.8192 | 0 | 06186044… |
| Helios-1E-lite | live | 6 | 512 | 25 | 7.048 | 0 | 35467bbc… |
Billed cost is 0.0 HQC on every lane: these are emulators, free for this account. The estimate is still recorded so the same table reads honestly the day a hardware job appears in it.
What the third lane taught us
- Program form is per-backend. The
*LElocal emulators and Helios reject pytket circuits outright and take an uploaded HUGR package (a compiled Guppy program) instead; the H2-Emulator takes a pytket circuit through a compile job. The driver now picks the form from the device name. - Compile jobs only accept circuits. A HUGR program is executed as uploaded — and some backends refuse compile jobs entirely with "Compilation jobs are not supported for this backend", which is a routing fact, not a circuit bug.
- Do not score runtime ops against a native gate set.
QAlloc,MeasureFreeand target-extension ops are not gates; scoring them produced a false "device does not accept" rejection on a circuit the device was happy to run. - A failed lane must not kill the sweep. Each cell captures its own error, keeps its job ids, and the run continues — otherwise one inaccessible machine costs you the two lanes that worked.
Reproduce with python -m quantum.gate25.run --devices H2-1LE,H2-Emulator --execute; job ids live under quantum/gate25/_cache_jobs/<device>/ and are re-attached, never resubmitted, by python -m quantum.resume --gate G25. Field notes are on the Nexus page.