Selene · Runtime · Frontier card → /selene-frontier/ancilla-repetition-code
[G6b] Transversal
Parity Probe
The original G6 single-rail probe cx(d, a0) entangled only one rail of the GHZ-encoded ancilla, dragging the triple out of the codespace and producing an encoded-subspace share ≈ 0.5. G6b applies the fix the original verdict named: every data qubit drives every rail — cx(d, a0); cx(d, a1); cx(d, a2) — keeping the triple inside {(0,0,0), (1,1,1)} on every shot.
Refutation verdict
Encoded ancilla verified
Disagreements = 0/4800. Encoded-subspace share = 1.000000. Majority(a0, a1, a2) matches a0 on every shot, and the (a0, a1, a2) triple lives entirely in the codespace. Ready for a future noise model.
Per-slope results
| slope s | shots | disagreements | encoded-subspace share | elapsed (s) |
|---|---|---|---|---|
| 2 | 800 | 0 | 1.0000 | 0.94 |
| 4 | 800 | 0 | 1.0000 | 0.93 |
| 6 | 800 | 0 | 1.0000 | 0.94 |
| 8 | 800 | 0 | 1.0000 | 0.91 |
| 10 | 800 | 0 | 1.0000 | 0.90 |
| 12 | 800 | 0 | 1.0000 | 0.94 |
What changed from G6 → G6b
G6 (single-rail)
# probe_one: only a0 acts as control
cx(d, a0)Encoded-subspace share ≈ 0.5000 · Disagreements ≈ 2400/4800
G6b (transversal)
# probe_transversal: all rails driven
cx(d, a0)
cx(d, a1)
cx(d, a2)Encoded-subspace share = 1.0000 · Disagreements = 0/4800
Kernel snippet (s = 2)
open in Playpond ↗
from quantum.nadarasa_g6_lib import (
guppy, qubit, h, cx, measure, result, probe_transversal, phase_on,
)
@guppy
def program() -> None:
d0 = qubit()
d1 = qubit()
d2 = qubit()
d3 = qubit()
h(d0)
h(d1)
h(d2)
h(d3)
phase_on(d0, 0.25)
phase_on(d1, 0.5)
phase_on(d2, -1.0)
phase_on(d3, 0.0)
a0 = qubit()
a1 = qubit()
a2 = qubit()
h(a0)
cx(a0, a1)
cx(a0, a2)
probe_transversal(a0, a1, a2, d0)
probe_transversal(a0, a1, a2, d1)
probe_transversal(a0, a1, a2, d2)
probe_transversal(a0, a1, a2, d3)
cx(a0, a2)
cx(a0, a1)
h(a0)
result("a0", measure(a0))
result("a1", measure(a1))
result("a2", measure(a2))
result("x0", measure(d0))
result("x1", measure(d1))
result("x2", measure(d2))
result("x3", measure(d3))