{"abstract":"M = 0 yields \"invalid\" instead of \"no-solution\".","category":"Quantum circuit simulation","checks":6,"contract":"Input [N, M]. \"invalid\" if N < 1, M < 0 or M > N; \"no-solution\" if M == 0; if 2M >= N return {\"iterations\": 0, \"success\": M/N}; else theta = asin(sqrt(M/N)), k = floor(pi/(4 theta)) and success = sin^2((2k+1) theta). Probabilities rounded to 6 decimals.","evaluation_group":"w2-quantum_circuit_simulation-grover-iteration-planner","failed_approach":"The attempted repair returns zero iterations with success 0 for M = 0, hiding the no-solution case.","family":"w2-quantum_circuit_simulation-grover-iteration-planner-zero-marked-classification","id":"FA-91211","implementations":{"attempt":{"sha256":"f985895385cc124ecf0bfa2cb4c4cb591c9a38f27b98f028ae40b5e1493a6f8f","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\nimport math\nN = 1\nobservations = []\ndef solve(x):\n    N, M = x\n    if N < 1 or M < 0 or M > N:\n        return 'invalid'\n    if M == 0:\n        return {'iterations': 0, 'success': 0.0}\n    if 2 * M >= N:\n        return {'iterations': 0, 'success': round(M / N, 6)}\n    theta = math.asin(math.sqrt(M / N))\n    k = math.floor(math.pi / (4 * theta))\n    return {'iterations': k, 'success': round(math.sin((2 * k + 1) * theta) ** 2, 6)}\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\nfixtures = [[['regression: no marked items', [8, 0], 'no-solution'], ['control: half marked N=4 M=2', [4, 2], {'iterations': 0, 'success': 0.5}], ['control: odd N just under half', [5, 2], {'iterations': 1, 'success': 0.784}], ['control: single marked N=4', [4, 1], {'iterations': 1, 'success': 1.0}], ['control: M greater than N', [4, 5], 'invalid'], ['control: empty space', [0, 0], 'invalid']], [['regression: no marked items', [8, 0], 'no-solution'], ['control: negative M', [4, -1], 'invalid'], ['control: empty space', [0, 0], 'invalid'], ['control: all marked', [8, 8], {'iterations': 0, 'success': 1.0}], ['control: one over the space', [4, 5], 'invalid'], ['control: single marked N=4', [4, 1], {'iterations': 1, 'success': 1.0}]], [['regression: no marked items', [8, 0], 'no-solution'], ['control: all marked N=1', [1, 1], {'iterations': 0, 'success': 1.0}], ['control: all marked N=3', [3, 3], {'iterations': 0, 'success': 1.0}], ['control: N=7 M=3', [7, 3], {'iterations': 1, 'success': 0.708455}], ['control: N=9 M=4', [9, 4], {'iterations': 1, 'success': 0.663923}], ['control: M greater than N', [4, 5], 'invalid']], [['regression: no marked items', [8, 0], 'no-solution'], ['control: N=8 M=1', [8, 1], {'iterations': 2, 'success': 0.945312}], ['control: N=8 M=2', [8, 2], {'iterations': 1, 'success': 1.0}], ['control: N=8 M=3', [8, 3], {'iterations': 1, 'success': 0.84375}], ['control: N=8 M=5', [8, 5], {'iterations': 0, 'success': 0.625}], ['control: negative M', [4, -1], 'invalid']], [['regression: no marked items', [8, 0], 'no-solution'], ['control: N=8 M=7', [8, 7], {'iterations': 0, 'success': 0.875}], ['control: N=16 M=1', [16, 1], {'iterations': 3, 'success': 0.961319}], ['control: N=16 M=2', [16, 2], {'iterations': 2, 'success': 0.945312}], ['control: N=16 M=3', [16, 3], {'iterations': 1, 'success': 0.949219}], ['control: empty space', [0, 0], 'invalid']]]\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":"f7a2719c2018a888942eccc515013912dc7ad1383cbbc170383bf22324744010","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\nimport math\nN = 1\nobservations = []\ndef solve(x):\n    N, M = x\n    if N < 1 or M <= 0 or M > N:\n        return 'invalid'\n    if M == 0:\n        return 'no-solution'\n    if 2 * M >= N:\n        return {'iterations': 0, 'success': round(M / N, 6)}\n    theta = math.asin(math.sqrt(M / N))\n    k = math.floor(math.pi / (4 * theta))\n    return {'iterations': k, 'success': round(math.sin((2 * k + 1) * theta) ** 2, 6)}\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\nfixtures = [[['regression: no marked items', [8, 0], 'no-solution'], ['control: half marked N=4 M=2', [4, 2], {'iterations': 0, 'success': 0.5}], ['control: odd N just under half', [5, 2], {'iterations': 1, 'success': 0.784}], ['control: single marked N=4', [4, 1], {'iterations': 1, 'success': 1.0}], ['control: M greater than N', [4, 5], 'invalid'], ['control: empty space', [0, 0], 'invalid']], [['regression: no marked items', [8, 0], 'no-solution'], ['control: negative M', [4, -1], 'invalid'], ['control: empty space', [0, 0], 'invalid'], ['control: all marked', [8, 8], {'iterations': 0, 'success': 1.0}], ['control: one over the space', [4, 5], 'invalid'], ['control: single marked N=4', [4, 1], {'iterations': 1, 'success': 1.0}]], [['regression: no marked items', [8, 0], 'no-solution'], ['control: all marked N=1', [1, 1], {'iterations': 0, 'success': 1.0}], ['control: all marked N=3', [3, 3], {'iterations': 0, 'success': 1.0}], ['control: N=7 M=3', [7, 3], {'iterations': 1, 'success': 0.708455}], ['control: N=9 M=4', [9, 4], {'iterations': 1, 'success': 0.663923}], ['control: M greater than N', [4, 5], 'invalid']], [['regression: no marked items', [8, 0], 'no-solution'], ['control: N=8 M=1', [8, 1], {'iterations': 2, 'success': 0.945312}], ['control: N=8 M=2', [8, 2], {'iterations': 1, 'success': 1.0}], ['control: N=8 M=3', [8, 3], {'iterations': 1, 'success': 0.84375}], ['control: N=8 M=5', [8, 5], {'iterations': 0, 'success': 0.625}], ['control: negative M', [4, -1], 'invalid']], [['regression: no marked items', [8, 0], 'no-solution'], ['control: N=8 M=7', [8, 7], {'iterations': 0, 'success': 0.875}], ['control: N=16 M=1', [16, 1], {'iterations': 3, 'success': 0.961319}], ['control: N=16 M=2', [16, 2], {'iterations': 2, 'success': 0.945312}], ['control: N=16 M=3', [16, 3], {'iterations': 1, 'success': 0.949219}], ['control: empty space', [0, 0], 'invalid']]]\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":"7ce205354ac5f8e3f4248ccc8403feabde8355229b6be08234f458af29d82992","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\nimport math\nN = 1\nobservations = []\ndef solve(x):\n    N, M = x\n    if N < 1 or M < 0 or M > N:\n        return 'invalid'\n    if M == 0:\n        return 'no-solution'\n    if 2 * M >= N:\n        return {'iterations': 0, 'success': round(M / N, 6)}\n    theta = math.asin(math.sqrt(M / N))\n    k = math.floor(math.pi / (4 * theta))\n    return {'iterations': k, 'success': round(math.sin((2 * k + 1) * theta) ** 2, 6)}\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\nfixtures = [[['regression: no marked items', [8, 0], 'no-solution'], ['control: half marked N=4 M=2', [4, 2], {'iterations': 0, 'success': 0.5}], ['control: odd N just under half', [5, 2], {'iterations': 1, 'success': 0.784}], ['control: single marked N=4', [4, 1], {'iterations': 1, 'success': 1.0}], ['control: M greater than N', [4, 5], 'invalid'], ['control: empty space', [0, 0], 'invalid']], [['regression: no marked items', [8, 0], 'no-solution'], ['control: negative M', [4, -1], 'invalid'], ['control: empty space', [0, 0], 'invalid'], ['control: all marked', [8, 8], {'iterations': 0, 'success': 1.0}], ['control: one over the space', [4, 5], 'invalid'], ['control: single marked N=4', [4, 1], {'iterations': 1, 'success': 1.0}]], [['regression: no marked items', [8, 0], 'no-solution'], ['control: all marked N=1', [1, 1], {'iterations': 0, 'success': 1.0}], ['control: all marked N=3', [3, 3], {'iterations': 0, 'success': 1.0}], ['control: N=7 M=3', [7, 3], {'iterations': 1, 'success': 0.708455}], ['control: N=9 M=4', [9, 4], {'iterations': 1, 'success': 0.663923}], ['control: M greater than N', [4, 5], 'invalid']], [['regression: no marked items', [8, 0], 'no-solution'], ['control: N=8 M=1', [8, 1], {'iterations': 2, 'success': 0.945312}], ['control: N=8 M=2', [8, 2], {'iterations': 1, 'success': 1.0}], ['control: N=8 M=3', [8, 3], {'iterations': 1, 'success': 0.84375}], ['control: N=8 M=5', [8, 5], {'iterations': 0, 'success': 0.625}], ['control: negative M', [4, -1], 'invalid']], [['regression: no marked items', [8, 0], 'no-solution'], ['control: N=8 M=7', [8, 7], {'iterations': 0, 'success': 0.875}], ['control: N=16 M=1', [16, 1], {'iterations': 3, 'success': 0.961319}], ['control: N=16 M=2', [16, 2], {'iterations': 2, 'success': 0.945312}], ['control: N=16 M=3', [16, 3], {'iterations': 1, 'success': 0.949219}], ['control: empty space', [0, 0], 'invalid']]]\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-grover-iteration-planner-zero-marked-classification","generated_at":"2026-09-29T14:51:33.797153+00:00","license":"CC0-1.0","python":"3.12.14","seed":1,"split":"open-access"},"relevance":"Choosing the Grover iteration count wrongly overshoots the amplitude peak and collapses the success probability.","repair":"Validate M < 0 as invalid and handle M == 0 separately as \"no-solution\".","root_cause":"The input validation rejects M <= 0 before the no-solution branch can run.","sha256":"7e350566913b0c9349086f4fc7098ae38bb15f6fc06906b111f71da9a4419be9","title":"Grover planner reports zero marked items as invalid input · case 01","variant":1,"variant_policy":"Five numbered records share a model and may reuse boundary fixtures.","verification":{"attempt":{"elapsed_ms":40.636,"exit_code":1,"observations":[{"actual":{"iterations":0,"success":0.0},"check":"regression: no marked items","expected":"no-solution","passed":false},{"actual":{"iterations":0,"success":0.5},"check":"control: half marked N=4 M=2","expected":{"iterations":0,"success":0.5},"passed":true},{"actual":{"iterations":1,"success":0.784},"check":"control: odd N just under half","expected":{"iterations":1,"success":0.784},"passed":true},{"actual":{"iterations":1,"success":1.0},"check":"control: single marked N=4","expected":{"iterations":1,"success":1.0},"passed":true},{"actual":"invalid","check":"control: M greater than N","expected":"invalid","passed":true},{"actual":"invalid","check":"control: empty space","expected":"invalid","passed":true}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"regression: no marked items\", \"actual\": {\"iterations\": 0, \"success\": 0.0}, \"expected\": \"no-solution\", \"passed\": false}, {\"check\": \"control: half marked N=4 M=2\", \"actual\": {\"iterations\": 0, \"success\": 0.5}, \"expected\": {\"iterations\": 0, \"success\": 0.5}, \"passed\": true}, {\"check\": \"control: odd N just under half\", \"actual\": {\"iterations\": 1, \"success\": 0.784}, \"expected\": {\"iterations\": 1, \"success\": 0.784}, \"passed\": true}, {\"check\": \"control: single marked N=4\", \"actual\": {\"iterations\": 1, \"success\": 1.0}, \"expected\": {\"iterations\": 1, \"success\": 1.0}, \"passed\": true}, {\"check\": \"control: M greater than N\", \"actual\": \"invalid\", \"expected\": \"invalid\", \"passed\": true}, {\"check\": \"control: empty space\", \"actual\": \"invalid\", \"expected\": \"invalid\", \"passed\": true}], \"passed\": false}\n"},"broken":{"elapsed_ms":39.579,"exit_code":1,"observations":[{"actual":"invalid","check":"regression: no marked items","expected":"no-solution","passed":false},{"actual":{"iterations":0,"success":0.5},"check":"control: half marked N=4 M=2","expected":{"iterations":0,"success":0.5},"passed":true},{"actual":{"iterations":1,"success":0.784},"check":"control: odd N just under half","expected":{"iterations":1,"success":0.784},"passed":true},{"actual":{"iterations":1,"success":1.0},"check":"control: single marked N=4","expected":{"iterations":1,"success":1.0},"passed":true},{"actual":"invalid","check":"control: M greater than N","expected":"invalid","passed":true},{"actual":"invalid","check":"control: empty space","expected":"invalid","passed":true}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"regression: no marked items\", \"actual\": \"invalid\", \"expected\": \"no-solution\", \"passed\": false}, {\"check\": \"control: half marked N=4 M=2\", \"actual\": {\"iterations\": 0, \"success\": 0.5}, \"expected\": {\"iterations\": 0, \"success\": 0.5}, \"passed\": true}, {\"check\": \"control: odd N just under half\", \"actual\": {\"iterations\": 1, \"success\": 0.784}, \"expected\": {\"iterations\": 1, \"success\": 0.784}, \"passed\": true}, {\"check\": \"control: single marked N=4\", \"actual\": {\"iterations\": 1, \"success\": 1.0}, \"expected\": {\"iterations\": 1, \"success\": 1.0}, \"passed\": true}, {\"check\": \"control: M greater than N\", \"actual\": \"invalid\", \"expected\": \"invalid\", \"passed\": true}, {\"check\": \"control: empty space\", \"actual\": \"invalid\", \"expected\": \"invalid\", \"passed\": true}], \"passed\": false}\n"},"fixed":{"elapsed_ms":38.499,"exit_code":0,"observations":[{"actual":"no-solution","check":"regression: no marked items","expected":"no-solution","passed":true},{"actual":{"iterations":0,"success":0.5},"check":"control: half marked N=4 M=2","expected":{"iterations":0,"success":0.5},"passed":true},{"actual":{"iterations":1,"success":0.784},"check":"control: odd N just under half","expected":{"iterations":1,"success":0.784},"passed":true},{"actual":{"iterations":1,"success":1.0},"check":"control: single marked N=4","expected":{"iterations":1,"success":1.0},"passed":true},{"actual":"invalid","check":"control: M greater than N","expected":"invalid","passed":true},{"actual":"invalid","check":"control: empty space","expected":"invalid","passed":true}],"passed":true,"stderr":"","stdout":"{\"observations\": [{\"check\": \"regression: no marked items\", \"actual\": \"no-solution\", \"expected\": \"no-solution\", \"passed\": true}, {\"check\": \"control: half marked N=4 M=2\", \"actual\": {\"iterations\": 0, \"success\": 0.5}, \"expected\": {\"iterations\": 0, \"success\": 0.5}, \"passed\": true}, {\"check\": \"control: odd N just under half\", \"actual\": {\"iterations\": 1, \"success\": 0.784}, \"expected\": {\"iterations\": 1, \"success\": 0.784}, \"passed\": true}, {\"check\": \"control: single marked N=4\", \"actual\": {\"iterations\": 1, \"success\": 1.0}, \"expected\": {\"iterations\": 1, \"success\": 1.0}, \"passed\": true}, {\"check\": \"control: M greater than N\", \"actual\": \"invalid\", \"expected\": \"invalid\", \"passed\": true}, {\"check\": \"control: empty space\", \"actual\": \"invalid\", \"expected\": \"invalid\", \"passed\": true}], \"passed\": true}\n"}},"verified":true,"visibility":"public"}