FA-91316 / Quantum circuit simulation / Open access
Register expansion takes broadcast width from the first operand · case 01
cx q[0],r with a three-qubit r emits one CNOT instead of three.
ROOT CAUSE
The broadcast width is len(args[0]) rather than the widest operand.
VERIFIED REPAIR
Use the maximum operand width.
Unsuccessful approach: The attempted repair uses the last operand width, which fails for cx q,r[0].
Case contract
Input a list of OpenQASM-2-like statements: "qreg n[k];", "creg n[k];", gate statements "g a,b;" and "measure a -> b;" where operands are whole registers or "n[i]". Registers are flattened in declaration order per kind (qubits and clbits have separate counters). Whole-register operands broadcast; a single qubit operand is reused across the broadcast. Return [[g, [flat qubits]] or ["measure", q, c]...] or [error, statement index] with errors "unknown-register", "index-out-of-range", "size-mismatch".
Why this case matters
Front-end register flattening decides which physical qubits every later pass touches; offset or broadcast slips silently rewire circuits.
1 / The failure
Exit 1"""Failure Map reference implementation. Python standard library only."""
import json
import re
N = 1
observations = []
def solve(x):
qregs, cregs = {}, {}
nq = nc = 0
out = []
def ref(tok, regs):
m = re.fullmatch(r'([a-z]\w*)(?:\[(\d+)\])?', tok.strip())
name, idx = m.group(1), m.group(2)
if name not in regs:
raise KeyError('unknown-register')
off, size = regs[name]
if idx is None:
return [off + i for i in range(size)]
if int(idx) >= size:
raise KeyError('index-out-of-range')
return [off + int(idx)]
for no, stmt in enumerate(x):
s = stmt.strip().rstrip(';').strip()
head, _, rest = s.partition(' ')
try:
if head in ('qreg', 'creg'):
m = re.fullmatch(r'([a-z]\w*)\[(\d+)\]', rest.strip())
size = int(m.group(2))
if head == 'qreg':
qregs[m.group(1)] = (nq, size)
nq += size
else:
cregs[m.group(1)] = (nc, size)
nc += size
elif head == 'measure':
src, dst = rest.split('->')
qs, cs = ref(src, qregs), ref(dst, cregs)
if len(qs) != len(cs):
raise KeyError('size-mismatch')
out += [['measure', a, b] for a, b in zip(qs, cs)]
else:
args = [ref(t, qregs) for t in rest.split(',')]
width = len(args[0])
if any(len(a) not in (1, width) for a in args):
raise KeyError('size-mismatch')
for i in range(width):
out.append([head, [a[0] if len(a) == 1 else a[i] for a in args]])
except KeyError as e:
return [e.args[0], no]
return out
def check(label, actual, expected):
observations.append({"check": label, "actual": actual, "expected": expected, "passed": actual == expected})
fixtures = [[['regression: single control broadcast target', ['qreg q[1];', 'qreg r[3];', 'cx q[0],r;'], [['cx', [0, 1]], ['cx', [0, 2]], ['cx', [0, 3]]]], ['regression: random program 6', ['qreg q[3];', 'creg c[2];', 'cx q[2],q;'], [['cx', [2, 0]], ['cx', [2, 1]], ['cx', [2, 2]]]], ['repair check: register control single target', ['qreg q[3];', 'qreg r[1];', 'cx q,r[0];'], [['cx', [0, 3]], ['cx', [1, 3]], ['cx', [2, 3]]]], ['control: two registers broadcast', ['qreg q[2];', 'qreg r[2];', 'creg c[2];', 'cx q,r;', 'measure r -> c;'], [['cx', [0, 2]], ['cx', [1, 3]], ['measure', 2, 0], ['measure', 3, 1]]], ['control: creg declared between qregs', ['qreg a[1];', 'creg c[2];', 'qreg b[2];', 'h b[1];'], [['h', [2]]]], ['control: index equals size', ['qreg q[2];', 'h q[2];'], ['index-out-of-range', 1]], ['control: second register overflow', ['qreg q[2];', 'qreg r[2];', 'x r[3];'], ['index-out-of-range', 2]]], [['regression: random program 14', ['qreg q[3];', 'creg c[2];', 'qreg r[2];', 'creg d[3];', 'qreg s[2];', 'x r[1];', 'x q;', 'x r[0];', 'cx s[0],r;'], [['x', [4]], ['x', [0]], ['x', [1]], ['x', [2]], ['x', [3]], ['cx', [5, 3]], ['cx', [5, 4]]]], ['regression: random program 17', ['qreg q[2];', 'qreg r[3];', 'creg c[3];', 'qreg s[2];', 'measure q[1] -> c[2];', 'cx s,r[2];', 'measure q[0] -> c[2];', 'cx s[0],r;'], [['measure', 1, 2], ['cx', [5, 4]], ['cx', [6, 4]], ['measure', 0, 2], ['cx', [5, 2]], ['cx', [5, 3]], ['cx', [5, 4]]]], ['repair check: random program 32', ['qreg q[2];', 'creg c[2];', 'qreg r[1];', 'creg d[3];', 'qreg s[3];', 'h q[0];', 'cx s,s[0];', 'measure s[2] -> c[1];'], [['h', [0]], ['cx', [3, 3]], ['cx', [4, 3]], ['cx', [5, 3]], ['measure', 5, 1]]], ['control: measure size mismatch', ['qreg q[3];', 'creg c[2];', 'measure q -> c;'], ['size-mismatch', 2]], ['control: measure into qreg name', ['qreg q[1];', 'qreg r[1];', 'measure q[0] -> r[0];'], ['unknown-register', 2]], ['control: unknown register', ['qreg q[1];', 'h z[0];'], ['unknown-register', 1]], ['control: random program 0', ['qreg q[2];', 'creg c[2];', 'h q[0];', 'measure q[1] -> c[0];'], [['h', [0]], ['measure', 1, 0]]]], [['regression: single control broadcast target', ['qreg q[1];', 'qreg r[3];', 'cx q[0],r;'], [['cx', [0, 1]], ['cx', [0, 2]], ['cx', [0, 3]]]], ['regression: random program 6', ['qreg q[3];', 'creg c[2];', 'cx q[2],q;'], [['cx', [2, 0]], ['cx', [2, 1]], ['cx', [2, 2]]]], ['repair check: random program 47', ['qreg q[1];', 'creg c[1];', 'qreg r[2];', 'creg d[3];', 'qreg s[3];', 'cx q,s[1];', 'cx s,r[1];'], [['cx', [0, 4]], ['cx', [3, 2]], ['cx', [4, 2]], ['cx', [5, 2]]]], ['control: random program 1', ['qreg q[3];', 'creg c[2];', 'h q;', 'measure q[0] -> c;'], ['size-mismatch', 3]], ['control: random program 2', ['qreg q[3];', 'creg c[3];', 'qreg r[1];', 'creg d[1];', 'h q[1];'], [['h', [1]]]], ['control: random program 3', ['qreg q[2];', 'creg c[2];', 'h q[1];'], [['h', [1]]]], ['control: random program 4', ['qreg q[3];', 'creg c[3];', 'qreg r[1];', 'creg d[3];', 'qreg s[1];', 'creg e[2];', 'x s;', 'measure s[0] -> e;', 'cx q,r[0];'], ['size-mismatch', 7]]], [['regression: random program 14', ['qreg q[3];', 'creg c[2];', 'qreg r[2];', 'creg d[3];', 'qreg s[2];', 'x r[1];', 'x q;', 'x r[0];', 'cx s[0],r;'], [['x', [4]], ['x', [0]], ['x', [1]], ['x', [2]], ['x', [3]], ['cx', [5, 3]], ['cx', [5, 4]]]], ['regression: random program 17', ['qreg q[2];', 'qreg r[3];', 'creg c[3];', 'qreg s[2];', 'measure q[1] -> c[2];', 'cx s,r[2];', 'measure q[0] -> c[2];', 'cx s[0],r;'], [['measure', 1, 2], ['cx', [5, 4]], ['cx', [6, 4]], ['measure', 0, 2], ['cx', [5, 2]], ['cx', [5, 3]], ['cx', [5, 4]]]], ['repair check: register control single target', ['qreg q[3];', 'qreg r[1];', 'cx q,r[0];'], [['cx', [0, 3]], ['cx', [1, 3]], ['cx', [2, 3]]]], ['control: random program 5', ['qreg q[1];', 'creg c[3];', 'qreg r[1];', 'creg d[3];', 'cx r[0],q[0];', 'measure r -> d[0];', 'cx q[0],q[0];', 'cx r[0],r;'], [['cx', [1, 0]], ['measure', 1, 3], ['cx', [0, 0]], ['cx', [1, 1]]]], ['control: random program 7', ['qreg q[1];', 'creg c[3];', 'x q;', 'cx q,q[1];', 'cx q[0],q[0];', 'cx q[0],q;'], ['index-out-of-range', 3]], ['control: random program 8', ['qreg q[2];', 'qreg r[1];', 'qreg s[2];', 'creg c[2];', 'cx r[0],s[1];', 'h s;', 'measure q[1] -> c[1];', 'h s;'], [['cx', [2, 4]], ['h', [3]], ['h', [4]], ['measure', 1, 1], ['h', [3]], ['h', [4]]]], ['control: random program 9', ['qreg q[1];', 'qreg r[1];', 'qreg s[1];', 'creg c[2];', 'h q[0];'], [['h', [0]]]]], [['regression: single control broadcast target', ['qreg q[1];', 'qreg r[3];', 'cx q[0],r;'], [['cx', [0, 1]], ['cx', [0, 2]], ['cx', [0, 3]]]], ['regression: random program 6', ['qreg q[3];', 'creg c[2];', 'cx q[2],q;'], [['cx', [2, 0]], ['cx', [2, 1]], ['cx', [2, 2]]]], ['repair check: random program 32', ['qreg q[2];', 'creg c[2];', 'qreg r[1];', 'creg d[3];', 'qreg s[3];', 'h q[0];', 'cx s,s[0];', 'measure s[2] -> c[1];'], [['h', [0]], ['cx', [3, 3]], ['cx', [4, 3]], ['cx', [5, 3]], ['measure', 5, 1]]], ['control: random program 10', ['qreg q[2];', 'qreg r[2];', 'creg c[2];', 'h q[0];', 'x q;', 'measure r[0] -> c;'], ['size-mismatch', 5]], ['control: random program 11', ['qreg q[2];', 'creg c[1];', 'qreg r[1];', 'creg d[3];', 'measure q -> d[2];', 'x r[0];', 'x q;', 'measure q[0] -> d[0];'], ['size-mismatch', 4]], ['control: random program 12', ['qreg q[3];', 'creg c[1];', 'qreg r[2];', 'creg d[3];', 'x q;', 'h r;', 'x r[1];'], [['x', [0]], ['x', [1]], ['x', [2]], ['h', [3]], ['h', [4]], ['x', [4]]]], ['control: random program 15', ['qreg q[1];', 'qreg r[2];', 'qreg s[3];', 'creg c[2];', 'x q;', 'h r[1];', 'cx s[2],r[1];', 'cx r[1],q[0];'], [['x', [0]], ['h', [2]], ['cx', [5, 2]], ['cx', [2, 0]]]]]]
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: single control broadcast target | ['size-mismatch', 2] | [['cx', [0, 1]], ['cx', [0, 2]], ['cx', [0, 3]]] | Failed |
| regression: random program 6 | ['size-mismatch', 2] | [['cx', [2, 0]], ['cx', [2, 1]], ['cx', [2, 2]]] | Failed |
| repair check: register control single target | [['cx', [0, 3]], ['cx', [1, 3]], ['cx', [2, 3]]] | [['cx', [0, 3]], ['cx', [1, 3]], ['cx', [2, 3]]] | Passed |
| control: two registers broadcast | [['cx', [0, 2]], ['cx', [1, 3]], ['measure', 2, 0], ['measure', 3, 1]] | [['cx', [0, 2]], ['cx', [1, 3]], ['measure', 2, 0], ['measure', 3, 1]] | Passed |
| control: creg declared between qregs | [['h', [2]]] | [['h', [2]]] | Passed |
| control: index equals size | ['index-out-of-range', 1] | ['index-out-of-range', 1] | Passed |
| control: second register overflow | ['index-out-of-range', 2] | ['index-out-of-range', 2] | Passed |
SHA-256 / 85c191eb2c95a8b97b7943b337a842de97d0f49b2b6db1f9972116c6646815ea
2 / The unsuccessful fix
Exit 1"""Failure Map reference implementation. Python standard library only."""
import json
import re
N = 1
observations = []
def solve(x):
qregs, cregs = {}, {}
nq = nc = 0
out = []
def ref(tok, regs):
m = re.fullmatch(r'([a-z]\w*)(?:\[(\d+)\])?', tok.strip())
name, idx = m.group(1), m.group(2)
if name not in regs:
raise KeyError('unknown-register')
off, size = regs[name]
if idx is None:
return [off + i for i in range(size)]
if int(idx) >= size:
raise KeyError('index-out-of-range')
return [off + int(idx)]
for no, stmt in enumerate(x):
s = stmt.strip().rstrip(';').strip()
head, _, rest = s.partition(' ')
try:
if head in ('qreg', 'creg'):
m = re.fullmatch(r'([a-z]\w*)\[(\d+)\]', rest.strip())
size = int(m.group(2))
if head == 'qreg':
qregs[m.group(1)] = (nq, size)
nq += size
else:
cregs[m.group(1)] = (nc, size)
nc += size
elif head == 'measure':
src, dst = rest.split('->')
qs, cs = ref(src, qregs), ref(dst, cregs)
if len(qs) != len(cs):
raise KeyError('size-mismatch')
out += [['measure', a, b] for a, b in zip(qs, cs)]
else:
args = [ref(t, qregs) for t in rest.split(',')]
width = len(args[-1])
if any(len(a) not in (1, width) for a in args):
raise KeyError('size-mismatch')
for i in range(width):
out.append([head, [a[0] if len(a) == 1 else a[i] for a in args]])
except KeyError as e:
return [e.args[0], no]
return out
def check(label, actual, expected):
observations.append({"check": label, "actual": actual, "expected": expected, "passed": actual == expected})
fixtures = [[['regression: single control broadcast target', ['qreg q[1];', 'qreg r[3];', 'cx q[0],r;'], [['cx', [0, 1]], ['cx', [0, 2]], ['cx', [0, 3]]]], ['regression: random program 6', ['qreg q[3];', 'creg c[2];', 'cx q[2],q;'], [['cx', [2, 0]], ['cx', [2, 1]], ['cx', [2, 2]]]], ['repair check: register control single target', ['qreg q[3];', 'qreg r[1];', 'cx q,r[0];'], [['cx', [0, 3]], ['cx', [1, 3]], ['cx', [2, 3]]]], ['control: two registers broadcast', ['qreg q[2];', 'qreg r[2];', 'creg c[2];', 'cx q,r;', 'measure r -> c;'], [['cx', [0, 2]], ['cx', [1, 3]], ['measure', 2, 0], ['measure', 3, 1]]], ['control: creg declared between qregs', ['qreg a[1];', 'creg c[2];', 'qreg b[2];', 'h b[1];'], [['h', [2]]]], ['control: index equals size', ['qreg q[2];', 'h q[2];'], ['index-out-of-range', 1]], ['control: second register overflow', ['qreg q[2];', 'qreg r[2];', 'x r[3];'], ['index-out-of-range', 2]]], [['regression: random program 14', ['qreg q[3];', 'creg c[2];', 'qreg r[2];', 'creg d[3];', 'qreg s[2];', 'x r[1];', 'x q;', 'x r[0];', 'cx s[0],r;'], [['x', [4]], ['x', [0]], ['x', [1]], ['x', [2]], ['x', [3]], ['cx', [5, 3]], ['cx', [5, 4]]]], ['regression: random program 17', ['qreg q[2];', 'qreg r[3];', 'creg c[3];', 'qreg s[2];', 'measure q[1] -> c[2];', 'cx s,r[2];', 'measure q[0] -> c[2];', 'cx s[0],r;'], [['measure', 1, 2], ['cx', [5, 4]], ['cx', [6, 4]], ['measure', 0, 2], ['cx', [5, 2]], ['cx', [5, 3]], ['cx', [5, 4]]]], ['repair check: random program 32', ['qreg q[2];', 'creg c[2];', 'qreg r[1];', 'creg d[3];', 'qreg s[3];', 'h q[0];', 'cx s,s[0];', 'measure s[2] -> c[1];'], [['h', [0]], ['cx', [3, 3]], ['cx', [4, 3]], ['cx', [5, 3]], ['measure', 5, 1]]], ['control: measure size mismatch', ['qreg q[3];', 'creg c[2];', 'measure q -> c;'], ['size-mismatch', 2]], ['control: measure into qreg name', ['qreg q[1];', 'qreg r[1];', 'measure q[0] -> r[0];'], ['unknown-register', 2]], ['control: unknown register', ['qreg q[1];', 'h z[0];'], ['unknown-register', 1]], ['control: random program 0', ['qreg q[2];', 'creg c[2];', 'h q[0];', 'measure q[1] -> c[0];'], [['h', [0]], ['measure', 1, 0]]]], [['regression: single control broadcast target', ['qreg q[1];', 'qreg r[3];', 'cx q[0],r;'], [['cx', [0, 1]], ['cx', [0, 2]], ['cx', [0, 3]]]], ['regression: random program 6', ['qreg q[3];', 'creg c[2];', 'cx q[2],q;'], [['cx', [2, 0]], ['cx', [2, 1]], ['cx', [2, 2]]]], ['repair check: random program 47', ['qreg q[1];', 'creg c[1];', 'qreg r[2];', 'creg d[3];', 'qreg s[3];', 'cx q,s[1];', 'cx s,r[1];'], [['cx', [0, 4]], ['cx', [3, 2]], ['cx', [4, 2]], ['cx', [5, 2]]]], ['control: random program 1', ['qreg q[3];', 'creg c[2];', 'h q;', 'measure q[0] -> c;'], ['size-mismatch', 3]], ['control: random program 2', ['qreg q[3];', 'creg c[3];', 'qreg r[1];', 'creg d[1];', 'h q[1];'], [['h', [1]]]], ['control: random program 3', ['qreg q[2];', 'creg c[2];', 'h q[1];'], [['h', [1]]]], ['control: random program 4', ['qreg q[3];', 'creg c[3];', 'qreg r[1];', 'creg d[3];', 'qreg s[1];', 'creg e[2];', 'x s;', 'measure s[0] -> e;', 'cx q,r[0];'], ['size-mismatch', 7]]], [['regression: random program 14', ['qreg q[3];', 'creg c[2];', 'qreg r[2];', 'creg d[3];', 'qreg s[2];', 'x r[1];', 'x q;', 'x r[0];', 'cx s[0],r;'], [['x', [4]], ['x', [0]], ['x', [1]], ['x', [2]], ['x', [3]], ['cx', [5, 3]], ['cx', [5, 4]]]], ['regression: random program 17', ['qreg q[2];', 'qreg r[3];', 'creg c[3];', 'qreg s[2];', 'measure q[1] -> c[2];', 'cx s,r[2];', 'measure q[0] -> c[2];', 'cx s[0],r;'], [['measure', 1, 2], ['cx', [5, 4]], ['cx', [6, 4]], ['measure', 0, 2], ['cx', [5, 2]], ['cx', [5, 3]], ['cx', [5, 4]]]], ['repair check: register control single target', ['qreg q[3];', 'qreg r[1];', 'cx q,r[0];'], [['cx', [0, 3]], ['cx', [1, 3]], ['cx', [2, 3]]]], ['control: random program 5', ['qreg q[1];', 'creg c[3];', 'qreg r[1];', 'creg d[3];', 'cx r[0],q[0];', 'measure r -> d[0];', 'cx q[0],q[0];', 'cx r[0],r;'], [['cx', [1, 0]], ['measure', 1, 3], ['cx', [0, 0]], ['cx', [1, 1]]]], ['control: random program 7', ['qreg q[1];', 'creg c[3];', 'x q;', 'cx q,q[1];', 'cx q[0],q[0];', 'cx q[0],q;'], ['index-out-of-range', 3]], ['control: random program 8', ['qreg q[2];', 'qreg r[1];', 'qreg s[2];', 'creg c[2];', 'cx r[0],s[1];', 'h s;', 'measure q[1] -> c[1];', 'h s;'], [['cx', [2, 4]], ['h', [3]], ['h', [4]], ['measure', 1, 1], ['h', [3]], ['h', [4]]]], ['control: random program 9', ['qreg q[1];', 'qreg r[1];', 'qreg s[1];', 'creg c[2];', 'h q[0];'], [['h', [0]]]]], [['regression: single control broadcast target', ['qreg q[1];', 'qreg r[3];', 'cx q[0],r;'], [['cx', [0, 1]], ['cx', [0, 2]], ['cx', [0, 3]]]], ['regression: random program 6', ['qreg q[3];', 'creg c[2];', 'cx q[2],q;'], [['cx', [2, 0]], ['cx', [2, 1]], ['cx', [2, 2]]]], ['repair check: random program 32', ['qreg q[2];', 'creg c[2];', 'qreg r[1];', 'creg d[3];', 'qreg s[3];', 'h q[0];', 'cx s,s[0];', 'measure s[2] -> c[1];'], [['h', [0]], ['cx', [3, 3]], ['cx', [4, 3]], ['cx', [5, 3]], ['measure', 5, 1]]], ['control: random program 10', ['qreg q[2];', 'qreg r[2];', 'creg c[2];', 'h q[0];', 'x q;', 'measure r[0] -> c;'], ['size-mismatch', 5]], ['control: random program 11', ['qreg q[2];', 'creg c[1];', 'qreg r[1];', 'creg d[3];', 'measure q -> d[2];', 'x r[0];', 'x q;', 'measure q[0] -> d[0];'], ['size-mismatch', 4]], ['control: random program 12', ['qreg q[3];', 'creg c[1];', 'qreg r[2];', 'creg d[3];', 'x q;', 'h r;', 'x r[1];'], [['x', [0]], ['x', [1]], ['x', [2]], ['h', [3]], ['h', [4]], ['x', [4]]]], ['control: random program 15', ['qreg q[1];', 'qreg r[2];', 'qreg s[3];', 'creg c[2];', 'x q;', 'h r[1];', 'cx s[2],r[1];', 'cx r[1],q[0];'], [['x', [0]], ['h', [2]], ['cx', [5, 2]], ['cx', [2, 0]]]]]]
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: single control broadcast target | [['cx', [0, 1]], ['cx', [0, 2]], ['cx', [0, 3]]] | [['cx', [0, 1]], ['cx', [0, 2]], ['cx', [0, 3]]] | Passed |
| regression: random program 6 | [['cx', [2, 0]], ['cx', [2, 1]], ['cx', [2, 2]]] | [['cx', [2, 0]], ['cx', [2, 1]], ['cx', [2, 2]]] | Passed |
| repair check: register control single target | ['size-mismatch', 2] | [['cx', [0, 3]], ['cx', [1, 3]], ['cx', [2, 3]]] | Failed |
| control: two registers broadcast | [['cx', [0, 2]], ['cx', [1, 3]], ['measure', 2, 0], ['measure', 3, 1]] | [['cx', [0, 2]], ['cx', [1, 3]], ['measure', 2, 0], ['measure', 3, 1]] | Passed |
| control: creg declared between qregs | [['h', [2]]] | [['h', [2]]] | Passed |
| control: index equals size | ['index-out-of-range', 1] | ['index-out-of-range', 1] | Passed |
| control: second register overflow | ['index-out-of-range', 2] | ['index-out-of-range', 2] | Passed |
SHA-256 / 8af1fa2afab197fafdb1893942f801afa243b61fa9ca0f0e8e0d8b4ffa674d13
3 / The verified repair
Exit 0"""Failure Map reference implementation. Python standard library only."""
import json
import re
N = 1
observations = []
def solve(x):
qregs, cregs = {}, {}
nq = nc = 0
out = []
def ref(tok, regs):
m = re.fullmatch(r'([a-z]\w*)(?:\[(\d+)\])?', tok.strip())
name, idx = m.group(1), m.group(2)
if name not in regs:
raise KeyError('unknown-register')
off, size = regs[name]
if idx is None:
return [off + i for i in range(size)]
if int(idx) >= size:
raise KeyError('index-out-of-range')
return [off + int(idx)]
for no, stmt in enumerate(x):
s = stmt.strip().rstrip(';').strip()
head, _, rest = s.partition(' ')
try:
if head in ('qreg', 'creg'):
m = re.fullmatch(r'([a-z]\w*)\[(\d+)\]', rest.strip())
size = int(m.group(2))
if head == 'qreg':
qregs[m.group(1)] = (nq, size)
nq += size
else:
cregs[m.group(1)] = (nc, size)
nc += size
elif head == 'measure':
src, dst = rest.split('->')
qs, cs = ref(src, qregs), ref(dst, cregs)
if len(qs) != len(cs):
raise KeyError('size-mismatch')
out += [['measure', a, b] for a, b in zip(qs, cs)]
else:
args = [ref(t, qregs) for t in rest.split(',')]
width = max(len(a) for a in args)
if any(len(a) not in (1, width) for a in args):
raise KeyError('size-mismatch')
for i in range(width):
out.append([head, [a[0] if len(a) == 1 else a[i] for a in args]])
except KeyError as e:
return [e.args[0], no]
return out
def check(label, actual, expected):
observations.append({"check": label, "actual": actual, "expected": expected, "passed": actual == expected})
fixtures = [[['regression: single control broadcast target', ['qreg q[1];', 'qreg r[3];', 'cx q[0],r;'], [['cx', [0, 1]], ['cx', [0, 2]], ['cx', [0, 3]]]], ['regression: random program 6', ['qreg q[3];', 'creg c[2];', 'cx q[2],q;'], [['cx', [2, 0]], ['cx', [2, 1]], ['cx', [2, 2]]]], ['repair check: register control single target', ['qreg q[3];', 'qreg r[1];', 'cx q,r[0];'], [['cx', [0, 3]], ['cx', [1, 3]], ['cx', [2, 3]]]], ['control: two registers broadcast', ['qreg q[2];', 'qreg r[2];', 'creg c[2];', 'cx q,r;', 'measure r -> c;'], [['cx', [0, 2]], ['cx', [1, 3]], ['measure', 2, 0], ['measure', 3, 1]]], ['control: creg declared between qregs', ['qreg a[1];', 'creg c[2];', 'qreg b[2];', 'h b[1];'], [['h', [2]]]], ['control: index equals size', ['qreg q[2];', 'h q[2];'], ['index-out-of-range', 1]], ['control: second register overflow', ['qreg q[2];', 'qreg r[2];', 'x r[3];'], ['index-out-of-range', 2]]], [['regression: random program 14', ['qreg q[3];', 'creg c[2];', 'qreg r[2];', 'creg d[3];', 'qreg s[2];', 'x r[1];', 'x q;', 'x r[0];', 'cx s[0],r;'], [['x', [4]], ['x', [0]], ['x', [1]], ['x', [2]], ['x', [3]], ['cx', [5, 3]], ['cx', [5, 4]]]], ['regression: random program 17', ['qreg q[2];', 'qreg r[3];', 'creg c[3];', 'qreg s[2];', 'measure q[1] -> c[2];', 'cx s,r[2];', 'measure q[0] -> c[2];', 'cx s[0],r;'], [['measure', 1, 2], ['cx', [5, 4]], ['cx', [6, 4]], ['measure', 0, 2], ['cx', [5, 2]], ['cx', [5, 3]], ['cx', [5, 4]]]], ['repair check: random program 32', ['qreg q[2];', 'creg c[2];', 'qreg r[1];', 'creg d[3];', 'qreg s[3];', 'h q[0];', 'cx s,s[0];', 'measure s[2] -> c[1];'], [['h', [0]], ['cx', [3, 3]], ['cx', [4, 3]], ['cx', [5, 3]], ['measure', 5, 1]]], ['control: measure size mismatch', ['qreg q[3];', 'creg c[2];', 'measure q -> c;'], ['size-mismatch', 2]], ['control: measure into qreg name', ['qreg q[1];', 'qreg r[1];', 'measure q[0] -> r[0];'], ['unknown-register', 2]], ['control: unknown register', ['qreg q[1];', 'h z[0];'], ['unknown-register', 1]], ['control: random program 0', ['qreg q[2];', 'creg c[2];', 'h q[0];', 'measure q[1] -> c[0];'], [['h', [0]], ['measure', 1, 0]]]], [['regression: single control broadcast target', ['qreg q[1];', 'qreg r[3];', 'cx q[0],r;'], [['cx', [0, 1]], ['cx', [0, 2]], ['cx', [0, 3]]]], ['regression: random program 6', ['qreg q[3];', 'creg c[2];', 'cx q[2],q;'], [['cx', [2, 0]], ['cx', [2, 1]], ['cx', [2, 2]]]], ['repair check: random program 47', ['qreg q[1];', 'creg c[1];', 'qreg r[2];', 'creg d[3];', 'qreg s[3];', 'cx q,s[1];', 'cx s,r[1];'], [['cx', [0, 4]], ['cx', [3, 2]], ['cx', [4, 2]], ['cx', [5, 2]]]], ['control: random program 1', ['qreg q[3];', 'creg c[2];', 'h q;', 'measure q[0] -> c;'], ['size-mismatch', 3]], ['control: random program 2', ['qreg q[3];', 'creg c[3];', 'qreg r[1];', 'creg d[1];', 'h q[1];'], [['h', [1]]]], ['control: random program 3', ['qreg q[2];', 'creg c[2];', 'h q[1];'], [['h', [1]]]], ['control: random program 4', ['qreg q[3];', 'creg c[3];', 'qreg r[1];', 'creg d[3];', 'qreg s[1];', 'creg e[2];', 'x s;', 'measure s[0] -> e;', 'cx q,r[0];'], ['size-mismatch', 7]]], [['regression: random program 14', ['qreg q[3];', 'creg c[2];', 'qreg r[2];', 'creg d[3];', 'qreg s[2];', 'x r[1];', 'x q;', 'x r[0];', 'cx s[0],r;'], [['x', [4]], ['x', [0]], ['x', [1]], ['x', [2]], ['x', [3]], ['cx', [5, 3]], ['cx', [5, 4]]]], ['regression: random program 17', ['qreg q[2];', 'qreg r[3];', 'creg c[3];', 'qreg s[2];', 'measure q[1] -> c[2];', 'cx s,r[2];', 'measure q[0] -> c[2];', 'cx s[0],r;'], [['measure', 1, 2], ['cx', [5, 4]], ['cx', [6, 4]], ['measure', 0, 2], ['cx', [5, 2]], ['cx', [5, 3]], ['cx', [5, 4]]]], ['repair check: register control single target', ['qreg q[3];', 'qreg r[1];', 'cx q,r[0];'], [['cx', [0, 3]], ['cx', [1, 3]], ['cx', [2, 3]]]], ['control: random program 5', ['qreg q[1];', 'creg c[3];', 'qreg r[1];', 'creg d[3];', 'cx r[0],q[0];', 'measure r -> d[0];', 'cx q[0],q[0];', 'cx r[0],r;'], [['cx', [1, 0]], ['measure', 1, 3], ['cx', [0, 0]], ['cx', [1, 1]]]], ['control: random program 7', ['qreg q[1];', 'creg c[3];', 'x q;', 'cx q,q[1];', 'cx q[0],q[0];', 'cx q[0],q;'], ['index-out-of-range', 3]], ['control: random program 8', ['qreg q[2];', 'qreg r[1];', 'qreg s[2];', 'creg c[2];', 'cx r[0],s[1];', 'h s;', 'measure q[1] -> c[1];', 'h s;'], [['cx', [2, 4]], ['h', [3]], ['h', [4]], ['measure', 1, 1], ['h', [3]], ['h', [4]]]], ['control: random program 9', ['qreg q[1];', 'qreg r[1];', 'qreg s[1];', 'creg c[2];', 'h q[0];'], [['h', [0]]]]], [['regression: single control broadcast target', ['qreg q[1];', 'qreg r[3];', 'cx q[0],r;'], [['cx', [0, 1]], ['cx', [0, 2]], ['cx', [0, 3]]]], ['regression: random program 6', ['qreg q[3];', 'creg c[2];', 'cx q[2],q;'], [['cx', [2, 0]], ['cx', [2, 1]], ['cx', [2, 2]]]], ['repair check: random program 32', ['qreg q[2];', 'creg c[2];', 'qreg r[1];', 'creg d[3];', 'qreg s[3];', 'h q[0];', 'cx s,s[0];', 'measure s[2] -> c[1];'], [['h', [0]], ['cx', [3, 3]], ['cx', [4, 3]], ['cx', [5, 3]], ['measure', 5, 1]]], ['control: random program 10', ['qreg q[2];', 'qreg r[2];', 'creg c[2];', 'h q[0];', 'x q;', 'measure r[0] -> c;'], ['size-mismatch', 5]], ['control: random program 11', ['qreg q[2];', 'creg c[1];', 'qreg r[1];', 'creg d[3];', 'measure q -> d[2];', 'x r[0];', 'x q;', 'measure q[0] -> d[0];'], ['size-mismatch', 4]], ['control: random program 12', ['qreg q[3];', 'creg c[1];', 'qreg r[2];', 'creg d[3];', 'x q;', 'h r;', 'x r[1];'], [['x', [0]], ['x', [1]], ['x', [2]], ['h', [3]], ['h', [4]], ['x', [4]]]], ['control: random program 15', ['qreg q[1];', 'qreg r[2];', 'qreg s[3];', 'creg c[2];', 'x q;', 'h r[1];', 'cx s[2],r[1];', 'cx r[1],q[0];'], [['x', [0]], ['h', [2]], ['cx', [5, 2]], ['cx', [2, 0]]]]]]
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: single control broadcast target | [['cx', [0, 1]], ['cx', [0, 2]], ['cx', [0, 3]]] | [['cx', [0, 1]], ['cx', [0, 2]], ['cx', [0, 3]]] | Passed |
| regression: random program 6 | [['cx', [2, 0]], ['cx', [2, 1]], ['cx', [2, 2]]] | [['cx', [2, 0]], ['cx', [2, 1]], ['cx', [2, 2]]] | Passed |
| repair check: register control single target | [['cx', [0, 3]], ['cx', [1, 3]], ['cx', [2, 3]]] | [['cx', [0, 3]], ['cx', [1, 3]], ['cx', [2, 3]]] | Passed |
| control: two registers broadcast | [['cx', [0, 2]], ['cx', [1, 3]], ['measure', 2, 0], ['measure', 3, 1]] | [['cx', [0, 2]], ['cx', [1, 3]], ['measure', 2, 0], ['measure', 3, 1]] | Passed |
| control: creg declared between qregs | [['h', [2]]] | [['h', [2]]] | Passed |
| control: index equals size | ['index-out-of-range', 1] | ['index-out-of-range', 1] | Passed |
| control: second register overflow | ['index-out-of-range', 2] | ['index-out-of-range', 2] | Passed |
SHA-256 / b02304a508f373a8f3cb4f8ba6f0fe52aad2ba7f41a76fb5f24327b018298aa2
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:34.867496+00:00.
Case digest / cf306f1e7f5e42abbd71f1a1bffc5eb4a296f35ac78a7534818dc4883d19c283