{"abstract":"Codes with an odd number of parity symbols are credited with an extra correctable symbol.","category":"Error-correcting codes","checks":8,"contract":"Guaranteed burst correction of an RS(n, k) code with m-bit symbols interleaved to depth D. Each codeword corrects t = floor((n - k) / 2) symbol errors; D interleaved codewords correct any burst of at most (t*D - 1)*m + 1 bits (a burst that straddles symbol boundaries touches one extra symbol). t = 0 gives 0. Invalid parameters return None.","contract_signature":"n, k, m, depth","evaluation_group":"w2-error_correcting_codes-interleaved-burst-capability","failed_approach":"Using n - k counts erasure capability, not error capability.","family":"w2-error_correcting_codes-interleaved-burst-capability-symbol-capability","id":"FA-72266","implementations":{"attempt":{"sha256":"c25c9eb8fd008fc0f0ee5f5e410ec630803317b034ccac8151212ab9e3d1ece8","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(n, k, m, depth):\n    if not 0 < k < n or m < 1 or depth < 1:\n        return None\n    t = n - k\n    burst = (t * depth - 1) * m + 1 if t else 0\n    return [t, burst]\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\nfixtures = [[['regression [255, 254, 8, 5]', [255, 254, 8, 5], [0, 0]], ['regression [10, 7, 2, 3]', [10, 7, 2, 3], [1, 5]], ['partial-repair [255, 223, 8, 1]', [255, 223, 8, 1], [16, 121]], ['partial-repair [255, 223, 8, 4]', [255, 223, 8, 4], [16, 505]], ['control [5, 5, 8, 1]', [5, 5, 8, 1], None], ['control [5, 2, 0, 1]', [5, 2, 0, 1], None], ['control [255, 239, 8, 2]', [255, 239, 8, 2], [8, 121]], ['control [204, 188, 8, 12]', [204, 188, 8, 12], [8, 761]]], [['regression [255, 254, 8, 5]', [255, 254, 8, 5], [0, 0]], ['regression [10, 7, 2, 3]', [10, 7, 2, 3], [1, 5]], ['partial-repair [204, 188, 8, 12]', [204, 188, 8, 12], [8, 761]], ['partial-repair [15, 11, 4, 3]', [15, 11, 4, 3], [2, 21]], ['control [5, 2, 0, 1]', [5, 2, 0, 1], None], ['control [5, 5, 8, 1]', [5, 5, 8, 1], None], ['control [31, 25, 5, 1]', [31, 25, 5, 1], [3, 11]], ['control [15, 9, 4, 1]', [15, 9, 4, 1], [3, 9]]], [['regression [255, 254, 8, 5]', [255, 254, 8, 5], [0, 0]], ['regression [10, 7, 2, 3]', [10, 7, 2, 3], [1, 5]], ['partial-repair [31, 25, 5, 1]', [31, 25, 5, 1], [3, 11]], ['control [5, 5, 8, 1]', [5, 5, 8, 1], None], ['control [5, 2, 0, 1]', [5, 2, 0, 1], None], ['control [20, 10, 1, 1]', [20, 10, 1, 1], [5, 5]], ['control [7, 6, 1, 1]', [7, 6, 1, 1], [0, 0]], ['control [255, 223, 8, 1]', [255, 223, 8, 1], [16, 121]]], [['regression [255, 254, 8, 5]', [255, 254, 8, 5], [0, 0]], ['regression [10, 7, 2, 3]', [10, 7, 2, 3], [1, 5]], ['partial-repair [255, 253, 8, 1]', [255, 253, 8, 1], [1, 1]], ['control [5, 2, 0, 1]', [5, 2, 0, 1], None], ['control [5, 5, 8, 1]', [5, 5, 8, 1], None], ['control [255, 223, 8, 4]', [255, 223, 8, 4], [16, 505]], ['control [255, 239, 8, 2]', [255, 239, 8, 2], [8, 121]], ['control [204, 188, 8, 12]', [204, 188, 8, 12], [8, 761]]], [['regression [255, 254, 8, 5]', [255, 254, 8, 5], [0, 0]], ['regression [10, 7, 2, 3]', [10, 7, 2, 3], [1, 5]], ['partial-repair [20, 10, 1, 1]', [20, 10, 1, 1], [5, 5]], ['partial-repair [7, 6, 1, 1]', [7, 6, 1, 1], [0, 0]], ['control [5, 5, 8, 1]', [5, 5, 8, 1], None], ['control [5, 2, 0, 1]', [5, 2, 0, 1], None], ['control [31, 25, 5, 1]', [31, 25, 5, 1], [3, 11]], ['control [15, 9, 4, 1]', [15, 9, 4, 1], [3, 9]]]]\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":"8fe37eeb4cf6c6ac072e4d43270279273324555d208ddc6f4fcf95f3010a6f0f","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(n, k, m, depth):\n    if not 0 < k < n or m < 1 or depth < 1:\n        return None\n    t = (n - k + 1) // 2\n    burst = (t * depth - 1) * m + 1 if t else 0\n    return [t, burst]\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\nfixtures = [[['regression [255, 254, 8, 5]', [255, 254, 8, 5], [0, 0]], ['regression [10, 7, 2, 3]', [10, 7, 2, 3], [1, 5]], ['partial-repair [255, 223, 8, 1]', [255, 223, 8, 1], [16, 121]], ['partial-repair [255, 223, 8, 4]', [255, 223, 8, 4], [16, 505]], ['control [5, 5, 8, 1]', [5, 5, 8, 1], None], ['control [5, 2, 0, 1]', [5, 2, 0, 1], None], ['control [255, 239, 8, 2]', [255, 239, 8, 2], [8, 121]], ['control [204, 188, 8, 12]', [204, 188, 8, 12], [8, 761]]], [['regression [255, 254, 8, 5]', [255, 254, 8, 5], [0, 0]], ['regression [10, 7, 2, 3]', [10, 7, 2, 3], [1, 5]], ['partial-repair [204, 188, 8, 12]', [204, 188, 8, 12], [8, 761]], ['partial-repair [15, 11, 4, 3]', [15, 11, 4, 3], [2, 21]], ['control [5, 2, 0, 1]', [5, 2, 0, 1], None], ['control [5, 5, 8, 1]', [5, 5, 8, 1], None], ['control [31, 25, 5, 1]', [31, 25, 5, 1], [3, 11]], ['control [15, 9, 4, 1]', [15, 9, 4, 1], [3, 9]]], [['regression [255, 254, 8, 5]', [255, 254, 8, 5], [0, 0]], ['regression [10, 7, 2, 3]', [10, 7, 2, 3], [1, 5]], ['partial-repair [31, 25, 5, 1]', [31, 25, 5, 1], [3, 11]], ['control [5, 5, 8, 1]', [5, 5, 8, 1], None], ['control [5, 2, 0, 1]', [5, 2, 0, 1], None], ['control [20, 10, 1, 1]', [20, 10, 1, 1], [5, 5]], ['control [7, 6, 1, 1]', [7, 6, 1, 1], [0, 0]], ['control [255, 223, 8, 1]', [255, 223, 8, 1], [16, 121]]], [['regression [255, 254, 8, 5]', [255, 254, 8, 5], [0, 0]], ['regression [10, 7, 2, 3]', [10, 7, 2, 3], [1, 5]], ['partial-repair [255, 253, 8, 1]', [255, 253, 8, 1], [1, 1]], ['control [5, 2, 0, 1]', [5, 2, 0, 1], None], ['control [5, 5, 8, 1]', [5, 5, 8, 1], None], ['control [255, 223, 8, 4]', [255, 223, 8, 4], [16, 505]], ['control [255, 239, 8, 2]', [255, 239, 8, 2], [8, 121]], ['control [204, 188, 8, 12]', [204, 188, 8, 12], [8, 761]]], [['regression [255, 254, 8, 5]', [255, 254, 8, 5], [0, 0]], ['regression [10, 7, 2, 3]', [10, 7, 2, 3], [1, 5]], ['partial-repair [20, 10, 1, 1]', [20, 10, 1, 1], [5, 5]], ['partial-repair [7, 6, 1, 1]', [7, 6, 1, 1], [0, 0]], ['control [5, 5, 8, 1]', [5, 5, 8, 1], None], ['control [5, 2, 0, 1]', [5, 2, 0, 1], None], ['control [31, 25, 5, 1]', [31, 25, 5, 1], [3, 11]], ['control [15, 9, 4, 1]', [15, 9, 4, 1], [3, 9]]]]\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-interleaved-burst-capability-symbol-capability","generated_at":"2026-09-29T14:48:37.022147+00:00","license":"CC0-1.0","python":"3.12.14","seed":1,"split":"open-access"},"relevance":"Optical, DVB and storage link budgets quote the longest correctable burst for an interleaved RS code.","root_cause":"t is computed as ceil((n - k) / 2).","sha256":"090c14a174ee4a0c8a29bbe77b95fe37e7321f702827dbdba23d78ba44830810","title":"Burst capability rounds the symbol correction up · 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":36.93,"exit_code":1,"observations":[{"actual":[1,33],"check":"regression [255, 254, 8, 5]","expected":[0,0],"passed":false},{"actual":[3,17],"check":"regression [10, 7, 2, 3]","expected":[1,5],"passed":false},{"actual":[32,249],"check":"partial-repair [255, 223, 8, 1]","expected":[16,121],"passed":false},{"actual":[32,1017],"check":"partial-repair [255, 223, 8, 4]","expected":[16,505],"passed":false},{"actual":null,"check":"control [5, 5, 8, 1]","expected":null,"passed":true},{"actual":null,"check":"control [5, 2, 0, 1]","expected":null,"passed":true},{"actual":[16,249],"check":"control [255, 239, 8, 2]","expected":[8,121],"passed":false},{"actual":[16,1529],"check":"control [204, 188, 8, 12]","expected":[8,761],"passed":false}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"regression [255, 254, 8, 5]\", \"actual\": [1, 33], \"expected\": [0, 0], \"passed\": false}, {\"check\": \"regression [10, 7, 2, 3]\", \"actual\": [3, 17], \"expected\": [1, 5], \"passed\": false}, {\"check\": \"partial-repair [255, 223, 8, 1]\", \"actual\": [32, 249], \"expected\": [16, 121], \"passed\": false}, {\"check\": \"partial-repair [255, 223, 8, 4]\", \"actual\": [32, 1017], \"expected\": [16, 505], \"passed\": false}, {\"check\": \"control [5, 5, 8, 1]\", \"actual\": null, \"expected\": null, \"passed\": true}, {\"check\": \"control [5, 2, 0, 1]\", \"actual\": null, \"expected\": null, \"passed\": true}, {\"check\": \"control [255, 239, 8, 2]\", \"actual\": [16, 249], \"expected\": [8, 121], \"passed\": false}, {\"check\": \"control [204, 188, 8, 12]\", \"actual\": [16, 1529], \"expected\": [8, 761], \"passed\": false}], \"passed\": false}\n"},"broken":{"elapsed_ms":42.013,"exit_code":1,"observations":[{"actual":[1,33],"check":"regression [255, 254, 8, 5]","expected":[0,0],"passed":false},{"actual":[2,11],"check":"regression [10, 7, 2, 3]","expected":[1,5],"passed":false},{"actual":[16,121],"check":"partial-repair [255, 223, 8, 1]","expected":[16,121],"passed":true},{"actual":[16,505],"check":"partial-repair [255, 223, 8, 4]","expected":[16,505],"passed":true},{"actual":null,"check":"control [5, 5, 8, 1]","expected":null,"passed":true},{"actual":null,"check":"control [5, 2, 0, 1]","expected":null,"passed":true},{"actual":[8,121],"check":"control [255, 239, 8, 2]","expected":[8,121],"passed":true},{"actual":[8,761],"check":"control [204, 188, 8, 12]","expected":[8,761],"passed":true}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"regression [255, 254, 8, 5]\", \"actual\": [1, 33], \"expected\": [0, 0], \"passed\": false}, {\"check\": \"regression [10, 7, 2, 3]\", \"actual\": [2, 11], \"expected\": [1, 5], \"passed\": false}, {\"check\": \"partial-repair [255, 223, 8, 1]\", \"actual\": [16, 121], \"expected\": [16, 121], \"passed\": true}, {\"check\": \"partial-repair [255, 223, 8, 4]\", \"actual\": [16, 505], \"expected\": [16, 505], \"passed\": true}, {\"check\": \"control [5, 5, 8, 1]\", \"actual\": null, \"expected\": null, \"passed\": true}, {\"check\": \"control [5, 2, 0, 1]\", \"actual\": null, \"expected\": null, \"passed\": true}, {\"check\": \"control [255, 239, 8, 2]\", \"actual\": [8, 121], \"expected\": [8, 121], \"passed\": true}, {\"check\": \"control [204, 188, 8, 12]\", \"actual\": [8, 761], \"expected\": [8, 761], \"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."}}