{"abstract":"0/0 silently yields 0.","category":"Error-correcting codes","checks":8,"contract":"Table-driven GF(2^8) (polynomial 0x11D, generator 2) operations: \"div\" a/b (None for b = 0, 0 for a = 0 otherwise), \"inv\" 1/a (None for 0) and \"pow\" a^b for integer b >= 0 (0^0 = 1, 0^b = 0). EXP is extended to 510 entries so sums of logarithms need no reduction. Unknown ops return None.","evaluation_group":"w2-error_correcting_codes-gf256-log-tables","failed_approach":"Returning None for every zero dividend breaks 0/b = 0.","family":"w2-error_correcting_codes-gf256-log-tables-division-precedence","id":"FA-71986","implementations":{"attempt":{"sha256":"694c1fdcf996f6b2d48d737e7c292bbc96978ed7dff76dafd462a01fe69608d7","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(op, a, b):\n    EXP = [0] * 510\n    LOG = [0] * 256\n    x = 1\n    for i in range(255):\n        EXP[i] = x\n        LOG[x] = i\n        x <<= 1\n        if x & 0x100:\n            x ^= 0x11D\n    for i in range(255, 510):\n        EXP[i] = EXP[i - 255]\n    if op == 'div':\n        if b == 0:\n            return None\n        if a == 0:\n            return None\n        return EXP[(LOG[a] - LOG[b]) % 255]\n    if op == 'inv':\n        if a == 0:\n            return None\n        return EXP[255 - LOG[a]]\n    if op == 'pow':\n        if a == 0:\n            return 0 if b > 0 else 1\n        return EXP[(LOG[a] * b) % 255]\n    return None\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\nfixtures = [[['regression [\"div\", 0, 0]', ['div', 0, 0], None], ['partial-repair [\"div\", 0, 7]', ['div', 0, 7], 0], ['control [\"div\", 1, 2]', ['div', 1, 2], 142], ['control [\"div\", 70, 40]', ['div', 70, 40], 108], ['control [\"div\", 57, 11]', ['div', 57, 11], 179], ['control [\"div\", 226, 96]', ['div', 226, 96], 190], ['control [\"div\", 238, 211]', ['div', 238, 211], 155], ['control [\"div\", 48, 99]', ['div', 48, 99], 118]], [['regression [\"div\", 0, 0]', ['div', 0, 0], None], ['partial-repair [\"div\", 0, 7]', ['div', 0, 7], 0], ['control [\"div\", 48, 99]', ['div', 48, 99], 118], ['control [\"div\", 65, 255]', ['div', 65, 255], 76], ['control [\"div\", 73, 232]', ['div', 73, 232], 21], ['control [\"div\", 152, 74]', ['div', 152, 74], 235], ['control [\"div\", 255, 217]', ['div', 255, 217], 240], ['control [\"div\", 82, 3]', ['div', 82, 3], 197]], [['regression [\"div\", 0, 0]', ['div', 0, 0], None], ['partial-repair [\"div\", 0, 7]', ['div', 0, 7], 0], ['control [\"div\", 82, 3]', ['div', 82, 3], 197], ['control [\"inv\", 204, 0]', ['inv', 204, 0], 133], ['control [\"inv\", 143, 0]', ['inv', 143, 0], 245], ['control [\"inv\", 212, 0]', ['inv', 212, 0], 249], ['control [\"inv\", 188, 0]', ['inv', 188, 0], 149], ['control [\"inv\", 186, 0]', ['inv', 186, 0], 7]], [['regression [\"div\", 0, 0]', ['div', 0, 0], None], ['partial-repair [\"div\", 0, 7]', ['div', 0, 7], 0], ['control [\"inv\", 186, 0]', ['inv', 186, 0], 7], ['control [\"inv\", 215, 0]', ['inv', 215, 0], 214], ['control [\"pow\", 155, 166]', ['pow', 155, 166], 194], ['control [\"pow\", 28, 117]', ['pow', 28, 117], 100], ['control [\"pow\", 149, 57]', ['pow', 149, 57], 39], ['control [\"pow\", 63, 61]', ['pow', 63, 61], 49]], [['regression [\"div\", 0, 0]', ['div', 0, 0], None], ['partial-repair [\"div\", 0, 7]', ['div', 0, 7], 0], ['control [\"pow\", 63, 61]', ['pow', 63, 61], 49], ['control [\"pow\", 9, 596]', ['pow', 9, 596], 40], ['control [\"pow\", 55, 427]', ['pow', 55, 427], 28], ['control [\"div\", 7, 0]', ['div', 7, 0], None], ['control [\"div\", 1, 1]', ['div', 1, 1], 1], ['control [\"inv\", 1, 0]', ['inv', 1, 0], 1]]]\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":"7d42b95a5efab935262058aeded111ed5af75721203b6032ab4ff97e3e51d983","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(op, a, b):\n    EXP = [0] * 510\n    LOG = [0] * 256\n    x = 1\n    for i in range(255):\n        EXP[i] = x\n        LOG[x] = i\n        x <<= 1\n        if x & 0x100:\n            x ^= 0x11D\n    for i in range(255, 510):\n        EXP[i] = EXP[i - 255]\n    if op == 'div':\n        if a == 0:\n            return 0\n        if b == 0:\n            return None\n        return EXP[(LOG[a] - LOG[b]) % 255]\n    if op == 'inv':\n        if a == 0:\n            return None\n        return EXP[255 - LOG[a]]\n    if op == 'pow':\n        if a == 0:\n            return 0 if b > 0 else 1\n        return EXP[(LOG[a] * b) % 255]\n    return None\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\nfixtures = [[['regression [\"div\", 0, 0]', ['div', 0, 0], None], ['partial-repair [\"div\", 0, 7]', ['div', 0, 7], 0], ['control [\"div\", 1, 2]', ['div', 1, 2], 142], ['control [\"div\", 70, 40]', ['div', 70, 40], 108], ['control [\"div\", 57, 11]', ['div', 57, 11], 179], ['control [\"div\", 226, 96]', ['div', 226, 96], 190], ['control [\"div\", 238, 211]', ['div', 238, 211], 155], ['control [\"div\", 48, 99]', ['div', 48, 99], 118]], [['regression [\"div\", 0, 0]', ['div', 0, 0], None], ['partial-repair [\"div\", 0, 7]', ['div', 0, 7], 0], ['control [\"div\", 48, 99]', ['div', 48, 99], 118], ['control [\"div\", 65, 255]', ['div', 65, 255], 76], ['control [\"div\", 73, 232]', ['div', 73, 232], 21], ['control [\"div\", 152, 74]', ['div', 152, 74], 235], ['control [\"div\", 255, 217]', ['div', 255, 217], 240], ['control [\"div\", 82, 3]', ['div', 82, 3], 197]], [['regression [\"div\", 0, 0]', ['div', 0, 0], None], ['partial-repair [\"div\", 0, 7]', ['div', 0, 7], 0], ['control [\"div\", 82, 3]', ['div', 82, 3], 197], ['control [\"inv\", 204, 0]', ['inv', 204, 0], 133], ['control [\"inv\", 143, 0]', ['inv', 143, 0], 245], ['control [\"inv\", 212, 0]', ['inv', 212, 0], 249], ['control [\"inv\", 188, 0]', ['inv', 188, 0], 149], ['control [\"inv\", 186, 0]', ['inv', 186, 0], 7]], [['regression [\"div\", 0, 0]', ['div', 0, 0], None], ['partial-repair [\"div\", 0, 7]', ['div', 0, 7], 0], ['control [\"inv\", 186, 0]', ['inv', 186, 0], 7], ['control [\"inv\", 215, 0]', ['inv', 215, 0], 214], ['control [\"pow\", 155, 166]', ['pow', 155, 166], 194], ['control [\"pow\", 28, 117]', ['pow', 28, 117], 100], ['control [\"pow\", 149, 57]', ['pow', 149, 57], 39], ['control [\"pow\", 63, 61]', ['pow', 63, 61], 49]], [['regression [\"div\", 0, 0]', ['div', 0, 0], None], ['partial-repair [\"div\", 0, 7]', ['div', 0, 7], 0], ['control [\"pow\", 63, 61]', ['pow', 63, 61], 49], ['control [\"pow\", 9, 596]', ['pow', 9, 596], 40], ['control [\"pow\", 55, 427]', ['pow', 55, 427], 28], ['control [\"div\", 7, 0]', ['div', 7, 0], None], ['control [\"div\", 1, 1]', ['div', 1, 1], 1], ['control [\"inv\", 1, 0]', ['inv', 1, 0], 1]]]\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":"427e05369247d89792c13e53a6a7d6efbe521cd4a0d6849345bba38c10c69a5c","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(op, a, b):\n    EXP = [0] * 510\n    LOG = [0] * 256\n    x = 1\n    for i in range(255):\n        EXP[i] = x\n        LOG[x] = i\n        x <<= 1\n        if x & 0x100:\n            x ^= 0x11D\n    for i in range(255, 510):\n        EXP[i] = EXP[i - 255]\n    if op == 'div':\n        if b == 0:\n            return None\n        if a == 0:\n            return 0\n        return EXP[(LOG[a] - LOG[b]) % 255]\n    if op == 'inv':\n        if a == 0:\n            return None\n        return EXP[255 - LOG[a]]\n    if op == 'pow':\n        if a == 0:\n            return 0 if b > 0 else 1\n        return EXP[(LOG[a] * b) % 255]\n    return None\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\nfixtures = [[['regression [\"div\", 0, 0]', ['div', 0, 0], None], ['partial-repair [\"div\", 0, 7]', ['div', 0, 7], 0], ['control [\"div\", 1, 2]', ['div', 1, 2], 142], ['control [\"div\", 70, 40]', ['div', 70, 40], 108], ['control [\"div\", 57, 11]', ['div', 57, 11], 179], ['control [\"div\", 226, 96]', ['div', 226, 96], 190], ['control [\"div\", 238, 211]', ['div', 238, 211], 155], ['control [\"div\", 48, 99]', ['div', 48, 99], 118]], [['regression [\"div\", 0, 0]', ['div', 0, 0], None], ['partial-repair [\"div\", 0, 7]', ['div', 0, 7], 0], ['control [\"div\", 48, 99]', ['div', 48, 99], 118], ['control [\"div\", 65, 255]', ['div', 65, 255], 76], ['control [\"div\", 73, 232]', ['div', 73, 232], 21], ['control [\"div\", 152, 74]', ['div', 152, 74], 235], ['control [\"div\", 255, 217]', ['div', 255, 217], 240], ['control [\"div\", 82, 3]', ['div', 82, 3], 197]], [['regression [\"div\", 0, 0]', ['div', 0, 0], None], ['partial-repair [\"div\", 0, 7]', ['div', 0, 7], 0], ['control [\"div\", 82, 3]', ['div', 82, 3], 197], ['control [\"inv\", 204, 0]', ['inv', 204, 0], 133], ['control [\"inv\", 143, 0]', ['inv', 143, 0], 245], ['control [\"inv\", 212, 0]', ['inv', 212, 0], 249], ['control [\"inv\", 188, 0]', ['inv', 188, 0], 149], ['control [\"inv\", 186, 0]', ['inv', 186, 0], 7]], [['regression [\"div\", 0, 0]', ['div', 0, 0], None], ['partial-repair [\"div\", 0, 7]', ['div', 0, 7], 0], ['control [\"inv\", 186, 0]', ['inv', 186, 0], 7], ['control [\"inv\", 215, 0]', ['inv', 215, 0], 214], ['control [\"pow\", 155, 166]', ['pow', 155, 166], 194], ['control [\"pow\", 28, 117]', ['pow', 28, 117], 100], ['control [\"pow\", 149, 57]', ['pow', 149, 57], 39], ['control [\"pow\", 63, 61]', ['pow', 63, 61], 49]], [['regression [\"div\", 0, 0]', ['div', 0, 0], None], ['partial-repair [\"div\", 0, 7]', ['div', 0, 7], 0], ['control [\"pow\", 63, 61]', ['pow', 63, 61], 49], ['control [\"pow\", 9, 596]', ['pow', 9, 596], 40], ['control [\"pow\", 55, 427]', ['pow', 55, 427], 28], ['control [\"div\", 7, 0]', ['div', 7, 0], None], ['control [\"div\", 1, 1]', ['div', 1, 1], 1], ['control [\"inv\", 1, 0]', ['inv', 1, 0], 1]]]\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-gf256-log-tables-division-precedence","generated_at":"2026-09-29T14:48:34.511767+00:00","license":"CC0-1.0","python":"3.12.14","seed":1,"split":"open-access"},"relevance":"Reed-Solomon decoders spend most time in log/antilog table lookups for division and inversion.","repair":"Check b == 0 before returning 0 for a == 0.","root_cause":"The zero-dividend shortcut runs before the zero-divisor check.","sha256":"bde2e5a94a034ef720e5a178647a4ed5e55f3da5245d42553fe1866f6b126117","title":"GF(256) division by zero returns zero for a zero dividend · case 01","variant":1,"variant_policy":"Five numbered records share a model and may reuse boundary fixtures.","verification":{"attempt":{"elapsed_ms":39.561,"exit_code":1,"observations":[{"actual":null,"check":"regression [\"div\", 0, 0]","expected":null,"passed":true},{"actual":null,"check":"partial-repair [\"div\", 0, 7]","expected":0,"passed":false},{"actual":142,"check":"control [\"div\", 1, 2]","expected":142,"passed":true},{"actual":108,"check":"control [\"div\", 70, 40]","expected":108,"passed":true},{"actual":179,"check":"control [\"div\", 57, 11]","expected":179,"passed":true},{"actual":190,"check":"control [\"div\", 226, 96]","expected":190,"passed":true},{"actual":155,"check":"control [\"div\", 238, 211]","expected":155,"passed":true},{"actual":118,"check":"control [\"div\", 48, 99]","expected":118,"passed":true}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"regression [\\\"div\\\", 0, 0]\", \"actual\": null, \"expected\": null, \"passed\": true}, {\"check\": \"partial-repair [\\\"div\\\", 0, 7]\", \"actual\": null, \"expected\": 0, \"passed\": false}, {\"check\": \"control [\\\"div\\\", 1, 2]\", \"actual\": 142, \"expected\": 142, \"passed\": true}, {\"check\": \"control [\\\"div\\\", 70, 40]\", \"actual\": 108, \"expected\": 108, \"passed\": true}, {\"check\": \"control [\\\"div\\\", 57, 11]\", \"actual\": 179, \"expected\": 179, \"passed\": true}, {\"check\": \"control [\\\"div\\\", 226, 96]\", \"actual\": 190, \"expected\": 190, \"passed\": true}, {\"check\": \"control [\\\"div\\\", 238, 211]\", \"actual\": 155, \"expected\": 155, \"passed\": true}, {\"check\": \"control [\\\"div\\\", 48, 99]\", \"actual\": 118, \"expected\": 118, \"passed\": true}], \"passed\": false}\n"},"broken":{"elapsed_ms":38.425,"exit_code":1,"observations":[{"actual":0,"check":"regression [\"div\", 0, 0]","expected":null,"passed":false},{"actual":0,"check":"partial-repair [\"div\", 0, 7]","expected":0,"passed":true},{"actual":142,"check":"control [\"div\", 1, 2]","expected":142,"passed":true},{"actual":108,"check":"control [\"div\", 70, 40]","expected":108,"passed":true},{"actual":179,"check":"control [\"div\", 57, 11]","expected":179,"passed":true},{"actual":190,"check":"control [\"div\", 226, 96]","expected":190,"passed":true},{"actual":155,"check":"control [\"div\", 238, 211]","expected":155,"passed":true},{"actual":118,"check":"control [\"div\", 48, 99]","expected":118,"passed":true}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"regression [\\\"div\\\", 0, 0]\", \"actual\": 0, \"expected\": null, \"passed\": false}, {\"check\": \"partial-repair [\\\"div\\\", 0, 7]\", \"actual\": 0, \"expected\": 0, \"passed\": true}, {\"check\": \"control [\\\"div\\\", 1, 2]\", \"actual\": 142, \"expected\": 142, \"passed\": true}, {\"check\": \"control [\\\"div\\\", 70, 40]\", \"actual\": 108, \"expected\": 108, \"passed\": true}, {\"check\": \"control [\\\"div\\\", 57, 11]\", \"actual\": 179, \"expected\": 179, \"passed\": true}, {\"check\": \"control [\\\"div\\\", 226, 96]\", \"actual\": 190, \"expected\": 190, \"passed\": true}, {\"check\": \"control [\\\"div\\\", 238, 211]\", \"actual\": 155, \"expected\": 155, \"passed\": true}, {\"check\": \"control [\\\"div\\\", 48, 99]\", \"actual\": 118, \"expected\": 118, \"passed\": true}], \"passed\": false}\n"},"fixed":{"elapsed_ms":38.605,"exit_code":0,"observations":[{"actual":null,"check":"regression [\"div\", 0, 0]","expected":null,"passed":true},{"actual":0,"check":"partial-repair [\"div\", 0, 7]","expected":0,"passed":true},{"actual":142,"check":"control [\"div\", 1, 2]","expected":142,"passed":true},{"actual":108,"check":"control [\"div\", 70, 40]","expected":108,"passed":true},{"actual":179,"check":"control [\"div\", 57, 11]","expected":179,"passed":true},{"actual":190,"check":"control [\"div\", 226, 96]","expected":190,"passed":true},{"actual":155,"check":"control [\"div\", 238, 211]","expected":155,"passed":true},{"actual":118,"check":"control [\"div\", 48, 99]","expected":118,"passed":true}],"passed":true,"stderr":"","stdout":"{\"observations\": [{\"check\": \"regression [\\\"div\\\", 0, 0]\", \"actual\": null, \"expected\": null, \"passed\": true}, {\"check\": \"partial-repair [\\\"div\\\", 0, 7]\", \"actual\": 0, \"expected\": 0, \"passed\": true}, {\"check\": \"control [\\\"div\\\", 1, 2]\", \"actual\": 142, \"expected\": 142, \"passed\": true}, {\"check\": \"control [\\\"div\\\", 70, 40]\", \"actual\": 108, \"expected\": 108, \"passed\": true}, {\"check\": \"control [\\\"div\\\", 57, 11]\", \"actual\": 179, \"expected\": 179, \"passed\": true}, {\"check\": \"control [\\\"div\\\", 226, 96]\", \"actual\": 190, \"expected\": 190, \"passed\": true}, {\"check\": \"control [\\\"div\\\", 238, 211]\", \"actual\": 155, \"expected\": 155, \"passed\": true}, {\"check\": \"control [\\\"div\\\", 48, 99]\", \"actual\": 118, \"expected\": 118, \"passed\": true}], \"passed\": true}\n"}},"verified":true,"visibility":"public"}