{"abstract":"A gate conditioned on c0 is scheduled in parallel with the measurement that writes c0.","category":"Quantum circuit simulation","checks":7,"contract":"Input [nq, nc, ops]; ops are [name, qubits], [\"measure\", [q], [c]], [\"g\", [q], \"if\", c] (classically conditioned), [\"barrier\", qubits] (empty list = all qubits) and [\"id\", [q]]. ASAP layering: each op lands one layer after the latest of its qubits and any clbit it reads or writes, and sets those levels; barriers align the listed qubits to their maximum without adding a layer; id costs nothing. Return [depth, qubit levels].","contract_signature":"x","evaluation_group":"w2-quantum_circuit_simulation-circuit-depth-layers","failed_approach":"The attempted repair only includes the clbit when it already has a level, so the read never serializes a later measurement into the same clbit.","family":"w2-quantum_circuit_simulation-circuit-depth-layers-classical-condition-dependency","id":"FA-91031","implementations":{"attempt":{"sha256":"813fc73a719b74148055bd7d7b3781f6220fb8639863b71c0552ddd92c3f7608","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(x):\n    nq, nc, ops = x\n    ql = [0] * nq\n    cl = [0] * nc\n    for op in ops:\n        name, qs = op[0], op[1]\n        if name == 'barrier':\n            qs = qs or list(range(nq))\n            top = max(ql[q] for q in qs)\n            for q in qs:\n                ql[q] = top\n            continue\n        if name == 'id':\n            continue\n        cbits = []\n        if name == 'measure':\n            cbits = op[2]\n        elif len(op) > 2 and op[2] == 'if':\n            cbits = [op[3]] if cl[op[3]] else []\n        level = 1 + max([ql[q] for q in qs] + [cl[c] for c in cbits])\n        for q in qs:\n            ql[q] = level\n        for c in cbits:\n            cl[c] = level\n    return [max(ql + cl + [0]), ql]\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\nfixtures = [[['regression: conditioned gate after measure', [2, 1, [['h', [0]], ['measure', [0], [0]], ['x', [1], 'if', 0]]], [3, [2, 3]]], ['regression: late read then early-qubit measure', [2, 1, [['h', [1]], ['h', [1]], ['h', [1]], ['x', [1], 'if', 0], ['measure', [0], [0]]]], [5, [5, 4]]], ['regression: read then measure other clbit writer', [3, 2, [['h', [2]], ['h', [2]], ['z', [2], 'if', 1], ['measure', [0], [1]], ['x', [1], 'if', 1]]], [5, [4, 5, 3]]], ['control: barrier aligns everything', [3, 1, [['h', [0]], ['h', [0]], ['barrier', []], ['x', [2]]]], [3, [2, 2, 3]]], ['control: partial barrier', [3, 1, [['h', [0]], ['barrier', [0, 1]], ['x', [1]], ['x', [2]]]], [2, [1, 2, 1]]], ['control: toffoli waits on all', [3, 0, [['h', [2]], ['h', [2]], ['ccx', [0, 1, 2]], ['x', [0]]]], [4, [4, 3, 3]]], ['control: cx waits on target', [2, 0, [['h', [1]], ['h', [1]], ['cx', [0, 1]]]], [3, [3, 3]]]], [['regression: random schedule 26', [2, 2, [['measure', [0], [0]], ['x', [1], 'if', 0], ['measure', [0], [0]], ['cx', [0, 1]], ['h', [1]], ['rz', [1]]]], [6, [4, 6]]], ['regression: conditioned gate after measure', [2, 1, [['h', [0]], ['measure', [0], [0]], ['x', [1], 'if', 0]]], [3, [2, 3]]], ['regression: late read then early-qubit measure', [2, 1, [['h', [1]], ['h', [1]], ['h', [1]], ['x', [1], 'if', 0], ['measure', [0], [0]]]], [5, [5, 4]]], ['control: identity is free', [1, 0, [['id', [0]], ['id', [0]], ['x', [0]]]], [1, [1]]], ['control: measure after conditioned read', [2, 1, [['h', [0]], ['h', [0]], ['h', [0]], ['x', [1], 'if', 0], ['measure', [1], [0]]]], [3, [3, 2]]], ['control: empty circuit', [2, 1, []], [0, [0, 0]]], ['control: random schedule 0', [1, 2, [['x', [0]], ['rz', [0]], ['measure', [0], [0]], ['x', [0]], ['barrier', [0]], ['x', [0], 'if', 1], ['x', [0], 'if', 1], ['x', [0]], ['measure', [0], [0]]]], [8, [8]]]], [['regression: read then measure other clbit writer', [3, 2, [['h', [2]], ['h', [2]], ['z', [2], 'if', 1], ['measure', [0], [1]], ['x', [1], 'if', 1]]], [5, [4, 5, 3]]], ['regression: random schedule 26', [2, 2, [['measure', [0], [0]], ['x', [1], 'if', 0], ['measure', [0], [0]], ['cx', [0, 1]], ['h', [1]], ['rz', [1]]]], [6, [4, 6]]], ['regression: late read then early-qubit measure', [2, 1, [['h', [1]], ['h', [1]], ['h', [1]], ['x', [1], 'if', 0], ['measure', [0], [0]]]], [5, [5, 4]]], ['control: random schedule 1', [4, 2, [['ccx', [1, 0, 3]], ['ccx', [2, 1, 3]], ['barrier', [0, 1, 2, 3]], ['cx', [1, 0]], ['id', [1]], ['cx', [1, 2]], ['cx', [0, 2]]]], [5, [5, 4, 5, 2]]], ['control: random schedule 2', [1, 1, [['h', [0]], ['rz', [0]], ['x', [0]], ['x', [0], 'if', 0], ['x', [0]], ['x', [0]], ['x', [0], 'if', 0], ['id', [0]]]], [7, [7]]], ['control: random schedule 3', [1, 2, [['h', [0]], ['h', [0]]]], [2, [2]]], ['control: random schedule 4', [4, 1, [['measure', [3], [0]], ['ccx', [2, 1, 0]], ['ccx', [0, 2, 3]]]], [2, [2, 1, 2, 2]]]], [['regression: late read then early-qubit measure', [2, 1, [['h', [1]], ['h', [1]], ['h', [1]], ['x', [1], 'if', 0], ['measure', [0], [0]]]], [5, [5, 4]]], ['regression: read then measure other clbit writer', [3, 2, [['h', [2]], ['h', [2]], ['z', [2], 'if', 1], ['measure', [0], [1]], ['x', [1], 'if', 1]]], [5, [4, 5, 3]]], ['control: random schedule 5', [3, 2, [['ccx', [0, 1, 2]], ['ccx', [2, 1, 0]], ['barrier', [0, 1, 2]], ['x', [1]]]], [3, [2, 3, 2]]], ['control: random schedule 6', [4, 2, [['barrier', [2]], ['cx', [1, 2]], ['ccx', [2, 3, 0]]]], [2, [2, 1, 2, 2]]], ['control: random schedule 7', [4, 2, [['x', [2], 'if', 1], ['x', [1]], ['barrier', [2]], ['cx', [0, 1]], ['h', [2]]]], [2, [2, 2, 2, 0]]], ['control: random schedule 8', [1, 1, [['x', [0], 'if', 0], ['rz', [0]], ['rz', [0]], ['h', [0]], ['rz', [0]], ['h', [0]], ['measure', [0], [0]], ['rz', [0]]]], [8, [8]]], ['regression: conditioned gate after measure', [2, 1, [['h', [0]], ['measure', [0], [0]], ['x', [1], 'if', 0]]], [3, [2, 3]]]], [['regression: conditioned gate after measure', [2, 1, [['h', [0]], ['measure', [0], [0]], ['x', [1], 'if', 0]]], [3, [2, 3]]], ['regression: late read then early-qubit measure', [2, 1, [['h', [1]], ['h', [1]], ['h', [1]], ['x', [1], 'if', 0], ['measure', [0], [0]]]], [5, [5, 4]]], ['regression: read then measure other clbit writer', [3, 2, [['h', [2]], ['h', [2]], ['z', [2], 'if', 1], ['measure', [0], [1]], ['x', [1], 'if', 1]]], [5, [4, 5, 3]]], ['control: random schedule 9', [3, 1, [['cx', [2, 1]], ['h', [1]], ['barrier', [1, 2]]]], [2, [0, 2, 2]]], ['control: random schedule 10', [4, 1, [['id', [2]]]], [0, [0, 0, 0, 0]]], ['control: random schedule 11', [2, 2, [['barrier', [0]], ['barrier', [1]], ['h', [1]], ['h', [0]], ['id', [0]], ['cx', [0, 1]], ['x', [1]], ['rz', [0]]]], [3, [3, 3]]], ['control: random schedule 12', [1, 2, [['rz', [0]], ['rz', [0]], ['barrier', []], ['rz', [0]], ['id', [0]], ['barrier', [0]], ['x', [0]], ['h', [0]]]], [5, [5]]]]]\nfor label, args, expected in fixtures[N-1]:\n    check(label, solve(args), expected)\nprint(json.dumps({\"observations\": observations, \"passed\": all(x[\"passed\"] for x in observations)}, ensure_ascii=False))\nraise SystemExit(0 if all(x[\"passed\"] for x in observations) else 1)\n"},"broken":{"sha256":"3f46a626d0d0eb714d235226affc574f05c880493003e291dd54b434edf9c6a3","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(x):\n    nq, nc, ops = x\n    ql = [0] * nq\n    cl = [0] * nc\n    for op in ops:\n        name, qs = op[0], op[1]\n        if name == 'barrier':\n            qs = qs or list(range(nq))\n            top = max(ql[q] for q in qs)\n            for q in qs:\n                ql[q] = top\n            continue\n        if name == 'id':\n            continue\n        cbits = []\n        if name == 'measure':\n            cbits = op[2]\n        elif len(op) > 2 and op[2] == 'if':\n            cbits = []\n        level = 1 + max([ql[q] for q in qs] + [cl[c] for c in cbits])\n        for q in qs:\n            ql[q] = level\n        for c in cbits:\n            cl[c] = level\n    return [max(ql + cl + [0]), ql]\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\nfixtures = [[['regression: conditioned gate after measure', [2, 1, [['h', [0]], ['measure', [0], [0]], ['x', [1], 'if', 0]]], [3, [2, 3]]], ['regression: late read then early-qubit measure', [2, 1, [['h', [1]], ['h', [1]], ['h', [1]], ['x', [1], 'if', 0], ['measure', [0], [0]]]], [5, [5, 4]]], ['regression: read then measure other clbit writer', [3, 2, [['h', [2]], ['h', [2]], ['z', [2], 'if', 1], ['measure', [0], [1]], ['x', [1], 'if', 1]]], [5, [4, 5, 3]]], ['control: barrier aligns everything', [3, 1, [['h', [0]], ['h', [0]], ['barrier', []], ['x', [2]]]], [3, [2, 2, 3]]], ['control: partial barrier', [3, 1, [['h', [0]], ['barrier', [0, 1]], ['x', [1]], ['x', [2]]]], [2, [1, 2, 1]]], ['control: toffoli waits on all', [3, 0, [['h', [2]], ['h', [2]], ['ccx', [0, 1, 2]], ['x', [0]]]], [4, [4, 3, 3]]], ['control: cx waits on target', [2, 0, [['h', [1]], ['h', [1]], ['cx', [0, 1]]]], [3, [3, 3]]]], [['regression: random schedule 26', [2, 2, [['measure', [0], [0]], ['x', [1], 'if', 0], ['measure', [0], [0]], ['cx', [0, 1]], ['h', [1]], ['rz', [1]]]], [6, [4, 6]]], ['regression: conditioned gate after measure', [2, 1, [['h', [0]], ['measure', [0], [0]], ['x', [1], 'if', 0]]], [3, [2, 3]]], ['regression: late read then early-qubit measure', [2, 1, [['h', [1]], ['h', [1]], ['h', [1]], ['x', [1], 'if', 0], ['measure', [0], [0]]]], [5, [5, 4]]], ['control: identity is free', [1, 0, [['id', [0]], ['id', [0]], ['x', [0]]]], [1, [1]]], ['control: measure after conditioned read', [2, 1, [['h', [0]], ['h', [0]], ['h', [0]], ['x', [1], 'if', 0], ['measure', [1], [0]]]], [3, [3, 2]]], ['control: empty circuit', [2, 1, []], [0, [0, 0]]], ['control: random schedule 0', [1, 2, [['x', [0]], ['rz', [0]], ['measure', [0], [0]], ['x', [0]], ['barrier', [0]], ['x', [0], 'if', 1], ['x', [0], 'if', 1], ['x', [0]], ['measure', [0], [0]]]], [8, [8]]]], [['regression: read then measure other clbit writer', [3, 2, [['h', [2]], ['h', [2]], ['z', [2], 'if', 1], ['measure', [0], [1]], ['x', [1], 'if', 1]]], [5, [4, 5, 3]]], ['regression: random schedule 26', [2, 2, [['measure', [0], [0]], ['x', [1], 'if', 0], ['measure', [0], [0]], ['cx', [0, 1]], ['h', [1]], ['rz', [1]]]], [6, [4, 6]]], ['regression: late read then early-qubit measure', [2, 1, [['h', [1]], ['h', [1]], ['h', [1]], ['x', [1], 'if', 0], ['measure', [0], [0]]]], [5, [5, 4]]], ['control: random schedule 1', [4, 2, [['ccx', [1, 0, 3]], ['ccx', [2, 1, 3]], ['barrier', [0, 1, 2, 3]], ['cx', [1, 0]], ['id', [1]], ['cx', [1, 2]], ['cx', [0, 2]]]], [5, [5, 4, 5, 2]]], ['control: random schedule 2', [1, 1, [['h', [0]], ['rz', [0]], ['x', [0]], ['x', [0], 'if', 0], ['x', [0]], ['x', [0]], ['x', [0], 'if', 0], ['id', [0]]]], [7, [7]]], ['control: random schedule 3', [1, 2, [['h', [0]], ['h', [0]]]], [2, [2]]], ['control: random schedule 4', [4, 1, [['measure', [3], [0]], ['ccx', [2, 1, 0]], ['ccx', [0, 2, 3]]]], [2, [2, 1, 2, 2]]]], [['regression: late read then early-qubit measure', [2, 1, [['h', [1]], ['h', [1]], ['h', [1]], ['x', [1], 'if', 0], ['measure', [0], [0]]]], [5, [5, 4]]], ['regression: read then measure other clbit writer', [3, 2, [['h', [2]], ['h', [2]], ['z', [2], 'if', 1], ['measure', [0], [1]], ['x', [1], 'if', 1]]], [5, [4, 5, 3]]], ['control: random schedule 5', [3, 2, [['ccx', [0, 1, 2]], ['ccx', [2, 1, 0]], ['barrier', [0, 1, 2]], ['x', [1]]]], [3, [2, 3, 2]]], ['control: random schedule 6', [4, 2, [['barrier', [2]], ['cx', [1, 2]], ['ccx', [2, 3, 0]]]], [2, [2, 1, 2, 2]]], ['control: random schedule 7', [4, 2, [['x', [2], 'if', 1], ['x', [1]], ['barrier', [2]], ['cx', [0, 1]], ['h', [2]]]], [2, [2, 2, 2, 0]]], ['control: random schedule 8', [1, 1, [['x', [0], 'if', 0], ['rz', [0]], ['rz', [0]], ['h', [0]], ['rz', [0]], ['h', [0]], ['measure', [0], [0]], ['rz', [0]]]], [8, [8]]], ['regression: conditioned gate after measure', [2, 1, [['h', [0]], ['measure', [0], [0]], ['x', [1], 'if', 0]]], [3, [2, 3]]]], [['regression: conditioned gate after measure', [2, 1, [['h', [0]], ['measure', [0], [0]], ['x', [1], 'if', 0]]], [3, [2, 3]]], ['regression: late read then early-qubit measure', [2, 1, [['h', [1]], ['h', [1]], ['h', [1]], ['x', [1], 'if', 0], ['measure', [0], [0]]]], [5, [5, 4]]], ['regression: read then measure other clbit writer', [3, 2, [['h', [2]], ['h', [2]], ['z', [2], 'if', 1], ['measure', [0], [1]], ['x', [1], 'if', 1]]], [5, [4, 5, 3]]], ['control: random schedule 9', [3, 1, [['cx', [2, 1]], ['h', [1]], ['barrier', [1, 2]]]], [2, [0, 2, 2]]], ['control: random schedule 10', [4, 1, [['id', [2]]]], [0, [0, 0, 0, 0]]], ['control: random schedule 11', [2, 2, [['barrier', [0]], ['barrier', [1]], ['h', [1]], ['h', [0]], ['id', [0]], ['cx', [0, 1]], ['x', [1]], ['rz', [0]]]], [3, [3, 3]]], ['control: random schedule 12', [1, 2, [['rz', [0]], ['rz', [0]], ['barrier', []], ['rz', [0]], ['id', [0]], ['barrier', [0]], ['x', [0]], ['h', [0]]]], [5, [5]]]]]\nfor label, args, expected in fixtures[N-1]:\n    check(label, solve(args), expected)\nprint(json.dumps({\"observations\": observations, \"passed\": all(x[\"passed\"] for x in observations)}, ensure_ascii=False))\nraise SystemExit(0 if all(x[\"passed\"] for x in observations) else 1)\n"}},"limitations":"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.","method":"Deterministic executable model with adversarial boundary fixtures.","provenance":{"created_by":"Failure Map","dependencies":"Python standard library","family":"w2-quantum_circuit_simulation-circuit-depth-layers-classical-condition-dependency","generated_at":"2026-09-29T14:51:32.195371+00:00","license":"CC0-1.0","python":"3.12.14","seed":1,"split":"open-access"},"relevance":"Depth drives decoherence budgets and transpiler choices; scheduling slips misreport circuit cost.","root_cause":"Conditioned operations contribute no clbits to the dependency set.","sha256":"b56e82fcccda33d7ec883cbf5d326b5d156e35b957aae729c3f5b1d10df66015","title":"Depth scheduler ignores the clbit a conditioned gate reads · case 01","variant":1,"variant_policy":"Five numbered records share a model and may reuse boundary fixtures.","verified":true,"visibility":"public","verification":{"attempt":{"elapsed_ms":40.626,"exit_code":1,"observations":[{"actual":[3,[2,3]],"check":"regression: conditioned gate after measure","expected":[3,[2,3]],"passed":true},{"actual":[4,[1,4]],"check":"regression: late read then early-qubit measure","expected":[5,[5,4]],"passed":false},{"actual":[3,[1,2,3]],"check":"regression: read then measure other clbit writer","expected":[5,[4,5,3]],"passed":false},{"actual":[3,[2,2,3]],"check":"control: barrier aligns everything","expected":[3,[2,2,3]],"passed":true},{"actual":[2,[1,2,1]],"check":"control: partial barrier","expected":[2,[1,2,1]],"passed":true},{"actual":[4,[4,3,3]],"check":"control: toffoli waits on all","expected":[4,[4,3,3]],"passed":true},{"actual":[3,[3,3]],"check":"control: cx waits on target","expected":[3,[3,3]],"passed":true}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"regression: conditioned gate after measure\", \"actual\": [3, [2, 3]], \"expected\": [3, [2, 3]], \"passed\": true}, {\"check\": \"regression: late read then early-qubit measure\", \"actual\": [4, [1, 4]], \"expected\": [5, [5, 4]], \"passed\": false}, {\"check\": \"regression: read then measure other clbit writer\", \"actual\": [3, [1, 2, 3]], \"expected\": [5, [4, 5, 3]], \"passed\": false}, {\"check\": \"control: barrier aligns everything\", \"actual\": [3, [2, 2, 3]], \"expected\": [3, [2, 2, 3]], \"passed\": true}, {\"check\": \"control: partial barrier\", \"actual\": [2, [1, 2, 1]], \"expected\": [2, [1, 2, 1]], \"passed\": true}, {\"check\": \"control: toffoli waits on all\", \"actual\": [4, [4, 3, 3]], \"expected\": [4, [4, 3, 3]], \"passed\": true}, {\"check\": \"control: cx waits on target\", \"actual\": [3, [3, 3]], \"expected\": [3, [3, 3]], \"passed\": true}], \"passed\": false}\n"},"broken":{"elapsed_ms":43.078,"exit_code":1,"observations":[{"actual":[2,[2,1]],"check":"regression: conditioned gate after measure","expected":[3,[2,3]],"passed":false},{"actual":[4,[1,4]],"check":"regression: late read then early-qubit measure","expected":[5,[5,4]],"passed":false},{"actual":[3,[1,1,3]],"check":"regression: read then measure other clbit writer","expected":[5,[4,5,3]],"passed":false},{"actual":[3,[2,2,3]],"check":"control: barrier aligns everything","expected":[3,[2,2,3]],"passed":true},{"actual":[2,[1,2,1]],"check":"control: partial barrier","expected":[2,[1,2,1]],"passed":true},{"actual":[4,[4,3,3]],"check":"control: toffoli waits on all","expected":[4,[4,3,3]],"passed":true},{"actual":[3,[3,3]],"check":"control: cx waits on target","expected":[3,[3,3]],"passed":true}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"regression: conditioned gate after measure\", \"actual\": [2, [2, 1]], \"expected\": [3, [2, 3]], \"passed\": false}, {\"check\": \"regression: late read then early-qubit measure\", \"actual\": [4, [1, 4]], \"expected\": [5, [5, 4]], \"passed\": false}, {\"check\": \"regression: read then measure other clbit writer\", \"actual\": [3, [1, 1, 3]], \"expected\": [5, [4, 5, 3]], \"passed\": false}, {\"check\": \"control: barrier aligns everything\", \"actual\": [3, [2, 2, 3]], \"expected\": [3, [2, 2, 3]], \"passed\": true}, {\"check\": \"control: partial barrier\", \"actual\": [2, [1, 2, 1]], \"expected\": [2, [1, 2, 1]], \"passed\": true}, {\"check\": \"control: toffoli waits on all\", \"actual\": [4, [4, 3, 3]], \"expected\": [4, [4, 3, 3]], \"passed\": true}, {\"check\": \"control: cx waits on target\", \"actual\": [3, [3, 3]], \"expected\": [3, [3, 3]], \"passed\": true}], \"passed\": false}\n"}},"member_only":{"stages":["fixed"],"fields":["implementations.fixed","verification.fixed","harness","repair"],"note":"The verified repair, its recorded checks, the repair description, and the scoring harness are available to members."}}