{"abstract":"Block split counts block descriptors as logical entries.","category":"Bounded deques","checks":6,"contract":"Split a deque storage block at an interior cut, keeping the original identity on the left and assigning a fresh right identity. Publish an incremented directory epoch and ordered block IDs without changing total element count.","evaluation_group":"s3-bounded-deques-block-split","failed_approach":"The partial repair still applies the incorrect transition to an admitted boundary or multi-element case.","family":"s3-bounded-deques-block-split-total-count","id":"FA-46386","implementations":{"attempt":{"sha256":"691f4ff42f79351e85552d8ff0005404c11758b0466841f5277a2e6013d91d1d","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(x):\n    a,cut,old,fresh,epoch=x\n    left=a[:cut]\n    right=a[cut:]\n    left_id=old\n    right_id=fresh\n    version=epoch+1\n    size=len(a) if len(a)==2 else 2\n    directory=[left_id,right_id]\n    return [left,right,left_id,right_id,version,size,directory]\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\ncheck('0', solve([[N,N+1,N+2,N+3],2,8,9,3]), {1: [[1, 2], [3, 4], 8, 9, 4, 4, [8, 9]], 2: [[2, 3], [4, 5], 8, 9, 4, 4, [8, 9]], 3: [[3, 4], [5, 6], 8, 9, 4, 4, [8, 9]], 4: [[4, 5], [6, 7], 8, 9, 4, 4, [8, 9]], 5: [[5, 6], [7, 8], 8, 9, 4, 4, [8, 9]]}[N])\ncheck('1', solve([[N,N+1,N+2],1,2,4,0]), {1: [[1], [2, 3], 2, 4, 1, 3, [2, 4]], 2: [[2], [3, 4], 2, 4, 1, 3, [2, 4]], 3: [[3], [4, 5], 2, 4, 1, 3, [2, 4]], 4: [[4], [5, 6], 2, 4, 1, 3, [2, 4]], 5: [[5], [6, 7], 2, 4, 1, 3, [2, 4]]}[N])\ncheck('2', solve([[N,N+1],1,7,11,5]), {1: [[1], [2], 7, 11, 6, 2, [7, 11]], 2: [[2], [3], 7, 11, 6, 2, [7, 11]], 3: [[3], [4], 7, 11, 6, 2, [7, 11]], 4: [[4], [5], 7, 11, 6, 2, [7, 11]], 5: [[5], [6], 7, 11, 6, 2, [7, 11]]}[N])\ncheck('3', solve([[N,N+1,N+2,N+3,N+4],3,12,13,4]), {1: [[1, 2, 3], [4, 5], 12, 13, 5, 5, [12, 13]], 2: [[2, 3, 4], [5, 6], 12, 13, 5, 5, [12, 13]], 3: [[3, 4, 5], [6, 7], 12, 13, 5, 5, [12, 13]], 4: [[4, 5, 6], [7, 8], 12, 13, 5, 5, [12, 13]], 5: [[5, 6, 7], [8, 9], 12, 13, 5, 5, [12, 13]]}[N])\ncheck('4', solve([[N,N+1,N+2,N+3],1,3,8,2]), {1: [[1], [2, 3, 4], 3, 8, 3, 4, [3, 8]], 2: [[2], [3, 4, 5], 3, 8, 3, 4, [3, 8]], 3: [[3], [4, 5, 6], 3, 8, 3, 4, [3, 8]], 4: [[4], [5, 6, 7], 3, 8, 3, 4, [3, 8]], 5: [[5], [6, 7, 8], 3, 8, 3, 4, [3, 8]]}[N])\ncheck('5', solve([[N,N+1,N+2,N+3,N+4],4,5,6,8]), {1: [[1, 2, 3, 4], [5], 5, 6, 9, 5, [5, 6]], 2: [[2, 3, 4, 5], [6], 5, 6, 9, 5, [5, 6]], 3: [[3, 4, 5, 6], [7], 5, 6, 9, 5, [5, 6]], 4: [[4, 5, 6, 7], [8], 5, 6, 9, 5, [5, 6]], 5: [[5, 6, 7, 8], [9], 5, 6, 9, 5, [5, 6]]}[N])\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":"6c1801c3130f54644cb302c3981e7e26d934282d056b67825804248e40c9e4a4","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(x):\n    a,cut,old,fresh,epoch=x\n    left=a[:cut]\n    right=a[cut:]\n    left_id=old\n    right_id=fresh\n    version=epoch+1\n    size=2\n    directory=[left_id,right_id]\n    return [left,right,left_id,right_id,version,size,directory]\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\ncheck('0', solve([[N,N+1,N+2,N+3],2,8,9,3]), {1: [[1, 2], [3, 4], 8, 9, 4, 4, [8, 9]], 2: [[2, 3], [4, 5], 8, 9, 4, 4, [8, 9]], 3: [[3, 4], [5, 6], 8, 9, 4, 4, [8, 9]], 4: [[4, 5], [6, 7], 8, 9, 4, 4, [8, 9]], 5: [[5, 6], [7, 8], 8, 9, 4, 4, [8, 9]]}[N])\ncheck('1', solve([[N,N+1,N+2],1,2,4,0]), {1: [[1], [2, 3], 2, 4, 1, 3, [2, 4]], 2: [[2], [3, 4], 2, 4, 1, 3, [2, 4]], 3: [[3], [4, 5], 2, 4, 1, 3, [2, 4]], 4: [[4], [5, 6], 2, 4, 1, 3, [2, 4]], 5: [[5], [6, 7], 2, 4, 1, 3, [2, 4]]}[N])\ncheck('2', solve([[N,N+1],1,7,11,5]), {1: [[1], [2], 7, 11, 6, 2, [7, 11]], 2: [[2], [3], 7, 11, 6, 2, [7, 11]], 3: [[3], [4], 7, 11, 6, 2, [7, 11]], 4: [[4], [5], 7, 11, 6, 2, [7, 11]], 5: [[5], [6], 7, 11, 6, 2, [7, 11]]}[N])\ncheck('3', solve([[N,N+1,N+2,N+3,N+4],3,12,13,4]), {1: [[1, 2, 3], [4, 5], 12, 13, 5, 5, [12, 13]], 2: [[2, 3, 4], [5, 6], 12, 13, 5, 5, [12, 13]], 3: [[3, 4, 5], [6, 7], 12, 13, 5, 5, [12, 13]], 4: [[4, 5, 6], [7, 8], 12, 13, 5, 5, [12, 13]], 5: [[5, 6, 7], [8, 9], 12, 13, 5, 5, [12, 13]]}[N])\ncheck('4', solve([[N,N+1,N+2,N+3],1,3,8,2]), {1: [[1], [2, 3, 4], 3, 8, 3, 4, [3, 8]], 2: [[2], [3, 4, 5], 3, 8, 3, 4, [3, 8]], 3: [[3], [4, 5, 6], 3, 8, 3, 4, [3, 8]], 4: [[4], [5, 6, 7], 3, 8, 3, 4, [3, 8]], 5: [[5], [6, 7, 8], 3, 8, 3, 4, [3, 8]]}[N])\ncheck('5', solve([[N,N+1,N+2,N+3,N+4],4,5,6,8]), {1: [[1, 2, 3, 4], [5], 5, 6, 9, 5, [5, 6]], 2: [[2, 3, 4, 5], [6], 5, 6, 9, 5, [5, 6]], 3: [[3, 4, 5, 6], [7], 5, 6, 9, 5, [5, 6]], 4: [[4, 5, 6, 7], [8], 5, 6, 9, 5, [5, 6]], 5: [[5, 6, 7, 8], [9], 5, 6, 9, 5, [5, 6]]}[N])\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":"622e42f183f79baae6194f3cf57a2939b574f69d3a1ba4d652141be3efd3f8c4","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(x):\n    a,cut,old,fresh,epoch=x\n    left=a[:cut]\n    right=a[cut:]\n    left_id=old\n    right_id=fresh\n    version=epoch+1\n    size=len(left)+len(right)\n    directory=[left_id,right_id]\n    return [left,right,left_id,right_id,version,size,directory]\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\ncheck('0', solve([[N,N+1,N+2,N+3],2,8,9,3]), {1: [[1, 2], [3, 4], 8, 9, 4, 4, [8, 9]], 2: [[2, 3], [4, 5], 8, 9, 4, 4, [8, 9]], 3: [[3, 4], [5, 6], 8, 9, 4, 4, [8, 9]], 4: [[4, 5], [6, 7], 8, 9, 4, 4, [8, 9]], 5: [[5, 6], [7, 8], 8, 9, 4, 4, [8, 9]]}[N])\ncheck('1', solve([[N,N+1,N+2],1,2,4,0]), {1: [[1], [2, 3], 2, 4, 1, 3, [2, 4]], 2: [[2], [3, 4], 2, 4, 1, 3, [2, 4]], 3: [[3], [4, 5], 2, 4, 1, 3, [2, 4]], 4: [[4], [5, 6], 2, 4, 1, 3, [2, 4]], 5: [[5], [6, 7], 2, 4, 1, 3, [2, 4]]}[N])\ncheck('2', solve([[N,N+1],1,7,11,5]), {1: [[1], [2], 7, 11, 6, 2, [7, 11]], 2: [[2], [3], 7, 11, 6, 2, [7, 11]], 3: [[3], [4], 7, 11, 6, 2, [7, 11]], 4: [[4], [5], 7, 11, 6, 2, [7, 11]], 5: [[5], [6], 7, 11, 6, 2, [7, 11]]}[N])\ncheck('3', solve([[N,N+1,N+2,N+3,N+4],3,12,13,4]), {1: [[1, 2, 3], [4, 5], 12, 13, 5, 5, [12, 13]], 2: [[2, 3, 4], [5, 6], 12, 13, 5, 5, [12, 13]], 3: [[3, 4, 5], [6, 7], 12, 13, 5, 5, [12, 13]], 4: [[4, 5, 6], [7, 8], 12, 13, 5, 5, [12, 13]], 5: [[5, 6, 7], [8, 9], 12, 13, 5, 5, [12, 13]]}[N])\ncheck('4', solve([[N,N+1,N+2,N+3],1,3,8,2]), {1: [[1], [2, 3, 4], 3, 8, 3, 4, [3, 8]], 2: [[2], [3, 4, 5], 3, 8, 3, 4, [3, 8]], 3: [[3], [4, 5, 6], 3, 8, 3, 4, [3, 8]], 4: [[4], [5, 6, 7], 3, 8, 3, 4, [3, 8]], 5: [[5], [6, 7, 8], 3, 8, 3, 4, [3, 8]]}[N])\ncheck('5', solve([[N,N+1,N+2,N+3,N+4],4,5,6,8]), {1: [[1, 2, 3, 4], [5], 5, 6, 9, 5, [5, 6]], 2: [[2, 3, 4, 5], [6], 5, 6, 9, 5, [5, 6]], 3: [[3, 4, 5, 6], [7], 5, 6, 9, 5, [5, 6]], 4: [[4, 5, 6, 7], [8], 5, 6, 9, 5, [5, 6]], 5: [[5, 6, 7, 8], [9], 5, 6, 9, 5, [5, 6]]}[N])\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-block-split-total-count","generated_at":"2026-09-29T14:44:31.603211+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 total count invariant in block-split.","root_cause":"Block split counts block descriptors as logical entries.","sha256":"a206c5b6174cf853b4772c3cf28506f411d9a2fc8b34e55e36df8c0e231272d0","title":"Block split counts block descriptors as logical entries · case 01","variant":1,"variant_policy":"Five numbered records share a model and may reuse boundary fixtures.","verification":{"attempt":{"elapsed_ms":38.641,"exit_code":1,"observations":[{"actual":[[1,2],[3,4],8,9,4,2,[8,9]],"check":"0","expected":[[1,2],[3,4],8,9,4,4,[8,9]],"passed":false},{"actual":[[1],[2,3],2,4,1,2,[2,4]],"check":"1","expected":[[1],[2,3],2,4,1,3,[2,4]],"passed":false},{"actual":[[1],[2],7,11,6,2,[7,11]],"check":"2","expected":[[1],[2],7,11,6,2,[7,11]],"passed":true},{"actual":[[1,2,3],[4,5],12,13,5,2,[12,13]],"check":"3","expected":[[1,2,3],[4,5],12,13,5,5,[12,13]],"passed":false},{"actual":[[1],[2,3,4],3,8,3,2,[3,8]],"check":"4","expected":[[1],[2,3,4],3,8,3,4,[3,8]],"passed":false},{"actual":[[1,2,3,4],[5],5,6,9,2,[5,6]],"check":"5","expected":[[1,2,3,4],[5],5,6,9,5,[5,6]],"passed":false}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"0\", \"actual\": [[1, 2], [3, 4], 8, 9, 4, 2, [8, 9]], \"expected\": [[1, 2], [3, 4], 8, 9, 4, 4, [8, 9]], \"passed\": false}, {\"check\": \"1\", \"actual\": [[1], [2, 3], 2, 4, 1, 2, [2, 4]], \"expected\": [[1], [2, 3], 2, 4, 1, 3, [2, 4]], \"passed\": false}, {\"check\": \"2\", \"actual\": [[1], [2], 7, 11, 6, 2, [7, 11]], \"expected\": [[1], [2], 7, 11, 6, 2, [7, 11]], \"passed\": true}, {\"check\": \"3\", \"actual\": [[1, 2, 3], [4, 5], 12, 13, 5, 2, [12, 13]], \"expected\": [[1, 2, 3], [4, 5], 12, 13, 5, 5, [12, 13]], \"passed\": false}, {\"check\": \"4\", \"actual\": [[1], [2, 3, 4], 3, 8, 3, 2, [3, 8]], \"expected\": [[1], [2, 3, 4], 3, 8, 3, 4, [3, 8]], \"passed\": false}, {\"check\": \"5\", \"actual\": [[1, 2, 3, 4], [5], 5, 6, 9, 2, [5, 6]], \"expected\": [[1, 2, 3, 4], [5], 5, 6, 9, 5, [5, 6]], \"passed\": false}], \"passed\": false}\n"},"broken":{"elapsed_ms":44.132,"exit_code":1,"observations":[{"actual":[[1,2],[3,4],8,9,4,2,[8,9]],"check":"0","expected":[[1,2],[3,4],8,9,4,4,[8,9]],"passed":false},{"actual":[[1],[2,3],2,4,1,2,[2,4]],"check":"1","expected":[[1],[2,3],2,4,1,3,[2,4]],"passed":false},{"actual":[[1],[2],7,11,6,2,[7,11]],"check":"2","expected":[[1],[2],7,11,6,2,[7,11]],"passed":true},{"actual":[[1,2,3],[4,5],12,13,5,2,[12,13]],"check":"3","expected":[[1,2,3],[4,5],12,13,5,5,[12,13]],"passed":false},{"actual":[[1],[2,3,4],3,8,3,2,[3,8]],"check":"4","expected":[[1],[2,3,4],3,8,3,4,[3,8]],"passed":false},{"actual":[[1,2,3,4],[5],5,6,9,2,[5,6]],"check":"5","expected":[[1,2,3,4],[5],5,6,9,5,[5,6]],"passed":false}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"0\", \"actual\": [[1, 2], [3, 4], 8, 9, 4, 2, [8, 9]], \"expected\": [[1, 2], [3, 4], 8, 9, 4, 4, [8, 9]], \"passed\": false}, {\"check\": \"1\", \"actual\": [[1], [2, 3], 2, 4, 1, 2, [2, 4]], \"expected\": [[1], [2, 3], 2, 4, 1, 3, [2, 4]], \"passed\": false}, {\"check\": \"2\", \"actual\": [[1], [2], 7, 11, 6, 2, [7, 11]], \"expected\": [[1], [2], 7, 11, 6, 2, [7, 11]], \"passed\": true}, {\"check\": \"3\", \"actual\": [[1, 2, 3], [4, 5], 12, 13, 5, 2, [12, 13]], \"expected\": [[1, 2, 3], [4, 5], 12, 13, 5, 5, [12, 13]], \"passed\": false}, {\"check\": \"4\", \"actual\": [[1], [2, 3, 4], 3, 8, 3, 2, [3, 8]], \"expected\": [[1], [2, 3, 4], 3, 8, 3, 4, [3, 8]], \"passed\": false}, {\"check\": \"5\", \"actual\": [[1, 2, 3, 4], [5], 5, 6, 9, 2, [5, 6]], \"expected\": [[1, 2, 3, 4], [5], 5, 6, 9, 5, [5, 6]], \"passed\": false}], \"passed\": false}\n"},"fixed":{"elapsed_ms":42.772,"exit_code":0,"observations":[{"actual":[[1,2],[3,4],8,9,4,4,[8,9]],"check":"0","expected":[[1,2],[3,4],8,9,4,4,[8,9]],"passed":true},{"actual":[[1],[2,3],2,4,1,3,[2,4]],"check":"1","expected":[[1],[2,3],2,4,1,3,[2,4]],"passed":true},{"actual":[[1],[2],7,11,6,2,[7,11]],"check":"2","expected":[[1],[2],7,11,6,2,[7,11]],"passed":true},{"actual":[[1,2,3],[4,5],12,13,5,5,[12,13]],"check":"3","expected":[[1,2,3],[4,5],12,13,5,5,[12,13]],"passed":true},{"actual":[[1],[2,3,4],3,8,3,4,[3,8]],"check":"4","expected":[[1],[2,3,4],3,8,3,4,[3,8]],"passed":true},{"actual":[[1,2,3,4],[5],5,6,9,5,[5,6]],"check":"5","expected":[[1,2,3,4],[5],5,6,9,5,[5,6]],"passed":true}],"passed":true,"stderr":"","stdout":"{\"observations\": [{\"check\": \"0\", \"actual\": [[1, 2], [3, 4], 8, 9, 4, 4, [8, 9]], \"expected\": [[1, 2], [3, 4], 8, 9, 4, 4, [8, 9]], \"passed\": true}, {\"check\": \"1\", \"actual\": [[1], [2, 3], 2, 4, 1, 3, [2, 4]], \"expected\": [[1], [2, 3], 2, 4, 1, 3, [2, 4]], \"passed\": true}, {\"check\": \"2\", \"actual\": [[1], [2], 7, 11, 6, 2, [7, 11]], \"expected\": [[1], [2], 7, 11, 6, 2, [7, 11]], \"passed\": true}, {\"check\": \"3\", \"actual\": [[1, 2, 3], [4, 5], 12, 13, 5, 5, [12, 13]], \"expected\": [[1, 2, 3], [4, 5], 12, 13, 5, 5, [12, 13]], \"passed\": true}, {\"check\": \"4\", \"actual\": [[1], [2, 3, 4], 3, 8, 3, 4, [3, 8]], \"expected\": [[1], [2, 3, 4], 3, 8, 3, 4, [3, 8]], \"passed\": true}, {\"check\": \"5\", \"actual\": [[1, 2, 3, 4], [5], 5, 6, 9, 5, [5, 6]], \"expected\": [[1, 2, 3, 4], [5], 5, 6, 9, 5, [5, 6]], \"passed\": true}], \"passed\": true}\n"}},"verified":true,"visibility":"public"}