{"abstract":"Unlink retains links on the removed intrusive node.","category":"Bounded deques","checks":6,"contract":"Unlink one selected node from a finite doubly linked deque with sentinel S. Nodes are keyed by identity; return forward IDs, backward IDs, removed node links, size, sentinel endpoint links and reciprocal-link validity. Every input ID is unique.","contract_signature":"x","evaluation_group":"s3-bounded-deques-intrusive-unlink","failed_approach":"The partial repair still applies the incorrect transition to an admitted boundary or multi-element case.","family":"s3-bounded-deques-intrusive-unlink-detached-poison","id":"FA-45946","implementations":{"attempt":{"sha256":"7dcb2ff5637a71eb135448cacf848c386fb34ebfa77e8dbc96fc2119cc8f2281","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(x):\n    ids, victim = x\n    nodes = {'S': ['S','S']}\n    for i, value in enumerate(ids):\n        nodes[value] = [ids[i-1] if i else 'S', ids[i+1] if i+1 < len(ids) else 'S']\n    if ids:\n        nodes['S'] = [ids[-1],ids[0]]\n    size = len(ids)\n    left, right = nodes[victim]\n    nodes[left][1] = right\n    nodes[right][0] = left\n    nodes[victim] = [None,right]\n    size -= 1\n    forward = []\n    current = nodes['S'][1]\n    for _ in range(len(ids)+1):\n        if current == 'S' or current is None: break\n        forward.append(current)\n        current = nodes[current][1]\n    backward = []\n    current = nodes['S'][0]\n    for _ in range(len(ids)+1):\n        if current == 'S' or current is None: break\n        backward.append(current)\n        current = nodes[current][0]\n    valid = all(nodes[nodes[v][0]][1] == v and nodes[nodes[v][1]][0] == v for v in forward if nodes[v][0] is not None and nodes[v][1] is not None)\n    return [forward,backward,nodes[victim],size,nodes['S'],valid]\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\ncheck('middle unlink', solve([[N,N+1,N+2],N+1]), [[N,N+2],[N+2,N],[None,None],2,[N+2,N],True])\ncheck('head unlink', solve([[N,N+1,N+2],N]), [[N+1,N+2],[N+2,N+1],[None,None],2,[N+2,N+1],True])\ncheck('tail unlink', solve([[N,N+1,N+2],N+2]), [[N,N+1],[N+1,N],[None,None],2,[N+1,N],True])\ncheck('only node', solve([[N],N]), [[],[],[None,None],0,[\"S\",\"S\"],True])\ncheck('pair head', solve([[N,N+1],N]), [[N+1],[N+1],[None,None],1,[N+1,N+1],True])\ncheck('long middle', solve([[N,N+1,N+2,N+3,N+4],N+2]), [[N,N+1,N+3,N+4],[N+4,N+3,N+1,N],[None,None],4,[N+4,N],True])\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":"671ed7577aa4f9335b374d7b19c0403b5038b3c5a3367561e179ad1de33c75d2","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(x):\n    ids, victim = x\n    nodes = {'S': ['S','S']}\n    for i, value in enumerate(ids):\n        nodes[value] = [ids[i-1] if i else 'S', ids[i+1] if i+1 < len(ids) else 'S']\n    if ids:\n        nodes['S'] = [ids[-1],ids[0]]\n    size = len(ids)\n    left, right = nodes[victim]\n    nodes[left][1] = right\n    nodes[right][0] = left\n    nodes[victim] = [left,right]\n    size -= 1\n    forward = []\n    current = nodes['S'][1]\n    for _ in range(len(ids)+1):\n        if current == 'S' or current is None: break\n        forward.append(current)\n        current = nodes[current][1]\n    backward = []\n    current = nodes['S'][0]\n    for _ in range(len(ids)+1):\n        if current == 'S' or current is None: break\n        backward.append(current)\n        current = nodes[current][0]\n    valid = all(nodes[nodes[v][0]][1] == v and nodes[nodes[v][1]][0] == v for v in forward if nodes[v][0] is not None and nodes[v][1] is not None)\n    return [forward,backward,nodes[victim],size,nodes['S'],valid]\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\ncheck('middle unlink', solve([[N,N+1,N+2],N+1]), [[N,N+2],[N+2,N],[None,None],2,[N+2,N],True])\ncheck('head unlink', solve([[N,N+1,N+2],N]), [[N+1,N+2],[N+2,N+1],[None,None],2,[N+2,N+1],True])\ncheck('tail unlink', solve([[N,N+1,N+2],N+2]), [[N,N+1],[N+1,N],[None,None],2,[N+1,N],True])\ncheck('only node', solve([[N],N]), [[],[],[None,None],0,[\"S\",\"S\"],True])\ncheck('pair head', solve([[N,N+1],N]), [[N+1],[N+1],[None,None],1,[N+1,N+1],True])\ncheck('long middle', solve([[N,N+1,N+2,N+3,N+4],N+2]), [[N,N+1,N+3,N+4],[N+4,N+3,N+1,N],[None,None],4,[N+4,N],True])\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-intrusive-unlink-detached-poison","generated_at":"2026-09-29T14:44:27.429374+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.","root_cause":"The detached node remains traversable and can falsely appear owned.","sha256":"c0fe95f9fde3533fa2942df866d62fcea2f53b96074d3dc8b8b9545d2cfc622f","title":"Unlink retains links on the removed intrusive node · case 01","variant":1,"variant_policy":"Five numbered records share a model and may reuse boundary fixtures.","verified":true,"visibility":"public","verification":{"attempt":{"elapsed_ms":44.498,"exit_code":1,"observations":[{"actual":[[1,3],[3,1],[null,3],2,[3,1],true],"check":"middle unlink","expected":[[1,3],[3,1],[null,null],2,[3,1],true],"passed":false},{"actual":[[2,3],[3,2],[null,2],2,[3,2],true],"check":"head unlink","expected":[[2,3],[3,2],[null,null],2,[3,2],true],"passed":false},{"actual":[[1,2],[2,1],[null,"S"],2,[2,1],true],"check":"tail unlink","expected":[[1,2],[2,1],[null,null],2,[2,1],true],"passed":false},{"actual":[[],[],[null,"S"],0,["S","S"],true],"check":"only node","expected":[[],[],[null,null],0,["S","S"],true],"passed":false},{"actual":[[2],[2],[null,2],1,[2,2],true],"check":"pair head","expected":[[2],[2],[null,null],1,[2,2],true],"passed":false},{"actual":[[1,2,4,5],[5,4,2,1],[null,4],4,[5,1],true],"check":"long middle","expected":[[1,2,4,5],[5,4,2,1],[null,null],4,[5,1],true],"passed":false}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"middle unlink\", \"actual\": [[1, 3], [3, 1], [null, 3], 2, [3, 1], true], \"expected\": [[1, 3], [3, 1], [null, null], 2, [3, 1], true], \"passed\": false}, {\"check\": \"head unlink\", \"actual\": [[2, 3], [3, 2], [null, 2], 2, [3, 2], true], \"expected\": [[2, 3], [3, 2], [null, null], 2, [3, 2], true], \"passed\": false}, {\"check\": \"tail unlink\", \"actual\": [[1, 2], [2, 1], [null, \"S\"], 2, [2, 1], true], \"expected\": [[1, 2], [2, 1], [null, null], 2, [2, 1], true], \"passed\": false}, {\"check\": \"only node\", \"actual\": [[], [], [null, \"S\"], 0, [\"S\", \"S\"], true], \"expected\": [[], [], [null, null], 0, [\"S\", \"S\"], true], \"passed\": false}, {\"check\": \"pair head\", \"actual\": [[2], [2], [null, 2], 1, [2, 2], true], \"expected\": [[2], [2], [null, null], 1, [2, 2], true], \"passed\": false}, {\"check\": \"long middle\", \"actual\": [[1, 2, 4, 5], [5, 4, 2, 1], [null, 4], 4, [5, 1], true], \"expected\": [[1, 2, 4, 5], [5, 4, 2, 1], [null, null], 4, [5, 1], true], \"passed\": false}], \"passed\": false}\n"},"broken":{"elapsed_ms":44.997,"exit_code":1,"observations":[{"actual":[[1,3],[3,1],[1,3],2,[3,1],true],"check":"middle unlink","expected":[[1,3],[3,1],[null,null],2,[3,1],true],"passed":false},{"actual":[[2,3],[3,2],["S",2],2,[3,2],true],"check":"head unlink","expected":[[2,3],[3,2],[null,null],2,[3,2],true],"passed":false},{"actual":[[1,2],[2,1],[2,"S"],2,[2,1],true],"check":"tail unlink","expected":[[1,2],[2,1],[null,null],2,[2,1],true],"passed":false},{"actual":[[],[],["S","S"],0,["S","S"],true],"check":"only node","expected":[[],[],[null,null],0,["S","S"],true],"passed":false},{"actual":[[2],[2],["S",2],1,[2,2],true],"check":"pair head","expected":[[2],[2],[null,null],1,[2,2],true],"passed":false},{"actual":[[1,2,4,5],[5,4,2,1],[2,4],4,[5,1],true],"check":"long middle","expected":[[1,2,4,5],[5,4,2,1],[null,null],4,[5,1],true],"passed":false}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"middle unlink\", \"actual\": [[1, 3], [3, 1], [1, 3], 2, [3, 1], true], \"expected\": [[1, 3], [3, 1], [null, null], 2, [3, 1], true], \"passed\": false}, {\"check\": \"head unlink\", \"actual\": [[2, 3], [3, 2], [\"S\", 2], 2, [3, 2], true], \"expected\": [[2, 3], [3, 2], [null, null], 2, [3, 2], true], \"passed\": false}, {\"check\": \"tail unlink\", \"actual\": [[1, 2], [2, 1], [2, \"S\"], 2, [2, 1], true], \"expected\": [[1, 2], [2, 1], [null, null], 2, [2, 1], true], \"passed\": false}, {\"check\": \"only node\", \"actual\": [[], [], [\"S\", \"S\"], 0, [\"S\", \"S\"], true], \"expected\": [[], [], [null, null], 0, [\"S\", \"S\"], true], \"passed\": false}, {\"check\": \"pair head\", \"actual\": [[2], [2], [\"S\", 2], 1, [2, 2], true], \"expected\": [[2], [2], [null, null], 1, [2, 2], true], \"passed\": false}, {\"check\": \"long middle\", \"actual\": [[1, 2, 4, 5], [5, 4, 2, 1], [2, 4], 4, [5, 1], true], \"expected\": [[1, 2, 4, 5], [5, 4, 2, 1], [null, null], 4, [5, 1], true], \"passed\": false}], \"passed\": false}\n"}},"member_only":{"stages":["fixed"],"fields":["implementations.fixed","verification.fixed","harness","repair"],"note":"The verified repair, its recorded checks, the repair description, and the scoring harness are available to members."}}