{"abstract":"H followed by Sdg yields the |+i> state instead of |-i>, so a subsequent measurement basis change reports the wrong eigenstate.","category":"Quantum circuit simulation","checks":7,"contract":"Input [n, gates]; start in |0...0>, apply gates h,x,y,z,s,sdg,t ([\"g\", q]) and cx,cz,swap ([\"g\", a, b]) with qubit 0 as the least significant bit of the basis index; return the statevector as [re, im] pairs rounded to 6 decimals.","evaluation_group":"w2-quantum_circuit_simulation-statevector-gates","failed_approach":"The attempted repair conjugates the amplitude instead of the phase factor (i * conj(b)), which only coincides with the adjoint for real amplitudes.","family":"w2-quantum_circuit_simulation-statevector-gates-s-dagger-phase","id":"FA-90856","implementations":{"attempt":{"sha256":"a53b6faaa132ee244ba5a663f054578ed79d1a55dfae2fa70745ff29a1d8e87a","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\nimport math\nimport cmath\nN = 1\nobservations = []\ndef solve(x):\n    n, gates = x\n    dim = 1 << n\n    st = [0j] * dim\n    st[0] = 1 + 0j\n    r = 1 / math.sqrt(2)\n    for g in gates:\n        op = g[0]\n        if op in ('h', 'x', 'y', 'z', 's', 'sdg', 't'):\n            m = 1 << g[1]\n            for i in range(dim):\n                if i & m:\n                    continue\n                a, b = st[i], st[i | m]\n                if op == 'h':\n                    st[i], st[i | m] = (a + b) * r, (a - b) * r\n                elif op == 'x':\n                    st[i], st[i | m] = b, a\n                elif op == 'y':\n                    st[i], st[i | m] = -1j * b, 1j * a\n                elif op == 'z':\n                    st[i | m] = -b\n                elif op == 's':\n                    st[i | m] = 1j * b\n                elif op == 'sdg':\n                    st[i | m] = 1j * b.conjugate()\n                else:\n                    st[i | m] = b * cmath.exp(1j * math.pi / 4)\n        elif op == 'cx':\n            c, t = 1 << g[1], 1 << g[2]\n            for i in range(dim):\n                if i & c and not i & t:\n                    st[i], st[i | t] = st[i | t], st[i]\n        elif op == 'cz':\n            both = (1 << g[1]) | (1 << g[2])\n            for i in range(dim):\n                if i & both == both:\n                    st[i] = -st[i]\n        elif op == 'swap':\n            a, b = 1 << g[1], 1 << g[2]\n            for i in range(dim):\n                if i & a and not i & b:\n                    j = (i ^ a) | b\n                    st[i], st[j] = st[j], st[i]\n    return [[round(v.real, 6) + 0.0, round(v.imag, 6) + 0.0] for v in st]\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\nfixtures = [[['regression: sdg after h', [2, [['h', 1], ['sdg', 1]]], [[0.707107, 0.0], [0.0, 0.0], [0.0, -0.707107], [0.0, 0.0]]], ['regression: random circuit 10', [3, [['cz', 0, 1], ['h', 0], ['z', 0], ['cx', 0, 1], ['s', 0], ['sdg', 0]]], [[0.707107, 0.0], [0.0, 0.0], [0.0, 0.0], [-0.707107, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0]]], ['regression: random circuit 32', [1, [['x', 0], ['sdg', 0], ['x', 0], ['sdg', 0], ['s', 0], ['y', 0]]], [[0.0, 0.0], [1.0, 0.0]]], ['control: empty circuit on two qubits', [2, []], [[1.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0]]], ['control: bell pair', [2, [['h', 0], ['cx', 0, 1]]], [[0.707107, 0.0], [0.0, 0.0], [0.0, 0.0], [0.707107, 0.0]]], ['control: ghz three qubits', [3, [['h', 0], ['cx', 0, 1], ['cx', 1, 2]]], [[0.707107, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.707107, 0.0]]], ['control: cx with control on high qubit', [2, [['x', 1], ['cx', 1, 0]]], [[0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [1.0, 0.0]]]], [['regression: random circuit 21', [3, [['cz', 2, 0], ['s', 0], ['cx', 1, 0], ['y', 2], ['sdg', 0], ['sdg', 2], ['cx', 0, 2]]], [[0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [1.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0]]], ['regression: random circuit 32', [1, [['x', 0], ['sdg', 0], ['x', 0], ['sdg', 0], ['s', 0], ['y', 0]]], [[0.0, 0.0], [1.0, 0.0]]], ['regression: sdg after h', [2, [['h', 1], ['sdg', 1]]], [[0.707107, 0.0], [0.0, 0.0], [0.0, -0.707107], [0.0, 0.0]]], ['control: swap moves excitation', [3, [['x', 0], ['swap', 0, 2]]], [[0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [1.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0]]], ['control: y on ground state', [1, [['y', 0]]], [[0.0, 0.0], [0.0, 1.0]]], ['control: y after x', [1, [['x', 0], ['y', 0]]], [[0.0, -1.0], [0.0, 0.0]]], ['control: t after h', [1, [['h', 0], ['t', 0]]], [[0.707107, 0.0], [0.5, 0.5]]]], [['regression: random circuit 10', [3, [['cz', 0, 1], ['h', 0], ['z', 0], ['cx', 0, 1], ['s', 0], ['sdg', 0]]], [[0.707107, 0.0], [0.0, 0.0], [0.0, 0.0], [-0.707107, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0]]], ['regression: random circuit 19', [1, [['sdg', 0], ['y', 0], ['sdg', 0], ['s', 0], ['x', 0], ['z', 0], ['t', 0]]], [[0.0, 1.0], [0.0, 0.0]]], ['regression: sdg after h', [2, [['h', 1], ['sdg', 1]]], [[0.707107, 0.0], [0.0, 0.0], [0.0, -0.707107], [0.0, 0.0]]], ['control: h on excited qubit', [1, [['x', 0], ['h', 0]]], [[0.707107, 0.0], [-0.707107, 0.0]]], ['control: single x on qubit 0 of three', [3, [['x', 0]]], [[0.0, 0.0], [1.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0]]], ['control: random circuit 0', [3, [['swap', 2, 1], ['cx', 2, 0], ['z', 2], ['y', 1], ['cx', 0, 2], ['s', 1], ['swap', 1, 0]]], [[0.0, 0.0], [-1.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0]]], ['control: random circuit 1', [3, [['cx', 1, 2], ['cz', 2, 1]]], [[1.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0]]]], [['regression: random circuit 32', [1, [['x', 0], ['sdg', 0], ['x', 0], ['sdg', 0], ['s', 0], ['y', 0]]], [[0.0, 0.0], [1.0, 0.0]]], ['regression: sdg after h', [2, [['h', 1], ['sdg', 1]]], [[0.707107, 0.0], [0.0, 0.0], [0.0, -0.707107], [0.0, 0.0]]], ['control: random circuit 2', [3, [['z', 0], ['sdg', 1], ['cx', 1, 0], ['cz', 0, 1], ['cx', 2, 0], ['y', 0], ['z', 2]]], [[0.0, 0.0], [0.0, 1.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0]]], ['control: random circuit 3', [2, [['x', 1], ['s', 1], ['x', 0], ['h', 0], ['s', 1], ['h', 1]]], [[-0.5, 0.0], [0.5, 0.0], [0.5, 0.0], [-0.5, 0.0]]], ['control: random circuit 4', [2, [['cx', 0, 1], ['cz', 0, 1], ['h', 1], ['x', 1], ['y', 0], ['swap', 0, 1]]], [[0.0, 0.0], [0.0, 0.0], [0.0, 0.707107], [0.0, 0.707107]]], ['control: random circuit 5', [2, [['cx', 1, 0], ['cx', 0, 1], ['t', 1], ['h', 1]]], [[0.707107, 0.0], [0.0, 0.0], [0.707107, 0.0], [0.0, 0.0]]], ['regression: random circuit 10', [3, [['cz', 0, 1], ['h', 0], ['z', 0], ['cx', 0, 1], ['s', 0], ['sdg', 0]]], [[0.707107, 0.0], [0.0, 0.0], [0.0, 0.0], [-0.707107, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0]]]], [['regression: random circuit 19', [1, [['sdg', 0], ['y', 0], ['sdg', 0], ['s', 0], ['x', 0], ['z', 0], ['t', 0]]], [[0.0, 1.0], [0.0, 0.0]]], ['regression: random circuit 21', [3, [['cz', 2, 0], ['s', 0], ['cx', 1, 0], ['y', 2], ['sdg', 0], ['sdg', 2], ['cx', 0, 2]]], [[0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [1.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0]]], ['regression: sdg after h', [2, [['h', 1], ['sdg', 1]]], [[0.707107, 0.0], [0.0, 0.0], [0.0, -0.707107], [0.0, 0.0]]], ['control: random circuit 6', [2, [['cz', 0, 1], ['cz', 0, 1], ['z', 1], ['sdg', 0], ['x', 0], ['x', 1], ['cx', 0, 1]]], [[0.0, 0.0], [1.0, 0.0], [0.0, 0.0], [0.0, 0.0]]], ['control: random circuit 7', [2, [['s', 0], ['cz', 1, 0], ['x', 1], ['cx', 1, 0], ['swap', 1, 0]]], [[0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [1.0, 0.0]]], ['control: random circuit 8', [1, [['s', 0], ['h', 0], ['s', 0]]], [[0.707107, 0.0], [0.0, 0.707107]]], ['control: random circuit 9', [1, [['z', 0], ['t', 0], ['z', 0], ['h', 0]]], [[0.707107, 0.0], [0.707107, 0.0]]]]]\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":"9a202aa1c9b597df30fb19a90efaa99d88e4f06f6c09fedac50da3f9667233ef","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\nimport math\nimport cmath\nN = 1\nobservations = []\ndef solve(x):\n    n, gates = x\n    dim = 1 << n\n    st = [0j] * dim\n    st[0] = 1 + 0j\n    r = 1 / math.sqrt(2)\n    for g in gates:\n        op = g[0]\n        if op in ('h', 'x', 'y', 'z', 's', 'sdg', 't'):\n            m = 1 << g[1]\n            for i in range(dim):\n                if i & m:\n                    continue\n                a, b = st[i], st[i | m]\n                if op == 'h':\n                    st[i], st[i | m] = (a + b) * r, (a - b) * r\n                elif op == 'x':\n                    st[i], st[i | m] = b, a\n                elif op == 'y':\n                    st[i], st[i | m] = -1j * b, 1j * a\n                elif op == 'z':\n                    st[i | m] = -b\n                elif op == 's':\n                    st[i | m] = 1j * b\n                elif op == 'sdg':\n                    st[i | m] = 1j * b\n                else:\n                    st[i | m] = b * cmath.exp(1j * math.pi / 4)\n        elif op == 'cx':\n            c, t = 1 << g[1], 1 << g[2]\n            for i in range(dim):\n                if i & c and not i & t:\n                    st[i], st[i | t] = st[i | t], st[i]\n        elif op == 'cz':\n            both = (1 << g[1]) | (1 << g[2])\n            for i in range(dim):\n                if i & both == both:\n                    st[i] = -st[i]\n        elif op == 'swap':\n            a, b = 1 << g[1], 1 << g[2]\n            for i in range(dim):\n                if i & a and not i & b:\n                    j = (i ^ a) | b\n                    st[i], st[j] = st[j], st[i]\n    return [[round(v.real, 6) + 0.0, round(v.imag, 6) + 0.0] for v in st]\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\nfixtures = [[['regression: sdg after h', [2, [['h', 1], ['sdg', 1]]], [[0.707107, 0.0], [0.0, 0.0], [0.0, -0.707107], [0.0, 0.0]]], ['regression: random circuit 10', [3, [['cz', 0, 1], ['h', 0], ['z', 0], ['cx', 0, 1], ['s', 0], ['sdg', 0]]], [[0.707107, 0.0], [0.0, 0.0], [0.0, 0.0], [-0.707107, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0]]], ['regression: random circuit 32', [1, [['x', 0], ['sdg', 0], ['x', 0], ['sdg', 0], ['s', 0], ['y', 0]]], [[0.0, 0.0], [1.0, 0.0]]], ['control: empty circuit on two qubits', [2, []], [[1.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0]]], ['control: bell pair', [2, [['h', 0], ['cx', 0, 1]]], [[0.707107, 0.0], [0.0, 0.0], [0.0, 0.0], [0.707107, 0.0]]], ['control: ghz three qubits', [3, [['h', 0], ['cx', 0, 1], ['cx', 1, 2]]], [[0.707107, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.707107, 0.0]]], ['control: cx with control on high qubit', [2, [['x', 1], ['cx', 1, 0]]], [[0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [1.0, 0.0]]]], [['regression: random circuit 21', [3, [['cz', 2, 0], ['s', 0], ['cx', 1, 0], ['y', 2], ['sdg', 0], ['sdg', 2], ['cx', 0, 2]]], [[0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [1.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0]]], ['regression: random circuit 32', [1, [['x', 0], ['sdg', 0], ['x', 0], ['sdg', 0], ['s', 0], ['y', 0]]], [[0.0, 0.0], [1.0, 0.0]]], ['regression: sdg after h', [2, [['h', 1], ['sdg', 1]]], [[0.707107, 0.0], [0.0, 0.0], [0.0, -0.707107], [0.0, 0.0]]], ['control: swap moves excitation', [3, [['x', 0], ['swap', 0, 2]]], [[0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [1.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0]]], ['control: y on ground state', [1, [['y', 0]]], [[0.0, 0.0], [0.0, 1.0]]], ['control: y after x', [1, [['x', 0], ['y', 0]]], [[0.0, -1.0], [0.0, 0.0]]], ['control: t after h', [1, [['h', 0], ['t', 0]]], [[0.707107, 0.0], [0.5, 0.5]]]], [['regression: random circuit 10', [3, [['cz', 0, 1], ['h', 0], ['z', 0], ['cx', 0, 1], ['s', 0], ['sdg', 0]]], [[0.707107, 0.0], [0.0, 0.0], [0.0, 0.0], [-0.707107, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0]]], ['regression: random circuit 19', [1, [['sdg', 0], ['y', 0], ['sdg', 0], ['s', 0], ['x', 0], ['z', 0], ['t', 0]]], [[0.0, 1.0], [0.0, 0.0]]], ['regression: sdg after h', [2, [['h', 1], ['sdg', 1]]], [[0.707107, 0.0], [0.0, 0.0], [0.0, -0.707107], [0.0, 0.0]]], ['control: h on excited qubit', [1, [['x', 0], ['h', 0]]], [[0.707107, 0.0], [-0.707107, 0.0]]], ['control: single x on qubit 0 of three', [3, [['x', 0]]], [[0.0, 0.0], [1.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0]]], ['control: random circuit 0', [3, [['swap', 2, 1], ['cx', 2, 0], ['z', 2], ['y', 1], ['cx', 0, 2], ['s', 1], ['swap', 1, 0]]], [[0.0, 0.0], [-1.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0]]], ['control: random circuit 1', [3, [['cx', 1, 2], ['cz', 2, 1]]], [[1.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0]]]], [['regression: random circuit 32', [1, [['x', 0], ['sdg', 0], ['x', 0], ['sdg', 0], ['s', 0], ['y', 0]]], [[0.0, 0.0], [1.0, 0.0]]], ['regression: sdg after h', [2, [['h', 1], ['sdg', 1]]], [[0.707107, 0.0], [0.0, 0.0], [0.0, -0.707107], [0.0, 0.0]]], ['control: random circuit 2', [3, [['z', 0], ['sdg', 1], ['cx', 1, 0], ['cz', 0, 1], ['cx', 2, 0], ['y', 0], ['z', 2]]], [[0.0, 0.0], [0.0, 1.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0]]], ['control: random circuit 3', [2, [['x', 1], ['s', 1], ['x', 0], ['h', 0], ['s', 1], ['h', 1]]], [[-0.5, 0.0], [0.5, 0.0], [0.5, 0.0], [-0.5, 0.0]]], ['control: random circuit 4', [2, [['cx', 0, 1], ['cz', 0, 1], ['h', 1], ['x', 1], ['y', 0], ['swap', 0, 1]]], [[0.0, 0.0], [0.0, 0.0], [0.0, 0.707107], [0.0, 0.707107]]], ['control: random circuit 5', [2, [['cx', 1, 0], ['cx', 0, 1], ['t', 1], ['h', 1]]], [[0.707107, 0.0], [0.0, 0.0], [0.707107, 0.0], [0.0, 0.0]]], ['regression: random circuit 10', [3, [['cz', 0, 1], ['h', 0], ['z', 0], ['cx', 0, 1], ['s', 0], ['sdg', 0]]], [[0.707107, 0.0], [0.0, 0.0], [0.0, 0.0], [-0.707107, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0]]]], [['regression: random circuit 19', [1, [['sdg', 0], ['y', 0], ['sdg', 0], ['s', 0], ['x', 0], ['z', 0], ['t', 0]]], [[0.0, 1.0], [0.0, 0.0]]], ['regression: random circuit 21', [3, [['cz', 2, 0], ['s', 0], ['cx', 1, 0], ['y', 2], ['sdg', 0], ['sdg', 2], ['cx', 0, 2]]], [[0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [1.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0]]], ['regression: sdg after h', [2, [['h', 1], ['sdg', 1]]], [[0.707107, 0.0], [0.0, 0.0], [0.0, -0.707107], [0.0, 0.0]]], ['control: random circuit 6', [2, [['cz', 0, 1], ['cz', 0, 1], ['z', 1], ['sdg', 0], ['x', 0], ['x', 1], ['cx', 0, 1]]], [[0.0, 0.0], [1.0, 0.0], [0.0, 0.0], [0.0, 0.0]]], ['control: random circuit 7', [2, [['s', 0], ['cz', 1, 0], ['x', 1], ['cx', 1, 0], ['swap', 1, 0]]], [[0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [1.0, 0.0]]], ['control: random circuit 8', [1, [['s', 0], ['h', 0], ['s', 0]]], [[0.707107, 0.0], [0.0, 0.707107]]], ['control: random circuit 9', [1, [['z', 0], ['t', 0], ['z', 0], ['h', 0]]], [[0.707107, 0.0], [0.707107, 0.0]]]]]\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"},"fixed":{"sha256":"bf15a44769a5105bcbb17565a169b64a64f4004aed315677b63e55eb30cb2a84","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\nimport math\nimport cmath\nN = 1\nobservations = []\ndef solve(x):\n    n, gates = x\n    dim = 1 << n\n    st = [0j] * dim\n    st[0] = 1 + 0j\n    r = 1 / math.sqrt(2)\n    for g in gates:\n        op = g[0]\n        if op in ('h', 'x', 'y', 'z', 's', 'sdg', 't'):\n            m = 1 << g[1]\n            for i in range(dim):\n                if i & m:\n                    continue\n                a, b = st[i], st[i | m]\n                if op == 'h':\n                    st[i], st[i | m] = (a + b) * r, (a - b) * r\n                elif op == 'x':\n                    st[i], st[i | m] = b, a\n                elif op == 'y':\n                    st[i], st[i | m] = -1j * b, 1j * a\n                elif op == 'z':\n                    st[i | m] = -b\n                elif op == 's':\n                    st[i | m] = 1j * b\n                elif op == 'sdg':\n                    st[i | m] = -1j * b\n                else:\n                    st[i | m] = b * cmath.exp(1j * math.pi / 4)\n        elif op == 'cx':\n            c, t = 1 << g[1], 1 << g[2]\n            for i in range(dim):\n                if i & c and not i & t:\n                    st[i], st[i | t] = st[i | t], st[i]\n        elif op == 'cz':\n            both = (1 << g[1]) | (1 << g[2])\n            for i in range(dim):\n                if i & both == both:\n                    st[i] = -st[i]\n        elif op == 'swap':\n            a, b = 1 << g[1], 1 << g[2]\n            for i in range(dim):\n                if i & a and not i & b:\n                    j = (i ^ a) | b\n                    st[i], st[j] = st[j], st[i]\n    return [[round(v.real, 6) + 0.0, round(v.imag, 6) + 0.0] for v in st]\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\nfixtures = [[['regression: sdg after h', [2, [['h', 1], ['sdg', 1]]], [[0.707107, 0.0], [0.0, 0.0], [0.0, -0.707107], [0.0, 0.0]]], ['regression: random circuit 10', [3, [['cz', 0, 1], ['h', 0], ['z', 0], ['cx', 0, 1], ['s', 0], ['sdg', 0]]], [[0.707107, 0.0], [0.0, 0.0], [0.0, 0.0], [-0.707107, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0]]], ['regression: random circuit 32', [1, [['x', 0], ['sdg', 0], ['x', 0], ['sdg', 0], ['s', 0], ['y', 0]]], [[0.0, 0.0], [1.0, 0.0]]], ['control: empty circuit on two qubits', [2, []], [[1.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0]]], ['control: bell pair', [2, [['h', 0], ['cx', 0, 1]]], [[0.707107, 0.0], [0.0, 0.0], [0.0, 0.0], [0.707107, 0.0]]], ['control: ghz three qubits', [3, [['h', 0], ['cx', 0, 1], ['cx', 1, 2]]], [[0.707107, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.707107, 0.0]]], ['control: cx with control on high qubit', [2, [['x', 1], ['cx', 1, 0]]], [[0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [1.0, 0.0]]]], [['regression: random circuit 21', [3, [['cz', 2, 0], ['s', 0], ['cx', 1, 0], ['y', 2], ['sdg', 0], ['sdg', 2], ['cx', 0, 2]]], [[0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [1.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0]]], ['regression: random circuit 32', [1, [['x', 0], ['sdg', 0], ['x', 0], ['sdg', 0], ['s', 0], ['y', 0]]], [[0.0, 0.0], [1.0, 0.0]]], ['regression: sdg after h', [2, [['h', 1], ['sdg', 1]]], [[0.707107, 0.0], [0.0, 0.0], [0.0, -0.707107], [0.0, 0.0]]], ['control: swap moves excitation', [3, [['x', 0], ['swap', 0, 2]]], [[0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [1.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0]]], ['control: y on ground state', [1, [['y', 0]]], [[0.0, 0.0], [0.0, 1.0]]], ['control: y after x', [1, [['x', 0], ['y', 0]]], [[0.0, -1.0], [0.0, 0.0]]], ['control: t after h', [1, [['h', 0], ['t', 0]]], [[0.707107, 0.0], [0.5, 0.5]]]], [['regression: random circuit 10', [3, [['cz', 0, 1], ['h', 0], ['z', 0], ['cx', 0, 1], ['s', 0], ['sdg', 0]]], [[0.707107, 0.0], [0.0, 0.0], [0.0, 0.0], [-0.707107, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0]]], ['regression: random circuit 19', [1, [['sdg', 0], ['y', 0], ['sdg', 0], ['s', 0], ['x', 0], ['z', 0], ['t', 0]]], [[0.0, 1.0], [0.0, 0.0]]], ['regression: sdg after h', [2, [['h', 1], ['sdg', 1]]], [[0.707107, 0.0], [0.0, 0.0], [0.0, -0.707107], [0.0, 0.0]]], ['control: h on excited qubit', [1, [['x', 0], ['h', 0]]], [[0.707107, 0.0], [-0.707107, 0.0]]], ['control: single x on qubit 0 of three', [3, [['x', 0]]], [[0.0, 0.0], [1.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0]]], ['control: random circuit 0', [3, [['swap', 2, 1], ['cx', 2, 0], ['z', 2], ['y', 1], ['cx', 0, 2], ['s', 1], ['swap', 1, 0]]], [[0.0, 0.0], [-1.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0]]], ['control: random circuit 1', [3, [['cx', 1, 2], ['cz', 2, 1]]], [[1.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0]]]], [['regression: random circuit 32', [1, [['x', 0], ['sdg', 0], ['x', 0], ['sdg', 0], ['s', 0], ['y', 0]]], [[0.0, 0.0], [1.0, 0.0]]], ['regression: sdg after h', [2, [['h', 1], ['sdg', 1]]], [[0.707107, 0.0], [0.0, 0.0], [0.0, -0.707107], [0.0, 0.0]]], ['control: random circuit 2', [3, [['z', 0], ['sdg', 1], ['cx', 1, 0], ['cz', 0, 1], ['cx', 2, 0], ['y', 0], ['z', 2]]], [[0.0, 0.0], [0.0, 1.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0]]], ['control: random circuit 3', [2, [['x', 1], ['s', 1], ['x', 0], ['h', 0], ['s', 1], ['h', 1]]], [[-0.5, 0.0], [0.5, 0.0], [0.5, 0.0], [-0.5, 0.0]]], ['control: random circuit 4', [2, [['cx', 0, 1], ['cz', 0, 1], ['h', 1], ['x', 1], ['y', 0], ['swap', 0, 1]]], [[0.0, 0.0], [0.0, 0.0], [0.0, 0.707107], [0.0, 0.707107]]], ['control: random circuit 5', [2, [['cx', 1, 0], ['cx', 0, 1], ['t', 1], ['h', 1]]], [[0.707107, 0.0], [0.0, 0.0], [0.707107, 0.0], [0.0, 0.0]]], ['regression: random circuit 10', [3, [['cz', 0, 1], ['h', 0], ['z', 0], ['cx', 0, 1], ['s', 0], ['sdg', 0]]], [[0.707107, 0.0], [0.0, 0.0], [0.0, 0.0], [-0.707107, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0]]]], [['regression: random circuit 19', [1, [['sdg', 0], ['y', 0], ['sdg', 0], ['s', 0], ['x', 0], ['z', 0], ['t', 0]]], [[0.0, 1.0], [0.0, 0.0]]], ['regression: random circuit 21', [3, [['cz', 2, 0], ['s', 0], ['cx', 1, 0], ['y', 2], ['sdg', 0], ['sdg', 2], ['cx', 0, 2]]], [[0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [1.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0]]], ['regression: sdg after h', [2, [['h', 1], ['sdg', 1]]], [[0.707107, 0.0], [0.0, 0.0], [0.0, -0.707107], [0.0, 0.0]]], ['control: random circuit 6', [2, [['cz', 0, 1], ['cz', 0, 1], ['z', 1], ['sdg', 0], ['x', 0], ['x', 1], ['cx', 0, 1]]], [[0.0, 0.0], [1.0, 0.0], [0.0, 0.0], [0.0, 0.0]]], ['control: random circuit 7', [2, [['s', 0], ['cz', 1, 0], ['x', 1], ['cx', 1, 0], ['swap', 1, 0]]], [[0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [1.0, 0.0]]], ['control: random circuit 8', [1, [['s', 0], ['h', 0], ['s', 0]]], [[0.707107, 0.0], [0.0, 0.707107]]], ['control: random circuit 9', [1, [['z', 0], ['t', 0], ['z', 0], ['h', 0]]], [[0.707107, 0.0], [0.707107, 0.0]]]]]\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-statevector-gates-s-dagger-phase","generated_at":"2026-09-29T14:51:30.499649+00:00","license":"CC0-1.0","python":"3.12.14","seed":1,"split":"open-access"},"relevance":"Statevector simulators underpin circuit unit tests; a gate-kernel slip silently corrupts every downstream amplitude.","repair":"Multiply the |1> amplitude by -i for sdg.","root_cause":"The sdg kernel multiplies the |1> amplitude by +i, the phase of S rather than its adjoint.","sha256":"feef3ace455fcde68c05652d89906602aa16917d261a5d01dd68c6505e980741","title":"Statevector S-dagger rotates the wrong way · case 01","variant":1,"variant_policy":"Five numbered records share a model and may reuse boundary fixtures.","verification":{"attempt":{"elapsed_ms":39.882,"exit_code":1,"observations":[{"actual":[[0.707107,0.0],[0.0,0.0],[0.0,0.707107],[0.0,0.0]],"check":"regression: sdg after h","expected":[[0.707107,0.0],[0.0,0.0],[0.0,-0.707107],[0.0,0.0]],"passed":false},{"actual":[[0.707107,0.0],[0.0,0.0],[0.0,0.0],[-0.707107,0.0],[0.0,0.0],[0.0,0.0],[0.0,0.0],[0.0,0.0]],"check":"regression: random circuit 10","expected":[[0.707107,0.0],[0.0,0.0],[0.0,0.0],[-0.707107,0.0],[0.0,0.0],[0.0,0.0],[0.0,0.0],[0.0,0.0]],"passed":true},{"actual":[[0.0,0.0],[-1.0,0.0]],"check":"regression: random circuit 32","expected":[[0.0,0.0],[1.0,0.0]],"passed":false},{"actual":[[1.0,0.0],[0.0,0.0],[0.0,0.0],[0.0,0.0]],"check":"control: empty circuit on two qubits","expected":[[1.0,0.0],[0.0,0.0],[0.0,0.0],[0.0,0.0]],"passed":true},{"actual":[[0.707107,0.0],[0.0,0.0],[0.0,0.0],[0.707107,0.0]],"check":"control: bell pair","expected":[[0.707107,0.0],[0.0,0.0],[0.0,0.0],[0.707107,0.0]],"passed":true},{"actual":[[0.707107,0.0],[0.0,0.0],[0.0,0.0],[0.0,0.0],[0.0,0.0],[0.0,0.0],[0.0,0.0],[0.707107,0.0]],"check":"control: ghz three qubits","expected":[[0.707107,0.0],[0.0,0.0],[0.0,0.0],[0.0,0.0],[0.0,0.0],[0.0,0.0],[0.0,0.0],[0.707107,0.0]],"passed":true},{"actual":[[0.0,0.0],[0.0,0.0],[0.0,0.0],[1.0,0.0]],"check":"control: cx with control on high qubit","expected":[[0.0,0.0],[0.0,0.0],[0.0,0.0],[1.0,0.0]],"passed":true}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"regression: sdg after h\", \"actual\": [[0.707107, 0.0], [0.0, 0.0], [0.0, 0.707107], [0.0, 0.0]], \"expected\": [[0.707107, 0.0], [0.0, 0.0], [0.0, -0.707107], [0.0, 0.0]], \"passed\": false}, {\"check\": \"regression: random circuit 10\", \"actual\": [[0.707107, 0.0], [0.0, 0.0], [0.0, 0.0], [-0.707107, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0]], \"expected\": [[0.707107, 0.0], [0.0, 0.0], [0.0, 0.0], [-0.707107, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0]], \"passed\": true}, {\"check\": \"regression: random circuit 32\", \"actual\": [[0.0, 0.0], [-1.0, 0.0]], \"expected\": [[0.0, 0.0], [1.0, 0.0]], \"passed\": false}, {\"check\": \"control: empty circuit on two qubits\", \"actual\": [[1.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0]], \"expected\": [[1.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0]], \"passed\": true}, {\"check\": \"control: bell pair\", \"actual\": [[0.707107, 0.0], [0.0, 0.0], [0.0, 0.0], [0.707107, 0.0]], \"expected\": [[0.707107, 0.0], [0.0, 0.0], [0.0, 0.0], [0.707107, 0.0]], \"passed\": true}, {\"check\": \"control: ghz three qubits\", \"actual\": [[0.707107, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.707107, 0.0]], \"expected\": [[0.707107, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.707107, 0.0]], \"passed\": true}, {\"check\": \"control: cx with control on high qubit\", \"actual\": [[0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [1.0, 0.0]], \"expected\": [[0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [1.0, 0.0]], \"passed\": true}], \"passed\": false}\n"},"broken":{"elapsed_ms":40.132,"exit_code":1,"observations":[{"actual":[[0.707107,0.0],[0.0,0.0],[0.0,0.707107],[0.0,0.0]],"check":"regression: sdg after h","expected":[[0.707107,0.0],[0.0,0.0],[0.0,-0.707107],[0.0,0.0]],"passed":false},{"actual":[[0.707107,0.0],[0.0,0.0],[0.0,0.0],[0.707107,0.0],[0.0,0.0],[0.0,0.0],[0.0,0.0],[0.0,0.0]],"check":"regression: random circuit 10","expected":[[0.707107,0.0],[0.0,0.0],[0.0,0.0],[-0.707107,0.0],[0.0,0.0],[0.0,0.0],[0.0,0.0],[0.0,0.0]],"passed":false},{"actual":[[0.0,0.0],[-1.0,0.0]],"check":"regression: random circuit 32","expected":[[0.0,0.0],[1.0,0.0]],"passed":false},{"actual":[[1.0,0.0],[0.0,0.0],[0.0,0.0],[0.0,0.0]],"check":"control: empty circuit on two qubits","expected":[[1.0,0.0],[0.0,0.0],[0.0,0.0],[0.0,0.0]],"passed":true},{"actual":[[0.707107,0.0],[0.0,0.0],[0.0,0.0],[0.707107,0.0]],"check":"control: bell pair","expected":[[0.707107,0.0],[0.0,0.0],[0.0,0.0],[0.707107,0.0]],"passed":true},{"actual":[[0.707107,0.0],[0.0,0.0],[0.0,0.0],[0.0,0.0],[0.0,0.0],[0.0,0.0],[0.0,0.0],[0.707107,0.0]],"check":"control: ghz three qubits","expected":[[0.707107,0.0],[0.0,0.0],[0.0,0.0],[0.0,0.0],[0.0,0.0],[0.0,0.0],[0.0,0.0],[0.707107,0.0]],"passed":true},{"actual":[[0.0,0.0],[0.0,0.0],[0.0,0.0],[1.0,0.0]],"check":"control: cx with control on high qubit","expected":[[0.0,0.0],[0.0,0.0],[0.0,0.0],[1.0,0.0]],"passed":true}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"regression: sdg after h\", \"actual\": [[0.707107, 0.0], [0.0, 0.0], [0.0, 0.707107], [0.0, 0.0]], \"expected\": [[0.707107, 0.0], [0.0, 0.0], [0.0, -0.707107], [0.0, 0.0]], \"passed\": false}, {\"check\": \"regression: random circuit 10\", \"actual\": [[0.707107, 0.0], [0.0, 0.0], [0.0, 0.0], [0.707107, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0]], \"expected\": [[0.707107, 0.0], [0.0, 0.0], [0.0, 0.0], [-0.707107, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0]], \"passed\": false}, {\"check\": \"regression: random circuit 32\", \"actual\": [[0.0, 0.0], [-1.0, 0.0]], \"expected\": [[0.0, 0.0], [1.0, 0.0]], \"passed\": false}, {\"check\": \"control: empty circuit on two qubits\", \"actual\": [[1.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0]], \"expected\": [[1.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0]], \"passed\": true}, {\"check\": \"control: bell pair\", \"actual\": [[0.707107, 0.0], [0.0, 0.0], [0.0, 0.0], [0.707107, 0.0]], \"expected\": [[0.707107, 0.0], [0.0, 0.0], [0.0, 0.0], [0.707107, 0.0]], \"passed\": true}, {\"check\": \"control: ghz three qubits\", \"actual\": [[0.707107, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.707107, 0.0]], \"expected\": [[0.707107, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.707107, 0.0]], \"passed\": true}, {\"check\": \"control: cx with control on high qubit\", \"actual\": [[0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [1.0, 0.0]], \"expected\": [[0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [1.0, 0.0]], \"passed\": true}], \"passed\": false}\n"},"fixed":{"elapsed_ms":42.974,"exit_code":0,"observations":[{"actual":[[0.707107,0.0],[0.0,0.0],[0.0,-0.707107],[0.0,0.0]],"check":"regression: sdg after h","expected":[[0.707107,0.0],[0.0,0.0],[0.0,-0.707107],[0.0,0.0]],"passed":true},{"actual":[[0.707107,0.0],[0.0,0.0],[0.0,0.0],[-0.707107,0.0],[0.0,0.0],[0.0,0.0],[0.0,0.0],[0.0,0.0]],"check":"regression: random circuit 10","expected":[[0.707107,0.0],[0.0,0.0],[0.0,0.0],[-0.707107,0.0],[0.0,0.0],[0.0,0.0],[0.0,0.0],[0.0,0.0]],"passed":true},{"actual":[[0.0,0.0],[1.0,0.0]],"check":"regression: random circuit 32","expected":[[0.0,0.0],[1.0,0.0]],"passed":true},{"actual":[[1.0,0.0],[0.0,0.0],[0.0,0.0],[0.0,0.0]],"check":"control: empty circuit on two qubits","expected":[[1.0,0.0],[0.0,0.0],[0.0,0.0],[0.0,0.0]],"passed":true},{"actual":[[0.707107,0.0],[0.0,0.0],[0.0,0.0],[0.707107,0.0]],"check":"control: bell pair","expected":[[0.707107,0.0],[0.0,0.0],[0.0,0.0],[0.707107,0.0]],"passed":true},{"actual":[[0.707107,0.0],[0.0,0.0],[0.0,0.0],[0.0,0.0],[0.0,0.0],[0.0,0.0],[0.0,0.0],[0.707107,0.0]],"check":"control: ghz three qubits","expected":[[0.707107,0.0],[0.0,0.0],[0.0,0.0],[0.0,0.0],[0.0,0.0],[0.0,0.0],[0.0,0.0],[0.707107,0.0]],"passed":true},{"actual":[[0.0,0.0],[0.0,0.0],[0.0,0.0],[1.0,0.0]],"check":"control: cx with control on high qubit","expected":[[0.0,0.0],[0.0,0.0],[0.0,0.0],[1.0,0.0]],"passed":true}],"passed":true,"stderr":"","stdout":"{\"observations\": [{\"check\": \"regression: sdg after h\", \"actual\": [[0.707107, 0.0], [0.0, 0.0], [0.0, -0.707107], [0.0, 0.0]], \"expected\": [[0.707107, 0.0], [0.0, 0.0], [0.0, -0.707107], [0.0, 0.0]], \"passed\": true}, {\"check\": \"regression: random circuit 10\", \"actual\": [[0.707107, 0.0], [0.0, 0.0], [0.0, 0.0], [-0.707107, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0]], \"expected\": [[0.707107, 0.0], [0.0, 0.0], [0.0, 0.0], [-0.707107, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0]], \"passed\": true}, {\"check\": \"regression: random circuit 32\", \"actual\": [[0.0, 0.0], [1.0, 0.0]], \"expected\": [[0.0, 0.0], [1.0, 0.0]], \"passed\": true}, {\"check\": \"control: empty circuit on two qubits\", \"actual\": [[1.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0]], \"expected\": [[1.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0]], \"passed\": true}, {\"check\": \"control: bell pair\", \"actual\": [[0.707107, 0.0], [0.0, 0.0], [0.0, 0.0], [0.707107, 0.0]], \"expected\": [[0.707107, 0.0], [0.0, 0.0], [0.0, 0.0], [0.707107, 0.0]], \"passed\": true}, {\"check\": \"control: ghz three qubits\", \"actual\": [[0.707107, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.707107, 0.0]], \"expected\": [[0.707107, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.707107, 0.0]], \"passed\": true}, {\"check\": \"control: cx with control on high qubit\", \"actual\": [[0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [1.0, 0.0]], \"expected\": [[0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [1.0, 0.0]], \"passed\": true}], \"passed\": true}\n"}},"verified":true,"visibility":"public"}