{"abstract":"Products exceed 255 or differ from the field product.","category":"Error-correcting codes","checks":8,"contract":"Multiply two elements of GF(2^8) defined by the primitive polynomial x^8+x^4+x^3+x^2+1 (0x11D) using shift-and-add. Operands outside 0..255 return None.","evaluation_group":"w2-error_correcting_codes-gf256-multiply","failed_approach":"Combining with OR loses cancellation of equal bits.","family":"w2-error_correcting_codes-gf256-multiply-field-addition","id":"FA-71961","implementations":{"attempt":{"sha256":"d61454f80cc373f4752941757d8dc455ad60d148d994af1e27e82a9fa34b0a6f","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(a, b):\n    if not (0 <= a < 256 and 0 <= b < 256):\n        return None\n    p = 0\n    for _ in range(8):\n        if b & 1:\n            p |= a\n        b >>= 1\n        carry = a & 0x80\n        a = (a << 1) & 0xFF\n        if carry:\n            a ^= 0x1D\n    return p\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\nfixtures = [[['regression [158, 185]', [158, 185], 141], ['regression [66, 7]', [66, 7], 211], ['control [2, 96]', [2, 96], 192], ['control [0, 5]', [0, 5], 0], ['control [1, 200]', [1, 200], 200], ['control [2, 128]', [2, 128], 29], ['control [128, 2]', [128, 2], 29], ['control [256, 1]', [256, 1], None]], [['regression [198, 115]', [198, 115], 153], ['regression [136, 144]', [136, 144], 15], ['control [256, 1]', [256, 1], None], ['control [2, 96]', [2, 96], 192], ['control [0, 5]', [0, 5], 0], ['control [1, 200]', [1, 200], 200], ['control [2, 128]', [2, 128], 29], ['control [128, 2]', [128, 2], 29]], [['regression [243, 34]', [243, 34], 240], ['regression [9, 184]', [9, 184], 17], ['control [128, 2]', [128, 2], 29], ['control [256, 1]', [256, 1], None], ['control [2, 96]', [2, 96], 192], ['control [0, 5]', [0, 5], 0], ['control [1, 200]', [1, 200], 200], ['control [2, 128]', [2, 128], 29]], [['regression [44, 122]', [44, 122], 249], ['regression [232, 214]', [232, 214], 217], ['control [2, 128]', [2, 128], 29], ['control [128, 2]', [128, 2], 29], ['control [256, 1]', [256, 1], None], ['control [2, 96]', [2, 96], 192], ['control [0, 5]', [0, 5], 0], ['control [1, 200]', [1, 200], 200]], [['regression [231, 130]', [231, 130], 45], ['regression [28, 61]', [28, 61], 246], ['control [1, 200]', [1, 200], 200], ['control [2, 128]', [2, 128], 29], ['control [128, 2]', [128, 2], 29], ['control [256, 1]', [256, 1], None], ['control [2, 96]', [2, 96], 192], ['control [0, 5]', [0, 5], 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":"80c09e2bca313ab2d12bf60f9388f11fe4a0d94230a6a34b29e591da74cd0117","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(a, b):\n    if not (0 <= a < 256 and 0 <= b < 256):\n        return None\n    p = 0\n    for _ in range(8):\n        if b & 1:\n            p += a\n        b >>= 1\n        carry = a & 0x80\n        a = (a << 1) & 0xFF\n        if carry:\n            a ^= 0x1D\n    return p\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\nfixtures = [[['regression [158, 185]', [158, 185], 141], ['regression [66, 7]', [66, 7], 211], ['control [2, 96]', [2, 96], 192], ['control [0, 5]', [0, 5], 0], ['control [1, 200]', [1, 200], 200], ['control [2, 128]', [2, 128], 29], ['control [128, 2]', [128, 2], 29], ['control [256, 1]', [256, 1], None]], [['regression [198, 115]', [198, 115], 153], ['regression [136, 144]', [136, 144], 15], ['control [256, 1]', [256, 1], None], ['control [2, 96]', [2, 96], 192], ['control [0, 5]', [0, 5], 0], ['control [1, 200]', [1, 200], 200], ['control [2, 128]', [2, 128], 29], ['control [128, 2]', [128, 2], 29]], [['regression [243, 34]', [243, 34], 240], ['regression [9, 184]', [9, 184], 17], ['control [128, 2]', [128, 2], 29], ['control [256, 1]', [256, 1], None], ['control [2, 96]', [2, 96], 192], ['control [0, 5]', [0, 5], 0], ['control [1, 200]', [1, 200], 200], ['control [2, 128]', [2, 128], 29]], [['regression [44, 122]', [44, 122], 249], ['regression [232, 214]', [232, 214], 217], ['control [2, 128]', [2, 128], 29], ['control [128, 2]', [128, 2], 29], ['control [256, 1]', [256, 1], None], ['control [2, 96]', [2, 96], 192], ['control [0, 5]', [0, 5], 0], ['control [1, 200]', [1, 200], 200]], [['regression [231, 130]', [231, 130], 45], ['regression [28, 61]', [28, 61], 246], ['control [1, 200]', [1, 200], 200], ['control [2, 128]', [2, 128], 29], ['control [128, 2]', [128, 2], 29], ['control [256, 1]', [256, 1], None], ['control [2, 96]', [2, 96], 192], ['control [0, 5]', [0, 5], 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"},"fixed":{"sha256":"d9e0d3e15cfe93f466fa9bcf2c529e8b9cc34b531141348b33f4bfba45be21c5","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(a, b):\n    if not (0 <= a < 256 and 0 <= b < 256):\n        return None\n    p = 0\n    for _ in range(8):\n        if b & 1:\n            p ^= a\n        b >>= 1\n        carry = a & 0x80\n        a = (a << 1) & 0xFF\n        if carry:\n            a ^= 0x1D\n    return p\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\nfixtures = [[['regression [158, 185]', [158, 185], 141], ['regression [66, 7]', [66, 7], 211], ['control [2, 96]', [2, 96], 192], ['control [0, 5]', [0, 5], 0], ['control [1, 200]', [1, 200], 200], ['control [2, 128]', [2, 128], 29], ['control [128, 2]', [128, 2], 29], ['control [256, 1]', [256, 1], None]], [['regression [198, 115]', [198, 115], 153], ['regression [136, 144]', [136, 144], 15], ['control [256, 1]', [256, 1], None], ['control [2, 96]', [2, 96], 192], ['control [0, 5]', [0, 5], 0], ['control [1, 200]', [1, 200], 200], ['control [2, 128]', [2, 128], 29], ['control [128, 2]', [128, 2], 29]], [['regression [243, 34]', [243, 34], 240], ['regression [9, 184]', [9, 184], 17], ['control [128, 2]', [128, 2], 29], ['control [256, 1]', [256, 1], None], ['control [2, 96]', [2, 96], 192], ['control [0, 5]', [0, 5], 0], ['control [1, 200]', [1, 200], 200], ['control [2, 128]', [2, 128], 29]], [['regression [44, 122]', [44, 122], 249], ['regression [232, 214]', [232, 214], 217], ['control [2, 128]', [2, 128], 29], ['control [128, 2]', [128, 2], 29], ['control [256, 1]', [256, 1], None], ['control [2, 96]', [2, 96], 192], ['control [0, 5]', [0, 5], 0], ['control [1, 200]', [1, 200], 200]], [['regression [231, 130]', [231, 130], 45], ['regression [28, 61]', [28, 61], 246], ['control [1, 200]', [1, 200], 200], ['control [2, 128]', [2, 128], 29], ['control [128, 2]', [128, 2], 29], ['control [256, 1]', [256, 1], None], ['control [2, 96]', [2, 96], 192], ['control [0, 5]', [0, 5], 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-gf256-multiply-field-addition","generated_at":"2026-09-29T14:48:34.191611+00:00","license":"CC0-1.0","python":"3.12.14","seed":1,"split":"open-access"},"relevance":"Reed-Solomon codecs for storage and QR codes are built on GF(2^8) arithmetic with polynomial 0x11D.","repair":"Accumulate with XOR.","root_cause":"Partial products are combined with + instead of XOR (field addition).","sha256":"43d6bb3f539f10279c027c1c1a71ca6362320bbb779e850cd99f49626cdb8c1e","title":"GF(256) multiply accumulates with integer addition · case 01","variant":1,"variant_policy":"Five numbered records share a model and may reuse boundary fixtures.","verification":{"attempt":{"elapsed_ms":35.548,"exit_code":1,"observations":[{"actual":191,"check":"regression [158, 185]","expected":141,"passed":false},{"actual":215,"check":"regression [66, 7]","expected":211,"passed":false},{"actual":192,"check":"control [2, 96]","expected":192,"passed":true},{"actual":0,"check":"control [0, 5]","expected":0,"passed":true},{"actual":200,"check":"control [1, 200]","expected":200,"passed":true},{"actual":29,"check":"control [2, 128]","expected":29,"passed":true},{"actual":29,"check":"control [128, 2]","expected":29,"passed":true},{"actual":null,"check":"control [256, 1]","expected":null,"passed":true}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"regression [158, 185]\", \"actual\": 191, \"expected\": 141, \"passed\": false}, {\"check\": \"regression [66, 7]\", \"actual\": 215, \"expected\": 211, \"passed\": false}, {\"check\": \"control [2, 96]\", \"actual\": 192, \"expected\": 192, \"passed\": true}, {\"check\": \"control [0, 5]\", \"actual\": 0, \"expected\": 0, \"passed\": true}, {\"check\": \"control [1, 200]\", \"actual\": 200, \"expected\": 200, \"passed\": true}, {\"check\": \"control [2, 128]\", \"actual\": 29, \"expected\": 29, \"passed\": true}, {\"check\": \"control [128, 2]\", \"actual\": 29, \"expected\": 29, \"passed\": true}, {\"check\": \"control [256, 1]\", \"actual\": null, \"expected\": null, \"passed\": true}], \"passed\": false}\n"},"broken":{"elapsed_ms":39.614,"exit_code":1,"observations":[{"actual":521,"check":"regression [158, 185]","expected":141,"passed":false},{"actual":219,"check":"regression [66, 7]","expected":211,"passed":false},{"actual":192,"check":"control [2, 96]","expected":192,"passed":true},{"actual":0,"check":"control [0, 5]","expected":0,"passed":true},{"actual":200,"check":"control [1, 200]","expected":200,"passed":true},{"actual":29,"check":"control [2, 128]","expected":29,"passed":true},{"actual":29,"check":"control [128, 2]","expected":29,"passed":true},{"actual":null,"check":"control [256, 1]","expected":null,"passed":true}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"regression [158, 185]\", \"actual\": 521, \"expected\": 141, \"passed\": false}, {\"check\": \"regression [66, 7]\", \"actual\": 219, \"expected\": 211, \"passed\": false}, {\"check\": \"control [2, 96]\", \"actual\": 192, \"expected\": 192, \"passed\": true}, {\"check\": \"control [0, 5]\", \"actual\": 0, \"expected\": 0, \"passed\": true}, {\"check\": \"control [1, 200]\", \"actual\": 200, \"expected\": 200, \"passed\": true}, {\"check\": \"control [2, 128]\", \"actual\": 29, \"expected\": 29, \"passed\": true}, {\"check\": \"control [128, 2]\", \"actual\": 29, \"expected\": 29, \"passed\": true}, {\"check\": \"control [256, 1]\", \"actual\": null, \"expected\": null, \"passed\": true}], \"passed\": false}\n"},"fixed":{"elapsed_ms":38.892,"exit_code":0,"observations":[{"actual":141,"check":"regression [158, 185]","expected":141,"passed":true},{"actual":211,"check":"regression [66, 7]","expected":211,"passed":true},{"actual":192,"check":"control [2, 96]","expected":192,"passed":true},{"actual":0,"check":"control [0, 5]","expected":0,"passed":true},{"actual":200,"check":"control [1, 200]","expected":200,"passed":true},{"actual":29,"check":"control [2, 128]","expected":29,"passed":true},{"actual":29,"check":"control [128, 2]","expected":29,"passed":true},{"actual":null,"check":"control [256, 1]","expected":null,"passed":true}],"passed":true,"stderr":"","stdout":"{\"observations\": [{\"check\": \"regression [158, 185]\", \"actual\": 141, \"expected\": 141, \"passed\": true}, {\"check\": \"regression [66, 7]\", \"actual\": 211, \"expected\": 211, \"passed\": true}, {\"check\": \"control [2, 96]\", \"actual\": 192, \"expected\": 192, \"passed\": true}, {\"check\": \"control [0, 5]\", \"actual\": 0, \"expected\": 0, \"passed\": true}, {\"check\": \"control [1, 200]\", \"actual\": 200, \"expected\": 200, \"passed\": true}, {\"check\": \"control [2, 128]\", \"actual\": 29, \"expected\": 29, \"passed\": true}, {\"check\": \"control [128, 2]\", \"actual\": 29, \"expected\": 29, \"passed\": true}, {\"check\": \"control [256, 1]\", \"actual\": null, \"expected\": null, \"passed\": true}], \"passed\": true}\n"}},"verified":true,"visibility":"public"}