{"abstract":"Position deletes use fragment-local row positions.","category":"Data systems","checks":7,"contract":"Scan fragments [file-id,base-row-position,values] applying position-delete pairs [file-id,absolute-row-position]. Deletions are file-scoped and use physical positions before filtering. Return [file-id,absolute-position,value] for surviving rows, including null values.","evaluation_group":"s3-data-systems-position-delete-scan","failed_approach":"A global survivor count is not a fragment physical offset.","family":"s3-data-systems-position-delete-scan-fragment-base","id":"FA-45486","implementations":{"attempt":{"sha256":"45ff3e87c8bd1ab62b090480be00e5afb29c45349895f03eefcc26aabe3083a7","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(d):\n    try:\n        fragments,deletes=d\n        tombstones=set(tuple(x) for x in deletes)\n        out=[]\n        for file,base,values in fragments:\n            for local,value in enumerate(values):\n                position=base+len(out)\n                if (file,position) in tombstones: continue\n                out.append([file,position,value])\n        return out\n    except (IndexError, KeyError, ValueError, StopIteration) as exc:\n        return {\"representation_error\": type(exc).__name__}\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\nif N == 1:\n    check('file scope', solve([[['b', 0, [1]], ['a', 0, [2]]], [['a', 0]]]), [['b', 0, 1]])\n    check('fragment origin', solve([[['a', 5, [1, 2]]], [['a', 5]]]), [['a', 6, 2]])\n    check('physical holes', solve([[['a', 0, [1, 2, 3]]], [['a', 0], ['a', 2]]]), [['a', 1, 2]])\n    check('repeated tombstone', solve([[['a', 0, [1]]], [['a', 0], ['a', 0]]]), [])\n    check('surviving null', solve([[['a', 0, [None, 1]]], []]), [['a', 0, None], ['a', 1, 1]])\n    check('fragment order', solve([[['b', 0, [1]], ['a', 0, [2]]], []]), [['b', 0, 1], ['a', 0, 2]])\n    check('empty input', solve([[], []]), [])\nelif N == 2:\n    check('file scope', solve([[['b', 0, [2]], ['a', 0, [3]]], [['a', 0]]]), [['b', 0, 2]])\n    check('fragment origin', solve([[['a', 5, [2, 3]]], [['a', 5]]]), [['a', 6, 3]])\n    check('physical holes', solve([[['a', 0, [2, 3, 4]]], [['a', 0], ['a', 2]]]), [['a', 1, 3]])\n    check('repeated tombstone', solve([[['a', 0, [2]]], [['a', 0], ['a', 0]]]), [])\n    check('surviving null', solve([[['a', 0, [None, 2]]], []]), [['a', 0, None], ['a', 1, 2]])\n    check('fragment order', solve([[['b', 0, [2]], ['a', 0, [3]]], []]), [['b', 0, 2], ['a', 0, 3]])\n    check('empty input', solve([[], []]), [])\nelif N == 3:\n    check('file scope', solve([[['b', 0, [3]], ['a', 0, [4]]], [['a', 0]]]), [['b', 0, 3]])\n    check('fragment origin', solve([[['a', 5, [3, 4]]], [['a', 5]]]), [['a', 6, 4]])\n    check('physical holes', solve([[['a', 0, [3, 4, 5]]], [['a', 0], ['a', 2]]]), [['a', 1, 4]])\n    check('repeated tombstone', solve([[['a', 0, [3]]], [['a', 0], ['a', 0]]]), [])\n    check('surviving null', solve([[['a', 0, [None, 3]]], []]), [['a', 0, None], ['a', 1, 3]])\n    check('fragment order', solve([[['b', 0, [3]], ['a', 0, [4]]], []]), [['b', 0, 3], ['a', 0, 4]])\n    check('empty input', solve([[], []]), [])\nelif N == 4:\n    check('file scope', solve([[['b', 0, [4]], ['a', 0, [5]]], [['a', 0]]]), [['b', 0, 4]])\n    check('fragment origin', solve([[['a', 5, [4, 5]]], [['a', 5]]]), [['a', 6, 5]])\n    check('physical holes', solve([[['a', 0, [4, 5, 6]]], [['a', 0], ['a', 2]]]), [['a', 1, 5]])\n    check('repeated tombstone', solve([[['a', 0, [4]]], [['a', 0], ['a', 0]]]), [])\n    check('surviving null', solve([[['a', 0, [None, 4]]], []]), [['a', 0, None], ['a', 1, 4]])\n    check('fragment order', solve([[['b', 0, [4]], ['a', 0, [5]]], []]), [['b', 0, 4], ['a', 0, 5]])\n    check('empty input', solve([[], []]), [])\nelif N == 5:\n    check('file scope', solve([[['b', 0, [5]], ['a', 0, [6]]], [['a', 0]]]), [['b', 0, 5]])\n    check('fragment origin', solve([[['a', 5, [5, 6]]], [['a', 5]]]), [['a', 6, 6]])\n    check('physical holes', solve([[['a', 0, [5, 6, 7]]], [['a', 0], ['a', 2]]]), [['a', 1, 6]])\n    check('repeated tombstone', solve([[['a', 0, [5]]], [['a', 0], ['a', 0]]]), [])\n    check('surviving null', solve([[['a', 0, [None, 5]]], []]), [['a', 0, None], ['a', 1, 5]])\n    check('fragment order', solve([[['b', 0, [5]], ['a', 0, [6]]], []]), [['b', 0, 5], ['a', 0, 6]])\n    check('empty input', solve([[], []]), [])\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":"f5f4e0fd23323f6c6c644b8fe93013ec0c62cdbfc6027ff5ae4e0e7a7a7f29b3","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(d):\n    try:\n        fragments,deletes=d\n        tombstones=set(tuple(x) for x in deletes)\n        out=[]\n        for file,base,values in fragments:\n            for local,value in enumerate(values):\n                position=local\n                if (file,position) in tombstones: continue\n                out.append([file,position,value])\n        return out\n    except (IndexError, KeyError, ValueError, StopIteration) as exc:\n        return {\"representation_error\": type(exc).__name__}\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\nif N == 1:\n    check('file scope', solve([[['b', 0, [1]], ['a', 0, [2]]], [['a', 0]]]), [['b', 0, 1]])\n    check('fragment origin', solve([[['a', 5, [1, 2]]], [['a', 5]]]), [['a', 6, 2]])\n    check('physical holes', solve([[['a', 0, [1, 2, 3]]], [['a', 0], ['a', 2]]]), [['a', 1, 2]])\n    check('repeated tombstone', solve([[['a', 0, [1]]], [['a', 0], ['a', 0]]]), [])\n    check('surviving null', solve([[['a', 0, [None, 1]]], []]), [['a', 0, None], ['a', 1, 1]])\n    check('fragment order', solve([[['b', 0, [1]], ['a', 0, [2]]], []]), [['b', 0, 1], ['a', 0, 2]])\n    check('empty input', solve([[], []]), [])\nelif N == 2:\n    check('file scope', solve([[['b', 0, [2]], ['a', 0, [3]]], [['a', 0]]]), [['b', 0, 2]])\n    check('fragment origin', solve([[['a', 5, [2, 3]]], [['a', 5]]]), [['a', 6, 3]])\n    check('physical holes', solve([[['a', 0, [2, 3, 4]]], [['a', 0], ['a', 2]]]), [['a', 1, 3]])\n    check('repeated tombstone', solve([[['a', 0, [2]]], [['a', 0], ['a', 0]]]), [])\n    check('surviving null', solve([[['a', 0, [None, 2]]], []]), [['a', 0, None], ['a', 1, 2]])\n    check('fragment order', solve([[['b', 0, [2]], ['a', 0, [3]]], []]), [['b', 0, 2], ['a', 0, 3]])\n    check('empty input', solve([[], []]), [])\nelif N == 3:\n    check('file scope', solve([[['b', 0, [3]], ['a', 0, [4]]], [['a', 0]]]), [['b', 0, 3]])\n    check('fragment origin', solve([[['a', 5, [3, 4]]], [['a', 5]]]), [['a', 6, 4]])\n    check('physical holes', solve([[['a', 0, [3, 4, 5]]], [['a', 0], ['a', 2]]]), [['a', 1, 4]])\n    check('repeated tombstone', solve([[['a', 0, [3]]], [['a', 0], ['a', 0]]]), [])\n    check('surviving null', solve([[['a', 0, [None, 3]]], []]), [['a', 0, None], ['a', 1, 3]])\n    check('fragment order', solve([[['b', 0, [3]], ['a', 0, [4]]], []]), [['b', 0, 3], ['a', 0, 4]])\n    check('empty input', solve([[], []]), [])\nelif N == 4:\n    check('file scope', solve([[['b', 0, [4]], ['a', 0, [5]]], [['a', 0]]]), [['b', 0, 4]])\n    check('fragment origin', solve([[['a', 5, [4, 5]]], [['a', 5]]]), [['a', 6, 5]])\n    check('physical holes', solve([[['a', 0, [4, 5, 6]]], [['a', 0], ['a', 2]]]), [['a', 1, 5]])\n    check('repeated tombstone', solve([[['a', 0, [4]]], [['a', 0], ['a', 0]]]), [])\n    check('surviving null', solve([[['a', 0, [None, 4]]], []]), [['a', 0, None], ['a', 1, 4]])\n    check('fragment order', solve([[['b', 0, [4]], ['a', 0, [5]]], []]), [['b', 0, 4], ['a', 0, 5]])\n    check('empty input', solve([[], []]), [])\nelif N == 5:\n    check('file scope', solve([[['b', 0, [5]], ['a', 0, [6]]], [['a', 0]]]), [['b', 0, 5]])\n    check('fragment origin', solve([[['a', 5, [5, 6]]], [['a', 5]]]), [['a', 6, 6]])\n    check('physical holes', solve([[['a', 0, [5, 6, 7]]], [['a', 0], ['a', 2]]]), [['a', 1, 6]])\n    check('repeated tombstone', solve([[['a', 0, [5]]], [['a', 0], ['a', 0]]]), [])\n    check('surviving null', solve([[['a', 0, [None, 5]]], []]), [['a', 0, None], ['a', 1, 5]])\n    check('fragment order', solve([[['b', 0, [5]], ['a', 0, [6]]], []]), [['b', 0, 5], ['a', 0, 6]])\n    check('empty input', solve([[], []]), [])\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":"7592e37b5ed37b83adf08e1480c2be55a352e3dc01a3d815bf08bc1e9c8c01f0","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(d):\n    try:\n        fragments,deletes=d\n        tombstones=set(tuple(x) for x in deletes)\n        out=[]\n        for file,base,values in fragments:\n            for local,value in enumerate(values):\n                position=base+local\n                if (file,position) in tombstones: continue\n                out.append([file,position,value])\n        return out\n    except (IndexError, KeyError, ValueError, StopIteration) as exc:\n        return {\"representation_error\": type(exc).__name__}\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\nif N == 1:\n    check('file scope', solve([[['b', 0, [1]], ['a', 0, [2]]], [['a', 0]]]), [['b', 0, 1]])\n    check('fragment origin', solve([[['a', 5, [1, 2]]], [['a', 5]]]), [['a', 6, 2]])\n    check('physical holes', solve([[['a', 0, [1, 2, 3]]], [['a', 0], ['a', 2]]]), [['a', 1, 2]])\n    check('repeated tombstone', solve([[['a', 0, [1]]], [['a', 0], ['a', 0]]]), [])\n    check('surviving null', solve([[['a', 0, [None, 1]]], []]), [['a', 0, None], ['a', 1, 1]])\n    check('fragment order', solve([[['b', 0, [1]], ['a', 0, [2]]], []]), [['b', 0, 1], ['a', 0, 2]])\n    check('empty input', solve([[], []]), [])\nelif N == 2:\n    check('file scope', solve([[['b', 0, [2]], ['a', 0, [3]]], [['a', 0]]]), [['b', 0, 2]])\n    check('fragment origin', solve([[['a', 5, [2, 3]]], [['a', 5]]]), [['a', 6, 3]])\n    check('physical holes', solve([[['a', 0, [2, 3, 4]]], [['a', 0], ['a', 2]]]), [['a', 1, 3]])\n    check('repeated tombstone', solve([[['a', 0, [2]]], [['a', 0], ['a', 0]]]), [])\n    check('surviving null', solve([[['a', 0, [None, 2]]], []]), [['a', 0, None], ['a', 1, 2]])\n    check('fragment order', solve([[['b', 0, [2]], ['a', 0, [3]]], []]), [['b', 0, 2], ['a', 0, 3]])\n    check('empty input', solve([[], []]), [])\nelif N == 3:\n    check('file scope', solve([[['b', 0, [3]], ['a', 0, [4]]], [['a', 0]]]), [['b', 0, 3]])\n    check('fragment origin', solve([[['a', 5, [3, 4]]], [['a', 5]]]), [['a', 6, 4]])\n    check('physical holes', solve([[['a', 0, [3, 4, 5]]], [['a', 0], ['a', 2]]]), [['a', 1, 4]])\n    check('repeated tombstone', solve([[['a', 0, [3]]], [['a', 0], ['a', 0]]]), [])\n    check('surviving null', solve([[['a', 0, [None, 3]]], []]), [['a', 0, None], ['a', 1, 3]])\n    check('fragment order', solve([[['b', 0, [3]], ['a', 0, [4]]], []]), [['b', 0, 3], ['a', 0, 4]])\n    check('empty input', solve([[], []]), [])\nelif N == 4:\n    check('file scope', solve([[['b', 0, [4]], ['a', 0, [5]]], [['a', 0]]]), [['b', 0, 4]])\n    check('fragment origin', solve([[['a', 5, [4, 5]]], [['a', 5]]]), [['a', 6, 5]])\n    check('physical holes', solve([[['a', 0, [4, 5, 6]]], [['a', 0], ['a', 2]]]), [['a', 1, 5]])\n    check('repeated tombstone', solve([[['a', 0, [4]]], [['a', 0], ['a', 0]]]), [])\n    check('surviving null', solve([[['a', 0, [None, 4]]], []]), [['a', 0, None], ['a', 1, 4]])\n    check('fragment order', solve([[['b', 0, [4]], ['a', 0, [5]]], []]), [['b', 0, 4], ['a', 0, 5]])\n    check('empty input', solve([[], []]), [])\nelif N == 5:\n    check('file scope', solve([[['b', 0, [5]], ['a', 0, [6]]], [['a', 0]]]), [['b', 0, 5]])\n    check('fragment origin', solve([[['a', 5, [5, 6]]], [['a', 5]]]), [['a', 6, 6]])\n    check('physical holes', solve([[['a', 0, [5, 6, 7]]], [['a', 0], ['a', 2]]]), [['a', 1, 6]])\n    check('repeated tombstone', solve([[['a', 0, [5]]], [['a', 0], ['a', 0]]]), [])\n    check('surviving null', solve([[['a', 0, [None, 5]]], []]), [['a', 0, None], ['a', 1, 5]])\n    check('fragment order', solve([[['b', 0, [5]], ['a', 0, [6]]], []]), [['b', 0, 5], ['a', 0, 6]])\n    check('empty input', solve([[], []]), [])\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 stipulated semantics over valid small inputs; no performance, concurrency, or production-engine conformance claim. 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-data-systems-position-delete-scan-fragment-base","generated_at":"2026-09-29T14:44:22.736886+00:00","license":"CC0-1.0","python":"3.12.14","seed":1,"split":"open-access"},"relevance":"A bounded deterministic data engine model makes representation and changelog faults reproducible.","repair":"Preserve the stated physical representation and operation order: Scan fragments [file-id,base-row-position,values] applying position-delete pairs [file-id,absolute-row-position]. Deletions are file-scoped and use physical positions before filtering. Return [file-id,absolute-position,value] for surviving rows, including null values.","root_cause":"position-delete-scan: Position deletes use fragment-local row positions.","sha256":"dc714d79b28697674433346cf309bdac8ad8037c63dd3865ec1663e40bc3d148","title":"Position deletes use fragment-local row positions · case 01","variant":1,"variant_policy":"Five numbered records share a model and may reuse boundary fixtures.","verification":{"attempt":{"elapsed_ms":46.558,"exit_code":1,"observations":[{"actual":[["b",0,1],["a",1,2]],"check":"file scope","expected":[["b",0,1]],"passed":false},{"actual":[],"check":"fragment origin","expected":[["a",6,2]],"passed":false},{"actual":[],"check":"physical holes","expected":[["a",1,2]],"passed":false},{"actual":[],"check":"repeated tombstone","expected":[],"passed":true},{"actual":[["a",0,null],["a",1,1]],"check":"surviving null","expected":[["a",0,null],["a",1,1]],"passed":true},{"actual":[["b",0,1],["a",1,2]],"check":"fragment order","expected":[["b",0,1],["a",0,2]],"passed":false},{"actual":[],"check":"empty input","expected":[],"passed":true}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"file scope\", \"actual\": [[\"b\", 0, 1], [\"a\", 1, 2]], \"expected\": [[\"b\", 0, 1]], \"passed\": false}, {\"check\": \"fragment origin\", \"actual\": [], \"expected\": [[\"a\", 6, 2]], \"passed\": false}, {\"check\": \"physical holes\", \"actual\": [], \"expected\": [[\"a\", 1, 2]], \"passed\": false}, {\"check\": \"repeated tombstone\", \"actual\": [], \"expected\": [], \"passed\": true}, {\"check\": \"surviving null\", \"actual\": [[\"a\", 0, null], [\"a\", 1, 1]], \"expected\": [[\"a\", 0, null], [\"a\", 1, 1]], \"passed\": true}, {\"check\": \"fragment order\", \"actual\": [[\"b\", 0, 1], [\"a\", 1, 2]], \"expected\": [[\"b\", 0, 1], [\"a\", 0, 2]], \"passed\": false}, {\"check\": \"empty input\", \"actual\": [], \"expected\": [], \"passed\": true}], \"passed\": false}\n"},"broken":{"elapsed_ms":43.891,"exit_code":1,"observations":[{"actual":[["b",0,1]],"check":"file scope","expected":[["b",0,1]],"passed":true},{"actual":[["a",0,1],["a",1,2]],"check":"fragment origin","expected":[["a",6,2]],"passed":false},{"actual":[["a",1,2]],"check":"physical holes","expected":[["a",1,2]],"passed":true},{"actual":[],"check":"repeated tombstone","expected":[],"passed":true},{"actual":[["a",0,null],["a",1,1]],"check":"surviving null","expected":[["a",0,null],["a",1,1]],"passed":true},{"actual":[["b",0,1],["a",0,2]],"check":"fragment order","expected":[["b",0,1],["a",0,2]],"passed":true},{"actual":[],"check":"empty input","expected":[],"passed":true}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"file scope\", \"actual\": [[\"b\", 0, 1]], \"expected\": [[\"b\", 0, 1]], \"passed\": true}, {\"check\": \"fragment origin\", \"actual\": [[\"a\", 0, 1], [\"a\", 1, 2]], \"expected\": [[\"a\", 6, 2]], \"passed\": false}, {\"check\": \"physical holes\", \"actual\": [[\"a\", 1, 2]], \"expected\": [[\"a\", 1, 2]], \"passed\": true}, {\"check\": \"repeated tombstone\", \"actual\": [], \"expected\": [], \"passed\": true}, {\"check\": \"surviving null\", \"actual\": [[\"a\", 0, null], [\"a\", 1, 1]], \"expected\": [[\"a\", 0, null], [\"a\", 1, 1]], \"passed\": true}, {\"check\": \"fragment order\", \"actual\": [[\"b\", 0, 1], [\"a\", 0, 2]], \"expected\": [[\"b\", 0, 1], [\"a\", 0, 2]], \"passed\": true}, {\"check\": \"empty input\", \"actual\": [], \"expected\": [], \"passed\": true}], \"passed\": false}\n"},"fixed":{"elapsed_ms":46.782,"exit_code":0,"observations":[{"actual":[["b",0,1]],"check":"file scope","expected":[["b",0,1]],"passed":true},{"actual":[["a",6,2]],"check":"fragment origin","expected":[["a",6,2]],"passed":true},{"actual":[["a",1,2]],"check":"physical holes","expected":[["a",1,2]],"passed":true},{"actual":[],"check":"repeated tombstone","expected":[],"passed":true},{"actual":[["a",0,null],["a",1,1]],"check":"surviving null","expected":[["a",0,null],["a",1,1]],"passed":true},{"actual":[["b",0,1],["a",0,2]],"check":"fragment order","expected":[["b",0,1],["a",0,2]],"passed":true},{"actual":[],"check":"empty input","expected":[],"passed":true}],"passed":true,"stderr":"","stdout":"{\"observations\": [{\"check\": \"file scope\", \"actual\": [[\"b\", 0, 1]], \"expected\": [[\"b\", 0, 1]], \"passed\": true}, {\"check\": \"fragment origin\", \"actual\": [[\"a\", 6, 2]], \"expected\": [[\"a\", 6, 2]], \"passed\": true}, {\"check\": \"physical holes\", \"actual\": [[\"a\", 1, 2]], \"expected\": [[\"a\", 1, 2]], \"passed\": true}, {\"check\": \"repeated tombstone\", \"actual\": [], \"expected\": [], \"passed\": true}, {\"check\": \"surviving null\", \"actual\": [[\"a\", 0, null], [\"a\", 1, 1]], \"expected\": [[\"a\", 0, null], [\"a\", 1, 1]], \"passed\": true}, {\"check\": \"fragment order\", \"actual\": [[\"b\", 0, 1], [\"a\", 0, 2]], \"expected\": [[\"b\", 0, 1], [\"a\", 0, 2]], \"passed\": true}, {\"check\": \"empty input\", \"actual\": [], \"expected\": [], \"passed\": true}], \"passed\": true}\n"}},"verified":true,"visibility":"public"}