{"abstract":"Grouping expansion deduplicates repeated grouping sets.","category":"Data systems","checks":7,"contract":"Expand every fact [a,b,payload] once per supplied grouping-set list of column positions. Emit [projected-a,projected-b,grouping-mask,payload], using None for omitted keys and bit 1 for omitted a, bit 2 for omitted b. Preserve duplicate grouping sets and null source keys.","contract_signature":"d","evaluation_group":"s3-data-systems-grouping-set-expansion","failed_approach":"Sorting distinct grouping sets still removes requested duplicate expansions.","family":"s3-data-systems-grouping-set-expansion-set-multiplicity","id":"FA-44861","implementations":{"attempt":{"sha256":"3b1a5f4a81b121429bac24a9ac9811ab680cfadccc3ccdc7def47103a4f1685d","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(d):\n    try:\n        rows,sets=d\n        out=[]\n        for group in sorted(set(tuple(g) for g in sets)):\n            for a,b,value in rows:\n                keys=[a,b]\n                projected=[keys[i] if i in group else None for i in range(2)]\n                mask=sum(1<<i for i in range(2) if i not in group)\n                out.append(projected+[mask,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('one dimension', solve([[['a', 'b', 1]], [[0]]]), [['a', None, 2, 1]])\n    check('other dimension', solve([[['a', 'b', 1]], [[1]]]), [[None, 'b', 1, 1]])\n    check('real null key', solve([[[None, 'b', 1]], [[0, 1]]]), [[None, 'b', 0, 1]])\n    check('grand total row', solve([[['a', 'b', 1]], [[]]]), [[None, None, 3, 1]])\n    check('duplicate sets', solve([[['a', 'b', 1]], [[0], [0]]]), [['a', None, 2, 1], ['a', None, 2, 1]])\n    check('duplicate facts', solve([[['a', 'b', 1], ['a', 'b', 1]], [[0, 1]]]), [['a', 'b', 0, 1], ['a', 'b', 0, 1]])\n    check('empty facts', solve([[], [[0], []]]), [])\nelif N == 2:\n    check('one dimension', solve([[['a', 'b', 2]], [[0]]]), [['a', None, 2, 2]])\n    check('other dimension', solve([[['a', 'b', 2]], [[1]]]), [[None, 'b', 1, 2]])\n    check('real null key', solve([[[None, 'b', 2]], [[0, 1]]]), [[None, 'b', 0, 2]])\n    check('grand total row', solve([[['a', 'b', 2]], [[]]]), [[None, None, 3, 2]])\n    check('duplicate sets', solve([[['a', 'b', 2]], [[0], [0]]]), [['a', None, 2, 2], ['a', None, 2, 2]])\n    check('duplicate facts', solve([[['a', 'b', 2], ['a', 'b', 2]], [[0, 1]]]), [['a', 'b', 0, 2], ['a', 'b', 0, 2]])\n    check('empty facts', solve([[], [[0], []]]), [])\nelif N == 3:\n    check('one dimension', solve([[['a', 'b', 3]], [[0]]]), [['a', None, 2, 3]])\n    check('other dimension', solve([[['a', 'b', 3]], [[1]]]), [[None, 'b', 1, 3]])\n    check('real null key', solve([[[None, 'b', 3]], [[0, 1]]]), [[None, 'b', 0, 3]])\n    check('grand total row', solve([[['a', 'b', 3]], [[]]]), [[None, None, 3, 3]])\n    check('duplicate sets', solve([[['a', 'b', 3]], [[0], [0]]]), [['a', None, 2, 3], ['a', None, 2, 3]])\n    check('duplicate facts', solve([[['a', 'b', 3], ['a', 'b', 3]], [[0, 1]]]), [['a', 'b', 0, 3], ['a', 'b', 0, 3]])\n    check('empty facts', solve([[], [[0], []]]), [])\nelif N == 4:\n    check('one dimension', solve([[['a', 'b', 4]], [[0]]]), [['a', None, 2, 4]])\n    check('other dimension', solve([[['a', 'b', 4]], [[1]]]), [[None, 'b', 1, 4]])\n    check('real null key', solve([[[None, 'b', 4]], [[0, 1]]]), [[None, 'b', 0, 4]])\n    check('grand total row', solve([[['a', 'b', 4]], [[]]]), [[None, None, 3, 4]])\n    check('duplicate sets', solve([[['a', 'b', 4]], [[0], [0]]]), [['a', None, 2, 4], ['a', None, 2, 4]])\n    check('duplicate facts', solve([[['a', 'b', 4], ['a', 'b', 4]], [[0, 1]]]), [['a', 'b', 0, 4], ['a', 'b', 0, 4]])\n    check('empty facts', solve([[], [[0], []]]), [])\nelif N == 5:\n    check('one dimension', solve([[['a', 'b', 5]], [[0]]]), [['a', None, 2, 5]])\n    check('other dimension', solve([[['a', 'b', 5]], [[1]]]), [[None, 'b', 1, 5]])\n    check('real null key', solve([[[None, 'b', 5]], [[0, 1]]]), [[None, 'b', 0, 5]])\n    check('grand total row', solve([[['a', 'b', 5]], [[]]]), [[None, None, 3, 5]])\n    check('duplicate sets', solve([[['a', 'b', 5]], [[0], [0]]]), [['a', None, 2, 5], ['a', None, 2, 5]])\n    check('duplicate facts', solve([[['a', 'b', 5], ['a', 'b', 5]], [[0, 1]]]), [['a', 'b', 0, 5], ['a', 'b', 0, 5]])\n    check('empty facts', solve([[], [[0], []]]), [])\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":"029ef5541c0f07c3c275c9c1a21c2c469b676df73ff48d064a2b4e50b7978670","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(d):\n    try:\n        rows,sets=d\n        out=[]\n        for group in dict.fromkeys(tuple(g) for g in sets):\n            for a,b,value in rows:\n                keys=[a,b]\n                projected=[keys[i] if i in group else None for i in range(2)]\n                mask=sum(1<<i for i in range(2) if i not in group)\n                out.append(projected+[mask,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('one dimension', solve([[['a', 'b', 1]], [[0]]]), [['a', None, 2, 1]])\n    check('other dimension', solve([[['a', 'b', 1]], [[1]]]), [[None, 'b', 1, 1]])\n    check('real null key', solve([[[None, 'b', 1]], [[0, 1]]]), [[None, 'b', 0, 1]])\n    check('grand total row', solve([[['a', 'b', 1]], [[]]]), [[None, None, 3, 1]])\n    check('duplicate sets', solve([[['a', 'b', 1]], [[0], [0]]]), [['a', None, 2, 1], ['a', None, 2, 1]])\n    check('duplicate facts', solve([[['a', 'b', 1], ['a', 'b', 1]], [[0, 1]]]), [['a', 'b', 0, 1], ['a', 'b', 0, 1]])\n    check('empty facts', solve([[], [[0], []]]), [])\nelif N == 2:\n    check('one dimension', solve([[['a', 'b', 2]], [[0]]]), [['a', None, 2, 2]])\n    check('other dimension', solve([[['a', 'b', 2]], [[1]]]), [[None, 'b', 1, 2]])\n    check('real null key', solve([[[None, 'b', 2]], [[0, 1]]]), [[None, 'b', 0, 2]])\n    check('grand total row', solve([[['a', 'b', 2]], [[]]]), [[None, None, 3, 2]])\n    check('duplicate sets', solve([[['a', 'b', 2]], [[0], [0]]]), [['a', None, 2, 2], ['a', None, 2, 2]])\n    check('duplicate facts', solve([[['a', 'b', 2], ['a', 'b', 2]], [[0, 1]]]), [['a', 'b', 0, 2], ['a', 'b', 0, 2]])\n    check('empty facts', solve([[], [[0], []]]), [])\nelif N == 3:\n    check('one dimension', solve([[['a', 'b', 3]], [[0]]]), [['a', None, 2, 3]])\n    check('other dimension', solve([[['a', 'b', 3]], [[1]]]), [[None, 'b', 1, 3]])\n    check('real null key', solve([[[None, 'b', 3]], [[0, 1]]]), [[None, 'b', 0, 3]])\n    check('grand total row', solve([[['a', 'b', 3]], [[]]]), [[None, None, 3, 3]])\n    check('duplicate sets', solve([[['a', 'b', 3]], [[0], [0]]]), [['a', None, 2, 3], ['a', None, 2, 3]])\n    check('duplicate facts', solve([[['a', 'b', 3], ['a', 'b', 3]], [[0, 1]]]), [['a', 'b', 0, 3], ['a', 'b', 0, 3]])\n    check('empty facts', solve([[], [[0], []]]), [])\nelif N == 4:\n    check('one dimension', solve([[['a', 'b', 4]], [[0]]]), [['a', None, 2, 4]])\n    check('other dimension', solve([[['a', 'b', 4]], [[1]]]), [[None, 'b', 1, 4]])\n    check('real null key', solve([[[None, 'b', 4]], [[0, 1]]]), [[None, 'b', 0, 4]])\n    check('grand total row', solve([[['a', 'b', 4]], [[]]]), [[None, None, 3, 4]])\n    check('duplicate sets', solve([[['a', 'b', 4]], [[0], [0]]]), [['a', None, 2, 4], ['a', None, 2, 4]])\n    check('duplicate facts', solve([[['a', 'b', 4], ['a', 'b', 4]], [[0, 1]]]), [['a', 'b', 0, 4], ['a', 'b', 0, 4]])\n    check('empty facts', solve([[], [[0], []]]), [])\nelif N == 5:\n    check('one dimension', solve([[['a', 'b', 5]], [[0]]]), [['a', None, 2, 5]])\n    check('other dimension', solve([[['a', 'b', 5]], [[1]]]), [[None, 'b', 1, 5]])\n    check('real null key', solve([[[None, 'b', 5]], [[0, 1]]]), [[None, 'b', 0, 5]])\n    check('grand total row', solve([[['a', 'b', 5]], [[]]]), [[None, None, 3, 5]])\n    check('duplicate sets', solve([[['a', 'b', 5]], [[0], [0]]]), [['a', None, 2, 5], ['a', None, 2, 5]])\n    check('duplicate facts', solve([[['a', 'b', 5], ['a', 'b', 5]], [[0, 1]]]), [['a', 'b', 0, 5], ['a', 'b', 0, 5]])\n    check('empty facts', solve([[], [[0], []]]), [])\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-grouping-set-expansion-set-multiplicity","generated_at":"2026-09-29T14:44:16.565328+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":"grouping-set-expansion: Grouping expansion deduplicates repeated grouping sets.","sha256":"954072266942f76a906aa595e501e77dca5b3057bc9a6f196a27cad64f0c33a4","title":"Grouping expansion deduplicates repeated grouping sets · 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.675,"exit_code":1,"observations":[{"actual":[["a",null,2,1]],"check":"one dimension","expected":[["a",null,2,1]],"passed":true},{"actual":[[null,"b",1,1]],"check":"other dimension","expected":[[null,"b",1,1]],"passed":true},{"actual":[[null,"b",0,1]],"check":"real null key","expected":[[null,"b",0,1]],"passed":true},{"actual":[[null,null,3,1]],"check":"grand total row","expected":[[null,null,3,1]],"passed":true},{"actual":[["a",null,2,1]],"check":"duplicate sets","expected":[["a",null,2,1],["a",null,2,1]],"passed":false},{"actual":[["a","b",0,1],["a","b",0,1]],"check":"duplicate facts","expected":[["a","b",0,1],["a","b",0,1]],"passed":true},{"actual":[],"check":"empty facts","expected":[],"passed":true}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"one dimension\", \"actual\": [[\"a\", null, 2, 1]], \"expected\": [[\"a\", null, 2, 1]], \"passed\": true}, {\"check\": \"other dimension\", \"actual\": [[null, \"b\", 1, 1]], \"expected\": [[null, \"b\", 1, 1]], \"passed\": true}, {\"check\": \"real null key\", \"actual\": [[null, \"b\", 0, 1]], \"expected\": [[null, \"b\", 0, 1]], \"passed\": true}, {\"check\": \"grand total row\", \"actual\": [[null, null, 3, 1]], \"expected\": [[null, null, 3, 1]], \"passed\": true}, {\"check\": \"duplicate sets\", \"actual\": [[\"a\", null, 2, 1]], \"expected\": [[\"a\", null, 2, 1], [\"a\", null, 2, 1]], \"passed\": false}, {\"check\": \"duplicate facts\", \"actual\": [[\"a\", \"b\", 0, 1], [\"a\", \"b\", 0, 1]], \"expected\": [[\"a\", \"b\", 0, 1], [\"a\", \"b\", 0, 1]], \"passed\": true}, {\"check\": \"empty facts\", \"actual\": [], \"expected\": [], \"passed\": true}], \"passed\": false}\n"},"broken":{"elapsed_ms":45.767,"exit_code":1,"observations":[{"actual":[["a",null,2,1]],"check":"one dimension","expected":[["a",null,2,1]],"passed":true},{"actual":[[null,"b",1,1]],"check":"other dimension","expected":[[null,"b",1,1]],"passed":true},{"actual":[[null,"b",0,1]],"check":"real null key","expected":[[null,"b",0,1]],"passed":true},{"actual":[[null,null,3,1]],"check":"grand total row","expected":[[null,null,3,1]],"passed":true},{"actual":[["a",null,2,1]],"check":"duplicate sets","expected":[["a",null,2,1],["a",null,2,1]],"passed":false},{"actual":[["a","b",0,1],["a","b",0,1]],"check":"duplicate facts","expected":[["a","b",0,1],["a","b",0,1]],"passed":true},{"actual":[],"check":"empty facts","expected":[],"passed":true}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"one dimension\", \"actual\": [[\"a\", null, 2, 1]], \"expected\": [[\"a\", null, 2, 1]], \"passed\": true}, {\"check\": \"other dimension\", \"actual\": [[null, \"b\", 1, 1]], \"expected\": [[null, \"b\", 1, 1]], \"passed\": true}, {\"check\": \"real null key\", \"actual\": [[null, \"b\", 0, 1]], \"expected\": [[null, \"b\", 0, 1]], \"passed\": true}, {\"check\": \"grand total row\", \"actual\": [[null, null, 3, 1]], \"expected\": [[null, null, 3, 1]], \"passed\": true}, {\"check\": \"duplicate sets\", \"actual\": [[\"a\", null, 2, 1]], \"expected\": [[\"a\", null, 2, 1], [\"a\", null, 2, 1]], \"passed\": false}, {\"check\": \"duplicate facts\", \"actual\": [[\"a\", \"b\", 0, 1], [\"a\", \"b\", 0, 1]], \"expected\": [[\"a\", \"b\", 0, 1], [\"a\", \"b\", 0, 1]], \"passed\": true}, {\"check\": \"empty facts\", \"actual\": [], \"expected\": [], \"passed\": true}], \"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."}}