FA-91176 / Quantum circuit simulation / Open access
Dynamic circuit Toffoli fires on a single control · case 01
ccx with only its first control set flips the target.
ROOT CAUSE
The Toffoli condition uses or between the controls.
VERIFIED REPAIR
Flip the target only when both controls are 1.
Unsuccessful approach: The attempted repair fires when the controls are equal, which also flips the target when both are 0.
Case contract
Input [nq, nc, ops] on computational basis states only: ["x", q], ["cx", c, t], ["ccx", a, b, t], ["swap", a, b], ["measure", q, c], ["reset", q], ["x_if", q, value] (flip q when the classical register value, clbit 0 = LSB, equals value). Return {"qubits": bits with qubit nq-1 leftmost, "clbits": bits with clbit nc-1 leftmost}.
Why this case matters
Feed-forward and reset semantics are central to dynamic circuits; register-value or reset slips change control flow.
1 / The failure
Exit 1"""Failure Map reference implementation. Python standard library only."""
import json
N = 1
observations = []
def solve(x):
nq, nc, ops = x
q = [0] * nq
c = [0] * nc
for op in ops:
name = op[0]
if name == 'x':
q[op[1]] ^= 1
elif name == 'cx':
if q[op[1]]:
q[op[2]] ^= 1
elif name == 'ccx':
if q[op[1]] or q[op[2]]:
q[op[3]] ^= 1
elif name == 'swap':
a, b = op[1], op[2]
q[a], q[b] = q[b], q[a]
elif name == 'measure':
_, qb, cb = op
c[cb] = q[qb]
elif name == 'reset':
q[op[1]] = 0
elif name == 'x_if':
creg = sum(bit << i for i, bit in enumerate(c))
if creg == op[2]:
q[op[1]] ^= 1
return {'qubits': ''.join(str(b) for b in reversed(q)), 'clbits': ''.join(str(b) for b in reversed(c))}
def check(label, actual, expected):
observations.append({"check": label, "actual": actual, "expected": expected, "passed": actual == expected})
fixtures = [[['regression: toffoli one control', [3, 3, [['x', 0], ['ccx', 0, 1, 2]]], {'qubits': '001', 'clbits': '000'}], ['regression: random dynamic 10', [3, 3, [['x', 2], ['measure', 2, 2], ['ccx', 2, 1, 0], ['swap', 0, 2], ['cx', 2, 0], ['x', 1], ['ccx', 2, 0, 1], ['cx', 2, 0], ['x', 1]]], {'qubits': '001', 'clbits': '100'}], ['repair check: toffoli no controls', [3, 3, [['ccx', 0, 1, 2]]], {'qubits': '000', 'clbits': '000'}], ['control: feed-forward on register value 2', [2, 2, [['x', 1], ['measure', 1, 1], ['x_if', 0, 2]]], {'qubits': '11', 'clbits': '10'}], ['control: reset excited qubit', [1, 1, [['x', 0], ['reset', 0], ['measure', 0, 0]]], {'qubits': '0', 'clbits': '0'}], ['control: measure into other clbit', [2, 2, [['x', 0], ['measure', 0, 1]]], {'qubits': '01', 'clbits': '10'}], ['control: swap excitation', [2, 2, [['x', 0], ['swap', 0, 1]]], {'qubits': '10', 'clbits': '00'}]], [['regression: random dynamic 41', [3, 3, [['x_if', 2, 4], ['x_if', 2, 3], ['measure', 2, 2], ['x', 1], ['swap', 1, 0], ['ccx', 0, 2, 1]]], {'qubits': '001', 'clbits': '000'}], ['regression: random dynamic 52', [3, 3, [['x', 2], ['ccx', 0, 2, 1], ['cx', 1, 2], ['measure', 1, 2], ['x_if', 2, 3], ['measure', 2, 1], ['x', 2], ['x', 1]]], {'qubits': '010', 'clbits': '010'}], ['repair check: random dynamic 7', [4, 4, [['ccx', 1, 0, 2], ['x_if', 1, 6]]], {'qubits': '0000', 'clbits': '0000'}], ['control: asymmetric output', [3, 3, [['x', 0], ['measure', 0, 0]]], {'qubits': '001', 'clbits': '001'}], ['control: random dynamic 0', [4, 4, [['cx', 2, 1], ['reset', 2], ['x_if', 1, 5], ['x_if', 3, 6], ['reset', 2], ['cx', 3, 1], ['swap', 1, 2], ['x', 0]]], {'qubits': '0001', 'clbits': '0000'}], ['control: random dynamic 1', [2, 2, [['cx', 1, 0], ['x_if', 0, 2], ['x', 1], ['swap', 0, 1], ['reset', 1], ['cx', 1, 0], ['x', 1]]], {'qubits': '11', 'clbits': '00'}], ['control: random dynamic 2', [3, 3, [['cx', 2, 1], ['x', 1], ['measure', 1, 1], ['x', 0], ['x_if', 2, 5], ['reset', 1], ['cx', 2, 0], ['swap', 1, 0], ['cx', 1, 0]]], {'qubits': '011', 'clbits': '010'}]], [['regression: random dynamic 54', [4, 4, [['x', 0], ['cx', 0, 2], ['measure', 1, 1], ['ccx', 2, 3, 0], ['x_if', 1, 0], ['cx', 3, 0], ['swap', 2, 0], ['x', 0]]], {'qubits': '0110', 'clbits': '0000'}], ['regression: toffoli one control', [3, 3, [['x', 0], ['ccx', 0, 1, 2]]], {'qubits': '001', 'clbits': '000'}], ['repair check: random dynamic 22', [4, 4, [['swap', 3, 1], ['x', 2], ['measure', 1, 2], ['ccx', 0, 1, 2]]], {'qubits': '0100', 'clbits': '0000'}], ['control: random dynamic 4', [2, 2, [['x', 0], ['measure', 1, 1]]], {'qubits': '01', 'clbits': '00'}], ['control: random dynamic 5', [4, 4, [['x_if', 1, 4], ['reset', 1], ['x_if', 1, 10], ['x', 0], ['measure', 2, 1], ['measure', 1, 0]]], {'qubits': '0001', 'clbits': '0000'}], ['control: random dynamic 6', [2, 2, [['reset', 0], ['x', 1], ['swap', 1, 0], ['reset', 0], ['measure', 1, 0], ['x_if', 0, 1], ['cx', 0, 1], ['swap', 1, 0], ['cx', 1, 0]]], {'qubits': '00', 'clbits': '00'}], ['control: random dynamic 9', [2, 2, [['cx', 0, 1], ['cx', 0, 1], ['measure', 0, 0], ['swap', 0, 1], ['measure', 0, 1], ['swap', 0, 1], ['measure', 0, 1], ['measure', 0, 0], ['swap', 1, 0]]], {'qubits': '00', 'clbits': '00'}]], [['regression: random dynamic 23', [4, 4, [['reset', 1], ['x', 3], ['x_if', 3, 0], ['swap', 0, 2], ['x', 0], ['x', 1], ['ccx', 1, 2, 0], ['measure', 2, 2], ['cx', 3, 0]]], {'qubits': '0011', 'clbits': '0000'}], ['regression: random dynamic 41', [3, 3, [['x_if', 2, 4], ['x_if', 2, 3], ['measure', 2, 2], ['x', 1], ['swap', 1, 0], ['ccx', 0, 2, 1]]], {'qubits': '001', 'clbits': '000'}], ['repair check: random dynamic 31', [3, 3, [['measure', 2, 2], ['reset', 2], ['cx', 2, 0], ['ccx', 1, 0, 2], ['measure', 2, 1], ['x', 2]]], {'qubits': '100', 'clbits': '000'}], ['control: random dynamic 11', [3, 3, [['reset', 2], ['x', 2]]], {'qubits': '100', 'clbits': '000'}], ['control: random dynamic 12', [3, 3, [['x', 1], ['x', 2]]], {'qubits': '110', 'clbits': '000'}], ['control: random dynamic 13', [2, 2, [['x_if', 1, 0], ['x', 0], ['swap', 1, 0], ['x', 1], ['cx', 1, 0], ['x_if', 1, 3], ['measure', 1, 1], ['swap', 1, 0], ['x', 1]]], {'qubits': '00', 'clbits': '00'}], ['control: random dynamic 14', [2, 2, [['measure', 1, 0], ['reset', 0], ['measure', 0, 1], ['x_if', 1, 3], ['cx', 1, 0], ['cx', 0, 1], ['x_if', 1, 1], ['swap', 1, 0]]], {'qubits': '00', 'clbits': '00'}]], [['regression: random dynamic 53', [3, 3, [['x', 1], ['reset', 2], ['ccx', 1, 2, 0], ['cx', 1, 2], ['ccx', 2, 1, 0], ['cx', 1, 0], ['x', 2], ['measure', 2, 2]]], {'qubits': '010', 'clbits': '000'}], ['regression: random dynamic 54', [4, 4, [['x', 0], ['cx', 0, 2], ['measure', 1, 1], ['ccx', 2, 3, 0], ['x_if', 1, 0], ['cx', 3, 0], ['swap', 2, 0], ['x', 0]]], {'qubits': '0110', 'clbits': '0000'}], ['repair check: random dynamic 37', [4, 4, [['ccx', 0, 2, 1], ['measure', 3, 2], ['x', 2], ['cx', 1, 0], ['cx', 1, 3], ['x_if', 2, 2]]], {'qubits': '0100', 'clbits': '0000'}], ['control: random dynamic 15', [3, 3, [['cx', 2, 1], ['x_if', 0, 0], ['cx', 2, 1], ['ccx', 0, 1, 2], ['reset', 2], ['reset', 1], ['cx', 0, 1]]], {'qubits': '011', 'clbits': '000'}], ['control: random dynamic 16', [2, 2, [['reset', 0], ['x_if', 0, 1], ['x', 0]]], {'qubits': '01', 'clbits': '00'}], ['control: random dynamic 17', [2, 2, [['reset', 0], ['measure', 0, 0], ['cx', 0, 1], ['x', 1], ['measure', 0, 0]]], {'qubits': '10', 'clbits': '00'}], ['control: random dynamic 18', [2, 2, [['swap', 0, 1], ['x', 0], ['cx', 0, 1], ['cx', 0, 1]]], {'qubits': '01', 'clbits': '00'}]]]
for label, args, expected in fixtures[N-1]:
check(label, solve(args), expected)
print(json.dumps({"observations": observations, "passed": all(x["passed"] for x in observations)}, ensure_ascii=False))
raise SystemExit(0 if all(x["passed"] for x in observations) else 1)
| Boundary fixture | Actual | Expected | Outcome |
|---|---|---|---|
| regression: toffoli one control | {'clbits': '000', 'qubits': '101'} | {'clbits': '000', 'qubits': '001'} | Failed |
| regression: random dynamic 10 | {'clbits': '100', 'qubits': '111'} | {'clbits': '100', 'qubits': '001'} | Failed |
| repair check: toffoli no controls | {'clbits': '000', 'qubits': '000'} | {'clbits': '000', 'qubits': '000'} | Passed |
| control: feed-forward on register value 2 | {'clbits': '10', 'qubits': '11'} | {'clbits': '10', 'qubits': '11'} | Passed |
| control: reset excited qubit | {'clbits': '0', 'qubits': '0'} | {'clbits': '0', 'qubits': '0'} | Passed |
| control: measure into other clbit | {'clbits': '10', 'qubits': '01'} | {'clbits': '10', 'qubits': '01'} | Passed |
| control: swap excitation | {'clbits': '00', 'qubits': '10'} | {'clbits': '00', 'qubits': '10'} | Passed |
SHA-256 / a8775db0cb5742f2200a49b0481cf3282481a4d1300086647e6fd78e641e4b5d
2 / The unsuccessful fix
Exit 1"""Failure Map reference implementation. Python standard library only."""
import json
N = 1
observations = []
def solve(x):
nq, nc, ops = x
q = [0] * nq
c = [0] * nc
for op in ops:
name = op[0]
if name == 'x':
q[op[1]] ^= 1
elif name == 'cx':
if q[op[1]]:
q[op[2]] ^= 1
elif name == 'ccx':
if q[op[1]] == q[op[2]]:
q[op[3]] ^= 1
elif name == 'swap':
a, b = op[1], op[2]
q[a], q[b] = q[b], q[a]
elif name == 'measure':
_, qb, cb = op
c[cb] = q[qb]
elif name == 'reset':
q[op[1]] = 0
elif name == 'x_if':
creg = sum(bit << i for i, bit in enumerate(c))
if creg == op[2]:
q[op[1]] ^= 1
return {'qubits': ''.join(str(b) for b in reversed(q)), 'clbits': ''.join(str(b) for b in reversed(c))}
def check(label, actual, expected):
observations.append({"check": label, "actual": actual, "expected": expected, "passed": actual == expected})
fixtures = [[['regression: toffoli one control', [3, 3, [['x', 0], ['ccx', 0, 1, 2]]], {'qubits': '001', 'clbits': '000'}], ['regression: random dynamic 10', [3, 3, [['x', 2], ['measure', 2, 2], ['ccx', 2, 1, 0], ['swap', 0, 2], ['cx', 2, 0], ['x', 1], ['ccx', 2, 0, 1], ['cx', 2, 0], ['x', 1]]], {'qubits': '001', 'clbits': '100'}], ['repair check: toffoli no controls', [3, 3, [['ccx', 0, 1, 2]]], {'qubits': '000', 'clbits': '000'}], ['control: feed-forward on register value 2', [2, 2, [['x', 1], ['measure', 1, 1], ['x_if', 0, 2]]], {'qubits': '11', 'clbits': '10'}], ['control: reset excited qubit', [1, 1, [['x', 0], ['reset', 0], ['measure', 0, 0]]], {'qubits': '0', 'clbits': '0'}], ['control: measure into other clbit', [2, 2, [['x', 0], ['measure', 0, 1]]], {'qubits': '01', 'clbits': '10'}], ['control: swap excitation', [2, 2, [['x', 0], ['swap', 0, 1]]], {'qubits': '10', 'clbits': '00'}]], [['regression: random dynamic 41', [3, 3, [['x_if', 2, 4], ['x_if', 2, 3], ['measure', 2, 2], ['x', 1], ['swap', 1, 0], ['ccx', 0, 2, 1]]], {'qubits': '001', 'clbits': '000'}], ['regression: random dynamic 52', [3, 3, [['x', 2], ['ccx', 0, 2, 1], ['cx', 1, 2], ['measure', 1, 2], ['x_if', 2, 3], ['measure', 2, 1], ['x', 2], ['x', 1]]], {'qubits': '010', 'clbits': '010'}], ['repair check: random dynamic 7', [4, 4, [['ccx', 1, 0, 2], ['x_if', 1, 6]]], {'qubits': '0000', 'clbits': '0000'}], ['control: asymmetric output', [3, 3, [['x', 0], ['measure', 0, 0]]], {'qubits': '001', 'clbits': '001'}], ['control: random dynamic 0', [4, 4, [['cx', 2, 1], ['reset', 2], ['x_if', 1, 5], ['x_if', 3, 6], ['reset', 2], ['cx', 3, 1], ['swap', 1, 2], ['x', 0]]], {'qubits': '0001', 'clbits': '0000'}], ['control: random dynamic 1', [2, 2, [['cx', 1, 0], ['x_if', 0, 2], ['x', 1], ['swap', 0, 1], ['reset', 1], ['cx', 1, 0], ['x', 1]]], {'qubits': '11', 'clbits': '00'}], ['control: random dynamic 2', [3, 3, [['cx', 2, 1], ['x', 1], ['measure', 1, 1], ['x', 0], ['x_if', 2, 5], ['reset', 1], ['cx', 2, 0], ['swap', 1, 0], ['cx', 1, 0]]], {'qubits': '011', 'clbits': '010'}]], [['regression: random dynamic 54', [4, 4, [['x', 0], ['cx', 0, 2], ['measure', 1, 1], ['ccx', 2, 3, 0], ['x_if', 1, 0], ['cx', 3, 0], ['swap', 2, 0], ['x', 0]]], {'qubits': '0110', 'clbits': '0000'}], ['regression: toffoli one control', [3, 3, [['x', 0], ['ccx', 0, 1, 2]]], {'qubits': '001', 'clbits': '000'}], ['repair check: random dynamic 22', [4, 4, [['swap', 3, 1], ['x', 2], ['measure', 1, 2], ['ccx', 0, 1, 2]]], {'qubits': '0100', 'clbits': '0000'}], ['control: random dynamic 4', [2, 2, [['x', 0], ['measure', 1, 1]]], {'qubits': '01', 'clbits': '00'}], ['control: random dynamic 5', [4, 4, [['x_if', 1, 4], ['reset', 1], ['x_if', 1, 10], ['x', 0], ['measure', 2, 1], ['measure', 1, 0]]], {'qubits': '0001', 'clbits': '0000'}], ['control: random dynamic 6', [2, 2, [['reset', 0], ['x', 1], ['swap', 1, 0], ['reset', 0], ['measure', 1, 0], ['x_if', 0, 1], ['cx', 0, 1], ['swap', 1, 0], ['cx', 1, 0]]], {'qubits': '00', 'clbits': '00'}], ['control: random dynamic 9', [2, 2, [['cx', 0, 1], ['cx', 0, 1], ['measure', 0, 0], ['swap', 0, 1], ['measure', 0, 1], ['swap', 0, 1], ['measure', 0, 1], ['measure', 0, 0], ['swap', 1, 0]]], {'qubits': '00', 'clbits': '00'}]], [['regression: random dynamic 23', [4, 4, [['reset', 1], ['x', 3], ['x_if', 3, 0], ['swap', 0, 2], ['x', 0], ['x', 1], ['ccx', 1, 2, 0], ['measure', 2, 2], ['cx', 3, 0]]], {'qubits': '0011', 'clbits': '0000'}], ['regression: random dynamic 41', [3, 3, [['x_if', 2, 4], ['x_if', 2, 3], ['measure', 2, 2], ['x', 1], ['swap', 1, 0], ['ccx', 0, 2, 1]]], {'qubits': '001', 'clbits': '000'}], ['repair check: random dynamic 31', [3, 3, [['measure', 2, 2], ['reset', 2], ['cx', 2, 0], ['ccx', 1, 0, 2], ['measure', 2, 1], ['x', 2]]], {'qubits': '100', 'clbits': '000'}], ['control: random dynamic 11', [3, 3, [['reset', 2], ['x', 2]]], {'qubits': '100', 'clbits': '000'}], ['control: random dynamic 12', [3, 3, [['x', 1], ['x', 2]]], {'qubits': '110', 'clbits': '000'}], ['control: random dynamic 13', [2, 2, [['x_if', 1, 0], ['x', 0], ['swap', 1, 0], ['x', 1], ['cx', 1, 0], ['x_if', 1, 3], ['measure', 1, 1], ['swap', 1, 0], ['x', 1]]], {'qubits': '00', 'clbits': '00'}], ['control: random dynamic 14', [2, 2, [['measure', 1, 0], ['reset', 0], ['measure', 0, 1], ['x_if', 1, 3], ['cx', 1, 0], ['cx', 0, 1], ['x_if', 1, 1], ['swap', 1, 0]]], {'qubits': '00', 'clbits': '00'}]], [['regression: random dynamic 53', [3, 3, [['x', 1], ['reset', 2], ['ccx', 1, 2, 0], ['cx', 1, 2], ['ccx', 2, 1, 0], ['cx', 1, 0], ['x', 2], ['measure', 2, 2]]], {'qubits': '010', 'clbits': '000'}], ['regression: random dynamic 54', [4, 4, [['x', 0], ['cx', 0, 2], ['measure', 1, 1], ['ccx', 2, 3, 0], ['x_if', 1, 0], ['cx', 3, 0], ['swap', 2, 0], ['x', 0]]], {'qubits': '0110', 'clbits': '0000'}], ['repair check: random dynamic 37', [4, 4, [['ccx', 0, 2, 1], ['measure', 3, 2], ['x', 2], ['cx', 1, 0], ['cx', 1, 3], ['x_if', 2, 2]]], {'qubits': '0100', 'clbits': '0000'}], ['control: random dynamic 15', [3, 3, [['cx', 2, 1], ['x_if', 0, 0], ['cx', 2, 1], ['ccx', 0, 1, 2], ['reset', 2], ['reset', 1], ['cx', 0, 1]]], {'qubits': '011', 'clbits': '000'}], ['control: random dynamic 16', [2, 2, [['reset', 0], ['x_if', 0, 1], ['x', 0]]], {'qubits': '01', 'clbits': '00'}], ['control: random dynamic 17', [2, 2, [['reset', 0], ['measure', 0, 0], ['cx', 0, 1], ['x', 1], ['measure', 0, 0]]], {'qubits': '10', 'clbits': '00'}], ['control: random dynamic 18', [2, 2, [['swap', 0, 1], ['x', 0], ['cx', 0, 1], ['cx', 0, 1]]], {'qubits': '01', 'clbits': '00'}]]]
for label, args, expected in fixtures[N-1]:
check(label, solve(args), expected)
print(json.dumps({"observations": observations, "passed": all(x["passed"] for x in observations)}, ensure_ascii=False))
raise SystemExit(0 if all(x["passed"] for x in observations) else 1)
| Boundary fixture | Actual | Expected | Outcome |
|---|---|---|---|
| regression: toffoli one control | {'clbits': '000', 'qubits': '001'} | {'clbits': '000', 'qubits': '001'} | Passed |
| regression: random dynamic 10 | {'clbits': '100', 'qubits': '001'} | {'clbits': '100', 'qubits': '001'} | Passed |
| repair check: toffoli no controls | {'clbits': '000', 'qubits': '100'} | {'clbits': '000', 'qubits': '000'} | Failed |
| control: feed-forward on register value 2 | {'clbits': '10', 'qubits': '11'} | {'clbits': '10', 'qubits': '11'} | Passed |
| control: reset excited qubit | {'clbits': '0', 'qubits': '0'} | {'clbits': '0', 'qubits': '0'} | Passed |
| control: measure into other clbit | {'clbits': '10', 'qubits': '01'} | {'clbits': '10', 'qubits': '01'} | Passed |
| control: swap excitation | {'clbits': '00', 'qubits': '10'} | {'clbits': '00', 'qubits': '10'} | Passed |
SHA-256 / 0d541f808bb47e58d5e5914edb96a52d5ddc3e334ab810b61e746a983bd7c6de
3 / The verified repair
Exit 0"""Failure Map reference implementation. Python standard library only."""
import json
N = 1
observations = []
def solve(x):
nq, nc, ops = x
q = [0] * nq
c = [0] * nc
for op in ops:
name = op[0]
if name == 'x':
q[op[1]] ^= 1
elif name == 'cx':
if q[op[1]]:
q[op[2]] ^= 1
elif name == 'ccx':
if q[op[1]] and q[op[2]]:
q[op[3]] ^= 1
elif name == 'swap':
a, b = op[1], op[2]
q[a], q[b] = q[b], q[a]
elif name == 'measure':
_, qb, cb = op
c[cb] = q[qb]
elif name == 'reset':
q[op[1]] = 0
elif name == 'x_if':
creg = sum(bit << i for i, bit in enumerate(c))
if creg == op[2]:
q[op[1]] ^= 1
return {'qubits': ''.join(str(b) for b in reversed(q)), 'clbits': ''.join(str(b) for b in reversed(c))}
def check(label, actual, expected):
observations.append({"check": label, "actual": actual, "expected": expected, "passed": actual == expected})
fixtures = [[['regression: toffoli one control', [3, 3, [['x', 0], ['ccx', 0, 1, 2]]], {'qubits': '001', 'clbits': '000'}], ['regression: random dynamic 10', [3, 3, [['x', 2], ['measure', 2, 2], ['ccx', 2, 1, 0], ['swap', 0, 2], ['cx', 2, 0], ['x', 1], ['ccx', 2, 0, 1], ['cx', 2, 0], ['x', 1]]], {'qubits': '001', 'clbits': '100'}], ['repair check: toffoli no controls', [3, 3, [['ccx', 0, 1, 2]]], {'qubits': '000', 'clbits': '000'}], ['control: feed-forward on register value 2', [2, 2, [['x', 1], ['measure', 1, 1], ['x_if', 0, 2]]], {'qubits': '11', 'clbits': '10'}], ['control: reset excited qubit', [1, 1, [['x', 0], ['reset', 0], ['measure', 0, 0]]], {'qubits': '0', 'clbits': '0'}], ['control: measure into other clbit', [2, 2, [['x', 0], ['measure', 0, 1]]], {'qubits': '01', 'clbits': '10'}], ['control: swap excitation', [2, 2, [['x', 0], ['swap', 0, 1]]], {'qubits': '10', 'clbits': '00'}]], [['regression: random dynamic 41', [3, 3, [['x_if', 2, 4], ['x_if', 2, 3], ['measure', 2, 2], ['x', 1], ['swap', 1, 0], ['ccx', 0, 2, 1]]], {'qubits': '001', 'clbits': '000'}], ['regression: random dynamic 52', [3, 3, [['x', 2], ['ccx', 0, 2, 1], ['cx', 1, 2], ['measure', 1, 2], ['x_if', 2, 3], ['measure', 2, 1], ['x', 2], ['x', 1]]], {'qubits': '010', 'clbits': '010'}], ['repair check: random dynamic 7', [4, 4, [['ccx', 1, 0, 2], ['x_if', 1, 6]]], {'qubits': '0000', 'clbits': '0000'}], ['control: asymmetric output', [3, 3, [['x', 0], ['measure', 0, 0]]], {'qubits': '001', 'clbits': '001'}], ['control: random dynamic 0', [4, 4, [['cx', 2, 1], ['reset', 2], ['x_if', 1, 5], ['x_if', 3, 6], ['reset', 2], ['cx', 3, 1], ['swap', 1, 2], ['x', 0]]], {'qubits': '0001', 'clbits': '0000'}], ['control: random dynamic 1', [2, 2, [['cx', 1, 0], ['x_if', 0, 2], ['x', 1], ['swap', 0, 1], ['reset', 1], ['cx', 1, 0], ['x', 1]]], {'qubits': '11', 'clbits': '00'}], ['control: random dynamic 2', [3, 3, [['cx', 2, 1], ['x', 1], ['measure', 1, 1], ['x', 0], ['x_if', 2, 5], ['reset', 1], ['cx', 2, 0], ['swap', 1, 0], ['cx', 1, 0]]], {'qubits': '011', 'clbits': '010'}]], [['regression: random dynamic 54', [4, 4, [['x', 0], ['cx', 0, 2], ['measure', 1, 1], ['ccx', 2, 3, 0], ['x_if', 1, 0], ['cx', 3, 0], ['swap', 2, 0], ['x', 0]]], {'qubits': '0110', 'clbits': '0000'}], ['regression: toffoli one control', [3, 3, [['x', 0], ['ccx', 0, 1, 2]]], {'qubits': '001', 'clbits': '000'}], ['repair check: random dynamic 22', [4, 4, [['swap', 3, 1], ['x', 2], ['measure', 1, 2], ['ccx', 0, 1, 2]]], {'qubits': '0100', 'clbits': '0000'}], ['control: random dynamic 4', [2, 2, [['x', 0], ['measure', 1, 1]]], {'qubits': '01', 'clbits': '00'}], ['control: random dynamic 5', [4, 4, [['x_if', 1, 4], ['reset', 1], ['x_if', 1, 10], ['x', 0], ['measure', 2, 1], ['measure', 1, 0]]], {'qubits': '0001', 'clbits': '0000'}], ['control: random dynamic 6', [2, 2, [['reset', 0], ['x', 1], ['swap', 1, 0], ['reset', 0], ['measure', 1, 0], ['x_if', 0, 1], ['cx', 0, 1], ['swap', 1, 0], ['cx', 1, 0]]], {'qubits': '00', 'clbits': '00'}], ['control: random dynamic 9', [2, 2, [['cx', 0, 1], ['cx', 0, 1], ['measure', 0, 0], ['swap', 0, 1], ['measure', 0, 1], ['swap', 0, 1], ['measure', 0, 1], ['measure', 0, 0], ['swap', 1, 0]]], {'qubits': '00', 'clbits': '00'}]], [['regression: random dynamic 23', [4, 4, [['reset', 1], ['x', 3], ['x_if', 3, 0], ['swap', 0, 2], ['x', 0], ['x', 1], ['ccx', 1, 2, 0], ['measure', 2, 2], ['cx', 3, 0]]], {'qubits': '0011', 'clbits': '0000'}], ['regression: random dynamic 41', [3, 3, [['x_if', 2, 4], ['x_if', 2, 3], ['measure', 2, 2], ['x', 1], ['swap', 1, 0], ['ccx', 0, 2, 1]]], {'qubits': '001', 'clbits': '000'}], ['repair check: random dynamic 31', [3, 3, [['measure', 2, 2], ['reset', 2], ['cx', 2, 0], ['ccx', 1, 0, 2], ['measure', 2, 1], ['x', 2]]], {'qubits': '100', 'clbits': '000'}], ['control: random dynamic 11', [3, 3, [['reset', 2], ['x', 2]]], {'qubits': '100', 'clbits': '000'}], ['control: random dynamic 12', [3, 3, [['x', 1], ['x', 2]]], {'qubits': '110', 'clbits': '000'}], ['control: random dynamic 13', [2, 2, [['x_if', 1, 0], ['x', 0], ['swap', 1, 0], ['x', 1], ['cx', 1, 0], ['x_if', 1, 3], ['measure', 1, 1], ['swap', 1, 0], ['x', 1]]], {'qubits': '00', 'clbits': '00'}], ['control: random dynamic 14', [2, 2, [['measure', 1, 0], ['reset', 0], ['measure', 0, 1], ['x_if', 1, 3], ['cx', 1, 0], ['cx', 0, 1], ['x_if', 1, 1], ['swap', 1, 0]]], {'qubits': '00', 'clbits': '00'}]], [['regression: random dynamic 53', [3, 3, [['x', 1], ['reset', 2], ['ccx', 1, 2, 0], ['cx', 1, 2], ['ccx', 2, 1, 0], ['cx', 1, 0], ['x', 2], ['measure', 2, 2]]], {'qubits': '010', 'clbits': '000'}], ['regression: random dynamic 54', [4, 4, [['x', 0], ['cx', 0, 2], ['measure', 1, 1], ['ccx', 2, 3, 0], ['x_if', 1, 0], ['cx', 3, 0], ['swap', 2, 0], ['x', 0]]], {'qubits': '0110', 'clbits': '0000'}], ['repair check: random dynamic 37', [4, 4, [['ccx', 0, 2, 1], ['measure', 3, 2], ['x', 2], ['cx', 1, 0], ['cx', 1, 3], ['x_if', 2, 2]]], {'qubits': '0100', 'clbits': '0000'}], ['control: random dynamic 15', [3, 3, [['cx', 2, 1], ['x_if', 0, 0], ['cx', 2, 1], ['ccx', 0, 1, 2], ['reset', 2], ['reset', 1], ['cx', 0, 1]]], {'qubits': '011', 'clbits': '000'}], ['control: random dynamic 16', [2, 2, [['reset', 0], ['x_if', 0, 1], ['x', 0]]], {'qubits': '01', 'clbits': '00'}], ['control: random dynamic 17', [2, 2, [['reset', 0], ['measure', 0, 0], ['cx', 0, 1], ['x', 1], ['measure', 0, 0]]], {'qubits': '10', 'clbits': '00'}], ['control: random dynamic 18', [2, 2, [['swap', 0, 1], ['x', 0], ['cx', 0, 1], ['cx', 0, 1]]], {'qubits': '01', 'clbits': '00'}]]]
for label, args, expected in fixtures[N-1]:
check(label, solve(args), expected)
print(json.dumps({"observations": observations, "passed": all(x["passed"] for x in observations)}, ensure_ascii=False))
raise SystemExit(0 if all(x["passed"] for x in observations) else 1)
| Boundary fixture | Actual | Expected | Outcome |
|---|---|---|---|
| regression: toffoli one control | {'clbits': '000', 'qubits': '001'} | {'clbits': '000', 'qubits': '001'} | Passed |
| regression: random dynamic 10 | {'clbits': '100', 'qubits': '001'} | {'clbits': '100', 'qubits': '001'} | Passed |
| repair check: toffoli no controls | {'clbits': '000', 'qubits': '000'} | {'clbits': '000', 'qubits': '000'} | Passed |
| control: feed-forward on register value 2 | {'clbits': '10', 'qubits': '11'} | {'clbits': '10', 'qubits': '11'} | Passed |
| control: reset excited qubit | {'clbits': '0', 'qubits': '0'} | {'clbits': '0', 'qubits': '0'} | Passed |
| control: measure into other clbit | {'clbits': '10', 'qubits': '01'} | {'clbits': '10', 'qubits': '01'} | Passed |
| control: swap excitation | {'clbits': '00', 'qubits': '10'} | {'clbits': '00', 'qubits': '10'} | Passed |
SHA-256 / 9f2dc1c77623ee2b0e6106c0a7677499de947f2746b74f581f022e87feb76285
Verification & scope
A deterministic bounded teaching model with a stipulated toy contract; amplitudes are rounded to fixed decimals for strict JSON output. It is not a production quantum SDK and claims no standards conformance. This reproducer isolates one failure mechanism. Results cover the supplied fixtures. Variants within a family share a test contract and should remain grouped when constructing evaluation splits. Related mechanisms with a shared evaluation_group must also remain together; these controlled models are not independent production incidents.
Observations recorded using Python 3.12.14 at 2026-09-29T14:51:33.573129+00:00.
Case digest / 8fb6b89d450585a592f1cf93df60a50ce26874e835d2a6c1f82022893ca2f670