{"abstract":"A physical selection is deduplicated before gathering.","category":"Data systems","checks":7,"contract":"Compose a sliced child selection with its parent selection, gather base values, and consult base validity. Preserve child order and repeated indices; invalid entries produce None.","evaluation_group":"s3-data-systems-selection-compose","failed_approach":"Sorting the deduplicated selection still destroys repeated rows.","family":"s3-data-systems-selection-compose-multiplicity","id":"FA-44351","implementations":{"attempt":{"sha256":"e9bec5be3ef64a68736a4ffc381561df7220f1fd566b277b36df2a155c27ff7e","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(d):\n    try:\n        base,parent,child,valid,start,count=d\n        selected=child[start:start+count]\n        indices=[parent[i] for i in selected]\n        out=[]\n        for j,i in enumerate(sorted(set(indices))):\n            value=base[i]\n            known=valid[i]\n            out.append(value if known else None)\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('permuted duplicates', solve([[1, 2, 3], [2, 0, 1], [0, 1, 0, 2], [True, True, True], 0, 4]), [3, 1, 3, 2])\n    check('nonzero slice', solve([[1, 2, 3], [2, 0, 1], [2, 0, 1], [True, True, True], 1, 2]), [3, 1])\n    check('validity moves with address', solve([[1, 2, 3], [2, 0, 1], [0, 1, 2], [True, False, True], 0, 3]), [3, 1, None])\n    check('empty slice', solve([[1], [0], [0], [True], 0, 0]), [])\n    check('all null', solve([[1, 2], [1, 0], [0, 1], [False, False], 0, 2]), [None, None])\n    check('identity control', solve([[1, 2], [0, 1], [0, 1], [True, True], 0, 2]), [1, 2])\n    check('last slot', solve([[1, 2], [1, 0], [1, 0], [True, True], 1, 1]), [2])\nelif N == 2:\n    check('permuted duplicates', solve([[2, 3, 4], [2, 0, 1], [0, 1, 0, 2], [True, True, True], 0, 4]), [4, 2, 4, 3])\n    check('nonzero slice', solve([[2, 3, 4], [2, 0, 1], [2, 0, 1], [True, True, True], 1, 2]), [4, 2])\n    check('validity moves with address', solve([[2, 3, 4], [2, 0, 1], [0, 1, 2], [True, False, True], 0, 3]), [4, 2, None])\n    check('empty slice', solve([[2], [0], [0], [True], 0, 0]), [])\n    check('all null', solve([[2, 3], [1, 0], [0, 1], [False, False], 0, 2]), [None, None])\n    check('identity control', solve([[2, 3], [0, 1], [0, 1], [True, True], 0, 2]), [2, 3])\n    check('last slot', solve([[2, 3], [1, 0], [1, 0], [True, True], 1, 1]), [3])\nelif N == 3:\n    check('permuted duplicates', solve([[3, 4, 5], [2, 0, 1], [0, 1, 0, 2], [True, True, True], 0, 4]), [5, 3, 5, 4])\n    check('nonzero slice', solve([[3, 4, 5], [2, 0, 1], [2, 0, 1], [True, True, True], 1, 2]), [5, 3])\n    check('validity moves with address', solve([[3, 4, 5], [2, 0, 1], [0, 1, 2], [True, False, True], 0, 3]), [5, 3, None])\n    check('empty slice', solve([[3], [0], [0], [True], 0, 0]), [])\n    check('all null', solve([[3, 4], [1, 0], [0, 1], [False, False], 0, 2]), [None, None])\n    check('identity control', solve([[3, 4], [0, 1], [0, 1], [True, True], 0, 2]), [3, 4])\n    check('last slot', solve([[3, 4], [1, 0], [1, 0], [True, True], 1, 1]), [4])\nelif N == 4:\n    check('permuted duplicates', solve([[4, 5, 6], [2, 0, 1], [0, 1, 0, 2], [True, True, True], 0, 4]), [6, 4, 6, 5])\n    check('nonzero slice', solve([[4, 5, 6], [2, 0, 1], [2, 0, 1], [True, True, True], 1, 2]), [6, 4])\n    check('validity moves with address', solve([[4, 5, 6], [2, 0, 1], [0, 1, 2], [True, False, True], 0, 3]), [6, 4, None])\n    check('empty slice', solve([[4], [0], [0], [True], 0, 0]), [])\n    check('all null', solve([[4, 5], [1, 0], [0, 1], [False, False], 0, 2]), [None, None])\n    check('identity control', solve([[4, 5], [0, 1], [0, 1], [True, True], 0, 2]), [4, 5])\n    check('last slot', solve([[4, 5], [1, 0], [1, 0], [True, True], 1, 1]), [5])\nelif N == 5:\n    check('permuted duplicates', solve([[5, 6, 7], [2, 0, 1], [0, 1, 0, 2], [True, True, True], 0, 4]), [7, 5, 7, 6])\n    check('nonzero slice', solve([[5, 6, 7], [2, 0, 1], [2, 0, 1], [True, True, True], 1, 2]), [7, 5])\n    check('validity moves with address', solve([[5, 6, 7], [2, 0, 1], [0, 1, 2], [True, False, True], 0, 3]), [7, 5, None])\n    check('empty slice', solve([[5], [0], [0], [True], 0, 0]), [])\n    check('all null', solve([[5, 6], [1, 0], [0, 1], [False, False], 0, 2]), [None, None])\n    check('identity control', solve([[5, 6], [0, 1], [0, 1], [True, True], 0, 2]), [5, 6])\n    check('last slot', solve([[5, 6], [1, 0], [1, 0], [True, True], 1, 1]), [6])\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":"7b0b6ee333d9e3a1ab13e218dc054e3b2dde0285e0d953c9321d5b913d18598b","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(d):\n    try:\n        base,parent,child,valid,start,count=d\n        selected=child[start:start+count]\n        indices=[parent[i] for i in selected]\n        out=[]\n        for j,i in enumerate(dict.fromkeys(indices)):\n            value=base[i]\n            known=valid[i]\n            out.append(value if known else None)\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('permuted duplicates', solve([[1, 2, 3], [2, 0, 1], [0, 1, 0, 2], [True, True, True], 0, 4]), [3, 1, 3, 2])\n    check('nonzero slice', solve([[1, 2, 3], [2, 0, 1], [2, 0, 1], [True, True, True], 1, 2]), [3, 1])\n    check('validity moves with address', solve([[1, 2, 3], [2, 0, 1], [0, 1, 2], [True, False, True], 0, 3]), [3, 1, None])\n    check('empty slice', solve([[1], [0], [0], [True], 0, 0]), [])\n    check('all null', solve([[1, 2], [1, 0], [0, 1], [False, False], 0, 2]), [None, None])\n    check('identity control', solve([[1, 2], [0, 1], [0, 1], [True, True], 0, 2]), [1, 2])\n    check('last slot', solve([[1, 2], [1, 0], [1, 0], [True, True], 1, 1]), [2])\nelif N == 2:\n    check('permuted duplicates', solve([[2, 3, 4], [2, 0, 1], [0, 1, 0, 2], [True, True, True], 0, 4]), [4, 2, 4, 3])\n    check('nonzero slice', solve([[2, 3, 4], [2, 0, 1], [2, 0, 1], [True, True, True], 1, 2]), [4, 2])\n    check('validity moves with address', solve([[2, 3, 4], [2, 0, 1], [0, 1, 2], [True, False, True], 0, 3]), [4, 2, None])\n    check('empty slice', solve([[2], [0], [0], [True], 0, 0]), [])\n    check('all null', solve([[2, 3], [1, 0], [0, 1], [False, False], 0, 2]), [None, None])\n    check('identity control', solve([[2, 3], [0, 1], [0, 1], [True, True], 0, 2]), [2, 3])\n    check('last slot', solve([[2, 3], [1, 0], [1, 0], [True, True], 1, 1]), [3])\nelif N == 3:\n    check('permuted duplicates', solve([[3, 4, 5], [2, 0, 1], [0, 1, 0, 2], [True, True, True], 0, 4]), [5, 3, 5, 4])\n    check('nonzero slice', solve([[3, 4, 5], [2, 0, 1], [2, 0, 1], [True, True, True], 1, 2]), [5, 3])\n    check('validity moves with address', solve([[3, 4, 5], [2, 0, 1], [0, 1, 2], [True, False, True], 0, 3]), [5, 3, None])\n    check('empty slice', solve([[3], [0], [0], [True], 0, 0]), [])\n    check('all null', solve([[3, 4], [1, 0], [0, 1], [False, False], 0, 2]), [None, None])\n    check('identity control', solve([[3, 4], [0, 1], [0, 1], [True, True], 0, 2]), [3, 4])\n    check('last slot', solve([[3, 4], [1, 0], [1, 0], [True, True], 1, 1]), [4])\nelif N == 4:\n    check('permuted duplicates', solve([[4, 5, 6], [2, 0, 1], [0, 1, 0, 2], [True, True, True], 0, 4]), [6, 4, 6, 5])\n    check('nonzero slice', solve([[4, 5, 6], [2, 0, 1], [2, 0, 1], [True, True, True], 1, 2]), [6, 4])\n    check('validity moves with address', solve([[4, 5, 6], [2, 0, 1], [0, 1, 2], [True, False, True], 0, 3]), [6, 4, None])\n    check('empty slice', solve([[4], [0], [0], [True], 0, 0]), [])\n    check('all null', solve([[4, 5], [1, 0], [0, 1], [False, False], 0, 2]), [None, None])\n    check('identity control', solve([[4, 5], [0, 1], [0, 1], [True, True], 0, 2]), [4, 5])\n    check('last slot', solve([[4, 5], [1, 0], [1, 0], [True, True], 1, 1]), [5])\nelif N == 5:\n    check('permuted duplicates', solve([[5, 6, 7], [2, 0, 1], [0, 1, 0, 2], [True, True, True], 0, 4]), [7, 5, 7, 6])\n    check('nonzero slice', solve([[5, 6, 7], [2, 0, 1], [2, 0, 1], [True, True, True], 1, 2]), [7, 5])\n    check('validity moves with address', solve([[5, 6, 7], [2, 0, 1], [0, 1, 2], [True, False, True], 0, 3]), [7, 5, None])\n    check('empty slice', solve([[5], [0], [0], [True], 0, 0]), [])\n    check('all null', solve([[5, 6], [1, 0], [0, 1], [False, False], 0, 2]), [None, None])\n    check('identity control', solve([[5, 6], [0, 1], [0, 1], [True, True], 0, 2]), [5, 6])\n    check('last slot', solve([[5, 6], [1, 0], [1, 0], [True, True], 1, 1]), [6])\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":"2173ec4925ab3109f20b363f7abec61c120063c69c213a273a4ba0dc7b312eae","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(d):\n    try:\n        base,parent,child,valid,start,count=d\n        selected=child[start:start+count]\n        indices=[parent[i] for i in selected]\n        out=[]\n        for j,i in enumerate(indices):\n            value=base[i]\n            known=valid[i]\n            out.append(value if known else None)\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('permuted duplicates', solve([[1, 2, 3], [2, 0, 1], [0, 1, 0, 2], [True, True, True], 0, 4]), [3, 1, 3, 2])\n    check('nonzero slice', solve([[1, 2, 3], [2, 0, 1], [2, 0, 1], [True, True, True], 1, 2]), [3, 1])\n    check('validity moves with address', solve([[1, 2, 3], [2, 0, 1], [0, 1, 2], [True, False, True], 0, 3]), [3, 1, None])\n    check('empty slice', solve([[1], [0], [0], [True], 0, 0]), [])\n    check('all null', solve([[1, 2], [1, 0], [0, 1], [False, False], 0, 2]), [None, None])\n    check('identity control', solve([[1, 2], [0, 1], [0, 1], [True, True], 0, 2]), [1, 2])\n    check('last slot', solve([[1, 2], [1, 0], [1, 0], [True, True], 1, 1]), [2])\nelif N == 2:\n    check('permuted duplicates', solve([[2, 3, 4], [2, 0, 1], [0, 1, 0, 2], [True, True, True], 0, 4]), [4, 2, 4, 3])\n    check('nonzero slice', solve([[2, 3, 4], [2, 0, 1], [2, 0, 1], [True, True, True], 1, 2]), [4, 2])\n    check('validity moves with address', solve([[2, 3, 4], [2, 0, 1], [0, 1, 2], [True, False, True], 0, 3]), [4, 2, None])\n    check('empty slice', solve([[2], [0], [0], [True], 0, 0]), [])\n    check('all null', solve([[2, 3], [1, 0], [0, 1], [False, False], 0, 2]), [None, None])\n    check('identity control', solve([[2, 3], [0, 1], [0, 1], [True, True], 0, 2]), [2, 3])\n    check('last slot', solve([[2, 3], [1, 0], [1, 0], [True, True], 1, 1]), [3])\nelif N == 3:\n    check('permuted duplicates', solve([[3, 4, 5], [2, 0, 1], [0, 1, 0, 2], [True, True, True], 0, 4]), [5, 3, 5, 4])\n    check('nonzero slice', solve([[3, 4, 5], [2, 0, 1], [2, 0, 1], [True, True, True], 1, 2]), [5, 3])\n    check('validity moves with address', solve([[3, 4, 5], [2, 0, 1], [0, 1, 2], [True, False, True], 0, 3]), [5, 3, None])\n    check('empty slice', solve([[3], [0], [0], [True], 0, 0]), [])\n    check('all null', solve([[3, 4], [1, 0], [0, 1], [False, False], 0, 2]), [None, None])\n    check('identity control', solve([[3, 4], [0, 1], [0, 1], [True, True], 0, 2]), [3, 4])\n    check('last slot', solve([[3, 4], [1, 0], [1, 0], [True, True], 1, 1]), [4])\nelif N == 4:\n    check('permuted duplicates', solve([[4, 5, 6], [2, 0, 1], [0, 1, 0, 2], [True, True, True], 0, 4]), [6, 4, 6, 5])\n    check('nonzero slice', solve([[4, 5, 6], [2, 0, 1], [2, 0, 1], [True, True, True], 1, 2]), [6, 4])\n    check('validity moves with address', solve([[4, 5, 6], [2, 0, 1], [0, 1, 2], [True, False, True], 0, 3]), [6, 4, None])\n    check('empty slice', solve([[4], [0], [0], [True], 0, 0]), [])\n    check('all null', solve([[4, 5], [1, 0], [0, 1], [False, False], 0, 2]), [None, None])\n    check('identity control', solve([[4, 5], [0, 1], [0, 1], [True, True], 0, 2]), [4, 5])\n    check('last slot', solve([[4, 5], [1, 0], [1, 0], [True, True], 1, 1]), [5])\nelif N == 5:\n    check('permuted duplicates', solve([[5, 6, 7], [2, 0, 1], [0, 1, 0, 2], [True, True, True], 0, 4]), [7, 5, 7, 6])\n    check('nonzero slice', solve([[5, 6, 7], [2, 0, 1], [2, 0, 1], [True, True, True], 1, 2]), [7, 5])\n    check('validity moves with address', solve([[5, 6, 7], [2, 0, 1], [0, 1, 2], [True, False, True], 0, 3]), [7, 5, None])\n    check('empty slice', solve([[5], [0], [0], [True], 0, 0]), [])\n    check('all null', solve([[5, 6], [1, 0], [0, 1], [False, False], 0, 2]), [None, None])\n    check('identity control', solve([[5, 6], [0, 1], [0, 1], [True, True], 0, 2]), [5, 6])\n    check('last slot', solve([[5, 6], [1, 0], [1, 0], [True, True], 1, 1]), [6])\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-selection-compose-multiplicity","generated_at":"2026-09-29T14:44:11.434836+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: Compose a sliced child selection with its parent selection, gather base values, and consult base validity. Preserve child order and repeated indices; invalid entries produce None.","root_cause":"selection-compose: A physical selection is deduplicated before gathering.","sha256":"944c1505b231fb67cdcd0daf71bbe05b9943fc74dd9f53e0e22e62ca9f615f7a","title":"A physical selection is deduplicated before gathering · case 01","variant":1,"variant_policy":"Five numbered records share a model and may reuse boundary fixtures.","verification":{"attempt":{"elapsed_ms":44.185,"exit_code":1,"observations":[{"actual":[1,2,3],"check":"permuted duplicates","expected":[3,1,3,2],"passed":false},{"actual":[1,3],"check":"nonzero slice","expected":[3,1],"passed":false},{"actual":[1,null,3],"check":"validity moves with address","expected":[3,1,null],"passed":false},{"actual":[],"check":"empty slice","expected":[],"passed":true},{"actual":[null,null],"check":"all null","expected":[null,null],"passed":true},{"actual":[1,2],"check":"identity control","expected":[1,2],"passed":true},{"actual":[2],"check":"last slot","expected":[2],"passed":true}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"permuted duplicates\", \"actual\": [1, 2, 3], \"expected\": [3, 1, 3, 2], \"passed\": false}, {\"check\": \"nonzero slice\", \"actual\": [1, 3], \"expected\": [3, 1], \"passed\": false}, {\"check\": \"validity moves with address\", \"actual\": [1, null, 3], \"expected\": [3, 1, null], \"passed\": false}, {\"check\": \"empty slice\", \"actual\": [], \"expected\": [], \"passed\": true}, {\"check\": \"all null\", \"actual\": [null, null], \"expected\": [null, null], \"passed\": true}, {\"check\": \"identity control\", \"actual\": [1, 2], \"expected\": [1, 2], \"passed\": true}, {\"check\": \"last slot\", \"actual\": [2], \"expected\": [2], \"passed\": true}], \"passed\": false}\n"},"broken":{"elapsed_ms":42.206,"exit_code":1,"observations":[{"actual":[3,1,2],"check":"permuted duplicates","expected":[3,1,3,2],"passed":false},{"actual":[3,1],"check":"nonzero slice","expected":[3,1],"passed":true},{"actual":[3,1,null],"check":"validity moves with address","expected":[3,1,null],"passed":true},{"actual":[],"check":"empty slice","expected":[],"passed":true},{"actual":[null,null],"check":"all null","expected":[null,null],"passed":true},{"actual":[1,2],"check":"identity control","expected":[1,2],"passed":true},{"actual":[2],"check":"last slot","expected":[2],"passed":true}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"permuted duplicates\", \"actual\": [3, 1, 2], \"expected\": [3, 1, 3, 2], \"passed\": false}, {\"check\": \"nonzero slice\", \"actual\": [3, 1], \"expected\": [3, 1], \"passed\": true}, {\"check\": \"validity moves with address\", \"actual\": [3, 1, null], \"expected\": [3, 1, null], \"passed\": true}, {\"check\": \"empty slice\", \"actual\": [], \"expected\": [], \"passed\": true}, {\"check\": \"all null\", \"actual\": [null, null], \"expected\": [null, null], \"passed\": true}, {\"check\": \"identity control\", \"actual\": [1, 2], \"expected\": [1, 2], \"passed\": true}, {\"check\": \"last slot\", \"actual\": [2], \"expected\": [2], \"passed\": true}], \"passed\": false}\n"},"fixed":{"elapsed_ms":43.728,"exit_code":0,"observations":[{"actual":[3,1,3,2],"check":"permuted duplicates","expected":[3,1,3,2],"passed":true},{"actual":[3,1],"check":"nonzero slice","expected":[3,1],"passed":true},{"actual":[3,1,null],"check":"validity moves with address","expected":[3,1,null],"passed":true},{"actual":[],"check":"empty slice","expected":[],"passed":true},{"actual":[null,null],"check":"all null","expected":[null,null],"passed":true},{"actual":[1,2],"check":"identity control","expected":[1,2],"passed":true},{"actual":[2],"check":"last slot","expected":[2],"passed":true}],"passed":true,"stderr":"","stdout":"{\"observations\": [{\"check\": \"permuted duplicates\", \"actual\": [3, 1, 3, 2], \"expected\": [3, 1, 3, 2], \"passed\": true}, {\"check\": \"nonzero slice\", \"actual\": [3, 1], \"expected\": [3, 1], \"passed\": true}, {\"check\": \"validity moves with address\", \"actual\": [3, 1, null], \"expected\": [3, 1, null], \"passed\": true}, {\"check\": \"empty slice\", \"actual\": [], \"expected\": [], \"passed\": true}, {\"check\": \"all null\", \"actual\": [null, null], \"expected\": [null, null], \"passed\": true}, {\"check\": \"identity control\", \"actual\": [1, 2], \"expected\": [1, 2], \"passed\": true}, {\"check\": \"last slot\", \"actual\": [2], \"expected\": [2], \"passed\": true}], \"passed\": true}\n"}},"verified":true,"visibility":"public"}