{"abstract":"Symbols that become degree one late in the list are never used.","category":"Error-correcting codes","checks":8,"contract":"Peeling (belief-propagation) decoder for an LT fountain code over bytes. symbols is a list of [neighbour indices, XOR of those source symbols]. Repeatedly find an encoded symbol with exactly one unresolved neighbour, resolve it as the value XOR all resolved neighbours, and continue until a full pass makes no progress. Return the k source values with None for unresolved ones.","evaluation_group":"w2-error_correcting_codes-lt-peeling","failed_approach":"Two fixed passes still stop short on longer dependency chains.","family":"w2-error_correcting_codes-lt-peeling-repeat-passes","id":"FA-72206","implementations":{"attempt":{"sha256":"6e2e42c09aa25430a7460ee1a89ed00c53895eca38c105c321ec94a524f8c3e4","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(symbols, k):\n    src = [None] * k\n    for _ in range(2):\n        changed = False\n        for nbrs, val in symbols:\n            unknown = [i for i in nbrs if src[i] is None]\n            if len(unknown) != 1:\n                continue\n            x = val\n            for i in nbrs:\n                if src[i] is not None:\n                    x ^= src[i]\n            src[unknown[0]] = x\n            changed = True\n    return src\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\nfixtures = [[['regression [[[[0, 1, 2], 12], [[2], 186], [[0, 2], 237]], 3]', [[[[0, 1, 2], 12], [[2], 186], [[0, 2], 237]], 3], [87, 225, 186]], ['regression [[[[2, 4], 237], [[0, 1, 3], 192], [[1, 3], 57], [[2], 28], [[1, 2,...', [[[[2, 4], 237], [[0, 1, 3], 192], [[1, 3], 57], [[2], 28], [[1, 2, 4], 217]], 5], [249, 52, 28, 13, 241]], ['partial-repair [[[[0, 1, 5], 222], [[4], 144], [[2, 5, 6], 16], [[1, 2, 4], 104], ...', [[[[0, 1, 5], 222], [[4], 144], [[2, 5, 6], 16], [[1, 2, 4], 104], [[3], 251], [[0, 2, 4], 177], [[6], 49], [[0, 6], 54]], 7], [7, 222, 38, 251, 144, 7, 49]], ['control [[[[1], 110], [[3], 40], [[0, 2, 3], 64], [[2, 3], 29], [[0], 93]], 4]', [[[[1], 110], [[3], 40], [[0, 2, 3], 64], [[2, 3], 29], [[0], 93]], 4], [93, 110, 53, 40]], ['control [[[[0, 4], 212], [[0], 114], [[0, 4], 212], [[0, 1, 4], 93], [[0], ...', [[[[0, 4], 212], [[0], 114], [[0, 4], 212], [[0, 1, 4], 93], [[0], 114]], 5], [114, 137, None, None, 166]], ['control [[[[0, 1], 1]], 2]', [[[[0, 1], 1]], 2], [None, None]], ['control [[], 2]', [[], 2], [None, None]], ['control [[[[0], 9], [[0, 1, 2], 1], [[1, 2], 3]], 3]', [[[[0], 9], [[0, 1, 2], 1], [[1, 2], 3]], 3], [9, None, None]]], [['regression [[[[3], 151], [[1, 3], 253], [[0, 2], 4], [[1], 106], [[0, 1], 14]]...', [[[[3], 151], [[1, 3], 253], [[0, 2], 4], [[1], 106], [[0, 1], 14]], 4], [100, 106, 96, 151]], ['regression [[[[0], 17], [[3, 4], 215], [[0, 3], 193], [[1, 3, 4], 154], [[1, 4...', [[[[0], 17], [[3, 4], 215], [[0, 3], 193], [[1, 3, 4], 154], [[1, 4], 74], [[4], 7]], 5], [17, 77, None, 208, 7]], ['partial-repair [[[[0, 1, 5], 222], [[4], 144], [[2, 5, 6], 16], [[1, 2, 4], 104], ...', [[[[0, 1, 5], 222], [[4], 144], [[2, 5, 6], 16], [[1, 2, 4], 104], [[3], 251], [[0, 2, 4], 177], [[6], 49], [[0, 6], 54]], 7], [7, 222, 38, 251, 144, 7, 49]], ['partial-repair [[[[2, 4], 237], [[0, 1, 3], 192], [[1, 3], 57], [[2], 28], [[1, 2,...', [[[[2, 4], 237], [[0, 1, 3], 192], [[1, 3], 57], [[2], 28], [[1, 2, 4], 217]], 5], [249, 52, 28, 13, 241]], ['control [[[[1], 110], [[3], 40], [[0, 2, 3], 64], [[2, 3], 29], [[0], 93]], 4]', [[[[1], 110], [[3], 40], [[0, 2, 3], 64], [[2, 3], 29], [[0], 93]], 4], [93, 110, 53, 40]], ['control [[[[0, 4], 212], [[0], 114], [[0, 4], 212], [[0, 1, 4], 93], [[0], ...', [[[[0, 4], 212], [[0], 114], [[0, 4], 212], [[0, 1, 4], 93], [[0], 114]], 5], [114, 137, None, None, 166]], ['control [[[[0, 1], 1]], 2]', [[[[0, 1], 1]], 2], [None, None]], ['control [[], 2]', [[], 2], [None, None]]], [['regression [[[[0, 1], 249], [[0, 1], 249], [[0, 1, 2], 202], [[0], 87]], 3]', [[[[0, 1], 249], [[0, 1], 249], [[0, 1, 2], 202], [[0], 87]], 3], [87, 174, 51]], ['regression [[[[0, 1, 5], 222], [[4], 144], [[2, 5, 6], 16], [[1, 2, 4], 104], ...', [[[[0, 1, 5], 222], [[4], 144], [[2, 5, 6], 16], [[1, 2, 4], 104], [[3], 251], [[0, 2, 4], 177], [[6], 49], [[0, 6], 54]], 7], [7, 222, 38, 251, 144, 7, 49]], ['partial-repair [[[[2, 4], 237], [[0, 1, 3], 192], [[1, 3], 57], [[2], 28], [[1, 2,...', [[[[2, 4], 237], [[0, 1, 3], 192], [[1, 3], 57], [[2], 28], [[1, 2, 4], 217]], 5], [249, 52, 28, 13, 241]], ['control [[[[1], 110], [[3], 40], [[0, 2, 3], 64], [[2, 3], 29], [[0], 93]], 4]', [[[[1], 110], [[3], 40], [[0, 2, 3], 64], [[2, 3], 29], [[0], 93]], 4], [93, 110, 53, 40]], ['control [[[[0, 4], 212], [[0], 114], [[0, 4], 212], [[0, 1, 4], 93], [[0], ...', [[[[0, 4], 212], [[0], 114], [[0, 4], 212], [[0, 1, 4], 93], [[0], 114]], 5], [114, 137, None, None, 166]], ['control [[[[0, 1], 1]], 2]', [[[[0, 1], 1]], 2], [None, None]], ['control [[], 2]', [[], 2], [None, None]], ['control [[[[0], 9], [[0, 1, 2], 1], [[1, 2], 3]], 3]', [[[[0], 9], [[0, 1, 2], 1], [[1, 2], 3]], 3], [9, None, None]]], [['regression [[[[1, 2], 6], [[0, 1], 3], [[2], 4]], 3]', [[[[1, 2], 6], [[0, 1], 3], [[2], 4]], 3], [1, 2, 4]], ['regression [[[[0, 1, 2], 12], [[2], 186], [[0, 2], 237]], 3]', [[[[0, 1, 2], 12], [[2], 186], [[0, 2], 237]], 3], [87, 225, 186]], ['partial-repair [[[[0, 1, 5], 222], [[4], 144], [[2, 5, 6], 16], [[1, 2, 4], 104], ...', [[[[0, 1, 5], 222], [[4], 144], [[2, 5, 6], 16], [[1, 2, 4], 104], [[3], 251], [[0, 2, 4], 177], [[6], 49], [[0, 6], 54]], 7], [7, 222, 38, 251, 144, 7, 49]], ['partial-repair [[[[2, 4], 237], [[0, 1, 3], 192], [[1, 3], 57], [[2], 28], [[1, 2,...', [[[[2, 4], 237], [[0, 1, 3], 192], [[1, 3], 57], [[2], 28], [[1, 2, 4], 217]], 5], [249, 52, 28, 13, 241]], ['control [[[[1], 110], [[3], 40], [[0, 2, 3], 64], [[2, 3], 29], [[0], 93]], 4]', [[[[1], 110], [[3], 40], [[0, 2, 3], 64], [[2, 3], 29], [[0], 93]], 4], [93, 110, 53, 40]], ['control [[[[0, 4], 212], [[0], 114], [[0, 4], 212], [[0, 1, 4], 93], [[0], ...', [[[[0, 4], 212], [[0], 114], [[0, 4], 212], [[0, 1, 4], 93], [[0], 114]], 5], [114, 137, None, None, 166]], ['control [[[[0, 1], 1]], 2]', [[[[0, 1], 1]], 2], [None, None]], ['control [[], 2]', [[], 2], [None, None]]], [['regression [[[[0, 1, 5], 194], [[0, 4], 132], [[0, 1], 133], [[3, 5], 70], [[0...', [[[[0, 1, 5], 194], [[0, 4], 132], [[0, 1], 133], [[3, 5], 70], [[0, 2, 4], 67], [[1, 2, 4], 198], [[0], 59], [[5], 71]], 6], [59, 190, 199, 1, 191, 71]], ['regression [[[[3], 151], [[1, 3], 253], [[0, 2], 4], [[1], 106], [[0, 1], 14]]...', [[[[3], 151], [[1, 3], 253], [[0, 2], 4], [[1], 106], [[0, 1], 14]], 4], [100, 106, 96, 151]], ['partial-repair [[[[2, 4], 237], [[0, 1, 3], 192], [[1, 3], 57], [[2], 28], [[1, 2,...', [[[[2, 4], 237], [[0, 1, 3], 192], [[1, 3], 57], [[2], 28], [[1, 2, 4], 217]], 5], [249, 52, 28, 13, 241]], ['partial-repair [[[[0, 1, 5], 222], [[4], 144], [[2, 5, 6], 16], [[1, 2, 4], 104], ...', [[[[0, 1, 5], 222], [[4], 144], [[2, 5, 6], 16], [[1, 2, 4], 104], [[3], 251], [[0, 2, 4], 177], [[6], 49], [[0, 6], 54]], 7], [7, 222, 38, 251, 144, 7, 49]], ['control [[[[1], 110], [[3], 40], [[0, 2, 3], 64], [[2, 3], 29], [[0], 93]], 4]', [[[[1], 110], [[3], 40], [[0, 2, 3], 64], [[2, 3], 29], [[0], 93]], 4], [93, 110, 53, 40]], ['control [[[[0, 4], 212], [[0], 114], [[0, 4], 212], [[0, 1, 4], 93], [[0], ...', [[[[0, 4], 212], [[0], 114], [[0, 4], 212], [[0, 1, 4], 93], [[0], 114]], 5], [114, 137, None, None, 166]], ['control [[[[0, 1], 1]], 2]', [[[[0, 1], 1]], 2], [None, None]], ['control [[], 2]', [[], 2], [None, None]]]]\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":"7ac56736967204a7fa408b043f004b0f71c7db5d36f98e5c4a98f0fe79264749","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(symbols, k):\n    src = [None] * k\n    for _ in range(1):\n        changed = False\n        for nbrs, val in symbols:\n            unknown = [i for i in nbrs if src[i] is None]\n            if len(unknown) != 1:\n                continue\n            x = val\n            for i in nbrs:\n                if src[i] is not None:\n                    x ^= src[i]\n            src[unknown[0]] = x\n            changed = True\n    return src\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\nfixtures = [[['regression [[[[0, 1, 2], 12], [[2], 186], [[0, 2], 237]], 3]', [[[[0, 1, 2], 12], [[2], 186], [[0, 2], 237]], 3], [87, 225, 186]], ['regression [[[[2, 4], 237], [[0, 1, 3], 192], [[1, 3], 57], [[2], 28], [[1, 2,...', [[[[2, 4], 237], [[0, 1, 3], 192], [[1, 3], 57], [[2], 28], [[1, 2, 4], 217]], 5], [249, 52, 28, 13, 241]], ['partial-repair [[[[0, 1, 5], 222], [[4], 144], [[2, 5, 6], 16], [[1, 2, 4], 104], ...', [[[[0, 1, 5], 222], [[4], 144], [[2, 5, 6], 16], [[1, 2, 4], 104], [[3], 251], [[0, 2, 4], 177], [[6], 49], [[0, 6], 54]], 7], [7, 222, 38, 251, 144, 7, 49]], ['control [[[[1], 110], [[3], 40], [[0, 2, 3], 64], [[2, 3], 29], [[0], 93]], 4]', [[[[1], 110], [[3], 40], [[0, 2, 3], 64], [[2, 3], 29], [[0], 93]], 4], [93, 110, 53, 40]], ['control [[[[0, 4], 212], [[0], 114], [[0, 4], 212], [[0, 1, 4], 93], [[0], ...', [[[[0, 4], 212], [[0], 114], [[0, 4], 212], [[0, 1, 4], 93], [[0], 114]], 5], [114, 137, None, None, 166]], ['control [[[[0, 1], 1]], 2]', [[[[0, 1], 1]], 2], [None, None]], ['control [[], 2]', [[], 2], [None, None]], ['control [[[[0], 9], [[0, 1, 2], 1], [[1, 2], 3]], 3]', [[[[0], 9], [[0, 1, 2], 1], [[1, 2], 3]], 3], [9, None, None]]], [['regression [[[[3], 151], [[1, 3], 253], [[0, 2], 4], [[1], 106], [[0, 1], 14]]...', [[[[3], 151], [[1, 3], 253], [[0, 2], 4], [[1], 106], [[0, 1], 14]], 4], [100, 106, 96, 151]], ['regression [[[[0], 17], [[3, 4], 215], [[0, 3], 193], [[1, 3, 4], 154], [[1, 4...', [[[[0], 17], [[3, 4], 215], [[0, 3], 193], [[1, 3, 4], 154], [[1, 4], 74], [[4], 7]], 5], [17, 77, None, 208, 7]], ['partial-repair [[[[0, 1, 5], 222], [[4], 144], [[2, 5, 6], 16], [[1, 2, 4], 104], ...', [[[[0, 1, 5], 222], [[4], 144], [[2, 5, 6], 16], [[1, 2, 4], 104], [[3], 251], [[0, 2, 4], 177], [[6], 49], [[0, 6], 54]], 7], [7, 222, 38, 251, 144, 7, 49]], ['partial-repair [[[[2, 4], 237], [[0, 1, 3], 192], [[1, 3], 57], [[2], 28], [[1, 2,...', [[[[2, 4], 237], [[0, 1, 3], 192], [[1, 3], 57], [[2], 28], [[1, 2, 4], 217]], 5], [249, 52, 28, 13, 241]], ['control [[[[1], 110], [[3], 40], [[0, 2, 3], 64], [[2, 3], 29], [[0], 93]], 4]', [[[[1], 110], [[3], 40], [[0, 2, 3], 64], [[2, 3], 29], [[0], 93]], 4], [93, 110, 53, 40]], ['control [[[[0, 4], 212], [[0], 114], [[0, 4], 212], [[0, 1, 4], 93], [[0], ...', [[[[0, 4], 212], [[0], 114], [[0, 4], 212], [[0, 1, 4], 93], [[0], 114]], 5], [114, 137, None, None, 166]], ['control [[[[0, 1], 1]], 2]', [[[[0, 1], 1]], 2], [None, None]], ['control [[], 2]', [[], 2], [None, None]]], [['regression [[[[0, 1], 249], [[0, 1], 249], [[0, 1, 2], 202], [[0], 87]], 3]', [[[[0, 1], 249], [[0, 1], 249], [[0, 1, 2], 202], [[0], 87]], 3], [87, 174, 51]], ['regression [[[[0, 1, 5], 222], [[4], 144], [[2, 5, 6], 16], [[1, 2, 4], 104], ...', [[[[0, 1, 5], 222], [[4], 144], [[2, 5, 6], 16], [[1, 2, 4], 104], [[3], 251], [[0, 2, 4], 177], [[6], 49], [[0, 6], 54]], 7], [7, 222, 38, 251, 144, 7, 49]], ['partial-repair [[[[2, 4], 237], [[0, 1, 3], 192], [[1, 3], 57], [[2], 28], [[1, 2,...', [[[[2, 4], 237], [[0, 1, 3], 192], [[1, 3], 57], [[2], 28], [[1, 2, 4], 217]], 5], [249, 52, 28, 13, 241]], ['control [[[[1], 110], [[3], 40], [[0, 2, 3], 64], [[2, 3], 29], [[0], 93]], 4]', [[[[1], 110], [[3], 40], [[0, 2, 3], 64], [[2, 3], 29], [[0], 93]], 4], [93, 110, 53, 40]], ['control [[[[0, 4], 212], [[0], 114], [[0, 4], 212], [[0, 1, 4], 93], [[0], ...', [[[[0, 4], 212], [[0], 114], [[0, 4], 212], [[0, 1, 4], 93], [[0], 114]], 5], [114, 137, None, None, 166]], ['control [[[[0, 1], 1]], 2]', [[[[0, 1], 1]], 2], [None, None]], ['control [[], 2]', [[], 2], [None, None]], ['control [[[[0], 9], [[0, 1, 2], 1], [[1, 2], 3]], 3]', [[[[0], 9], [[0, 1, 2], 1], [[1, 2], 3]], 3], [9, None, None]]], [['regression [[[[1, 2], 6], [[0, 1], 3], [[2], 4]], 3]', [[[[1, 2], 6], [[0, 1], 3], [[2], 4]], 3], [1, 2, 4]], ['regression [[[[0, 1, 2], 12], [[2], 186], [[0, 2], 237]], 3]', [[[[0, 1, 2], 12], [[2], 186], [[0, 2], 237]], 3], [87, 225, 186]], ['partial-repair [[[[0, 1, 5], 222], [[4], 144], [[2, 5, 6], 16], [[1, 2, 4], 104], ...', [[[[0, 1, 5], 222], [[4], 144], [[2, 5, 6], 16], [[1, 2, 4], 104], [[3], 251], [[0, 2, 4], 177], [[6], 49], [[0, 6], 54]], 7], [7, 222, 38, 251, 144, 7, 49]], ['partial-repair [[[[2, 4], 237], [[0, 1, 3], 192], [[1, 3], 57], [[2], 28], [[1, 2,...', [[[[2, 4], 237], [[0, 1, 3], 192], [[1, 3], 57], [[2], 28], [[1, 2, 4], 217]], 5], [249, 52, 28, 13, 241]], ['control [[[[1], 110], [[3], 40], [[0, 2, 3], 64], [[2, 3], 29], [[0], 93]], 4]', [[[[1], 110], [[3], 40], [[0, 2, 3], 64], [[2, 3], 29], [[0], 93]], 4], [93, 110, 53, 40]], ['control [[[[0, 4], 212], [[0], 114], [[0, 4], 212], [[0, 1, 4], 93], [[0], ...', [[[[0, 4], 212], [[0], 114], [[0, 4], 212], [[0, 1, 4], 93], [[0], 114]], 5], [114, 137, None, None, 166]], ['control [[[[0, 1], 1]], 2]', [[[[0, 1], 1]], 2], [None, None]], ['control [[], 2]', [[], 2], [None, None]]], [['regression [[[[0, 1, 5], 194], [[0, 4], 132], [[0, 1], 133], [[3, 5], 70], [[0...', [[[[0, 1, 5], 194], [[0, 4], 132], [[0, 1], 133], [[3, 5], 70], [[0, 2, 4], 67], [[1, 2, 4], 198], [[0], 59], [[5], 71]], 6], [59, 190, 199, 1, 191, 71]], ['regression [[[[3], 151], [[1, 3], 253], [[0, 2], 4], [[1], 106], [[0, 1], 14]]...', [[[[3], 151], [[1, 3], 253], [[0, 2], 4], [[1], 106], [[0, 1], 14]], 4], [100, 106, 96, 151]], ['partial-repair [[[[2, 4], 237], [[0, 1, 3], 192], [[1, 3], 57], [[2], 28], [[1, 2,...', [[[[2, 4], 237], [[0, 1, 3], 192], [[1, 3], 57], [[2], 28], [[1, 2, 4], 217]], 5], [249, 52, 28, 13, 241]], ['partial-repair [[[[0, 1, 5], 222], [[4], 144], [[2, 5, 6], 16], [[1, 2, 4], 104], ...', [[[[0, 1, 5], 222], [[4], 144], [[2, 5, 6], 16], [[1, 2, 4], 104], [[3], 251], [[0, 2, 4], 177], [[6], 49], [[0, 6], 54]], 7], [7, 222, 38, 251, 144, 7, 49]], ['control [[[[1], 110], [[3], 40], [[0, 2, 3], 64], [[2, 3], 29], [[0], 93]], 4]', [[[[1], 110], [[3], 40], [[0, 2, 3], 64], [[2, 3], 29], [[0], 93]], 4], [93, 110, 53, 40]], ['control [[[[0, 4], 212], [[0], 114], [[0, 4], 212], [[0, 1, 4], 93], [[0], ...', [[[[0, 4], 212], [[0], 114], [[0, 4], 212], [[0, 1, 4], 93], [[0], 114]], 5], [114, 137, None, None, 166]], ['control [[[[0, 1], 1]], 2]', [[[[0, 1], 1]], 2], [None, None]], ['control [[], 2]', [[], 2], [None, None]]]]\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"},"fixed":{"sha256":"f375c409d2f57a320e23b7593811aaa780cabb710ca0fa6bdca12e5500777c12","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(symbols, k):\n    src = [None] * k\n    changed = True\n    while changed:\n        changed = False\n        for nbrs, val in symbols:\n            unknown = [i for i in nbrs if src[i] is None]\n            if len(unknown) != 1:\n                continue\n            x = val\n            for i in nbrs:\n                if src[i] is not None:\n                    x ^= src[i]\n            src[unknown[0]] = x\n            changed = True\n    return src\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\nfixtures = [[['regression [[[[0, 1, 2], 12], [[2], 186], [[0, 2], 237]], 3]', [[[[0, 1, 2], 12], [[2], 186], [[0, 2], 237]], 3], [87, 225, 186]], ['regression [[[[2, 4], 237], [[0, 1, 3], 192], [[1, 3], 57], [[2], 28], [[1, 2,...', [[[[2, 4], 237], [[0, 1, 3], 192], [[1, 3], 57], [[2], 28], [[1, 2, 4], 217]], 5], [249, 52, 28, 13, 241]], ['partial-repair [[[[0, 1, 5], 222], [[4], 144], [[2, 5, 6], 16], [[1, 2, 4], 104], ...', [[[[0, 1, 5], 222], [[4], 144], [[2, 5, 6], 16], [[1, 2, 4], 104], [[3], 251], [[0, 2, 4], 177], [[6], 49], [[0, 6], 54]], 7], [7, 222, 38, 251, 144, 7, 49]], ['control [[[[1], 110], [[3], 40], [[0, 2, 3], 64], [[2, 3], 29], [[0], 93]], 4]', [[[[1], 110], [[3], 40], [[0, 2, 3], 64], [[2, 3], 29], [[0], 93]], 4], [93, 110, 53, 40]], ['control [[[[0, 4], 212], [[0], 114], [[0, 4], 212], [[0, 1, 4], 93], [[0], ...', [[[[0, 4], 212], [[0], 114], [[0, 4], 212], [[0, 1, 4], 93], [[0], 114]], 5], [114, 137, None, None, 166]], ['control [[[[0, 1], 1]], 2]', [[[[0, 1], 1]], 2], [None, None]], ['control [[], 2]', [[], 2], [None, None]], ['control [[[[0], 9], [[0, 1, 2], 1], [[1, 2], 3]], 3]', [[[[0], 9], [[0, 1, 2], 1], [[1, 2], 3]], 3], [9, None, None]]], [['regression [[[[3], 151], [[1, 3], 253], [[0, 2], 4], [[1], 106], [[0, 1], 14]]...', [[[[3], 151], [[1, 3], 253], [[0, 2], 4], [[1], 106], [[0, 1], 14]], 4], [100, 106, 96, 151]], ['regression [[[[0], 17], [[3, 4], 215], [[0, 3], 193], [[1, 3, 4], 154], [[1, 4...', [[[[0], 17], [[3, 4], 215], [[0, 3], 193], [[1, 3, 4], 154], [[1, 4], 74], [[4], 7]], 5], [17, 77, None, 208, 7]], ['partial-repair [[[[0, 1, 5], 222], [[4], 144], [[2, 5, 6], 16], [[1, 2, 4], 104], ...', [[[[0, 1, 5], 222], [[4], 144], [[2, 5, 6], 16], [[1, 2, 4], 104], [[3], 251], [[0, 2, 4], 177], [[6], 49], [[0, 6], 54]], 7], [7, 222, 38, 251, 144, 7, 49]], ['partial-repair [[[[2, 4], 237], [[0, 1, 3], 192], [[1, 3], 57], [[2], 28], [[1, 2,...', [[[[2, 4], 237], [[0, 1, 3], 192], [[1, 3], 57], [[2], 28], [[1, 2, 4], 217]], 5], [249, 52, 28, 13, 241]], ['control [[[[1], 110], [[3], 40], [[0, 2, 3], 64], [[2, 3], 29], [[0], 93]], 4]', [[[[1], 110], [[3], 40], [[0, 2, 3], 64], [[2, 3], 29], [[0], 93]], 4], [93, 110, 53, 40]], ['control [[[[0, 4], 212], [[0], 114], [[0, 4], 212], [[0, 1, 4], 93], [[0], ...', [[[[0, 4], 212], [[0], 114], [[0, 4], 212], [[0, 1, 4], 93], [[0], 114]], 5], [114, 137, None, None, 166]], ['control [[[[0, 1], 1]], 2]', [[[[0, 1], 1]], 2], [None, None]], ['control [[], 2]', [[], 2], [None, None]]], [['regression [[[[0, 1], 249], [[0, 1], 249], [[0, 1, 2], 202], [[0], 87]], 3]', [[[[0, 1], 249], [[0, 1], 249], [[0, 1, 2], 202], [[0], 87]], 3], [87, 174, 51]], ['regression [[[[0, 1, 5], 222], [[4], 144], [[2, 5, 6], 16], [[1, 2, 4], 104], ...', [[[[0, 1, 5], 222], [[4], 144], [[2, 5, 6], 16], [[1, 2, 4], 104], [[3], 251], [[0, 2, 4], 177], [[6], 49], [[0, 6], 54]], 7], [7, 222, 38, 251, 144, 7, 49]], ['partial-repair [[[[2, 4], 237], [[0, 1, 3], 192], [[1, 3], 57], [[2], 28], [[1, 2,...', [[[[2, 4], 237], [[0, 1, 3], 192], [[1, 3], 57], [[2], 28], [[1, 2, 4], 217]], 5], [249, 52, 28, 13, 241]], ['control [[[[1], 110], [[3], 40], [[0, 2, 3], 64], [[2, 3], 29], [[0], 93]], 4]', [[[[1], 110], [[3], 40], [[0, 2, 3], 64], [[2, 3], 29], [[0], 93]], 4], [93, 110, 53, 40]], ['control [[[[0, 4], 212], [[0], 114], [[0, 4], 212], [[0, 1, 4], 93], [[0], ...', [[[[0, 4], 212], [[0], 114], [[0, 4], 212], [[0, 1, 4], 93], [[0], 114]], 5], [114, 137, None, None, 166]], ['control [[[[0, 1], 1]], 2]', [[[[0, 1], 1]], 2], [None, None]], ['control [[], 2]', [[], 2], [None, None]], ['control [[[[0], 9], [[0, 1, 2], 1], [[1, 2], 3]], 3]', [[[[0], 9], [[0, 1, 2], 1], [[1, 2], 3]], 3], [9, None, None]]], [['regression [[[[1, 2], 6], [[0, 1], 3], [[2], 4]], 3]', [[[[1, 2], 6], [[0, 1], 3], [[2], 4]], 3], [1, 2, 4]], ['regression [[[[0, 1, 2], 12], [[2], 186], [[0, 2], 237]], 3]', [[[[0, 1, 2], 12], [[2], 186], [[0, 2], 237]], 3], [87, 225, 186]], ['partial-repair [[[[0, 1, 5], 222], [[4], 144], [[2, 5, 6], 16], [[1, 2, 4], 104], ...', [[[[0, 1, 5], 222], [[4], 144], [[2, 5, 6], 16], [[1, 2, 4], 104], [[3], 251], [[0, 2, 4], 177], [[6], 49], [[0, 6], 54]], 7], [7, 222, 38, 251, 144, 7, 49]], ['partial-repair [[[[2, 4], 237], [[0, 1, 3], 192], [[1, 3], 57], [[2], 28], [[1, 2,...', [[[[2, 4], 237], [[0, 1, 3], 192], [[1, 3], 57], [[2], 28], [[1, 2, 4], 217]], 5], [249, 52, 28, 13, 241]], ['control [[[[1], 110], [[3], 40], [[0, 2, 3], 64], [[2, 3], 29], [[0], 93]], 4]', [[[[1], 110], [[3], 40], [[0, 2, 3], 64], [[2, 3], 29], [[0], 93]], 4], [93, 110, 53, 40]], ['control [[[[0, 4], 212], [[0], 114], [[0, 4], 212], [[0, 1, 4], 93], [[0], ...', [[[[0, 4], 212], [[0], 114], [[0, 4], 212], [[0, 1, 4], 93], [[0], 114]], 5], [114, 137, None, None, 166]], ['control [[[[0, 1], 1]], 2]', [[[[0, 1], 1]], 2], [None, None]], ['control [[], 2]', [[], 2], [None, None]]], [['regression [[[[0, 1, 5], 194], [[0, 4], 132], [[0, 1], 133], [[3, 5], 70], [[0...', [[[[0, 1, 5], 194], [[0, 4], 132], [[0, 1], 133], [[3, 5], 70], [[0, 2, 4], 67], [[1, 2, 4], 198], [[0], 59], [[5], 71]], 6], [59, 190, 199, 1, 191, 71]], ['regression [[[[3], 151], [[1, 3], 253], [[0, 2], 4], [[1], 106], [[0, 1], 14]]...', [[[[3], 151], [[1, 3], 253], [[0, 2], 4], [[1], 106], [[0, 1], 14]], 4], [100, 106, 96, 151]], ['partial-repair [[[[2, 4], 237], [[0, 1, 3], 192], [[1, 3], 57], [[2], 28], [[1, 2,...', [[[[2, 4], 237], [[0, 1, 3], 192], [[1, 3], 57], [[2], 28], [[1, 2, 4], 217]], 5], [249, 52, 28, 13, 241]], ['partial-repair [[[[0, 1, 5], 222], [[4], 144], [[2, 5, 6], 16], [[1, 2, 4], 104], ...', [[[[0, 1, 5], 222], [[4], 144], [[2, 5, 6], 16], [[1, 2, 4], 104], [[3], 251], [[0, 2, 4], 177], [[6], 49], [[0, 6], 54]], 7], [7, 222, 38, 251, 144, 7, 49]], ['control [[[[1], 110], [[3], 40], [[0, 2, 3], 64], [[2, 3], 29], [[0], 93]], 4]', [[[[1], 110], [[3], 40], [[0, 2, 3], 64], [[2, 3], 29], [[0], 93]], 4], [93, 110, 53, 40]], ['control [[[[0, 4], 212], [[0], 114], [[0, 4], 212], [[0, 1, 4], 93], [[0], ...', [[[[0, 4], 212], [[0], 114], [[0, 4], 212], [[0, 1, 4], 93], [[0], 114]], 5], [114, 137, None, None, 166]], ['control [[[[0, 1], 1]], 2]', [[[[0, 1], 1]], 2], [None, None]], ['control [[], 2]', [[], 2], [None, None]]]]\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-lt-peeling-repeat-passes","generated_at":"2026-09-29T14:48:36.522872+00:00","license":"CC0-1.0","python":"3.12.14","seed":1,"split":"open-access"},"relevance":"Broadcast and storage systems use fountain codes; peeling must continue as long as new degree-one symbols appear.","repair":"Loop until a whole pass resolves nothing.","root_cause":"The decoder makes a single pass over the symbols instead of repeating until no progress.","sha256":"86134c28c1e741115747106fb59c857549b653253a67e8e8c5de2e8268f50428","title":"LT peeling stops after one pass · case 01","variant":1,"variant_policy":"Five numbered records share a model and may reuse boundary fixtures.","verification":{"attempt":{"elapsed_ms":39.222,"exit_code":1,"observations":[{"actual":[87,225,186],"check":"regression [[[[0, 1, 2], 12], [[2], 186], [[0, 2], 237]], 3]","expected":[87,225,186],"passed":true},{"actual":[null,52,28,null,241],"check":"regression [[[[2, 4], 237], [[0, 1, 3], 192], [[1, 3], 57], [[2], 28], [[1, 2,...","expected":[249,52,28,13,241],"passed":false},{"actual":[7,null,38,251,144,null,49],"check":"partial-repair [[[[0, 1, 5], 222], [[4], 144], [[2, 5, 6], 16], [[1, 2, 4], 104], ...","expected":[7,222,38,251,144,7,49],"passed":false},{"actual":[93,110,53,40],"check":"control [[[[1], 110], [[3], 40], [[0, 2, 3], 64], [[2, 3], 29], [[0], 93]], 4]","expected":[93,110,53,40],"passed":true},{"actual":[114,137,null,null,166],"check":"control [[[[0, 4], 212], [[0], 114], [[0, 4], 212], [[0, 1, 4], 93], [[0], ...","expected":[114,137,null,null,166],"passed":true},{"actual":[null,null],"check":"control [[[[0, 1], 1]], 2]","expected":[null,null],"passed":true},{"actual":[null,null],"check":"control [[], 2]","expected":[null,null],"passed":true},{"actual":[9,null,null],"check":"control [[[[0], 9], [[0, 1, 2], 1], [[1, 2], 3]], 3]","expected":[9,null,null],"passed":true}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"regression [[[[0, 1, 2], 12], [[2], 186], [[0, 2], 237]], 3]\", \"actual\": [87, 225, 186], \"expected\": [87, 225, 186], \"passed\": true}, {\"check\": \"regression [[[[2, 4], 237], [[0, 1, 3], 192], [[1, 3], 57], [[2], 28], [[1, 2,...\", \"actual\": [null, 52, 28, null, 241], \"expected\": [249, 52, 28, 13, 241], \"passed\": false}, {\"check\": \"partial-repair [[[[0, 1, 5], 222], [[4], 144], [[2, 5, 6], 16], [[1, 2, 4], 104], ...\", \"actual\": [7, null, 38, 251, 144, null, 49], \"expected\": [7, 222, 38, 251, 144, 7, 49], \"passed\": false}, {\"check\": \"control [[[[1], 110], [[3], 40], [[0, 2, 3], 64], [[2, 3], 29], [[0], 93]], 4]\", \"actual\": [93, 110, 53, 40], \"expected\": [93, 110, 53, 40], \"passed\": true}, {\"check\": \"control [[[[0, 4], 212], [[0], 114], [[0, 4], 212], [[0, 1, 4], 93], [[0], ...\", \"actual\": [114, 137, null, null, 166], \"expected\": [114, 137, null, null, 166], \"passed\": true}, {\"check\": \"control [[[[0, 1], 1]], 2]\", \"actual\": [null, null], \"expected\": [null, null], \"passed\": true}, {\"check\": \"control [[], 2]\", \"actual\": [null, null], \"expected\": [null, null], \"passed\": true}, {\"check\": \"control [[[[0], 9], [[0, 1, 2], 1], [[1, 2], 3]], 3]\", \"actual\": [9, null, null], \"expected\": [9, null, null], \"passed\": true}], \"passed\": false}\n"},"broken":{"elapsed_ms":39.405,"exit_code":1,"observations":[{"actual":[87,null,186],"check":"regression [[[[0, 1, 2], 12], [[2], 186], [[0, 2], 237]], 3]","expected":[87,225,186],"passed":false},{"actual":[null,null,28,null,null],"check":"regression [[[[2, 4], 237], [[0, 1, 3], 192], [[1, 3], 57], [[2], 28], [[1, 2,...","expected":[249,52,28,13,241],"passed":false},{"actual":[7,null,null,251,144,null,49],"check":"partial-repair [[[[0, 1, 5], 222], [[4], 144], [[2, 5, 6], 16], [[1, 2, 4], 104], ...","expected":[7,222,38,251,144,7,49],"passed":false},{"actual":[93,110,53,40],"check":"control [[[[1], 110], [[3], 40], [[0, 2, 3], 64], [[2, 3], 29], [[0], 93]], 4]","expected":[93,110,53,40],"passed":true},{"actual":[114,137,null,null,166],"check":"control [[[[0, 4], 212], [[0], 114], [[0, 4], 212], [[0, 1, 4], 93], [[0], ...","expected":[114,137,null,null,166],"passed":true},{"actual":[null,null],"check":"control [[[[0, 1], 1]], 2]","expected":[null,null],"passed":true},{"actual":[null,null],"check":"control [[], 2]","expected":[null,null],"passed":true},{"actual":[9,null,null],"check":"control [[[[0], 9], [[0, 1, 2], 1], [[1, 2], 3]], 3]","expected":[9,null,null],"passed":true}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"regression [[[[0, 1, 2], 12], [[2], 186], [[0, 2], 237]], 3]\", \"actual\": [87, null, 186], \"expected\": [87, 225, 186], \"passed\": false}, {\"check\": \"regression [[[[2, 4], 237], [[0, 1, 3], 192], [[1, 3], 57], [[2], 28], [[1, 2,...\", \"actual\": [null, null, 28, null, null], \"expected\": [249, 52, 28, 13, 241], \"passed\": false}, {\"check\": \"partial-repair [[[[0, 1, 5], 222], [[4], 144], [[2, 5, 6], 16], [[1, 2, 4], 104], ...\", \"actual\": [7, null, null, 251, 144, null, 49], \"expected\": [7, 222, 38, 251, 144, 7, 49], \"passed\": false}, {\"check\": \"control [[[[1], 110], [[3], 40], [[0, 2, 3], 64], [[2, 3], 29], [[0], 93]], 4]\", \"actual\": [93, 110, 53, 40], \"expected\": [93, 110, 53, 40], \"passed\": true}, {\"check\": \"control [[[[0, 4], 212], [[0], 114], [[0, 4], 212], [[0, 1, 4], 93], [[0], ...\", \"actual\": [114, 137, null, null, 166], \"expected\": [114, 137, null, null, 166], \"passed\": true}, {\"check\": \"control [[[[0, 1], 1]], 2]\", \"actual\": [null, null], \"expected\": [null, null], \"passed\": true}, {\"check\": \"control [[], 2]\", \"actual\": [null, null], \"expected\": [null, null], \"passed\": true}, {\"check\": \"control [[[[0], 9], [[0, 1, 2], 1], [[1, 2], 3]], 3]\", \"actual\": [9, null, null], \"expected\": [9, null, null], \"passed\": true}], \"passed\": false}\n"},"fixed":{"elapsed_ms":38.697,"exit_code":0,"observations":[{"actual":[87,225,186],"check":"regression [[[[0, 1, 2], 12], [[2], 186], [[0, 2], 237]], 3]","expected":[87,225,186],"passed":true},{"actual":[249,52,28,13,241],"check":"regression [[[[2, 4], 237], [[0, 1, 3], 192], [[1, 3], 57], [[2], 28], [[1, 2,...","expected":[249,52,28,13,241],"passed":true},{"actual":[7,222,38,251,144,7,49],"check":"partial-repair [[[[0, 1, 5], 222], [[4], 144], [[2, 5, 6], 16], [[1, 2, 4], 104], ...","expected":[7,222,38,251,144,7,49],"passed":true},{"actual":[93,110,53,40],"check":"control [[[[1], 110], [[3], 40], [[0, 2, 3], 64], [[2, 3], 29], [[0], 93]], 4]","expected":[93,110,53,40],"passed":true},{"actual":[114,137,null,null,166],"check":"control [[[[0, 4], 212], [[0], 114], [[0, 4], 212], [[0, 1, 4], 93], [[0], ...","expected":[114,137,null,null,166],"passed":true},{"actual":[null,null],"check":"control [[[[0, 1], 1]], 2]","expected":[null,null],"passed":true},{"actual":[null,null],"check":"control [[], 2]","expected":[null,null],"passed":true},{"actual":[9,null,null],"check":"control [[[[0], 9], [[0, 1, 2], 1], [[1, 2], 3]], 3]","expected":[9,null,null],"passed":true}],"passed":true,"stderr":"","stdout":"{\"observations\": [{\"check\": \"regression [[[[0, 1, 2], 12], [[2], 186], [[0, 2], 237]], 3]\", \"actual\": [87, 225, 186], \"expected\": [87, 225, 186], \"passed\": true}, {\"check\": \"regression [[[[2, 4], 237], [[0, 1, 3], 192], [[1, 3], 57], [[2], 28], [[1, 2,...\", \"actual\": [249, 52, 28, 13, 241], \"expected\": [249, 52, 28, 13, 241], \"passed\": true}, {\"check\": \"partial-repair [[[[0, 1, 5], 222], [[4], 144], [[2, 5, 6], 16], [[1, 2, 4], 104], ...\", \"actual\": [7, 222, 38, 251, 144, 7, 49], \"expected\": [7, 222, 38, 251, 144, 7, 49], \"passed\": true}, {\"check\": \"control [[[[1], 110], [[3], 40], [[0, 2, 3], 64], [[2, 3], 29], [[0], 93]], 4]\", \"actual\": [93, 110, 53, 40], \"expected\": [93, 110, 53, 40], \"passed\": true}, {\"check\": \"control [[[[0, 4], 212], [[0], 114], [[0, 4], 212], [[0, 1, 4], 93], [[0], ...\", \"actual\": [114, 137, null, null, 166], \"expected\": [114, 137, null, null, 166], \"passed\": true}, {\"check\": \"control [[[[0, 1], 1]], 2]\", \"actual\": [null, null], \"expected\": [null, null], \"passed\": true}, {\"check\": \"control [[], 2]\", \"actual\": [null, null], \"expected\": [null, null], \"passed\": true}, {\"check\": \"control [[[[0], 9], [[0, 1, 2], 1], [[1, 2], 3]], 3]\", \"actual\": [9, null, null], \"expected\": [9, null, null], \"passed\": true}], \"passed\": true}\n"}},"verified":true,"visibility":"public"}