FA-72096 / Error-correcting codes / Open access
Min-sum magnitude includes the edge own message · case 01
The least reliable edge receives its own small magnitude back.
ROOT CAUSE
The minimum magnitude is taken over all edges including i.
VERIFIED REPAIR
Take the minimum over the other edges (the second minimum for the minimum edge).
Unsuccessful approach: Always using the second smallest magnitude is wrong for every edge that is not the minimum.
Case 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.
Why this case matters
LDPC decoders in Wi-Fi, 5G and SSD controllers run this update billions of times per second.
1 / The failure
Exit 1"""Failure Map reference implementation. Python standard library only."""
import json
N = 1
observations = []
def solve(llrs, beta):
if len(llrs) < 2:
return None
out = []
for i in range(len(llrs)):
others = llrs[:i] + llrs[i + 1:]
sign = 1
for v in others:
if v < 0:
sign = -sign
mag = min(abs(v) for v in llrs)
out.append(sign * max(mag - beta, 0))
return out
def check(label, actual, expected):
observations.append({"check": label, "actual": actual, "expected": expected, "passed": actual == expected})
fixtures = [[['regression [[3, 4], 0]', [[3, 4], 0], [4, 3]], ['regression [[12, -11, -9, -2, 8, -3], 1]', [[12, -11, -9, -2, 8, -3], 1], [1, -1, -1, -2, 1, -1]], ['control [[-2, -12, 2, -7, 10, 7], 2]', [[-2, -12, 2, -7, 10, 7], 2], [0, 0, 0, 0, 0, 0]], ['control [[-12, 7, -1, 8, 11, -2], 3]', [[-12, 7, -1, 8, 11, -2], 3], [0, 0, 0, 0, 0, 0]], ['control [[2, 2, 2], 3]', [[2, 2, 2], 3], [0, 0, 0]], ['control [[-1], 0]', [[-1], 0], None], ['control [[-3, 6], 2]', [[-3, 6], 2], [4, -1]], ['control [[3, -8], 3]', [[3, -8], 3], [-5, 0]]], [['regression [[1, -2, -3, -4], 1]', [[1, -2, -3, -4], 1], [-1, 0, 0, 0]], ['regression [[-3, 6], 2]', [[-3, 6], 2], [4, -1]], ['control [[-12, 7, -1, 8, 11, -2], 3]', [[-12, 7, -1, 8, 11, -2], 3], [0, 0, 0, 0, 0, 0]], ['control [[2, 2, 2], 3]', [[2, 2, 2], 3], [0, 0, 0]], ['control [[-1], 0]', [[-1], 0], None], ['control [[-2, -12, 2, -7, 10, 7], 2]', [[-2, -12, 2, -7, 10, 7], 2], [0, 0, 0, 0, 0, 0]], ['control [[-3, 6], 3]', [[-3, 6], 3], [3, 0]], ['control [[-5, -9], 0]', [[-5, -9], 0], [-9, -5]]], [['regression [[6, -11, 10, -5, 2, 8], 1]', [[6, -11, 10, -5, 2, 8], 1], [1, -1, 1, -1, 4, 1]], ['regression [[1, 7, -2], 0]', [[1, 7, -2], 0], [-2, -1, 1]], ['control [[2, 2, 2], 3]', [[2, 2, 2], 3], [0, 0, 0]], ['control [[-1], 0]', [[-1], 0], None], ['control [[-2, -12, 2, -7, 10, 7], 2]', [[-2, -12, 2, -7, 10, 7], 2], [0, 0, 0, 0, 0, 0]], ['control [[-12, 7, -1, 8, 11, -2], 3]', [[-12, 7, -1, 8, 11, -2], 3], [0, 0, 0, 0, 0, 0]], ['control [[4, -9, -7, -9, 6], 3]', [[4, -9, -7, -9, 6], 3], [-3, 1, 1, 1, -1]], ['control [[12, 2], 3]', [[12, 2], 3], [0, 9]]], [['regression [[-5, -9], 0]', [[-5, -9], 0], [-9, -5]], ['regression [[-6, 10, 0], 1]', [[-6, 10, 0], 1], [0, 0, -5]], ['control [[-1], 0]', [[-1], 0], None], ['control [[-2, -12, 2, -7, 10, 7], 2]', [[-2, -12, 2, -7, 10, 7], 2], [0, 0, 0, 0, 0, 0]], ['control [[-12, 7, -1, 8, 11, -2], 3]', [[-12, 7, -1, 8, 11, -2], 3], [0, 0, 0, 0, 0, 0]], ['control [[2, 2, 2], 3]', [[2, 2, 2], 3], [0, 0, 0]], ['control [[2, 4], 3]', [[2, 4], 3], [1, 0]], ['control [[1, 11], 2]', [[1, 11], 2], [9, 0]]], [['regression [[5, -12, -9], 3]', [[5, -12, -9], 3], [6, -2, -2]], ['regression [[4, -9, -7, -9, 6], 3]', [[4, -9, -7, -9, 6], 3], [-3, 1, 1, 1, -1]], ['control [[-2, -12, 2, -7, 10, 7], 2]', [[-2, -12, 2, -7, 10, 7], 2], [0, 0, 0, 0, 0, 0]], ['control [[-12, 7, -1, 8, 11, -2], 3]', [[-12, 7, -1, 8, 11, -2], 3], [0, 0, 0, 0, 0, 0]], ['control [[2, 2, 2], 3]', [[2, 2, 2], 3], [0, 0, 0]], ['control [[-1], 0]', [[-1], 0], None], ['control [[5, -3], 1]', [[5, -3], 1], [-2, 4]], ['control [[0, -4, 6], 1]', [[0, -4, 6], 1], [-3, 0, 0]]]]
for label, args, expected in fixtures[N - 1]:
check(label, solve(*args), expected)
print(json.dumps({"observations": observations, "passed": all(x["passed"] for x in observations)}, ensure_ascii=False))
raise SystemExit(0 if all(x["passed"] for x in observations) else 1)
| Boundary fixture | Actual | Expected | Outcome |
|---|---|---|---|
| regression [[3, 4], 0] | [3, 3] | [4, 3] | Failed |
| regression [[12, -11, -9, -2, 8, -3], 1] | [1, -1, -1, -1, 1, -1] | [1, -1, -1, -2, 1, -1] | Failed |
| control [[-2, -12, 2, -7, 10, 7], 2] | [0, 0, 0, 0, 0, 0] | [0, 0, 0, 0, 0, 0] | Passed |
| control [[-12, 7, -1, 8, 11, -2], 3] | [0, 0, 0, 0, 0, 0] | [0, 0, 0, 0, 0, 0] | Passed |
| control [[2, 2, 2], 3] | [0, 0, 0] | [0, 0, 0] | Passed |
| control [[-1], 0] | None | None | Passed |
| control [[-3, 6], 2] | [1, -1] | [4, -1] | Failed |
| control [[3, -8], 3] | [0, 0] | [-5, 0] | Failed |
SHA-256 / 185e4a68651ee85160f7e7f760adec19891d1377ac2866023ccf69681e2c0b37
2 / The unsuccessful fix
Exit 1"""Failure Map reference implementation. Python standard library only."""
import json
N = 1
observations = []
def solve(llrs, beta):
if len(llrs) < 2:
return None
out = []
for i in range(len(llrs)):
others = llrs[:i] + llrs[i + 1:]
sign = 1
for v in others:
if v < 0:
sign = -sign
mag = sorted(abs(v) for v in llrs)[1]
out.append(sign * max(mag - beta, 0))
return out
def check(label, actual, expected):
observations.append({"check": label, "actual": actual, "expected": expected, "passed": actual == expected})
fixtures = [[['regression [[3, 4], 0]', [[3, 4], 0], [4, 3]], ['regression [[12, -11, -9, -2, 8, -3], 1]', [[12, -11, -9, -2, 8, -3], 1], [1, -1, -1, -2, 1, -1]], ['control [[-2, -12, 2, -7, 10, 7], 2]', [[-2, -12, 2, -7, 10, 7], 2], [0, 0, 0, 0, 0, 0]], ['control [[-12, 7, -1, 8, 11, -2], 3]', [[-12, 7, -1, 8, 11, -2], 3], [0, 0, 0, 0, 0, 0]], ['control [[2, 2, 2], 3]', [[2, 2, 2], 3], [0, 0, 0]], ['control [[-1], 0]', [[-1], 0], None], ['control [[-3, 6], 2]', [[-3, 6], 2], [4, -1]], ['control [[3, -8], 3]', [[3, -8], 3], [-5, 0]]], [['regression [[1, -2, -3, -4], 1]', [[1, -2, -3, -4], 1], [-1, 0, 0, 0]], ['regression [[-3, 6], 2]', [[-3, 6], 2], [4, -1]], ['control [[-12, 7, -1, 8, 11, -2], 3]', [[-12, 7, -1, 8, 11, -2], 3], [0, 0, 0, 0, 0, 0]], ['control [[2, 2, 2], 3]', [[2, 2, 2], 3], [0, 0, 0]], ['control [[-1], 0]', [[-1], 0], None], ['control [[-2, -12, 2, -7, 10, 7], 2]', [[-2, -12, 2, -7, 10, 7], 2], [0, 0, 0, 0, 0, 0]], ['control [[-3, 6], 3]', [[-3, 6], 3], [3, 0]], ['control [[-5, -9], 0]', [[-5, -9], 0], [-9, -5]]], [['regression [[6, -11, 10, -5, 2, 8], 1]', [[6, -11, 10, -5, 2, 8], 1], [1, -1, 1, -1, 4, 1]], ['regression [[1, 7, -2], 0]', [[1, 7, -2], 0], [-2, -1, 1]], ['control [[2, 2, 2], 3]', [[2, 2, 2], 3], [0, 0, 0]], ['control [[-1], 0]', [[-1], 0], None], ['control [[-2, -12, 2, -7, 10, 7], 2]', [[-2, -12, 2, -7, 10, 7], 2], [0, 0, 0, 0, 0, 0]], ['control [[-12, 7, -1, 8, 11, -2], 3]', [[-12, 7, -1, 8, 11, -2], 3], [0, 0, 0, 0, 0, 0]], ['control [[4, -9, -7, -9, 6], 3]', [[4, -9, -7, -9, 6], 3], [-3, 1, 1, 1, -1]], ['control [[12, 2], 3]', [[12, 2], 3], [0, 9]]], [['regression [[-5, -9], 0]', [[-5, -9], 0], [-9, -5]], ['regression [[-6, 10, 0], 1]', [[-6, 10, 0], 1], [0, 0, -5]], ['control [[-1], 0]', [[-1], 0], None], ['control [[-2, -12, 2, -7, 10, 7], 2]', [[-2, -12, 2, -7, 10, 7], 2], [0, 0, 0, 0, 0, 0]], ['control [[-12, 7, -1, 8, 11, -2], 3]', [[-12, 7, -1, 8, 11, -2], 3], [0, 0, 0, 0, 0, 0]], ['control [[2, 2, 2], 3]', [[2, 2, 2], 3], [0, 0, 0]], ['control [[2, 4], 3]', [[2, 4], 3], [1, 0]], ['control [[1, 11], 2]', [[1, 11], 2], [9, 0]]], [['regression [[5, -12, -9], 3]', [[5, -12, -9], 3], [6, -2, -2]], ['regression [[4, -9, -7, -9, 6], 3]', [[4, -9, -7, -9, 6], 3], [-3, 1, 1, 1, -1]], ['control [[-2, -12, 2, -7, 10, 7], 2]', [[-2, -12, 2, -7, 10, 7], 2], [0, 0, 0, 0, 0, 0]], ['control [[-12, 7, -1, 8, 11, -2], 3]', [[-12, 7, -1, 8, 11, -2], 3], [0, 0, 0, 0, 0, 0]], ['control [[2, 2, 2], 3]', [[2, 2, 2], 3], [0, 0, 0]], ['control [[-1], 0]', [[-1], 0], None], ['control [[5, -3], 1]', [[5, -3], 1], [-2, 4]], ['control [[0, -4, 6], 1]', [[0, -4, 6], 1], [-3, 0, 0]]]]
for label, args, expected in fixtures[N - 1]:
check(label, solve(*args), expected)
print(json.dumps({"observations": observations, "passed": all(x["passed"] for x in observations)}, ensure_ascii=False))
raise SystemExit(0 if all(x["passed"] for x in observations) else 1)
| Boundary fixture | Actual | Expected | Outcome |
|---|---|---|---|
| regression [[3, 4], 0] | [4, 4] | [4, 3] | Failed |
| regression [[12, -11, -9, -2, 8, -3], 1] | [2, -2, -2, -2, 2, -2] | [1, -1, -1, -2, 1, -1] | Failed |
| control [[-2, -12, 2, -7, 10, 7], 2] | [0, 0, 0, 0, 0, 0] | [0, 0, 0, 0, 0, 0] | Passed |
| control [[-12, 7, -1, 8, 11, -2], 3] | [0, 0, 0, 0, 0, 0] | [0, 0, 0, 0, 0, 0] | Passed |
| control [[2, 2, 2], 3] | [0, 0, 0] | [0, 0, 0] | Passed |
| control [[-1], 0] | None | None | Passed |
| control [[-3, 6], 2] | [4, -4] | [4, -1] | Failed |
| control [[3, -8], 3] | [-5, 5] | [-5, 0] | Failed |
SHA-256 / 7d47765a4a51ae1bf6c30a1991e3575a1c11b5bb6f6a3c879d87907db9660e49
3 / The verified repair
Exit 0"""Failure Map reference implementation. Python standard library only."""
import json
N = 1
observations = []
def solve(llrs, beta):
if len(llrs) < 2:
return None
out = []
for i in range(len(llrs)):
others = llrs[:i] + llrs[i + 1:]
sign = 1
for v in others:
if v < 0:
sign = -sign
mag = min(abs(v) for v in others)
out.append(sign * max(mag - beta, 0))
return out
def check(label, actual, expected):
observations.append({"check": label, "actual": actual, "expected": expected, "passed": actual == expected})
fixtures = [[['regression [[3, 4], 0]', [[3, 4], 0], [4, 3]], ['regression [[12, -11, -9, -2, 8, -3], 1]', [[12, -11, -9, -2, 8, -3], 1], [1, -1, -1, -2, 1, -1]], ['control [[-2, -12, 2, -7, 10, 7], 2]', [[-2, -12, 2, -7, 10, 7], 2], [0, 0, 0, 0, 0, 0]], ['control [[-12, 7, -1, 8, 11, -2], 3]', [[-12, 7, -1, 8, 11, -2], 3], [0, 0, 0, 0, 0, 0]], ['control [[2, 2, 2], 3]', [[2, 2, 2], 3], [0, 0, 0]], ['control [[-1], 0]', [[-1], 0], None], ['control [[-3, 6], 2]', [[-3, 6], 2], [4, -1]], ['control [[3, -8], 3]', [[3, -8], 3], [-5, 0]]], [['regression [[1, -2, -3, -4], 1]', [[1, -2, -3, -4], 1], [-1, 0, 0, 0]], ['regression [[-3, 6], 2]', [[-3, 6], 2], [4, -1]], ['control [[-12, 7, -1, 8, 11, -2], 3]', [[-12, 7, -1, 8, 11, -2], 3], [0, 0, 0, 0, 0, 0]], ['control [[2, 2, 2], 3]', [[2, 2, 2], 3], [0, 0, 0]], ['control [[-1], 0]', [[-1], 0], None], ['control [[-2, -12, 2, -7, 10, 7], 2]', [[-2, -12, 2, -7, 10, 7], 2], [0, 0, 0, 0, 0, 0]], ['control [[-3, 6], 3]', [[-3, 6], 3], [3, 0]], ['control [[-5, -9], 0]', [[-5, -9], 0], [-9, -5]]], [['regression [[6, -11, 10, -5, 2, 8], 1]', [[6, -11, 10, -5, 2, 8], 1], [1, -1, 1, -1, 4, 1]], ['regression [[1, 7, -2], 0]', [[1, 7, -2], 0], [-2, -1, 1]], ['control [[2, 2, 2], 3]', [[2, 2, 2], 3], [0, 0, 0]], ['control [[-1], 0]', [[-1], 0], None], ['control [[-2, -12, 2, -7, 10, 7], 2]', [[-2, -12, 2, -7, 10, 7], 2], [0, 0, 0, 0, 0, 0]], ['control [[-12, 7, -1, 8, 11, -2], 3]', [[-12, 7, -1, 8, 11, -2], 3], [0, 0, 0, 0, 0, 0]], ['control [[4, -9, -7, -9, 6], 3]', [[4, -9, -7, -9, 6], 3], [-3, 1, 1, 1, -1]], ['control [[12, 2], 3]', [[12, 2], 3], [0, 9]]], [['regression [[-5, -9], 0]', [[-5, -9], 0], [-9, -5]], ['regression [[-6, 10, 0], 1]', [[-6, 10, 0], 1], [0, 0, -5]], ['control [[-1], 0]', [[-1], 0], None], ['control [[-2, -12, 2, -7, 10, 7], 2]', [[-2, -12, 2, -7, 10, 7], 2], [0, 0, 0, 0, 0, 0]], ['control [[-12, 7, -1, 8, 11, -2], 3]', [[-12, 7, -1, 8, 11, -2], 3], [0, 0, 0, 0, 0, 0]], ['control [[2, 2, 2], 3]', [[2, 2, 2], 3], [0, 0, 0]], ['control [[2, 4], 3]', [[2, 4], 3], [1, 0]], ['control [[1, 11], 2]', [[1, 11], 2], [9, 0]]], [['regression [[5, -12, -9], 3]', [[5, -12, -9], 3], [6, -2, -2]], ['regression [[4, -9, -7, -9, 6], 3]', [[4, -9, -7, -9, 6], 3], [-3, 1, 1, 1, -1]], ['control [[-2, -12, 2, -7, 10, 7], 2]', [[-2, -12, 2, -7, 10, 7], 2], [0, 0, 0, 0, 0, 0]], ['control [[-12, 7, -1, 8, 11, -2], 3]', [[-12, 7, -1, 8, 11, -2], 3], [0, 0, 0, 0, 0, 0]], ['control [[2, 2, 2], 3]', [[2, 2, 2], 3], [0, 0, 0]], ['control [[-1], 0]', [[-1], 0], None], ['control [[5, -3], 1]', [[5, -3], 1], [-2, 4]], ['control [[0, -4, 6], 1]', [[0, -4, 6], 1], [-3, 0, 0]]]]
for label, args, expected in fixtures[N - 1]:
check(label, solve(*args), expected)
print(json.dumps({"observations": observations, "passed": all(x["passed"] for x in observations)}, ensure_ascii=False))
raise SystemExit(0 if all(x["passed"] for x in observations) else 1)
| Boundary fixture | Actual | Expected | Outcome |
|---|---|---|---|
| regression [[3, 4], 0] | [4, 3] | [4, 3] | Passed |
| regression [[12, -11, -9, -2, 8, -3], 1] | [1, -1, -1, -2, 1, -1] | [1, -1, -1, -2, 1, -1] | Passed |
| control [[-2, -12, 2, -7, 10, 7], 2] | [0, 0, 0, 0, 0, 0] | [0, 0, 0, 0, 0, 0] | Passed |
| control [[-12, 7, -1, 8, 11, -2], 3] | [0, 0, 0, 0, 0, 0] | [0, 0, 0, 0, 0, 0] | Passed |
| control [[2, 2, 2], 3] | [0, 0, 0] | [0, 0, 0] | Passed |
| control [[-1], 0] | None | None | Passed |
| control [[-3, 6], 2] | [4, -1] | [4, -1] | Passed |
| control [[3, -8], 3] | [-5, 0] | [-5, 0] | Passed |
SHA-256 / 0a117c9a6750deb1c7f0327e2af34c02517269cfd7cca0e7e1271485f041afff
Verification & scope
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.
Observations recorded using Python 3.12.14 at 2026-09-29T14:48:35.428070+00:00.
Case digest / cafa2cdd6a3390fead070d3f257a9826b4242de8ee8fe3982c7190da58f8fd75