{"abstract":"Gather reads the output position instead of the selected position.","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.","contract_signature":"d","evaluation_group":"s3-data-systems-selection-compose","failed_approach":"Clamping the address to the output cursor still reads the wrong base lane.","family":"s3-data-systems-selection-compose-value-address","id":"FA-44356","implementations":{"attempt":{"sha256":"3c09adac2b6eb7b9daa6ffd9f3fe43d552ee50247623f4ba4a48bb815ab6cd19","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[min(i,j)]\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":"bb2eac1f6bab7631670672ddc84fbc99b037261600b788fdd25a7ab6ae05395f","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[j] if j<len(base) else None\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-value-address","generated_at":"2026-09-29T14:44:11.518890+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.","root_cause":"selection-compose: Gather reads the output position instead of the selected position.","sha256":"e96a1d5f8d4c2e875112b6959d76416c3114ee0a3975edcc1a6a093d988ef8b7","title":"Gather reads the output position instead of the selected position · 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":42.362,"exit_code":1,"observations":[{"actual":[1,1,3,2],"check":"permuted duplicates","expected":[3,1,3,2],"passed":false},{"actual":[1,1],"check":"nonzero slice","expected":[3,1],"passed":false},{"actual":[1,1,null],"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":[1],"check":"last slot","expected":[2],"passed":false}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"permuted duplicates\", \"actual\": [1, 1, 3, 2], \"expected\": [3, 1, 3, 2], \"passed\": false}, {\"check\": \"nonzero slice\", \"actual\": [1, 1], \"expected\": [3, 1], \"passed\": false}, {\"check\": \"validity moves with address\", \"actual\": [1, 1, null], \"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\": [1], \"expected\": [2], \"passed\": false}], \"passed\": false}\n"},"broken":{"elapsed_ms":43.98,"exit_code":1,"observations":[{"actual":[1,2,3,null],"check":"permuted duplicates","expected":[3,1,3,2],"passed":false},{"actual":[1,2],"check":"nonzero slice","expected":[3,1],"passed":false},{"actual":[1,2,null],"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":[1],"check":"last slot","expected":[2],"passed":false}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"permuted duplicates\", \"actual\": [1, 2, 3, null], \"expected\": [3, 1, 3, 2], \"passed\": false}, {\"check\": \"nonzero slice\", \"actual\": [1, 2], \"expected\": [3, 1], \"passed\": false}, {\"check\": \"validity moves with address\", \"actual\": [1, 2, null], \"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\": [1], \"expected\": [2], \"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."}}