{"abstract":"Repeated symbols are treated as separately labelled.","category":"Combinatorics","checks":4,"contract":"Nonnegative integer counts. Permutation and combination counts are zero when a requested selection exceeds the available objects. Shape sizes satisfy the preconditions stated below. counts is a list of nonnegative multiplicities of distinct symbols; count distinct words with exactly those multiplicities. Exact operational definition: math.factorial(sum(counts))//math.prod(math.factorial(c) for c in counts)","evaluation_group":"model-1d133131c3916f3c","failed_approach":"Denominator factorials must multiply rather than add.","family":"xn-multinomial-word-count","id":"FA-5686","implementations":{"attempt":{"sha256":"5d0f3af321227b324166c67353bb565a7a20585cdf3d3a2aad450558a90d73ad","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\nimport math\nimport calendar\nimport statistics\nimport itertools\nfrom fractions import Fraction\nfrom datetime import date, datetime, timedelta, timezone\nfrom decimal import Decimal, ROUND_HALF_UP, ROUND_DOWN, ROUND_CEILING, ROUND_FLOOR\n\nN = 1\nobservations = []\ndef solve(counts):\n    return math.factorial(sum(counts))//sum(math.factorial(c) for c in counts) if counts else 1\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\ncheck('fixture 1: ([2, 1],)', solve(*([2, 1],)), 3)\ncheck('fixture 2: ([2, 2],)', solve(*([2, 2],)), 6)\ncheck('fixture 3: ([3],)', solve(*([3],)), 1)\ncheck('fixture 4: ([],)', solve(*([],)), 1)\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":"53a19de75cba2930ea51718fae786b3073c04587c9ba69432c51f2d9d4fb5cb7","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\nimport math\nimport calendar\nimport statistics\nimport itertools\nfrom fractions import Fraction\nfrom datetime import date, datetime, timedelta, timezone\nfrom decimal import Decimal, ROUND_HALF_UP, ROUND_DOWN, ROUND_CEILING, ROUND_FLOOR\n\nN = 1\nobservations = []\ndef solve(counts):\n    return math.factorial(sum(counts))\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\ncheck('fixture 1: ([2, 1],)', solve(*([2, 1],)), 3)\ncheck('fixture 2: ([2, 2],)', solve(*([2, 2],)), 6)\ncheck('fixture 3: ([3],)', solve(*([3],)), 1)\ncheck('fixture 4: ([],)', solve(*([],)), 1)\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":"ae283839859b7b24eac18a03beb1500da4ebe66c55cab043b80729f73f10e6d6","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\nimport math\nimport calendar\nimport statistics\nimport itertools\nfrom fractions import Fraction\nfrom datetime import date, datetime, timedelta, timezone\nfrom decimal import Decimal, ROUND_HALF_UP, ROUND_DOWN, ROUND_CEILING, ROUND_FLOOR\n\nN = 1\nobservations = []\ndef solve(counts):\n    return math.factorial(sum(counts))//math.prod(math.factorial(c) for c in counts)\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\ncheck('fixture 1: ([2, 1],)', solve(*([2, 1],)), 3)\ncheck('fixture 2: ([2, 2],)', solve(*([2, 2],)), 6)\ncheck('fixture 3: ([3],)', solve(*([3],)), 1)\ncheck('fixture 4: ([],)', solve(*([],)), 1)\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":" 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":"xn-multinomial-word-count","generated_at":"2026-09-29T14:37:52.550633+00:00","license":"CC0-1.0","python":"3.12.14","seed":1,"split":"open-access"},"relevance":"Small exact fixtures expose this error without platform timing, external services, or probabilistic observations. Combinatorics results depend on the stated convention.","repair":"Apply the specified mathematical contract directly, preserving all terms and boundary cases: return math.factorial(sum(counts))//math.prod(math.factorial(c) for c in counts)","root_cause":"Repeated symbols are treated as separately labelled.","sha256":"7c0e83b0793f2637e6a1316b35236932854c48dfa0dded4d3cfb0cff867c88bd","title":"Multinomial word count · case 01","variant":1,"variant_policy":"Five numbered records share a model and may reuse boundary fixtures.","verification":{"attempt":{"elapsed_ms":48.712,"exit_code":1,"observations":[{"actual":2,"check":"fixture 1: ([2, 1],)","expected":3,"passed":false},{"actual":6,"check":"fixture 2: ([2, 2],)","expected":6,"passed":true},{"actual":1,"check":"fixture 3: ([3],)","expected":1,"passed":true},{"actual":1,"check":"fixture 4: ([],)","expected":1,"passed":true}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"fixture 1: ([2, 1],)\", \"actual\": 2, \"expected\": 3, \"passed\": false}, {\"check\": \"fixture 2: ([2, 2],)\", \"actual\": 6, \"expected\": 6, \"passed\": true}, {\"check\": \"fixture 3: ([3],)\", \"actual\": 1, \"expected\": 1, \"passed\": true}, {\"check\": \"fixture 4: ([],)\", \"actual\": 1, \"expected\": 1, \"passed\": true}], \"passed\": false}\n"},"broken":{"elapsed_ms":50.742,"exit_code":1,"observations":[{"actual":6,"check":"fixture 1: ([2, 1],)","expected":3,"passed":false},{"actual":24,"check":"fixture 2: ([2, 2],)","expected":6,"passed":false},{"actual":6,"check":"fixture 3: ([3],)","expected":1,"passed":false},{"actual":1,"check":"fixture 4: ([],)","expected":1,"passed":true}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"fixture 1: ([2, 1],)\", \"actual\": 6, \"expected\": 3, \"passed\": false}, {\"check\": \"fixture 2: ([2, 2],)\", \"actual\": 24, \"expected\": 6, \"passed\": false}, {\"check\": \"fixture 3: ([3],)\", \"actual\": 6, \"expected\": 1, \"passed\": false}, {\"check\": \"fixture 4: ([],)\", \"actual\": 1, \"expected\": 1, \"passed\": true}], \"passed\": false}\n"},"fixed":{"elapsed_ms":142.156,"exit_code":0,"observations":[{"actual":3,"check":"fixture 1: ([2, 1],)","expected":3,"passed":true},{"actual":6,"check":"fixture 2: ([2, 2],)","expected":6,"passed":true},{"actual":1,"check":"fixture 3: ([3],)","expected":1,"passed":true},{"actual":1,"check":"fixture 4: ([],)","expected":1,"passed":true}],"passed":true,"stderr":"","stdout":"{\"observations\": [{\"check\": \"fixture 1: ([2, 1],)\", \"actual\": 3, \"expected\": 3, \"passed\": true}, {\"check\": \"fixture 2: ([2, 2],)\", \"actual\": 6, \"expected\": 6, \"passed\": true}, {\"check\": \"fixture 3: ([3],)\", \"actual\": 1, \"expected\": 1, \"passed\": true}, {\"check\": \"fixture 4: ([],)\", \"actual\": 1, \"expected\": 1, \"passed\": true}], \"passed\": true}\n"}},"verified":true,"visibility":"public"}