{"abstract":"The string \"z\" is evaluated as identity (+1) instead of being rejected as \"bad-pauli\".","category":"Quantum circuit simulation","checks":6,"contract":"Input [n, amps, pauli]; pauli is an n-character string over I,X,Y,Z whose rightmost character acts on qubit 0 (LSB). Return the real expectation <psi|P|psi>/<psi|psi> rounded to 6 decimals. Errors: \"length-mismatch\", \"bad-pauli\" (any character outside uppercase IXYZ).","evaluation_group":"w2-quantum_circuit_simulation-pauli-expectation","failed_approach":"The attempted repair upper-cases before validating but not before evaluating, so lowercase still acts as identity.","family":"w2-quantum_circuit_simulation-pauli-expectation-pauli-alphabet-validation","id":"FA-90956","implementations":{"attempt":{"sha256":"05fdb49bbfc8499ddce56fc04aab0e892ec7cda47623ddc0abb87abd74b106d5","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\nimport math\nN = 1\nobservations = []\ndef solve(x):\n    n, amps, pauli = x\n    if len(pauli) != n:\n        return 'length-mismatch'\n    if any(c.upper() not in 'IXYZ' for c in pauli):\n        return 'bad-pauli'\n    psi = [complex(a, b) for a, b in amps]\n    acc = 0j\n    for i, v in enumerate(psi):\n        j = i\n        phase = 1 + 0j\n        for k, c in enumerate(pauli):\n            q = n - 1 - k\n            bit = (i >> q) & 1\n            if c in 'XY':\n                j ^= 1 << q\n            if c == 'Z' and bit:\n                phase = -phase\n            elif c == 'Y':\n                phase *= 1j if bit == 0 else -1j\n        acc += psi[j].conjugate() * phase * v\n    norm = sum(abs(v) ** 2 for v in psi)\n    return round((acc / norm).real, 6) + 0.0\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\nfixtures = [[['regression: lowercase pauli', [1, [[1, 0], [0, 0]], 'z'], 'bad-pauli'], ['control: ZI on |01>', [2, [[0, 0], [1, 0], [0, 0], [0, 0]], 'ZI'], 1.0], ['control: IZ on |01>', [2, [[0, 0], [1, 0], [0, 0], [0, 0]], 'IZ'], -1.0], ['control: Y on |+i>', [1, [[0.707107, 0], [0, 0.707107]], 'Y'], 1.0], ['control: X on |+>', [1, [[0.707107, 0], [0.707107, 0]], 'X'], 1.0], ['control: long string', [1, [[1, 0], [0, 0]], 'ZZ'], 'length-mismatch']], [['regression: lowercase pauli', [1, [[1, 0], [0, 0]], 'z'], 'bad-pauli'], ['control: short string', [2, [[1, 0], [0, 0], [0, 0], [0, 0]], 'Z'], 'length-mismatch'], ['control: long string', [1, [[1, 0], [0, 0]], 'ZZ'], 'length-mismatch'], ['control: short X on bell', [2, [[0.707107, 0], [0, 0], [0, 0], [0.707107, 0]], 'X'], 'length-mismatch'], ['control: short Y on three qubits', [3, [[0.5, 0], [0, 0.5], [0, 0], [0.5, 0], [0, 0], [0, 0], [0, 0], [0.5, 0]], 'YZ'], 'length-mismatch'], ['control: Y on |+i>', [1, [[0.707107, 0], [0, 0.707107]], 'Y'], 1.0]], [['regression: lowercase pauli', [1, [[1, 0], [0, 0]], 'z'], 'bad-pauli'], ['control: short Z on excited high qubit', [2, [[0, 0], [0, 0], [1, 0], [0, 0]], 'Z'], 'length-mismatch'], ['control: short ZX', [3, [[0.6, 0], [0.8, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0]], 'ZX'], 'length-mismatch'], ['control: unnormalized Z', [1, [[3, 0], [0, 4]], 'Z'], -0.28], ['control: random expectation 0', [1, [[0.071, 0.727], [-1.619, -1.464]], 'I'], 1.0], ['control: X on |+>', [1, [[0.707107, 0], [0.707107, 0]], 'X'], 1.0]], [['regression: lowercase pauli', [1, [[1, 0], [0, 0]], 'z'], 'bad-pauli'], ['control: random expectation 1', [1, [[0.0, 0.0], [1.97, 0.65]], 'X'], 0.0], ['control: random expectation 2', [1, [[0.489, 0.112], [-0.446, 0.868]], 'X'], -0.200793], ['control: random expectation 3', [1, [[-0.119, -0.141], [0.0, 0.0]], 'Z'], 1.0], ['control: random expectation 4', [1, [[-0.408, 0.461], [-0.359, 0.326]], 'Y'], 0.105809], ['control: short string', [2, [[1, 0], [0, 0], [0, 0], [0, 0]], 'Z'], 'length-mismatch']], [['regression: lowercase pauli', [1, [[1, 0], [0, 0]], 'z'], 'bad-pauli'], ['control: random expectation 5', [3, [[0.616, -0.07], [-0.126, -0.492], [-0.385, 0.046], [-0.714, -0.852], [0.968, -0.035], [-0.129, -0.794], [-0.299, 0.172], [0.772, -0.916]], 'YYZ'], -0.229604], ['control: random expectation 6', [2, [[0.423, -0.627], [-0.829, 0.103], [0.962, -0.142], [-0.494, -0.183]], 'XX'], -0.7271], ['control: random expectation 7', [1, [[-1.206, 1.877], [0.69, -0.341]], 'I'], 1.0], ['control: random expectation 8', [1, [[0.52, 0.586], [-0.138, -0.781]], 'I'], 1.0], ['control: long string', [1, [[1, 0], [0, 0]], 'ZZ'], 'length-mismatch']]]\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":"4f853f18838522f60be36f0f8292c2576bb8eae6820797b6ad0dbb257ebf55b3","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\nimport math\nN = 1\nobservations = []\ndef solve(x):\n    n, amps, pauli = x\n    if len(pauli) != n:\n        return 'length-mismatch'\n    if any(c not in 'IXYZixyz' for c in pauli):\n        return 'bad-pauli'\n    psi = [complex(a, b) for a, b in amps]\n    acc = 0j\n    for i, v in enumerate(psi):\n        j = i\n        phase = 1 + 0j\n        for k, c in enumerate(pauli):\n            q = n - 1 - k\n            bit = (i >> q) & 1\n            if c in 'XY':\n                j ^= 1 << q\n            if c == 'Z' and bit:\n                phase = -phase\n            elif c == 'Y':\n                phase *= 1j if bit == 0 else -1j\n        acc += psi[j].conjugate() * phase * v\n    norm = sum(abs(v) ** 2 for v in psi)\n    return round((acc / norm).real, 6) + 0.0\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\nfixtures = [[['regression: lowercase pauli', [1, [[1, 0], [0, 0]], 'z'], 'bad-pauli'], ['control: ZI on |01>', [2, [[0, 0], [1, 0], [0, 0], [0, 0]], 'ZI'], 1.0], ['control: IZ on |01>', [2, [[0, 0], [1, 0], [0, 0], [0, 0]], 'IZ'], -1.0], ['control: Y on |+i>', [1, [[0.707107, 0], [0, 0.707107]], 'Y'], 1.0], ['control: X on |+>', [1, [[0.707107, 0], [0.707107, 0]], 'X'], 1.0], ['control: long string', [1, [[1, 0], [0, 0]], 'ZZ'], 'length-mismatch']], [['regression: lowercase pauli', [1, [[1, 0], [0, 0]], 'z'], 'bad-pauli'], ['control: short string', [2, [[1, 0], [0, 0], [0, 0], [0, 0]], 'Z'], 'length-mismatch'], ['control: long string', [1, [[1, 0], [0, 0]], 'ZZ'], 'length-mismatch'], ['control: short X on bell', [2, [[0.707107, 0], [0, 0], [0, 0], [0.707107, 0]], 'X'], 'length-mismatch'], ['control: short Y on three qubits', [3, [[0.5, 0], [0, 0.5], [0, 0], [0.5, 0], [0, 0], [0, 0], [0, 0], [0.5, 0]], 'YZ'], 'length-mismatch'], ['control: Y on |+i>', [1, [[0.707107, 0], [0, 0.707107]], 'Y'], 1.0]], [['regression: lowercase pauli', [1, [[1, 0], [0, 0]], 'z'], 'bad-pauli'], ['control: short Z on excited high qubit', [2, [[0, 0], [0, 0], [1, 0], [0, 0]], 'Z'], 'length-mismatch'], ['control: short ZX', [3, [[0.6, 0], [0.8, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0]], 'ZX'], 'length-mismatch'], ['control: unnormalized Z', [1, [[3, 0], [0, 4]], 'Z'], -0.28], ['control: random expectation 0', [1, [[0.071, 0.727], [-1.619, -1.464]], 'I'], 1.0], ['control: X on |+>', [1, [[0.707107, 0], [0.707107, 0]], 'X'], 1.0]], [['regression: lowercase pauli', [1, [[1, 0], [0, 0]], 'z'], 'bad-pauli'], ['control: random expectation 1', [1, [[0.0, 0.0], [1.97, 0.65]], 'X'], 0.0], ['control: random expectation 2', [1, [[0.489, 0.112], [-0.446, 0.868]], 'X'], -0.200793], ['control: random expectation 3', [1, [[-0.119, -0.141], [0.0, 0.0]], 'Z'], 1.0], ['control: random expectation 4', [1, [[-0.408, 0.461], [-0.359, 0.326]], 'Y'], 0.105809], ['control: short string', [2, [[1, 0], [0, 0], [0, 0], [0, 0]], 'Z'], 'length-mismatch']], [['regression: lowercase pauli', [1, [[1, 0], [0, 0]], 'z'], 'bad-pauli'], ['control: random expectation 5', [3, [[0.616, -0.07], [-0.126, -0.492], [-0.385, 0.046], [-0.714, -0.852], [0.968, -0.035], [-0.129, -0.794], [-0.299, 0.172], [0.772, -0.916]], 'YYZ'], -0.229604], ['control: random expectation 6', [2, [[0.423, -0.627], [-0.829, 0.103], [0.962, -0.142], [-0.494, -0.183]], 'XX'], -0.7271], ['control: random expectation 7', [1, [[-1.206, 1.877], [0.69, -0.341]], 'I'], 1.0], ['control: random expectation 8', [1, [[0.52, 0.586], [-0.138, -0.781]], 'I'], 1.0], ['control: long string', [1, [[1, 0], [0, 0]], 'ZZ'], 'length-mismatch']]]\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":"8fd1f88f1ae3016b31b034b45b391704c0a4a260cdf3cca1f89a6d6e6090cd97","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\nimport math\nN = 1\nobservations = []\ndef solve(x):\n    n, amps, pauli = x\n    if len(pauli) != n:\n        return 'length-mismatch'\n    if any(c not in 'IXYZ' for c in pauli):\n        return 'bad-pauli'\n    psi = [complex(a, b) for a, b in amps]\n    acc = 0j\n    for i, v in enumerate(psi):\n        j = i\n        phase = 1 + 0j\n        for k, c in enumerate(pauli):\n            q = n - 1 - k\n            bit = (i >> q) & 1\n            if c in 'XY':\n                j ^= 1 << q\n            if c == 'Z' and bit:\n                phase = -phase\n            elif c == 'Y':\n                phase *= 1j if bit == 0 else -1j\n        acc += psi[j].conjugate() * phase * v\n    norm = sum(abs(v) ** 2 for v in psi)\n    return round((acc / norm).real, 6) + 0.0\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\nfixtures = [[['regression: lowercase pauli', [1, [[1, 0], [0, 0]], 'z'], 'bad-pauli'], ['control: ZI on |01>', [2, [[0, 0], [1, 0], [0, 0], [0, 0]], 'ZI'], 1.0], ['control: IZ on |01>', [2, [[0, 0], [1, 0], [0, 0], [0, 0]], 'IZ'], -1.0], ['control: Y on |+i>', [1, [[0.707107, 0], [0, 0.707107]], 'Y'], 1.0], ['control: X on |+>', [1, [[0.707107, 0], [0.707107, 0]], 'X'], 1.0], ['control: long string', [1, [[1, 0], [0, 0]], 'ZZ'], 'length-mismatch']], [['regression: lowercase pauli', [1, [[1, 0], [0, 0]], 'z'], 'bad-pauli'], ['control: short string', [2, [[1, 0], [0, 0], [0, 0], [0, 0]], 'Z'], 'length-mismatch'], ['control: long string', [1, [[1, 0], [0, 0]], 'ZZ'], 'length-mismatch'], ['control: short X on bell', [2, [[0.707107, 0], [0, 0], [0, 0], [0.707107, 0]], 'X'], 'length-mismatch'], ['control: short Y on three qubits', [3, [[0.5, 0], [0, 0.5], [0, 0], [0.5, 0], [0, 0], [0, 0], [0, 0], [0.5, 0]], 'YZ'], 'length-mismatch'], ['control: Y on |+i>', [1, [[0.707107, 0], [0, 0.707107]], 'Y'], 1.0]], [['regression: lowercase pauli', [1, [[1, 0], [0, 0]], 'z'], 'bad-pauli'], ['control: short Z on excited high qubit', [2, [[0, 0], [0, 0], [1, 0], [0, 0]], 'Z'], 'length-mismatch'], ['control: short ZX', [3, [[0.6, 0], [0.8, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0]], 'ZX'], 'length-mismatch'], ['control: unnormalized Z', [1, [[3, 0], [0, 4]], 'Z'], -0.28], ['control: random expectation 0', [1, [[0.071, 0.727], [-1.619, -1.464]], 'I'], 1.0], ['control: X on |+>', [1, [[0.707107, 0], [0.707107, 0]], 'X'], 1.0]], [['regression: lowercase pauli', [1, [[1, 0], [0, 0]], 'z'], 'bad-pauli'], ['control: random expectation 1', [1, [[0.0, 0.0], [1.97, 0.65]], 'X'], 0.0], ['control: random expectation 2', [1, [[0.489, 0.112], [-0.446, 0.868]], 'X'], -0.200793], ['control: random expectation 3', [1, [[-0.119, -0.141], [0.0, 0.0]], 'Z'], 1.0], ['control: random expectation 4', [1, [[-0.408, 0.461], [-0.359, 0.326]], 'Y'], 0.105809], ['control: short string', [2, [[1, 0], [0, 0], [0, 0], [0, 0]], 'Z'], 'length-mismatch']], [['regression: lowercase pauli', [1, [[1, 0], [0, 0]], 'z'], 'bad-pauli'], ['control: random expectation 5', [3, [[0.616, -0.07], [-0.126, -0.492], [-0.385, 0.046], [-0.714, -0.852], [0.968, -0.035], [-0.129, -0.794], [-0.299, 0.172], [0.772, -0.916]], 'YYZ'], -0.229604], ['control: random expectation 6', [2, [[0.423, -0.627], [-0.829, 0.103], [0.962, -0.142], [-0.494, -0.183]], 'XX'], -0.7271], ['control: random expectation 7', [1, [[-1.206, 1.877], [0.69, -0.341]], 'I'], 1.0], ['control: random expectation 8', [1, [[0.52, 0.586], [-0.138, -0.781]], 'I'], 1.0], ['control: long string', [1, [[1, 0], [0, 0]], 'ZZ'], 'length-mismatch']]]\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-pauli-expectation-pauli-alphabet-validation","generated_at":"2026-09-29T14:51:31.559233+00:00","license":"CC0-1.0","python":"3.12.14","seed":1,"split":"open-access"},"relevance":"Pauli expectation values are the observable layer of variational algorithms; string-order or phase slips bias every energy estimate.","repair":"Accept only uppercase I, X, Y, Z.","root_cause":"The validation alphabet includes lowercase letters, which the kernel then treats as identity.","sha256":"8a9dd788e1bd933f45df50843675eb483e0cf13e93479293b8046025bf94b945","title":"Pauli expectation silently accepts lowercase letters as identity · case 01","variant":1,"variant_policy":"Five numbered records share a model and may reuse boundary fixtures.","verification":{"attempt":{"elapsed_ms":38.333,"exit_code":1,"observations":[{"actual":1.0,"check":"regression: lowercase pauli","expected":"bad-pauli","passed":false},{"actual":1.0,"check":"control: ZI on |01>","expected":1.0,"passed":true},{"actual":-1.0,"check":"control: IZ on |01>","expected":-1.0,"passed":true},{"actual":1.0,"check":"control: Y on |+i>","expected":1.0,"passed":true},{"actual":1.0,"check":"control: X on |+>","expected":1.0,"passed":true},{"actual":"length-mismatch","check":"control: long string","expected":"length-mismatch","passed":true}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"regression: lowercase pauli\", \"actual\": 1.0, \"expected\": \"bad-pauli\", \"passed\": false}, {\"check\": \"control: ZI on |01>\", \"actual\": 1.0, \"expected\": 1.0, \"passed\": true}, {\"check\": \"control: IZ on |01>\", \"actual\": -1.0, \"expected\": -1.0, \"passed\": true}, {\"check\": \"control: Y on |+i>\", \"actual\": 1.0, \"expected\": 1.0, \"passed\": true}, {\"check\": \"control: X on |+>\", \"actual\": 1.0, \"expected\": 1.0, \"passed\": true}, {\"check\": \"control: long string\", \"actual\": \"length-mismatch\", \"expected\": \"length-mismatch\", \"passed\": true}], \"passed\": false}\n"},"broken":{"elapsed_ms":38.695,"exit_code":1,"observations":[{"actual":1.0,"check":"regression: lowercase pauli","expected":"bad-pauli","passed":false},{"actual":1.0,"check":"control: ZI on |01>","expected":1.0,"passed":true},{"actual":-1.0,"check":"control: IZ on |01>","expected":-1.0,"passed":true},{"actual":1.0,"check":"control: Y on |+i>","expected":1.0,"passed":true},{"actual":1.0,"check":"control: X on |+>","expected":1.0,"passed":true},{"actual":"length-mismatch","check":"control: long string","expected":"length-mismatch","passed":true}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"regression: lowercase pauli\", \"actual\": 1.0, \"expected\": \"bad-pauli\", \"passed\": false}, {\"check\": \"control: ZI on |01>\", \"actual\": 1.0, \"expected\": 1.0, \"passed\": true}, {\"check\": \"control: IZ on |01>\", \"actual\": -1.0, \"expected\": -1.0, \"passed\": true}, {\"check\": \"control: Y on |+i>\", \"actual\": 1.0, \"expected\": 1.0, \"passed\": true}, {\"check\": \"control: X on |+>\", \"actual\": 1.0, \"expected\": 1.0, \"passed\": true}, {\"check\": \"control: long string\", \"actual\": \"length-mismatch\", \"expected\": \"length-mismatch\", \"passed\": true}], \"passed\": false}\n"},"fixed":{"elapsed_ms":38.226,"exit_code":0,"observations":[{"actual":"bad-pauli","check":"regression: lowercase pauli","expected":"bad-pauli","passed":true},{"actual":1.0,"check":"control: ZI on |01>","expected":1.0,"passed":true},{"actual":-1.0,"check":"control: IZ on |01>","expected":-1.0,"passed":true},{"actual":1.0,"check":"control: Y on |+i>","expected":1.0,"passed":true},{"actual":1.0,"check":"control: X on |+>","expected":1.0,"passed":true},{"actual":"length-mismatch","check":"control: long string","expected":"length-mismatch","passed":true}],"passed":true,"stderr":"","stdout":"{\"observations\": [{\"check\": \"regression: lowercase pauli\", \"actual\": \"bad-pauli\", \"expected\": \"bad-pauli\", \"passed\": true}, {\"check\": \"control: ZI on |01>\", \"actual\": 1.0, \"expected\": 1.0, \"passed\": true}, {\"check\": \"control: IZ on |01>\", \"actual\": -1.0, \"expected\": -1.0, \"passed\": true}, {\"check\": \"control: Y on |+i>\", \"actual\": 1.0, \"expected\": 1.0, \"passed\": true}, {\"check\": \"control: X on |+>\", \"actual\": 1.0, \"expected\": 1.0, \"passed\": true}, {\"check\": \"control: long string\", \"actual\": \"length-mismatch\", \"expected\": \"length-mismatch\", \"passed\": true}], \"passed\": true}\n"}},"verified":true,"visibility":"public"}