{"abstract":"A stream cut mid-block decodes a partial block as if complete.","category":"Error-correcting codes","checks":8,"contract":"Decode an n-fold repetition code sent in contiguous blocks of n symbols; each received symbol is 0, 1 or None (erasure). Erasures do not vote. The bit is the majority of non-erased symbols; a tie (including an all-erased block) yields None. fixed_count counts non-erased symbols outvoted in decided blocks. A length that is not a multiple of n, or n < 1, returns None. Return [bits, fixed_count].","contract_signature":"r, n","evaluation_group":"w2-error_correcting_codes-repetition-erasures","failed_approach":"Rejecting only streams shorter than one block still accepts truncated tails.","family":"w2-error_correcting_codes-repetition-erasures-length-gate","id":"FA-71906","implementations":{"attempt":{"sha256":"fcbbfd809ad540bf79a33609e919896ec5da30a172670c79f7f0c96a49d39771","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(r, n):\n    if n < 1 or len(r) < n:\n        return None\n    out, fixed_count = [], 0\n    for g in range(0, len(r), n):\n        grp = [x for x in r[g:g + n] if x is not None]\n        ones = sum(grp)\n        zeros = len(grp) - ones\n        if ones == zeros:\n            out.append(None)\n            continue\n        b = 1 if ones > zeros else 0\n        out.append(b)\n        fixed_count += min(ones, zeros)\n    return [out, fixed_count]\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\nfixtures = [[['regression [[1, 1], 3]', [[1, 1], 3], None], ['partial-repair [[], 3]', [[], 3], [[], 0]], ['control [[1, 1, 0], 3]', [[1, 1, 0], 3], [[1], 1]], ['control [[0, null, 1], 3]', [[0, None, 1], 3], [[None], 0]], ['control [[1, 1, null], 3]', [[1, 1, None], 3], [[1], 0]], ['control [[1, 1, 0, null, 0, null, 0, 0, 0, 1], 5]', [[1, 1, 0, None, 0, None, 0, 0, 0, 1], 5], [[None, 0], 1]], ['control [[0, 1, 0, 1, 0, null, 1, 0, 1, 1], 5]', [[0, 1, 0, 1, 0, None, 1, 0, 1, 1], 5], [[0, 1], 3]], ['control [[0, 0, null, null], 4]', [[0, 0, None, None], 4], [[0], 0]]], [['regression [[1, 1], 3]', [[1, 1], 3], None], ['partial-repair [[], 3]', [[], 3], [[], 0]], ['control [[0, 0, null, null], 4]', [[0, 0, None, None], 4], [[0], 0]], ['control [[1], 1]', [[1], 1], [[1], 0]], ['control [[1, 1, null, 0, 1, null, 0, null], 2]', [[1, 1, None, 0, 1, None, 0, None], 2], [[1, 0, 1, 0], 0]], ['control [[1, 0, null, null, 1, 1], 3]', [[1, 0, None, None, 1, 1], 3], [[None, 1], 0]], ['control [[0, 1, null, 0, 0, 1, 0, 0, 0, 0], 5]', [[0, 1, None, 0, 0, 1, 0, 0, 0, 0], 5], [[0, 0], 2]], ['control [[1, null, 0], 3]', [[1, None, 0], 3], [[None], 0]]], [['regression [[1, 1], 3]', [[1, 1], 3], None], ['partial-repair [[], 3]', [[], 3], [[], 0]], ['control [[1, null, 0], 3]', [[1, None, 0], 3], [[None], 0]], ['control [[null, null, null], 3]', [[None, None, None], 3], [[None], 0]], ['control [[1, 0, 0, 1, 1, 0], 3]', [[1, 0, 0, 1, 1, 0], 3], [[0, 1], 2]], ['control [[0, 1, 1, 1, 0, 0, null, 1], 4]', [[0, 1, 1, 1, 0, 0, None, 1], 4], [[1, 0], 2]], ['control [[1, null, null], 3]', [[1, None, None], 3], [[1], 0]], ['control [[0, null, 1, 1, 1], 5]', [[0, None, 1, 1, 1], 5], [[1], 1]]], [['regression [[1, 1], 3]', [[1, 1], 3], None], ['partial-repair [[], 3]', [[], 3], [[], 0]], ['control [[0, null, 1, 1, 1], 5]', [[0, None, 1, 1, 1], 5], [[1], 1]], ['control [[1, 0], 2]', [[1, 0], 2], [[None], 0]], ['control [[1, 1, 0, 0, 0, 1, 1, 1, 0], 3]', [[1, 1, 0, 0, 0, 1, 1, 1, 0], 3], [[1, 0, 1], 3]], ['control [[null, 0, 1, 0, null, 1], 3]', [[None, 0, 1, 0, None, 1], 3], [[None, None], 0]], ['control [[1, 1, 0], 3]', [[1, 1, 0], 3], [[1], 1]], ['control [[0, null, 1], 3]', [[0, None, 1], 3], [[None], 0]]], [['regression [[1, 1], 3]', [[1, 1], 3], None], ['partial-repair [[], 3]', [[], 3], [[], 0]], ['control [[0, null, 1], 3]', [[0, None, 1], 3], [[None], 0]], ['control [[1, 1, null], 3]', [[1, 1, None], 3], [[1], 0]], ['control [[1, 1, 0, null, 0, null, 0, 0, 0, 1], 5]', [[1, 1, 0, None, 0, None, 0, 0, 0, 1], 5], [[None, 0], 1]], ['control [[0, 1, 0, 1, 0, null, 1, 0, 1, 1], 5]', [[0, 1, 0, 1, 0, None, 1, 0, 1, 1], 5], [[0, 1], 3]], ['control [[0, 0, null, null], 4]', [[0, 0, None, None], 4], [[0], 0]], ['control [[1], 1]', [[1], 1], [[1], 0]]]]\nfor label, args, expected in fixtures[N - 1]:\n    check(label, solve(*args), expected)\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":"a82f2b522ee866e2411c2398a996c24efcd6f091a492e51b0cdd1b802e97c19c","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(r, n):\n    if n < 1:\n        return None\n    out, fixed_count = [], 0\n    for g in range(0, len(r), n):\n        grp = [x for x in r[g:g + n] if x is not None]\n        ones = sum(grp)\n        zeros = len(grp) - ones\n        if ones == zeros:\n            out.append(None)\n            continue\n        b = 1 if ones > zeros else 0\n        out.append(b)\n        fixed_count += min(ones, zeros)\n    return [out, fixed_count]\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\nfixtures = [[['regression [[1, 1], 3]', [[1, 1], 3], None], ['partial-repair [[], 3]', [[], 3], [[], 0]], ['control [[1, 1, 0], 3]', [[1, 1, 0], 3], [[1], 1]], ['control [[0, null, 1], 3]', [[0, None, 1], 3], [[None], 0]], ['control [[1, 1, null], 3]', [[1, 1, None], 3], [[1], 0]], ['control [[1, 1, 0, null, 0, null, 0, 0, 0, 1], 5]', [[1, 1, 0, None, 0, None, 0, 0, 0, 1], 5], [[None, 0], 1]], ['control [[0, 1, 0, 1, 0, null, 1, 0, 1, 1], 5]', [[0, 1, 0, 1, 0, None, 1, 0, 1, 1], 5], [[0, 1], 3]], ['control [[0, 0, null, null], 4]', [[0, 0, None, None], 4], [[0], 0]]], [['regression [[1, 1], 3]', [[1, 1], 3], None], ['partial-repair [[], 3]', [[], 3], [[], 0]], ['control [[0, 0, null, null], 4]', [[0, 0, None, None], 4], [[0], 0]], ['control [[1], 1]', [[1], 1], [[1], 0]], ['control [[1, 1, null, 0, 1, null, 0, null], 2]', [[1, 1, None, 0, 1, None, 0, None], 2], [[1, 0, 1, 0], 0]], ['control [[1, 0, null, null, 1, 1], 3]', [[1, 0, None, None, 1, 1], 3], [[None, 1], 0]], ['control [[0, 1, null, 0, 0, 1, 0, 0, 0, 0], 5]', [[0, 1, None, 0, 0, 1, 0, 0, 0, 0], 5], [[0, 0], 2]], ['control [[1, null, 0], 3]', [[1, None, 0], 3], [[None], 0]]], [['regression [[1, 1], 3]', [[1, 1], 3], None], ['partial-repair [[], 3]', [[], 3], [[], 0]], ['control [[1, null, 0], 3]', [[1, None, 0], 3], [[None], 0]], ['control [[null, null, null], 3]', [[None, None, None], 3], [[None], 0]], ['control [[1, 0, 0, 1, 1, 0], 3]', [[1, 0, 0, 1, 1, 0], 3], [[0, 1], 2]], ['control [[0, 1, 1, 1, 0, 0, null, 1], 4]', [[0, 1, 1, 1, 0, 0, None, 1], 4], [[1, 0], 2]], ['control [[1, null, null], 3]', [[1, None, None], 3], [[1], 0]], ['control [[0, null, 1, 1, 1], 5]', [[0, None, 1, 1, 1], 5], [[1], 1]]], [['regression [[1, 1], 3]', [[1, 1], 3], None], ['partial-repair [[], 3]', [[], 3], [[], 0]], ['control [[0, null, 1, 1, 1], 5]', [[0, None, 1, 1, 1], 5], [[1], 1]], ['control [[1, 0], 2]', [[1, 0], 2], [[None], 0]], ['control [[1, 1, 0, 0, 0, 1, 1, 1, 0], 3]', [[1, 1, 0, 0, 0, 1, 1, 1, 0], 3], [[1, 0, 1], 3]], ['control [[null, 0, 1, 0, null, 1], 3]', [[None, 0, 1, 0, None, 1], 3], [[None, None], 0]], ['control [[1, 1, 0], 3]', [[1, 1, 0], 3], [[1], 1]], ['control [[0, null, 1], 3]', [[0, None, 1], 3], [[None], 0]]], [['regression [[1, 1], 3]', [[1, 1], 3], None], ['partial-repair [[], 3]', [[], 3], [[], 0]], ['control [[0, null, 1], 3]', [[0, None, 1], 3], [[None], 0]], ['control [[1, 1, null], 3]', [[1, 1, None], 3], [[1], 0]], ['control [[1, 1, 0, null, 0, null, 0, 0, 0, 1], 5]', [[1, 1, 0, None, 0, None, 0, 0, 0, 1], 5], [[None, 0], 1]], ['control [[0, 1, 0, 1, 0, null, 1, 0, 1, 1], 5]', [[0, 1, 0, 1, 0, None, 1, 0, 1, 1], 5], [[0, 1], 3]], ['control [[0, 0, null, null], 4]', [[0, 0, None, None], 4], [[0], 0]], ['control [[1], 1]', [[1], 1], [[1], 0]]]]\nfor label, args, expected in fixtures[N - 1]:\n    check(label, solve(*args), expected)\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":"A deterministic, bounded teaching model of the named code under the stated contract; not a production codec. 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":"w2-error_correcting_codes-repetition-erasures-length-gate","generated_at":"2026-09-29T14:48:33.728757+00:00","license":"CC0-1.0","python":"3.12.14","seed":1,"split":"open-access"},"relevance":"Robust control channels repeat critical flags and must treat erased symbols differently from zeros.","root_cause":"The length check is missing, so the last short block votes with fewer copies.","sha256":"a9837cc04e6e5e3a0e02ae7295f66c95c99716fb79cdafbd7f603da9a909e956","title":"Repetition decoder accepts a truncated final block · 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":39.517,"exit_code":1,"observations":[{"actual":null,"check":"regression [[1, 1], 3]","expected":null,"passed":true},{"actual":null,"check":"partial-repair [[], 3]","expected":[[],0],"passed":false},{"actual":[[1],1],"check":"control [[1, 1, 0], 3]","expected":[[1],1],"passed":true},{"actual":[[null],0],"check":"control [[0, null, 1], 3]","expected":[[null],0],"passed":true},{"actual":[[1],0],"check":"control [[1, 1, null], 3]","expected":[[1],0],"passed":true},{"actual":[[null,0],1],"check":"control [[1, 1, 0, null, 0, null, 0, 0, 0, 1], 5]","expected":[[null,0],1],"passed":true},{"actual":[[0,1],3],"check":"control [[0, 1, 0, 1, 0, null, 1, 0, 1, 1], 5]","expected":[[0,1],3],"passed":true},{"actual":[[0],0],"check":"control [[0, 0, null, null], 4]","expected":[[0],0],"passed":true}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"regression [[1, 1], 3]\", \"actual\": null, \"expected\": null, \"passed\": true}, {\"check\": \"partial-repair [[], 3]\", \"actual\": null, \"expected\": [[], 0], \"passed\": false}, {\"check\": \"control [[1, 1, 0], 3]\", \"actual\": [[1], 1], \"expected\": [[1], 1], \"passed\": true}, {\"check\": \"control [[0, null, 1], 3]\", \"actual\": [[null], 0], \"expected\": [[null], 0], \"passed\": true}, {\"check\": \"control [[1, 1, null], 3]\", \"actual\": [[1], 0], \"expected\": [[1], 0], \"passed\": true}, {\"check\": \"control [[1, 1, 0, null, 0, null, 0, 0, 0, 1], 5]\", \"actual\": [[null, 0], 1], \"expected\": [[null, 0], 1], \"passed\": true}, {\"check\": \"control [[0, 1, 0, 1, 0, null, 1, 0, 1, 1], 5]\", \"actual\": [[0, 1], 3], \"expected\": [[0, 1], 3], \"passed\": true}, {\"check\": \"control [[0, 0, null, null], 4]\", \"actual\": [[0], 0], \"expected\": [[0], 0], \"passed\": true}], \"passed\": false}\n"},"broken":{"elapsed_ms":38.497,"exit_code":1,"observations":[{"actual":[[1],0],"check":"regression [[1, 1], 3]","expected":null,"passed":false},{"actual":[[],0],"check":"partial-repair [[], 3]","expected":[[],0],"passed":true},{"actual":[[1],1],"check":"control [[1, 1, 0], 3]","expected":[[1],1],"passed":true},{"actual":[[null],0],"check":"control [[0, null, 1], 3]","expected":[[null],0],"passed":true},{"actual":[[1],0],"check":"control [[1, 1, null], 3]","expected":[[1],0],"passed":true},{"actual":[[null,0],1],"check":"control [[1, 1, 0, null, 0, null, 0, 0, 0, 1], 5]","expected":[[null,0],1],"passed":true},{"actual":[[0,1],3],"check":"control [[0, 1, 0, 1, 0, null, 1, 0, 1, 1], 5]","expected":[[0,1],3],"passed":true},{"actual":[[0],0],"check":"control [[0, 0, null, null], 4]","expected":[[0],0],"passed":true}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"regression [[1, 1], 3]\", \"actual\": [[1], 0], \"expected\": null, \"passed\": false}, {\"check\": \"partial-repair [[], 3]\", \"actual\": [[], 0], \"expected\": [[], 0], \"passed\": true}, {\"check\": \"control [[1, 1, 0], 3]\", \"actual\": [[1], 1], \"expected\": [[1], 1], \"passed\": true}, {\"check\": \"control [[0, null, 1], 3]\", \"actual\": [[null], 0], \"expected\": [[null], 0], \"passed\": true}, {\"check\": \"control [[1, 1, null], 3]\", \"actual\": [[1], 0], \"expected\": [[1], 0], \"passed\": true}, {\"check\": \"control [[1, 1, 0, null, 0, null, 0, 0, 0, 1], 5]\", \"actual\": [[null, 0], 1], \"expected\": [[null, 0], 1], \"passed\": true}, {\"check\": \"control [[0, 1, 0, 1, 0, null, 1, 0, 1, 1], 5]\", \"actual\": [[0, 1], 3], \"expected\": [[0, 1], 3], \"passed\": true}, {\"check\": \"control [[0, 0, null, null], 4]\", \"actual\": [[0], 0], \"expected\": [[0], 0], \"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."}}