{"abstract":"Weak messages flip sign after the offset is applied.","category":"Error-correcting codes","checks":8,"contract":"Offset min-sum check-node update for LDPC decoding with integer LLRs. For each edge i the outgoing message is the product of the signs of all OTHER incoming LLRs (0 counts as positive) times max(min |other LLR| - beta, 0). Fewer than two edges returns None. Return the outgoing messages in edge order.","contract_signature":"llrs, beta","evaluation_group":"w2-error_correcting_codes-ldpc-offset-min-sum","failed_approach":"Taking the absolute value reflects small magnitudes back up instead of zeroing them.","family":"w2-error_correcting_codes-ldpc-offset-min-sum-offset-clamp","id":"FA-72101","implementations":{"attempt":{"sha256":"8d629f47dd0e065b1fd6861742e11a35aa5ee29b6b7a0c1cb77cf300400fb20e","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(llrs, beta):\n    if len(llrs) < 2:\n        return None\n    out = []\n    for i in range(len(llrs)):\n        others = llrs[:i] + llrs[i + 1:]\n        sign = 1\n        for v in others:\n            if v < 0:\n                sign = -sign\n        mag = min(abs(v) for v in others)\n        out.append(sign * abs(mag - beta))\n    return out\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\nfixtures = [[['regression [[12, 0, -10, 8], 1]', [[12, 0, -10, 8], 1], [0, -7, 0, 0]], ['regression [[-6, 10, 0], 1]', [[-6, 10, 0], 1], [0, 0, -5]], ['control [[3, 4], 0]', [[3, 4], 0], [4, 3]], ['control [[12, -11, -9, -2, 8, -3], 1]', [[12, -11, -9, -2, 8, -3], 1], [1, -1, -1, -2, 1, -1]], ['control [[1, -2, -3, -4], 1]', [[1, -2, -3, -4], 1], [-1, 0, 0, 0]], ['control [[-2, -12, 2, -7, 10, 7], 2]', [[-2, -12, 2, -7, 10, 7], 2], [0, 0, 0, 0, 0, 0]], ['control [[-3, 6], 2]', [[-3, 6], 2], [4, -1]], ['control [[3, -8], 3]', [[3, -8], 3], [-5, 0]]], [['regression [[-12, 7, -1, 8, 11, -2], 3]', [[-12, 7, -1, 8, 11, -2], 3], [0, 0, 0, 0, 0, 0]], ['regression [[2, 4], 3]', [[2, 4], 3], [1, 0]], ['control [[3, -8], 3]', [[3, -8], 3], [-5, 0]], ['control [[6, -11, 10, -5, 2, 8], 1]', [[6, -11, 10, -5, 2, 8], 1], [1, -1, 1, -1, 4, 1]], ['control [[1, 7, -2], 0]', [[1, 7, -2], 0], [-2, -1, 1]], ['control [[-3, 6], 3]', [[-3, 6], 3], [3, 0]], ['control [[-5, -9], 0]', [[-5, -9], 0], [-9, -5]], ['control [[-10, 12, 6, 2], 0]', [[-10, 12, 6, 2], 0], [2, -2, -2, -6]]], [['regression [[0, -4, 6], 1]', [[0, -4, 6], 1], [-3, 0, 0]], ['regression [[2, 2, 2], 3]', [[2, 2, 2], 3], [0, 0, 0]], ['control [[-10, 12, 6, 2], 0]', [[-10, 12, 6, 2], 0], [2, -2, -2, -6]], ['control [[5, -12, -9], 3]', [[5, -12, -9], 3], [6, -2, -2]], ['control [[4, -9, -7, -9, 6], 3]', [[4, -9, -7, -9, 6], 3], [-3, 1, 1, 1, -1]], ['control [[5, -3, -1, -4], 0]', [[5, -3, -1, -4], 0], [-1, 1, 3, 1]], ['control [[11, 8, 12, -10], 1]', [[11, 8, 12, -10], 1], [-7, -9, -7, 7]], ['control [[11, -6, -1], 1]', [[11, -6, -1], 1], [0, 0, -5]]], [['regression [[12, 0, -10, 8], 1]', [[12, 0, -10, 8], 1], [0, -7, 0, 0]], ['regression [[-6, 10, 0], 1]', [[-6, 10, 0], 1], [0, 0, -5]], ['control [[11, -6, -1], 1]', [[11, -6, -1], 1], [0, 0, -5]], ['control [[7, 2, 6, -11], 2]', [[7, 2, 6, -11], 2], [0, -4, 0, 0]], ['control [[-1, 2, -7], 1]', [[-1, 2, -7], 1], [-1, 0, 0]], ['control [[5, -3], 1]', [[5, -3], 1], [-2, 4]], ['control [[-1], 0]', [[-1], 0], None], ['control [[-7, -7, 1, 9], 0]', [[-7, -7, 1, 9], 0], [-1, -1, 7, 1]]], [['regression [[-12, 7, -1, 8, 11, -2], 3]', [[-12, 7, -1, 8, 11, -2], 3], [0, 0, 0, 0, 0, 0]], ['regression [[2, 4], 3]', [[2, 4], 3], [1, 0]], ['control [[-7, -7, 1, 9], 0]', [[-7, -7, 1, 9], 0], [-1, -1, 7, 1]], ['control [[3, 4], 0]', [[3, 4], 0], [4, 3]], ['control [[12, -11, -9, -2, 8, -3], 1]', [[12, -11, -9, -2, 8, -3], 1], [1, -1, -1, -2, 1, -1]], ['control [[1, -2, -3, -4], 1]', [[1, -2, -3, -4], 1], [-1, 0, 0, 0]], ['control [[-2, -12, 2, -7, 10, 7], 2]', [[-2, -12, 2, -7, 10, 7], 2], [0, 0, 0, 0, 0, 0]], ['control [[-3, 6], 2]', [[-3, 6], 2], [4, -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":"26f2f28a59b6f3f0ed215512593f40fbc810368002d2ddb558d9a8c0ea1e683e","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(llrs, beta):\n    if len(llrs) < 2:\n        return None\n    out = []\n    for i in range(len(llrs)):\n        others = llrs[:i] + llrs[i + 1:]\n        sign = 1\n        for v in others:\n            if v < 0:\n                sign = -sign\n        mag = min(abs(v) for v in others)\n        out.append(sign * (mag - beta))\n    return out\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\nfixtures = [[['regression [[12, 0, -10, 8], 1]', [[12, 0, -10, 8], 1], [0, -7, 0, 0]], ['regression [[-6, 10, 0], 1]', [[-6, 10, 0], 1], [0, 0, -5]], ['control [[3, 4], 0]', [[3, 4], 0], [4, 3]], ['control [[12, -11, -9, -2, 8, -3], 1]', [[12, -11, -9, -2, 8, -3], 1], [1, -1, -1, -2, 1, -1]], ['control [[1, -2, -3, -4], 1]', [[1, -2, -3, -4], 1], [-1, 0, 0, 0]], ['control [[-2, -12, 2, -7, 10, 7], 2]', [[-2, -12, 2, -7, 10, 7], 2], [0, 0, 0, 0, 0, 0]], ['control [[-3, 6], 2]', [[-3, 6], 2], [4, -1]], ['control [[3, -8], 3]', [[3, -8], 3], [-5, 0]]], [['regression [[-12, 7, -1, 8, 11, -2], 3]', [[-12, 7, -1, 8, 11, -2], 3], [0, 0, 0, 0, 0, 0]], ['regression [[2, 4], 3]', [[2, 4], 3], [1, 0]], ['control [[3, -8], 3]', [[3, -8], 3], [-5, 0]], ['control [[6, -11, 10, -5, 2, 8], 1]', [[6, -11, 10, -5, 2, 8], 1], [1, -1, 1, -1, 4, 1]], ['control [[1, 7, -2], 0]', [[1, 7, -2], 0], [-2, -1, 1]], ['control [[-3, 6], 3]', [[-3, 6], 3], [3, 0]], ['control [[-5, -9], 0]', [[-5, -9], 0], [-9, -5]], ['control [[-10, 12, 6, 2], 0]', [[-10, 12, 6, 2], 0], [2, -2, -2, -6]]], [['regression [[0, -4, 6], 1]', [[0, -4, 6], 1], [-3, 0, 0]], ['regression [[2, 2, 2], 3]', [[2, 2, 2], 3], [0, 0, 0]], ['control [[-10, 12, 6, 2], 0]', [[-10, 12, 6, 2], 0], [2, -2, -2, -6]], ['control [[5, -12, -9], 3]', [[5, -12, -9], 3], [6, -2, -2]], ['control [[4, -9, -7, -9, 6], 3]', [[4, -9, -7, -9, 6], 3], [-3, 1, 1, 1, -1]], ['control [[5, -3, -1, -4], 0]', [[5, -3, -1, -4], 0], [-1, 1, 3, 1]], ['control [[11, 8, 12, -10], 1]', [[11, 8, 12, -10], 1], [-7, -9, -7, 7]], ['control [[11, -6, -1], 1]', [[11, -6, -1], 1], [0, 0, -5]]], [['regression [[12, 0, -10, 8], 1]', [[12, 0, -10, 8], 1], [0, -7, 0, 0]], ['regression [[-6, 10, 0], 1]', [[-6, 10, 0], 1], [0, 0, -5]], ['control [[11, -6, -1], 1]', [[11, -6, -1], 1], [0, 0, -5]], ['control [[7, 2, 6, -11], 2]', [[7, 2, 6, -11], 2], [0, -4, 0, 0]], ['control [[-1, 2, -7], 1]', [[-1, 2, -7], 1], [-1, 0, 0]], ['control [[5, -3], 1]', [[5, -3], 1], [-2, 4]], ['control [[-1], 0]', [[-1], 0], None], ['control [[-7, -7, 1, 9], 0]', [[-7, -7, 1, 9], 0], [-1, -1, 7, 1]]], [['regression [[-12, 7, -1, 8, 11, -2], 3]', [[-12, 7, -1, 8, 11, -2], 3], [0, 0, 0, 0, 0, 0]], ['regression [[2, 4], 3]', [[2, 4], 3], [1, 0]], ['control [[-7, -7, 1, 9], 0]', [[-7, -7, 1, 9], 0], [-1, -1, 7, 1]], ['control [[3, 4], 0]', [[3, 4], 0], [4, 3]], ['control [[12, -11, -9, -2, 8, -3], 1]', [[12, -11, -9, -2, 8, -3], 1], [1, -1, -1, -2, 1, -1]], ['control [[1, -2, -3, -4], 1]', [[1, -2, -3, -4], 1], [-1, 0, 0, 0]], ['control [[-2, -12, 2, -7, 10, 7], 2]', [[-2, -12, 2, -7, 10, 7], 2], [0, 0, 0, 0, 0, 0]], ['control [[-3, 6], 2]', [[-3, 6], 2], [4, -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-ldpc-offset-min-sum-offset-clamp","generated_at":"2026-09-29T14:48:35.428928+00:00","license":"CC0-1.0","python":"3.12.14","seed":1,"split":"open-access"},"relevance":"LDPC decoders in Wi-Fi, 5G and SSD controllers run this update billions of times per second.","root_cause":"The offset is subtracted without clamping at zero.","sha256":"3866f27f2036c2b5c5d4257864cf077fce342bf5860cd318bb01e4986031c073","title":"Min-sum offset can flip the message sign · 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.709,"exit_code":1,"observations":[{"actual":[-1,-7,1,-1],"check":"regression [[12, 0, -10, 8], 1]","expected":[0,-7,0,0],"passed":false},{"actual":[1,-1,-5],"check":"regression [[-6, 10, 0], 1]","expected":[0,0,-5],"passed":false},{"actual":[4,3],"check":"control [[3, 4], 0]","expected":[4,3],"passed":true},{"actual":[1,-1,-1,-2,1,-1],"check":"control [[12, -11, -9, -2, 8, -3], 1]","expected":[1,-1,-1,-2,1,-1],"passed":true},{"actual":[-1,0,0,0],"check":"control [[1, -2, -3, -4], 1]","expected":[-1,0,0,0],"passed":true},{"actual":[0,0,0,0,0,0],"check":"control [[-2, -12, 2, -7, 10, 7], 2]","expected":[0,0,0,0,0,0],"passed":true},{"actual":[4,-1],"check":"control [[-3, 6], 2]","expected":[4,-1],"passed":true},{"actual":[-5,0],"check":"control [[3, -8], 3]","expected":[-5,0],"passed":true}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"regression [[12, 0, -10, 8], 1]\", \"actual\": [-1, -7, 1, -1], \"expected\": [0, -7, 0, 0], \"passed\": false}, {\"check\": \"regression [[-6, 10, 0], 1]\", \"actual\": [1, -1, -5], \"expected\": [0, 0, -5], \"passed\": false}, {\"check\": \"control [[3, 4], 0]\", \"actual\": [4, 3], \"expected\": [4, 3], \"passed\": true}, {\"check\": \"control [[12, -11, -9, -2, 8, -3], 1]\", \"actual\": [1, -1, -1, -2, 1, -1], \"expected\": [1, -1, -1, -2, 1, -1], \"passed\": true}, {\"check\": \"control [[1, -2, -3, -4], 1]\", \"actual\": [-1, 0, 0, 0], \"expected\": [-1, 0, 0, 0], \"passed\": true}, {\"check\": \"control [[-2, -12, 2, -7, 10, 7], 2]\", \"actual\": [0, 0, 0, 0, 0, 0], \"expected\": [0, 0, 0, 0, 0, 0], \"passed\": true}, {\"check\": \"control [[-3, 6], 2]\", \"actual\": [4, -1], \"expected\": [4, -1], \"passed\": true}, {\"check\": \"control [[3, -8], 3]\", \"actual\": [-5, 0], \"expected\": [-5, 0], \"passed\": true}], \"passed\": false}\n"},"broken":{"elapsed_ms":39.911,"exit_code":1,"observations":[{"actual":[1,-7,-1,1],"check":"regression [[12, 0, -10, 8], 1]","expected":[0,-7,0,0],"passed":false},{"actual":[-1,1,-5],"check":"regression [[-6, 10, 0], 1]","expected":[0,0,-5],"passed":false},{"actual":[4,3],"check":"control [[3, 4], 0]","expected":[4,3],"passed":true},{"actual":[1,-1,-1,-2,1,-1],"check":"control [[12, -11, -9, -2, 8, -3], 1]","expected":[1,-1,-1,-2,1,-1],"passed":true},{"actual":[-1,0,0,0],"check":"control [[1, -2, -3, -4], 1]","expected":[-1,0,0,0],"passed":true},{"actual":[0,0,0,0,0,0],"check":"control [[-2, -12, 2, -7, 10, 7], 2]","expected":[0,0,0,0,0,0],"passed":true},{"actual":[4,-1],"check":"control [[-3, 6], 2]","expected":[4,-1],"passed":true},{"actual":[-5,0],"check":"control [[3, -8], 3]","expected":[-5,0],"passed":true}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"regression [[12, 0, -10, 8], 1]\", \"actual\": [1, -7, -1, 1], \"expected\": [0, -7, 0, 0], \"passed\": false}, {\"check\": \"regression [[-6, 10, 0], 1]\", \"actual\": [-1, 1, -5], \"expected\": [0, 0, -5], \"passed\": false}, {\"check\": \"control [[3, 4], 0]\", \"actual\": [4, 3], \"expected\": [4, 3], \"passed\": true}, {\"check\": \"control [[12, -11, -9, -2, 8, -3], 1]\", \"actual\": [1, -1, -1, -2, 1, -1], \"expected\": [1, -1, -1, -2, 1, -1], \"passed\": true}, {\"check\": \"control [[1, -2, -3, -4], 1]\", \"actual\": [-1, 0, 0, 0], \"expected\": [-1, 0, 0, 0], \"passed\": true}, {\"check\": \"control [[-2, -12, 2, -7, 10, 7], 2]\", \"actual\": [0, 0, 0, 0, 0, 0], \"expected\": [0, 0, 0, 0, 0, 0], \"passed\": true}, {\"check\": \"control [[-3, 6], 2]\", \"actual\": [4, -1], \"expected\": [4, -1], \"passed\": true}, {\"check\": \"control [[3, -8], 3]\", \"actual\": [-5, 0], \"expected\": [-5, 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."}}