{"abstract":"Bulk consume clears slots relative to array zero.","category":"Bounded deques","checks":6,"contract":"Consume min(requested,size) slots from a ring. Report new head, count, cleared physical slots, and whether its occupied arc crossed the physical boundary.","evaluation_group":"s3-bounded-deques-ring-consume","failed_approach":"The partial repair still applies the incorrect transition to an admitted boundary or multi-element case.","family":"s3-bounded-deques-ring-consume-clear-origin","id":"FA-45871","implementations":{"attempt":{"sha256":"cfe0e4ea36e2e81c767aa7858b9be23e2a161857279629f5d58236316f6ecd72","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(x):\n    cap, head, size, requested = x\n    count = min(requested, size)\n    cleared = [(head + i) % cap for i in range(count)] if head == 1 else list(range(count))\n    new_head = (head + count) % cap\n    remaining = size - count\n    crossed = head + count > cap\n    return [new_head, remaining, cleared, crossed]\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\ncheck('wrap consume', solve([N+5,N+4,4,3]), [2,1,[N+4,0,1],True])\ncheck('oversized consume', solve([N+5,1,2,4]), [3,0,[1,2],False])\ncheck('empty', solve([N+5,2,0,4]), [2,0,[],False])\ncheck('zero consume', solve([N+5,2,3,0]), [2,3,[],False])\ncheck('exact boundary', solve([N+5,N+3,2,2]), [0,0,[N+3,N+4],False])\ncheck('single retained', solve([N+5,1,3,2]), [3,1,[1,2],False])\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":"fe9e2806ed2e174860a4fefa4f258e7840abee00def9799a4231c4490f66cd7a","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(x):\n    cap, head, size, requested = x\n    count = min(requested, size)\n    cleared = list(range(count))\n    new_head = (head + count) % cap\n    remaining = size - count\n    crossed = head + count > cap\n    return [new_head, remaining, cleared, crossed]\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\ncheck('wrap consume', solve([N+5,N+4,4,3]), [2,1,[N+4,0,1],True])\ncheck('oversized consume', solve([N+5,1,2,4]), [3,0,[1,2],False])\ncheck('empty', solve([N+5,2,0,4]), [2,0,[],False])\ncheck('zero consume', solve([N+5,2,3,0]), [2,3,[],False])\ncheck('exact boundary', solve([N+5,N+3,2,2]), [0,0,[N+3,N+4],False])\ncheck('single retained', solve([N+5,1,3,2]), [3,1,[1,2],False])\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":"1b602f3b68e899ed965c67271fd3ce5668b96915cd87a09759db030e22a6b1bc","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(x):\n    cap, head, size, requested = x\n    count = min(requested, size)\n    cleared = [(head + i) % cap for i in range(count)]\n    new_head = (head + count) % cap\n    remaining = size - count\n    crossed = head + count > cap\n    return [new_head, remaining, cleared, crossed]\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\ncheck('wrap consume', solve([N+5,N+4,4,3]), [2,1,[N+4,0,1],True])\ncheck('oversized consume', solve([N+5,1,2,4]), [3,0,[1,2],False])\ncheck('empty', solve([N+5,2,0,4]), [2,0,[],False])\ncheck('zero consume', solve([N+5,2,3,0]), [2,3,[],False])\ncheck('exact boundary', solve([N+5,N+3,2,2]), [0,0,[N+3,N+4],False])\ncheck('single retained', solve([N+5,1,3,2]), [3,1,[1,2],False])\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":"Offline finite deterministic model; no claim of production implementation or concurrent memory-model 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":"s3-bounded-deques-ring-consume-clear-origin","generated_at":"2026-09-29T14:44:26.494367+00:00","license":"CC0-1.0","python":"3.12.14","seed":1,"split":"open-access"},"relevance":"Controlled bounded deque implementation model with explicit storage and lifecycle observations.","repair":"Restore the documented clear origin invariant in ring-consume.","root_cause":"The clearing loop forgets the logical head displacement.","sha256":"11cdbcaf99511d8dda52c8f5d03a7fb99a861c01dd1f8e45a29bf4f803c70346","title":"Bulk consume clears slots relative to array zero · case 01","variant":1,"variant_policy":"Five numbered records share a model and may reuse boundary fixtures.","verification":{"attempt":{"elapsed_ms":42.622,"exit_code":1,"observations":[{"actual":[2,1,[0,1,2],true],"check":"wrap consume","expected":[2,1,[5,0,1],true],"passed":false},{"actual":[3,0,[1,2],false],"check":"oversized consume","expected":[3,0,[1,2],false],"passed":true},{"actual":[2,0,[],false],"check":"empty","expected":[2,0,[],false],"passed":true},{"actual":[2,3,[],false],"check":"zero consume","expected":[2,3,[],false],"passed":true},{"actual":[0,0,[0,1],false],"check":"exact boundary","expected":[0,0,[4,5],false],"passed":false},{"actual":[3,1,[1,2],false],"check":"single retained","expected":[3,1,[1,2],false],"passed":true}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"wrap consume\", \"actual\": [2, 1, [0, 1, 2], true], \"expected\": [2, 1, [5, 0, 1], true], \"passed\": false}, {\"check\": \"oversized consume\", \"actual\": [3, 0, [1, 2], false], \"expected\": [3, 0, [1, 2], false], \"passed\": true}, {\"check\": \"empty\", \"actual\": [2, 0, [], false], \"expected\": [2, 0, [], false], \"passed\": true}, {\"check\": \"zero consume\", \"actual\": [2, 3, [], false], \"expected\": [2, 3, [], false], \"passed\": true}, {\"check\": \"exact boundary\", \"actual\": [0, 0, [0, 1], false], \"expected\": [0, 0, [4, 5], false], \"passed\": false}, {\"check\": \"single retained\", \"actual\": [3, 1, [1, 2], false], \"expected\": [3, 1, [1, 2], false], \"passed\": true}], \"passed\": false}\n"},"broken":{"elapsed_ms":40.365,"exit_code":1,"observations":[{"actual":[2,1,[0,1,2],true],"check":"wrap consume","expected":[2,1,[5,0,1],true],"passed":false},{"actual":[3,0,[0,1],false],"check":"oversized consume","expected":[3,0,[1,2],false],"passed":false},{"actual":[2,0,[],false],"check":"empty","expected":[2,0,[],false],"passed":true},{"actual":[2,3,[],false],"check":"zero consume","expected":[2,3,[],false],"passed":true},{"actual":[0,0,[0,1],false],"check":"exact boundary","expected":[0,0,[4,5],false],"passed":false},{"actual":[3,1,[0,1],false],"check":"single retained","expected":[3,1,[1,2],false],"passed":false}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"wrap consume\", \"actual\": [2, 1, [0, 1, 2], true], \"expected\": [2, 1, [5, 0, 1], true], \"passed\": false}, {\"check\": \"oversized consume\", \"actual\": [3, 0, [0, 1], false], \"expected\": [3, 0, [1, 2], false], \"passed\": false}, {\"check\": \"empty\", \"actual\": [2, 0, [], false], \"expected\": [2, 0, [], false], \"passed\": true}, {\"check\": \"zero consume\", \"actual\": [2, 3, [], false], \"expected\": [2, 3, [], false], \"passed\": true}, {\"check\": \"exact boundary\", \"actual\": [0, 0, [0, 1], false], \"expected\": [0, 0, [4, 5], false], \"passed\": false}, {\"check\": \"single retained\", \"actual\": [3, 1, [0, 1], false], \"expected\": [3, 1, [1, 2], false], \"passed\": false}], \"passed\": false}\n"},"fixed":{"elapsed_ms":45.172,"exit_code":0,"observations":[{"actual":[2,1,[5,0,1],true],"check":"wrap consume","expected":[2,1,[5,0,1],true],"passed":true},{"actual":[3,0,[1,2],false],"check":"oversized consume","expected":[3,0,[1,2],false],"passed":true},{"actual":[2,0,[],false],"check":"empty","expected":[2,0,[],false],"passed":true},{"actual":[2,3,[],false],"check":"zero consume","expected":[2,3,[],false],"passed":true},{"actual":[0,0,[4,5],false],"check":"exact boundary","expected":[0,0,[4,5],false],"passed":true},{"actual":[3,1,[1,2],false],"check":"single retained","expected":[3,1,[1,2],false],"passed":true}],"passed":true,"stderr":"","stdout":"{\"observations\": [{\"check\": \"wrap consume\", \"actual\": [2, 1, [5, 0, 1], true], \"expected\": [2, 1, [5, 0, 1], true], \"passed\": true}, {\"check\": \"oversized consume\", \"actual\": [3, 0, [1, 2], false], \"expected\": [3, 0, [1, 2], false], \"passed\": true}, {\"check\": \"empty\", \"actual\": [2, 0, [], false], \"expected\": [2, 0, [], false], \"passed\": true}, {\"check\": \"zero consume\", \"actual\": [2, 3, [], false], \"expected\": [2, 3, [], false], \"passed\": true}, {\"check\": \"exact boundary\", \"actual\": [0, 0, [4, 5], false], \"expected\": [0, 0, [4, 5], false], \"passed\": true}, {\"check\": \"single retained\", \"actual\": [3, 1, [1, 2], false], \"expected\": [3, 1, [1, 2], false], \"passed\": true}], \"passed\": true}\n"}},"verified":true,"visibility":"public"}