FA-72141 / Error-correcting codes / Open access
Syndrome table uses integer check sums · case 01
Syndromes of different cosets collide or miss the table.
ROOT CAUSE
Check sums are not reduced modulo 2.
VERIFIED REPAIR
Reduce every parity-check sum modulo 2.
Unsuccessful approach: Clamping the sum at 1 computes OR, not parity.
Case contract
Syndrome decoding of a binary linear code from its parity-check matrix H (rows). The coset-leader table is built by enumerating error patterns by increasing weight and, within a weight, in lexicographic order of error positions; the first pattern seen for a syndrome is its leader. Decode r by XORing the leader of its syndrome. Return [codeword, leader weight] (None if the syndrome has no leader).
Why this case matters
Short block codes in control channels are decoded with precomputed coset-leader tables.
1 / The failure
Exit 1"""Failure Map reference implementation. Python standard library only."""
import json
import itertools
N = 1
observations = []
def solve(H, r):
n = len(H[0])
def syn(v):
return tuple(sum(h[k] & v[k] for k in range(n)) for h in H)
table = {}
for w in range(n + 1):
for pos in itertools.combinations(range(n), w):
e = [1 if k in pos else 0 for k in range(n)]
table.setdefault(syn(e), e)
e = table.get(syn(r))
if e is None:
return None
return [[a ^ b for a, b in zip(r, e)], sum(e)]
def check(label, actual, expected):
observations.append({"check": label, "actual": actual, "expected": expected, "passed": actual == expected})
fixtures = [[['regression [[[1, 0, 1, 1, 1, 0, 0], [1, 1, 0, 1, 0, 1, 0], [0, 1, 1, 1, 0, 0, ...', [[[1, 0, 1, 1, 1, 0, 0], [1, 1, 0, 1, 0, 1, 0], [0, 1, 1, 1, 0, 0, 1]], [0, 1, 1, 1, 0, 0, 0]], [[0, 1, 1, 1, 0, 0, 1], 1]], ['regression [[[1, 0, 1, 1, 1, 0, 0], [1, 1, 0, 1, 0, 1, 0], [0, 1, 1, 1, 0, 0, ...', [[[1, 0, 1, 1, 1, 0, 0], [1, 1, 0, 1, 0, 1, 0], [0, 1, 1, 1, 0, 0, 1]], [0, 0, 1, 1, 0, 1, 1]], [[0, 0, 1, 1, 0, 1, 0], 1]], ['control [[[1, 0, 1, 1, 1, 0, 0], [1, 1, 0, 1, 0, 1, 0], [0, 1, 1, 1, 0, 0, ...', [[[1, 0, 1, 1, 1, 0, 0], [1, 1, 0, 1, 0, 1, 0], [0, 1, 1, 1, 0, 0, 1]], [0, 0, 0, 0, 0, 1, 0]], [[0, 0, 0, 0, 0, 0, 0], 1]], ['control [[[1, 1, 0, 1, 0, 0], [0, 1, 1, 0, 1, 0], [1, 0, 1, 0, 0, 1]], [1, ...', [[[1, 1, 0, 1, 0, 0], [0, 1, 1, 0, 1, 0], [1, 0, 1, 0, 0, 1]], [1, 0, 0, 0, 0, 0]], [[0, 0, 0, 0, 0, 0], 1]], ['control [[[1, 1, 0, 1, 0, 0], [0, 1, 1, 0, 1, 0], [1, 0, 1, 0, 0, 1]], [0, ...', [[[1, 1, 0, 1, 0, 0], [0, 1, 1, 0, 1, 0], [1, 0, 1, 0, 0, 1]], [0, 1, 0, 0, 0, 0]], [[0, 0, 0, 0, 0, 0], 1]], ['control [[[1, 1, 1, 1, 0], [1, 0, 1, 0, 1]], [0, 0, 0, 1, 0]]', [[[1, 1, 1, 1, 0], [1, 0, 1, 0, 1]], [0, 0, 0, 1, 0]], [[0, 1, 0, 1, 0], 1]], ['control [[[1, 0, 1, 1, 1, 0, 0], [1, 1, 0, 1, 0, 1, 0], [0, 1, 1, 1, 0, 0, ...', [[[1, 0, 1, 1, 1, 0, 0], [1, 1, 0, 1, 0, 1, 0], [0, 1, 1, 1, 0, 0, 1]], [0, 1, 1, 1, 0, 1, 1]], [[0, 1, 1, 1, 0, 0, 1], 1]], ['control [[[1, 0, 1, 1, 1, 0, 0], [1, 1, 0, 1, 0, 1, 0], [0, 1, 1, 1, 0, 0, ...', [[[1, 0, 1, 1, 1, 0, 0], [1, 1, 0, 1, 0, 1, 0], [0, 1, 1, 1, 0, 0, 1]], [1, 1, 1, 1, 0, 1, 1]], [[1, 1, 1, 1, 1, 1, 1], 1]]], [['regression [[[1, 0, 1, 1, 1, 0, 0], [1, 1, 0, 1, 0, 1, 0], [0, 1, 1, 1, 0, 0, ...', [[[1, 0, 1, 1, 1, 0, 0], [1, 1, 0, 1, 0, 1, 0], [0, 1, 1, 1, 0, 0, 1]], [0, 1, 1, 1, 0, 1, 1]], [[0, 1, 1, 1, 0, 0, 1], 1]], ['regression [[[1, 0, 1, 1, 1, 0, 0], [1, 1, 0, 1, 0, 1, 0], [0, 1, 1, 1, 0, 0, ...', [[[1, 0, 1, 1, 1, 0, 0], [1, 1, 0, 1, 0, 1, 0], [0, 1, 1, 1, 0, 0, 1]], [1, 1, 1, 1, 0, 1, 1]], [[1, 1, 1, 1, 1, 1, 1], 1]], ['control [[[1, 1, 0, 1, 0, 0], [0, 1, 1, 0, 1, 0], [1, 0, 1, 0, 0, 1]], [1, ...', [[[1, 1, 0, 1, 0, 0], [0, 1, 1, 0, 1, 0], [1, 0, 1, 0, 0, 1]], [1, 0, 0, 0, 0, 0]], [[0, 0, 0, 0, 0, 0], 1]], ['control [[[1, 1, 0, 1, 0, 0], [0, 1, 1, 0, 1, 0], [1, 0, 1, 0, 0, 1]], [0, ...', [[[1, 1, 0, 1, 0, 0], [0, 1, 1, 0, 1, 0], [1, 0, 1, 0, 0, 1]], [0, 1, 0, 0, 0, 0]], [[0, 0, 0, 0, 0, 0], 1]], ['control [[[1, 1, 1, 1, 0], [1, 0, 1, 0, 1]], [0, 0, 0, 1, 0]]', [[[1, 1, 1, 1, 0], [1, 0, 1, 0, 1]], [0, 0, 0, 1, 0]], [[0, 1, 0, 1, 0], 1]], ['control [[[1, 0, 1, 1, 1, 0, 0], [1, 1, 0, 1, 0, 1, 0], [0, 1, 1, 1, 0, 0, ...', [[[1, 0, 1, 1, 1, 0, 0], [1, 1, 0, 1, 0, 1, 0], [0, 1, 1, 1, 0, 0, 1]], [0, 0, 0, 0, 0, 1, 0]], [[0, 0, 0, 0, 0, 0, 0], 1]], ['control [[[1, 1, 0, 1, 0, 0], [0, 1, 1, 0, 1, 0], [1, 0, 1, 0, 0, 1]], [1, ...', [[[1, 1, 0, 1, 0, 0], [0, 1, 1, 0, 1, 0], [1, 0, 1, 0, 0, 1]], [1, 0, 1, 1, 1, 0]], [[1, 0, 1, 1, 1, 0], 0]], ['control [[[1, 1, 0, 1, 0, 0], [0, 1, 1, 0, 1, 0], [1, 0, 1, 0, 0, 1]], [1, ...', [[[1, 1, 0, 1, 0, 0], [0, 1, 1, 0, 1, 0], [1, 0, 1, 0, 0, 1]], [1, 1, 0, 0, 1, 0]], [[1, 1, 0, 0, 1, 1], 1]]], [['regression [[[1, 0, 1, 1, 1, 0, 0], [1, 1, 0, 1, 0, 1, 0], [0, 1, 1, 1, 0, 0, ...', [[[1, 0, 1, 1, 1, 0, 0], [1, 1, 0, 1, 0, 1, 0], [0, 1, 1, 1, 0, 0, 1]], [1, 1, 0, 1, 1, 0, 1]], [[1, 1, 0, 0, 1, 0, 1], 1]], ['regression [[[1, 0, 1, 1, 1, 0, 0], [1, 1, 0, 1, 0, 1, 0], [0, 1, 1, 1, 0, 0, ...', [[[1, 0, 1, 1, 1, 0, 0], [1, 1, 0, 1, 0, 1, 0], [0, 1, 1, 1, 0, 0, 1]], [1, 0, 0, 0, 1, 0, 1]], [[1, 1, 0, 0, 1, 0, 1], 1]], ['partial-repair [[[1, 1, 0, 1, 0, 0], [0, 1, 1, 0, 1, 0], [1, 0, 1, 0, 0, 1]], [1, ...', [[[1, 1, 0, 1, 0, 0], [0, 1, 1, 0, 1, 0], [1, 0, 1, 0, 0, 1]], [1, 0, 1, 1, 1, 0]], [[1, 0, 1, 1, 1, 0], 0]], ['control [[[1, 1, 0, 1, 0, 0], [0, 1, 1, 0, 1, 0], [1, 0, 1, 0, 0, 1]], [0, ...', [[[1, 1, 0, 1, 0, 0], [0, 1, 1, 0, 1, 0], [1, 0, 1, 0, 0, 1]], [0, 1, 0, 0, 0, 0]], [[0, 0, 0, 0, 0, 0], 1]], ['control [[[1, 1, 1, 1, 0], [1, 0, 1, 0, 1]], [0, 0, 0, 1, 0]]', [[[1, 1, 1, 1, 0], [1, 0, 1, 0, 1]], [0, 0, 0, 1, 0]], [[0, 1, 0, 1, 0], 1]], ['control [[[1, 0, 1, 1, 1, 0, 0], [1, 1, 0, 1, 0, 1, 0], [0, 1, 1, 1, 0, 0, ...', [[[1, 0, 1, 1, 1, 0, 0], [1, 1, 0, 1, 0, 1, 0], [0, 1, 1, 1, 0, 0, 1]], [0, 0, 0, 0, 0, 1, 0]], [[0, 0, 0, 0, 0, 0, 0], 1]], ['control [[[1, 1, 0, 1, 0, 0], [0, 1, 1, 0, 1, 0], [1, 0, 1, 0, 0, 1]], [1, ...', [[[1, 1, 0, 1, 0, 0], [0, 1, 1, 0, 1, 0], [1, 0, 1, 0, 0, 1]], [1, 0, 0, 0, 0, 0]], [[0, 0, 0, 0, 0, 0], 1]], ['control [[[1, 1, 0, 1, 0, 0], [0, 1, 1, 0, 1, 0], [1, 0, 1, 0, 0, 1]], [1, ...', [[[1, 1, 0, 1, 0, 0], [0, 1, 1, 0, 1, 0], [1, 0, 1, 0, 0, 1]], [1, 1, 0, 0, 1, 1]], [[1, 1, 0, 0, 1, 1], 0]]], [['regression [[[1, 1, 0, 1, 0, 0], [0, 1, 1, 0, 1, 0], [1, 0, 1, 0, 0, 1]], [1, ...', [[[1, 1, 0, 1, 0, 0], [0, 1, 1, 0, 1, 0], [1, 0, 1, 0, 0, 1]], [1, 1, 0, 0, 1, 0]], [[1, 1, 0, 0, 1, 1], 1]], ['regression [[[1, 1, 0, 1, 0, 0], [0, 1, 1, 0, 1, 0], [1, 0, 1, 0, 0, 1]], [1, ...', [[[1, 1, 0, 1, 0, 0], [0, 1, 1, 0, 1, 0], [1, 0, 1, 0, 0, 1]], [1, 0, 1, 1, 0, 1]], [[1, 0, 0, 1, 0, 1], 1]], ['partial-repair [[[1, 1, 0, 1, 0, 0], [0, 1, 1, 0, 1, 0], [1, 0, 1, 0, 0, 1]], [1, ...', [[[1, 1, 0, 1, 0, 0], [0, 1, 1, 0, 1, 0], [1, 0, 1, 0, 0, 1]], [1, 0, 1, 1, 0, 0]], [[1, 0, 1, 1, 1, 0], 1]], ['control [[[1, 1, 1, 1, 0], [1, 0, 1, 0, 1]], [0, 0, 0, 1, 0]]', [[[1, 1, 1, 1, 0], [1, 0, 1, 0, 1]], [0, 0, 0, 1, 0]], [[0, 1, 0, 1, 0], 1]], ['control [[[1, 0, 1, 1, 1, 0, 0], [1, 1, 0, 1, 0, 1, 0], [0, 1, 1, 1, 0, 0, ...', [[[1, 0, 1, 1, 1, 0, 0], [1, 1, 0, 1, 0, 1, 0], [0, 1, 1, 1, 0, 0, 1]], [0, 0, 0, 0, 0, 1, 0]], [[0, 0, 0, 0, 0, 0, 0], 1]], ['control [[[1, 1, 0, 1, 0, 0], [0, 1, 1, 0, 1, 0], [1, 0, 1, 0, 0, 1]], [1, ...', [[[1, 1, 0, 1, 0, 0], [0, 1, 1, 0, 1, 0], [1, 0, 1, 0, 0, 1]], [1, 0, 0, 0, 0, 0]], [[0, 0, 0, 0, 0, 0], 1]], ['control [[[1, 1, 0, 1, 0, 0], [0, 1, 1, 0, 1, 0], [1, 0, 1, 0, 0, 1]], [0, ...', [[[1, 1, 0, 1, 0, 0], [0, 1, 1, 0, 1, 0], [1, 0, 1, 0, 0, 1]], [0, 1, 0, 0, 0, 0]], [[0, 0, 0, 0, 0, 0], 1]], ['control [[[1, 1, 1, 1, 0], [1, 0, 1, 0, 1]], [0, 1, 0, 1, 1]]', [[[1, 1, 1, 1, 0], [1, 0, 1, 0, 1]], [0, 1, 0, 1, 1]], [[0, 1, 0, 1, 0], 1]]], [['regression [[[1, 1, 0, 1, 0, 0], [0, 1, 1, 0, 1, 0], [1, 0, 1, 0, 0, 1]], [1, ...', [[[1, 1, 0, 1, 0, 0], [0, 1, 1, 0, 1, 0], [1, 0, 1, 0, 0, 1]], [1, 1, 0, 0, 1, 1]], [[1, 1, 0, 0, 1, 1], 0]], ['regression [[[1, 1, 0, 1, 0, 0], [0, 1, 1, 0, 1, 0], [1, 0, 1, 0, 0, 1]], [0, ...', [[[1, 1, 0, 1, 0, 0], [0, 1, 1, 0, 1, 0], [1, 0, 1, 0, 0, 1]], [0, 0, 1, 0, 1, 1]], [[0, 0, 1, 0, 1, 1], 0]], ['partial-repair [[[1, 1, 1, 1, 0], [1, 0, 1, 0, 1]], [0, 1, 1, 0, 0]]', [[[1, 1, 1, 1, 0], [1, 0, 1, 0, 1]], [0, 1, 1, 0, 0]], [[0, 1, 1, 0, 1], 1]], ['control [[[1, 0, 1, 1, 1, 0, 0], [1, 1, 0, 1, 0, 1, 0], [0, 1, 1, 1, 0, 0, ...', [[[1, 0, 1, 1, 1, 0, 0], [1, 1, 0, 1, 0, 1, 0], [0, 1, 1, 1, 0, 0, 1]], [0, 0, 0, 0, 0, 1, 0]], [[0, 0, 0, 0, 0, 0, 0], 1]], ['control [[[1, 1, 0, 1, 0, 0], [0, 1, 1, 0, 1, 0], [1, 0, 1, 0, 0, 1]], [1, ...', [[[1, 1, 0, 1, 0, 0], [0, 1, 1, 0, 1, 0], [1, 0, 1, 0, 0, 1]], [1, 0, 0, 0, 0, 0]], [[0, 0, 0, 0, 0, 0], 1]], ['control [[[1, 1, 0, 1, 0, 0], [0, 1, 1, 0, 1, 0], [1, 0, 1, 0, 0, 1]], [0, ...', [[[1, 1, 0, 1, 0, 0], [0, 1, 1, 0, 1, 0], [1, 0, 1, 0, 0, 1]], [0, 1, 0, 0, 0, 0]], [[0, 0, 0, 0, 0, 0], 1]], ['control [[[1, 1, 1, 1, 0], [1, 0, 1, 0, 1]], [0, 0, 0, 1, 0]]', [[[1, 1, 1, 1, 0], [1, 0, 1, 0, 1]], [0, 0, 0, 1, 0]], [[0, 1, 0, 1, 0], 1]], ['control [[[1, 0, 1, 1, 1, 0, 0], [1, 1, 0, 1, 0, 1, 0], [0, 1, 1, 1, 0, 0, ...', [[[1, 0, 1, 1, 1, 0, 0], [1, 1, 0, 1, 0, 1, 0], [0, 1, 1, 1, 0, 0, 1]], [0, 1, 1, 1, 0, 0, 0]], [[0, 1, 1, 1, 0, 0, 1], 1]]]]
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 [[[1, 0, 1, 1, 1, 0, 0], [1, 1, 0, 1, 0, 1, 0], [0, 1, 1, 1, 0, 0, ... | [[0, 0, 0, 0, 0, 0, 0], 3] | [[0, 1, 1, 1, 0, 0, 1], 1] | Failed |
| regression [[[1, 0, 1, 1, 1, 0, 0], [1, 1, 0, 1, 0, 1, 0], [0, 1, 1, 1, 0, 0, ... | [[0, 1, 0, 0, 0, 1, 1], 3] | [[0, 0, 1, 1, 0, 1, 0], 1] | Failed |
| control [[[1, 0, 1, 1, 1, 0, 0], [1, 1, 0, 1, 0, 1, 0], [0, 1, 1, 1, 0, 0, ... | [[0, 0, 0, 0, 0, 0, 0], 1] | [[0, 0, 0, 0, 0, 0, 0], 1] | Passed |
| control [[[1, 1, 0, 1, 0, 0], [0, 1, 1, 0, 1, 0], [1, 0, 1, 0, 0, 1]], [1, ... | [[0, 0, 0, 0, 0, 0], 1] | [[0, 0, 0, 0, 0, 0], 1] | Passed |
| control [[[1, 1, 0, 1, 0, 0], [0, 1, 1, 0, 1, 0], [1, 0, 1, 0, 0, 1]], [0, ... | [[0, 0, 0, 0, 0, 0], 1] | [[0, 0, 0, 0, 0, 0], 1] | Passed |
| control [[[1, 1, 1, 1, 0], [1, 0, 1, 0, 1]], [0, 0, 0, 1, 0]] | [[0, 1, 0, 1, 0], 1] | [[0, 1, 0, 1, 0], 1] | Passed |
| control [[[1, 0, 1, 1, 1, 0, 0], [1, 1, 0, 1, 0, 1, 0], [0, 1, 1, 1, 0, 0, ... | [[0, 0, 0, 0, 0, 0, 0], 5] | [[0, 1, 1, 1, 0, 0, 1], 1] | Failed |
| control [[[1, 0, 1, 1, 1, 0, 0], [1, 1, 0, 1, 0, 1, 0], [0, 1, 1, 1, 0, 0, ... | [[0, 0, 0, 0, 0, 0, 0], 6] | [[1, 1, 1, 1, 1, 1, 1], 1] | Failed |
SHA-256 / 6ec0cf2766f1e2150e2008f620738470ebd9f9bbe6fbea8cae81162db3e721fb
2 / The unsuccessful fix
Exit 1"""Failure Map reference implementation. Python standard library only."""
import json
import itertools
N = 1
observations = []
def solve(H, r):
n = len(H[0])
def syn(v):
return tuple(min(1, sum(h[k] & v[k] for k in range(n))) for h in H)
table = {}
for w in range(n + 1):
for pos in itertools.combinations(range(n), w):
e = [1 if k in pos else 0 for k in range(n)]
table.setdefault(syn(e), e)
e = table.get(syn(r))
if e is None:
return None
return [[a ^ b for a, b in zip(r, e)], sum(e)]
def check(label, actual, expected):
observations.append({"check": label, "actual": actual, "expected": expected, "passed": actual == expected})
fixtures = [[['regression [[[1, 0, 1, 1, 1, 0, 0], [1, 1, 0, 1, 0, 1, 0], [0, 1, 1, 1, 0, 0, ...', [[[1, 0, 1, 1, 1, 0, 0], [1, 1, 0, 1, 0, 1, 0], [0, 1, 1, 1, 0, 0, 1]], [0, 1, 1, 1, 0, 0, 0]], [[0, 1, 1, 1, 0, 0, 1], 1]], ['regression [[[1, 0, 1, 1, 1, 0, 0], [1, 1, 0, 1, 0, 1, 0], [0, 1, 1, 1, 0, 0, ...', [[[1, 0, 1, 1, 1, 0, 0], [1, 1, 0, 1, 0, 1, 0], [0, 1, 1, 1, 0, 0, 1]], [0, 0, 1, 1, 0, 1, 1]], [[0, 0, 1, 1, 0, 1, 0], 1]], ['control [[[1, 0, 1, 1, 1, 0, 0], [1, 1, 0, 1, 0, 1, 0], [0, 1, 1, 1, 0, 0, ...', [[[1, 0, 1, 1, 1, 0, 0], [1, 1, 0, 1, 0, 1, 0], [0, 1, 1, 1, 0, 0, 1]], [0, 0, 0, 0, 0, 1, 0]], [[0, 0, 0, 0, 0, 0, 0], 1]], ['control [[[1, 1, 0, 1, 0, 0], [0, 1, 1, 0, 1, 0], [1, 0, 1, 0, 0, 1]], [1, ...', [[[1, 1, 0, 1, 0, 0], [0, 1, 1, 0, 1, 0], [1, 0, 1, 0, 0, 1]], [1, 0, 0, 0, 0, 0]], [[0, 0, 0, 0, 0, 0], 1]], ['control [[[1, 1, 0, 1, 0, 0], [0, 1, 1, 0, 1, 0], [1, 0, 1, 0, 0, 1]], [0, ...', [[[1, 1, 0, 1, 0, 0], [0, 1, 1, 0, 1, 0], [1, 0, 1, 0, 0, 1]], [0, 1, 0, 0, 0, 0]], [[0, 0, 0, 0, 0, 0], 1]], ['control [[[1, 1, 1, 1, 0], [1, 0, 1, 0, 1]], [0, 0, 0, 1, 0]]', [[[1, 1, 1, 1, 0], [1, 0, 1, 0, 1]], [0, 0, 0, 1, 0]], [[0, 1, 0, 1, 0], 1]], ['control [[[1, 0, 1, 1, 1, 0, 0], [1, 1, 0, 1, 0, 1, 0], [0, 1, 1, 1, 0, 0, ...', [[[1, 0, 1, 1, 1, 0, 0], [1, 1, 0, 1, 0, 1, 0], [0, 1, 1, 1, 0, 0, 1]], [0, 1, 1, 1, 0, 1, 1]], [[0, 1, 1, 1, 0, 0, 1], 1]], ['control [[[1, 0, 1, 1, 1, 0, 0], [1, 1, 0, 1, 0, 1, 0], [0, 1, 1, 1, 0, 0, ...', [[[1, 0, 1, 1, 1, 0, 0], [1, 1, 0, 1, 0, 1, 0], [0, 1, 1, 1, 0, 0, 1]], [1, 1, 1, 1, 0, 1, 1]], [[1, 1, 1, 1, 1, 1, 1], 1]]], [['regression [[[1, 0, 1, 1, 1, 0, 0], [1, 1, 0, 1, 0, 1, 0], [0, 1, 1, 1, 0, 0, ...', [[[1, 0, 1, 1, 1, 0, 0], [1, 1, 0, 1, 0, 1, 0], [0, 1, 1, 1, 0, 0, 1]], [0, 1, 1, 1, 0, 1, 1]], [[0, 1, 1, 1, 0, 0, 1], 1]], ['regression [[[1, 0, 1, 1, 1, 0, 0], [1, 1, 0, 1, 0, 1, 0], [0, 1, 1, 1, 0, 0, ...', [[[1, 0, 1, 1, 1, 0, 0], [1, 1, 0, 1, 0, 1, 0], [0, 1, 1, 1, 0, 0, 1]], [1, 1, 1, 1, 0, 1, 1]], [[1, 1, 1, 1, 1, 1, 1], 1]], ['control [[[1, 1, 0, 1, 0, 0], [0, 1, 1, 0, 1, 0], [1, 0, 1, 0, 0, 1]], [1, ...', [[[1, 1, 0, 1, 0, 0], [0, 1, 1, 0, 1, 0], [1, 0, 1, 0, 0, 1]], [1, 0, 0, 0, 0, 0]], [[0, 0, 0, 0, 0, 0], 1]], ['control [[[1, 1, 0, 1, 0, 0], [0, 1, 1, 0, 1, 0], [1, 0, 1, 0, 0, 1]], [0, ...', [[[1, 1, 0, 1, 0, 0], [0, 1, 1, 0, 1, 0], [1, 0, 1, 0, 0, 1]], [0, 1, 0, 0, 0, 0]], [[0, 0, 0, 0, 0, 0], 1]], ['control [[[1, 1, 1, 1, 0], [1, 0, 1, 0, 1]], [0, 0, 0, 1, 0]]', [[[1, 1, 1, 1, 0], [1, 0, 1, 0, 1]], [0, 0, 0, 1, 0]], [[0, 1, 0, 1, 0], 1]], ['control [[[1, 0, 1, 1, 1, 0, 0], [1, 1, 0, 1, 0, 1, 0], [0, 1, 1, 1, 0, 0, ...', [[[1, 0, 1, 1, 1, 0, 0], [1, 1, 0, 1, 0, 1, 0], [0, 1, 1, 1, 0, 0, 1]], [0, 0, 0, 0, 0, 1, 0]], [[0, 0, 0, 0, 0, 0, 0], 1]], ['control [[[1, 1, 0, 1, 0, 0], [0, 1, 1, 0, 1, 0], [1, 0, 1, 0, 0, 1]], [1, ...', [[[1, 1, 0, 1, 0, 0], [0, 1, 1, 0, 1, 0], [1, 0, 1, 0, 0, 1]], [1, 0, 1, 1, 1, 0]], [[1, 0, 1, 1, 1, 0], 0]], ['control [[[1, 1, 0, 1, 0, 0], [0, 1, 1, 0, 1, 0], [1, 0, 1, 0, 0, 1]], [1, ...', [[[1, 1, 0, 1, 0, 0], [0, 1, 1, 0, 1, 0], [1, 0, 1, 0, 0, 1]], [1, 1, 0, 0, 1, 0]], [[1, 1, 0, 0, 1, 1], 1]]], [['regression [[[1, 0, 1, 1, 1, 0, 0], [1, 1, 0, 1, 0, 1, 0], [0, 1, 1, 1, 0, 0, ...', [[[1, 0, 1, 1, 1, 0, 0], [1, 1, 0, 1, 0, 1, 0], [0, 1, 1, 1, 0, 0, 1]], [1, 1, 0, 1, 1, 0, 1]], [[1, 1, 0, 0, 1, 0, 1], 1]], ['regression [[[1, 0, 1, 1, 1, 0, 0], [1, 1, 0, 1, 0, 1, 0], [0, 1, 1, 1, 0, 0, ...', [[[1, 0, 1, 1, 1, 0, 0], [1, 1, 0, 1, 0, 1, 0], [0, 1, 1, 1, 0, 0, 1]], [1, 0, 0, 0, 1, 0, 1]], [[1, 1, 0, 0, 1, 0, 1], 1]], ['partial-repair [[[1, 1, 0, 1, 0, 0], [0, 1, 1, 0, 1, 0], [1, 0, 1, 0, 0, 1]], [1, ...', [[[1, 1, 0, 1, 0, 0], [0, 1, 1, 0, 1, 0], [1, 0, 1, 0, 0, 1]], [1, 0, 1, 1, 1, 0]], [[1, 0, 1, 1, 1, 0], 0]], ['control [[[1, 1, 0, 1, 0, 0], [0, 1, 1, 0, 1, 0], [1, 0, 1, 0, 0, 1]], [0, ...', [[[1, 1, 0, 1, 0, 0], [0, 1, 1, 0, 1, 0], [1, 0, 1, 0, 0, 1]], [0, 1, 0, 0, 0, 0]], [[0, 0, 0, 0, 0, 0], 1]], ['control [[[1, 1, 1, 1, 0], [1, 0, 1, 0, 1]], [0, 0, 0, 1, 0]]', [[[1, 1, 1, 1, 0], [1, 0, 1, 0, 1]], [0, 0, 0, 1, 0]], [[0, 1, 0, 1, 0], 1]], ['control [[[1, 0, 1, 1, 1, 0, 0], [1, 1, 0, 1, 0, 1, 0], [0, 1, 1, 1, 0, 0, ...', [[[1, 0, 1, 1, 1, 0, 0], [1, 1, 0, 1, 0, 1, 0], [0, 1, 1, 1, 0, 0, 1]], [0, 0, 0, 0, 0, 1, 0]], [[0, 0, 0, 0, 0, 0, 0], 1]], ['control [[[1, 1, 0, 1, 0, 0], [0, 1, 1, 0, 1, 0], [1, 0, 1, 0, 0, 1]], [1, ...', [[[1, 1, 0, 1, 0, 0], [0, 1, 1, 0, 1, 0], [1, 0, 1, 0, 0, 1]], [1, 0, 0, 0, 0, 0]], [[0, 0, 0, 0, 0, 0], 1]], ['control [[[1, 1, 0, 1, 0, 0], [0, 1, 1, 0, 1, 0], [1, 0, 1, 0, 0, 1]], [1, ...', [[[1, 1, 0, 1, 0, 0], [0, 1, 1, 0, 1, 0], [1, 0, 1, 0, 0, 1]], [1, 1, 0, 0, 1, 1]], [[1, 1, 0, 0, 1, 1], 0]]], [['regression [[[1, 1, 0, 1, 0, 0], [0, 1, 1, 0, 1, 0], [1, 0, 1, 0, 0, 1]], [1, ...', [[[1, 1, 0, 1, 0, 0], [0, 1, 1, 0, 1, 0], [1, 0, 1, 0, 0, 1]], [1, 1, 0, 0, 1, 0]], [[1, 1, 0, 0, 1, 1], 1]], ['regression [[[1, 1, 0, 1, 0, 0], [0, 1, 1, 0, 1, 0], [1, 0, 1, 0, 0, 1]], [1, ...', [[[1, 1, 0, 1, 0, 0], [0, 1, 1, 0, 1, 0], [1, 0, 1, 0, 0, 1]], [1, 0, 1, 1, 0, 1]], [[1, 0, 0, 1, 0, 1], 1]], ['partial-repair [[[1, 1, 0, 1, 0, 0], [0, 1, 1, 0, 1, 0], [1, 0, 1, 0, 0, 1]], [1, ...', [[[1, 1, 0, 1, 0, 0], [0, 1, 1, 0, 1, 0], [1, 0, 1, 0, 0, 1]], [1, 0, 1, 1, 0, 0]], [[1, 0, 1, 1, 1, 0], 1]], ['control [[[1, 1, 1, 1, 0], [1, 0, 1, 0, 1]], [0, 0, 0, 1, 0]]', [[[1, 1, 1, 1, 0], [1, 0, 1, 0, 1]], [0, 0, 0, 1, 0]], [[0, 1, 0, 1, 0], 1]], ['control [[[1, 0, 1, 1, 1, 0, 0], [1, 1, 0, 1, 0, 1, 0], [0, 1, 1, 1, 0, 0, ...', [[[1, 0, 1, 1, 1, 0, 0], [1, 1, 0, 1, 0, 1, 0], [0, 1, 1, 1, 0, 0, 1]], [0, 0, 0, 0, 0, 1, 0]], [[0, 0, 0, 0, 0, 0, 0], 1]], ['control [[[1, 1, 0, 1, 0, 0], [0, 1, 1, 0, 1, 0], [1, 0, 1, 0, 0, 1]], [1, ...', [[[1, 1, 0, 1, 0, 0], [0, 1, 1, 0, 1, 0], [1, 0, 1, 0, 0, 1]], [1, 0, 0, 0, 0, 0]], [[0, 0, 0, 0, 0, 0], 1]], ['control [[[1, 1, 0, 1, 0, 0], [0, 1, 1, 0, 1, 0], [1, 0, 1, 0, 0, 1]], [0, ...', [[[1, 1, 0, 1, 0, 0], [0, 1, 1, 0, 1, 0], [1, 0, 1, 0, 0, 1]], [0, 1, 0, 0, 0, 0]], [[0, 0, 0, 0, 0, 0], 1]], ['control [[[1, 1, 1, 1, 0], [1, 0, 1, 0, 1]], [0, 1, 0, 1, 1]]', [[[1, 1, 1, 1, 0], [1, 0, 1, 0, 1]], [0, 1, 0, 1, 1]], [[0, 1, 0, 1, 0], 1]]], [['regression [[[1, 1, 0, 1, 0, 0], [0, 1, 1, 0, 1, 0], [1, 0, 1, 0, 0, 1]], [1, ...', [[[1, 1, 0, 1, 0, 0], [0, 1, 1, 0, 1, 0], [1, 0, 1, 0, 0, 1]], [1, 1, 0, 0, 1, 1]], [[1, 1, 0, 0, 1, 1], 0]], ['regression [[[1, 1, 0, 1, 0, 0], [0, 1, 1, 0, 1, 0], [1, 0, 1, 0, 0, 1]], [0, ...', [[[1, 1, 0, 1, 0, 0], [0, 1, 1, 0, 1, 0], [1, 0, 1, 0, 0, 1]], [0, 0, 1, 0, 1, 1]], [[0, 0, 1, 0, 1, 1], 0]], ['partial-repair [[[1, 1, 1, 1, 0], [1, 0, 1, 0, 1]], [0, 1, 1, 0, 0]]', [[[1, 1, 1, 1, 0], [1, 0, 1, 0, 1]], [0, 1, 1, 0, 0]], [[0, 1, 1, 0, 1], 1]], ['control [[[1, 0, 1, 1, 1, 0, 0], [1, 1, 0, 1, 0, 1, 0], [0, 1, 1, 1, 0, 0, ...', [[[1, 0, 1, 1, 1, 0, 0], [1, 1, 0, 1, 0, 1, 0], [0, 1, 1, 1, 0, 0, 1]], [0, 0, 0, 0, 0, 1, 0]], [[0, 0, 0, 0, 0, 0, 0], 1]], ['control [[[1, 1, 0, 1, 0, 0], [0, 1, 1, 0, 1, 0], [1, 0, 1, 0, 0, 1]], [1, ...', [[[1, 1, 0, 1, 0, 0], [0, 1, 1, 0, 1, 0], [1, 0, 1, 0, 0, 1]], [1, 0, 0, 0, 0, 0]], [[0, 0, 0, 0, 0, 0], 1]], ['control [[[1, 1, 0, 1, 0, 0], [0, 1, 1, 0, 1, 0], [1, 0, 1, 0, 0, 1]], [0, ...', [[[1, 1, 0, 1, 0, 0], [0, 1, 1, 0, 1, 0], [1, 0, 1, 0, 0, 1]], [0, 1, 0, 0, 0, 0]], [[0, 0, 0, 0, 0, 0], 1]], ['control [[[1, 1, 1, 1, 0], [1, 0, 1, 0, 1]], [0, 0, 0, 1, 0]]', [[[1, 1, 1, 1, 0], [1, 0, 1, 0, 1]], [0, 0, 0, 1, 0]], [[0, 1, 0, 1, 0], 1]], ['control [[[1, 0, 1, 1, 1, 0, 0], [1, 1, 0, 1, 0, 1, 0], [0, 1, 1, 1, 0, 0, ...', [[[1, 0, 1, 1, 1, 0, 0], [1, 1, 0, 1, 0, 1, 0], [0, 1, 1, 1, 0, 0, 1]], [0, 1, 1, 1, 0, 0, 0]], [[0, 1, 1, 1, 0, 0, 1], 1]]]]
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 [[[1, 0, 1, 1, 1, 0, 0], [1, 1, 0, 1, 0, 1, 0], [0, 1, 1, 1, 0, 0, ... | [[0, 1, 1, 0, 0, 0, 0], 1] | [[0, 1, 1, 1, 0, 0, 1], 1] | Failed |
| regression [[[1, 0, 1, 1, 1, 0, 0], [1, 1, 0, 1, 0, 1, 0], [0, 1, 1, 1, 0, 0, ... | [[0, 0, 1, 0, 0, 1, 1], 1] | [[0, 0, 1, 1, 0, 1, 0], 1] | Failed |
| control [[[1, 0, 1, 1, 1, 0, 0], [1, 1, 0, 1, 0, 1, 0], [0, 1, 1, 1, 0, 0, ... | [[0, 0, 0, 0, 0, 0, 0], 1] | [[0, 0, 0, 0, 0, 0, 0], 1] | Passed |
| control [[[1, 1, 0, 1, 0, 0], [0, 1, 1, 0, 1, 0], [1, 0, 1, 0, 0, 1]], [1, ... | [[0, 0, 0, 0, 0, 0], 1] | [[0, 0, 0, 0, 0, 0], 1] | Passed |
| control [[[1, 1, 0, 1, 0, 0], [0, 1, 1, 0, 1, 0], [1, 0, 1, 0, 0, 1]], [0, ... | [[0, 0, 0, 0, 0, 0], 1] | [[0, 0, 0, 0, 0, 0], 1] | Passed |
| control [[[1, 1, 1, 1, 0], [1, 0, 1, 0, 1]], [0, 0, 0, 1, 0]] | [[0, 1, 0, 1, 0], 1] | [[0, 1, 0, 1, 0], 1] | Passed |
| control [[[1, 0, 1, 1, 1, 0, 0], [1, 1, 0, 1, 0, 1, 0], [0, 1, 1, 1, 0, 0, ... | [[0, 1, 1, 0, 0, 1, 1], 1] | [[0, 1, 1, 1, 0, 0, 1], 1] | Failed |
| control [[[1, 0, 1, 1, 1, 0, 0], [1, 1, 0, 1, 0, 1, 0], [0, 1, 1, 1, 0, 0, ... | [[1, 1, 1, 0, 0, 1, 1], 1] | [[1, 1, 1, 1, 1, 1, 1], 1] | Failed |
SHA-256 / a81a23a20a5f35dde1f4d31de9682821276e55ff144a9e6260f2823b9d952842
3 / The verified repair
Exit 0"""Failure Map reference implementation. Python standard library only."""
import json
import itertools
N = 1
observations = []
def solve(H, r):
n = len(H[0])
def syn(v):
return tuple(sum(h[k] & v[k] for k in range(n)) % 2 for h in H)
table = {}
for w in range(n + 1):
for pos in itertools.combinations(range(n), w):
e = [1 if k in pos else 0 for k in range(n)]
table.setdefault(syn(e), e)
e = table.get(syn(r))
if e is None:
return None
return [[a ^ b for a, b in zip(r, e)], sum(e)]
def check(label, actual, expected):
observations.append({"check": label, "actual": actual, "expected": expected, "passed": actual == expected})
fixtures = [[['regression [[[1, 0, 1, 1, 1, 0, 0], [1, 1, 0, 1, 0, 1, 0], [0, 1, 1, 1, 0, 0, ...', [[[1, 0, 1, 1, 1, 0, 0], [1, 1, 0, 1, 0, 1, 0], [0, 1, 1, 1, 0, 0, 1]], [0, 1, 1, 1, 0, 0, 0]], [[0, 1, 1, 1, 0, 0, 1], 1]], ['regression [[[1, 0, 1, 1, 1, 0, 0], [1, 1, 0, 1, 0, 1, 0], [0, 1, 1, 1, 0, 0, ...', [[[1, 0, 1, 1, 1, 0, 0], [1, 1, 0, 1, 0, 1, 0], [0, 1, 1, 1, 0, 0, 1]], [0, 0, 1, 1, 0, 1, 1]], [[0, 0, 1, 1, 0, 1, 0], 1]], ['control [[[1, 0, 1, 1, 1, 0, 0], [1, 1, 0, 1, 0, 1, 0], [0, 1, 1, 1, 0, 0, ...', [[[1, 0, 1, 1, 1, 0, 0], [1, 1, 0, 1, 0, 1, 0], [0, 1, 1, 1, 0, 0, 1]], [0, 0, 0, 0, 0, 1, 0]], [[0, 0, 0, 0, 0, 0, 0], 1]], ['control [[[1, 1, 0, 1, 0, 0], [0, 1, 1, 0, 1, 0], [1, 0, 1, 0, 0, 1]], [1, ...', [[[1, 1, 0, 1, 0, 0], [0, 1, 1, 0, 1, 0], [1, 0, 1, 0, 0, 1]], [1, 0, 0, 0, 0, 0]], [[0, 0, 0, 0, 0, 0], 1]], ['control [[[1, 1, 0, 1, 0, 0], [0, 1, 1, 0, 1, 0], [1, 0, 1, 0, 0, 1]], [0, ...', [[[1, 1, 0, 1, 0, 0], [0, 1, 1, 0, 1, 0], [1, 0, 1, 0, 0, 1]], [0, 1, 0, 0, 0, 0]], [[0, 0, 0, 0, 0, 0], 1]], ['control [[[1, 1, 1, 1, 0], [1, 0, 1, 0, 1]], [0, 0, 0, 1, 0]]', [[[1, 1, 1, 1, 0], [1, 0, 1, 0, 1]], [0, 0, 0, 1, 0]], [[0, 1, 0, 1, 0], 1]], ['control [[[1, 0, 1, 1, 1, 0, 0], [1, 1, 0, 1, 0, 1, 0], [0, 1, 1, 1, 0, 0, ...', [[[1, 0, 1, 1, 1, 0, 0], [1, 1, 0, 1, 0, 1, 0], [0, 1, 1, 1, 0, 0, 1]], [0, 1, 1, 1, 0, 1, 1]], [[0, 1, 1, 1, 0, 0, 1], 1]], ['control [[[1, 0, 1, 1, 1, 0, 0], [1, 1, 0, 1, 0, 1, 0], [0, 1, 1, 1, 0, 0, ...', [[[1, 0, 1, 1, 1, 0, 0], [1, 1, 0, 1, 0, 1, 0], [0, 1, 1, 1, 0, 0, 1]], [1, 1, 1, 1, 0, 1, 1]], [[1, 1, 1, 1, 1, 1, 1], 1]]], [['regression [[[1, 0, 1, 1, 1, 0, 0], [1, 1, 0, 1, 0, 1, 0], [0, 1, 1, 1, 0, 0, ...', [[[1, 0, 1, 1, 1, 0, 0], [1, 1, 0, 1, 0, 1, 0], [0, 1, 1, 1, 0, 0, 1]], [0, 1, 1, 1, 0, 1, 1]], [[0, 1, 1, 1, 0, 0, 1], 1]], ['regression [[[1, 0, 1, 1, 1, 0, 0], [1, 1, 0, 1, 0, 1, 0], [0, 1, 1, 1, 0, 0, ...', [[[1, 0, 1, 1, 1, 0, 0], [1, 1, 0, 1, 0, 1, 0], [0, 1, 1, 1, 0, 0, 1]], [1, 1, 1, 1, 0, 1, 1]], [[1, 1, 1, 1, 1, 1, 1], 1]], ['control [[[1, 1, 0, 1, 0, 0], [0, 1, 1, 0, 1, 0], [1, 0, 1, 0, 0, 1]], [1, ...', [[[1, 1, 0, 1, 0, 0], [0, 1, 1, 0, 1, 0], [1, 0, 1, 0, 0, 1]], [1, 0, 0, 0, 0, 0]], [[0, 0, 0, 0, 0, 0], 1]], ['control [[[1, 1, 0, 1, 0, 0], [0, 1, 1, 0, 1, 0], [1, 0, 1, 0, 0, 1]], [0, ...', [[[1, 1, 0, 1, 0, 0], [0, 1, 1, 0, 1, 0], [1, 0, 1, 0, 0, 1]], [0, 1, 0, 0, 0, 0]], [[0, 0, 0, 0, 0, 0], 1]], ['control [[[1, 1, 1, 1, 0], [1, 0, 1, 0, 1]], [0, 0, 0, 1, 0]]', [[[1, 1, 1, 1, 0], [1, 0, 1, 0, 1]], [0, 0, 0, 1, 0]], [[0, 1, 0, 1, 0], 1]], ['control [[[1, 0, 1, 1, 1, 0, 0], [1, 1, 0, 1, 0, 1, 0], [0, 1, 1, 1, 0, 0, ...', [[[1, 0, 1, 1, 1, 0, 0], [1, 1, 0, 1, 0, 1, 0], [0, 1, 1, 1, 0, 0, 1]], [0, 0, 0, 0, 0, 1, 0]], [[0, 0, 0, 0, 0, 0, 0], 1]], ['control [[[1, 1, 0, 1, 0, 0], [0, 1, 1, 0, 1, 0], [1, 0, 1, 0, 0, 1]], [1, ...', [[[1, 1, 0, 1, 0, 0], [0, 1, 1, 0, 1, 0], [1, 0, 1, 0, 0, 1]], [1, 0, 1, 1, 1, 0]], [[1, 0, 1, 1, 1, 0], 0]], ['control [[[1, 1, 0, 1, 0, 0], [0, 1, 1, 0, 1, 0], [1, 0, 1, 0, 0, 1]], [1, ...', [[[1, 1, 0, 1, 0, 0], [0, 1, 1, 0, 1, 0], [1, 0, 1, 0, 0, 1]], [1, 1, 0, 0, 1, 0]], [[1, 1, 0, 0, 1, 1], 1]]], [['regression [[[1, 0, 1, 1, 1, 0, 0], [1, 1, 0, 1, 0, 1, 0], [0, 1, 1, 1, 0, 0, ...', [[[1, 0, 1, 1, 1, 0, 0], [1, 1, 0, 1, 0, 1, 0], [0, 1, 1, 1, 0, 0, 1]], [1, 1, 0, 1, 1, 0, 1]], [[1, 1, 0, 0, 1, 0, 1], 1]], ['regression [[[1, 0, 1, 1, 1, 0, 0], [1, 1, 0, 1, 0, 1, 0], [0, 1, 1, 1, 0, 0, ...', [[[1, 0, 1, 1, 1, 0, 0], [1, 1, 0, 1, 0, 1, 0], [0, 1, 1, 1, 0, 0, 1]], [1, 0, 0, 0, 1, 0, 1]], [[1, 1, 0, 0, 1, 0, 1], 1]], ['partial-repair [[[1, 1, 0, 1, 0, 0], [0, 1, 1, 0, 1, 0], [1, 0, 1, 0, 0, 1]], [1, ...', [[[1, 1, 0, 1, 0, 0], [0, 1, 1, 0, 1, 0], [1, 0, 1, 0, 0, 1]], [1, 0, 1, 1, 1, 0]], [[1, 0, 1, 1, 1, 0], 0]], ['control [[[1, 1, 0, 1, 0, 0], [0, 1, 1, 0, 1, 0], [1, 0, 1, 0, 0, 1]], [0, ...', [[[1, 1, 0, 1, 0, 0], [0, 1, 1, 0, 1, 0], [1, 0, 1, 0, 0, 1]], [0, 1, 0, 0, 0, 0]], [[0, 0, 0, 0, 0, 0], 1]], ['control [[[1, 1, 1, 1, 0], [1, 0, 1, 0, 1]], [0, 0, 0, 1, 0]]', [[[1, 1, 1, 1, 0], [1, 0, 1, 0, 1]], [0, 0, 0, 1, 0]], [[0, 1, 0, 1, 0], 1]], ['control [[[1, 0, 1, 1, 1, 0, 0], [1, 1, 0, 1, 0, 1, 0], [0, 1, 1, 1, 0, 0, ...', [[[1, 0, 1, 1, 1, 0, 0], [1, 1, 0, 1, 0, 1, 0], [0, 1, 1, 1, 0, 0, 1]], [0, 0, 0, 0, 0, 1, 0]], [[0, 0, 0, 0, 0, 0, 0], 1]], ['control [[[1, 1, 0, 1, 0, 0], [0, 1, 1, 0, 1, 0], [1, 0, 1, 0, 0, 1]], [1, ...', [[[1, 1, 0, 1, 0, 0], [0, 1, 1, 0, 1, 0], [1, 0, 1, 0, 0, 1]], [1, 0, 0, 0, 0, 0]], [[0, 0, 0, 0, 0, 0], 1]], ['control [[[1, 1, 0, 1, 0, 0], [0, 1, 1, 0, 1, 0], [1, 0, 1, 0, 0, 1]], [1, ...', [[[1, 1, 0, 1, 0, 0], [0, 1, 1, 0, 1, 0], [1, 0, 1, 0, 0, 1]], [1, 1, 0, 0, 1, 1]], [[1, 1, 0, 0, 1, 1], 0]]], [['regression [[[1, 1, 0, 1, 0, 0], [0, 1, 1, 0, 1, 0], [1, 0, 1, 0, 0, 1]], [1, ...', [[[1, 1, 0, 1, 0, 0], [0, 1, 1, 0, 1, 0], [1, 0, 1, 0, 0, 1]], [1, 1, 0, 0, 1, 0]], [[1, 1, 0, 0, 1, 1], 1]], ['regression [[[1, 1, 0, 1, 0, 0], [0, 1, 1, 0, 1, 0], [1, 0, 1, 0, 0, 1]], [1, ...', [[[1, 1, 0, 1, 0, 0], [0, 1, 1, 0, 1, 0], [1, 0, 1, 0, 0, 1]], [1, 0, 1, 1, 0, 1]], [[1, 0, 0, 1, 0, 1], 1]], ['partial-repair [[[1, 1, 0, 1, 0, 0], [0, 1, 1, 0, 1, 0], [1, 0, 1, 0, 0, 1]], [1, ...', [[[1, 1, 0, 1, 0, 0], [0, 1, 1, 0, 1, 0], [1, 0, 1, 0, 0, 1]], [1, 0, 1, 1, 0, 0]], [[1, 0, 1, 1, 1, 0], 1]], ['control [[[1, 1, 1, 1, 0], [1, 0, 1, 0, 1]], [0, 0, 0, 1, 0]]', [[[1, 1, 1, 1, 0], [1, 0, 1, 0, 1]], [0, 0, 0, 1, 0]], [[0, 1, 0, 1, 0], 1]], ['control [[[1, 0, 1, 1, 1, 0, 0], [1, 1, 0, 1, 0, 1, 0], [0, 1, 1, 1, 0, 0, ...', [[[1, 0, 1, 1, 1, 0, 0], [1, 1, 0, 1, 0, 1, 0], [0, 1, 1, 1, 0, 0, 1]], [0, 0, 0, 0, 0, 1, 0]], [[0, 0, 0, 0, 0, 0, 0], 1]], ['control [[[1, 1, 0, 1, 0, 0], [0, 1, 1, 0, 1, 0], [1, 0, 1, 0, 0, 1]], [1, ...', [[[1, 1, 0, 1, 0, 0], [0, 1, 1, 0, 1, 0], [1, 0, 1, 0, 0, 1]], [1, 0, 0, 0, 0, 0]], [[0, 0, 0, 0, 0, 0], 1]], ['control [[[1, 1, 0, 1, 0, 0], [0, 1, 1, 0, 1, 0], [1, 0, 1, 0, 0, 1]], [0, ...', [[[1, 1, 0, 1, 0, 0], [0, 1, 1, 0, 1, 0], [1, 0, 1, 0, 0, 1]], [0, 1, 0, 0, 0, 0]], [[0, 0, 0, 0, 0, 0], 1]], ['control [[[1, 1, 1, 1, 0], [1, 0, 1, 0, 1]], [0, 1, 0, 1, 1]]', [[[1, 1, 1, 1, 0], [1, 0, 1, 0, 1]], [0, 1, 0, 1, 1]], [[0, 1, 0, 1, 0], 1]]], [['regression [[[1, 1, 0, 1, 0, 0], [0, 1, 1, 0, 1, 0], [1, 0, 1, 0, 0, 1]], [1, ...', [[[1, 1, 0, 1, 0, 0], [0, 1, 1, 0, 1, 0], [1, 0, 1, 0, 0, 1]], [1, 1, 0, 0, 1, 1]], [[1, 1, 0, 0, 1, 1], 0]], ['regression [[[1, 1, 0, 1, 0, 0], [0, 1, 1, 0, 1, 0], [1, 0, 1, 0, 0, 1]], [0, ...', [[[1, 1, 0, 1, 0, 0], [0, 1, 1, 0, 1, 0], [1, 0, 1, 0, 0, 1]], [0, 0, 1, 0, 1, 1]], [[0, 0, 1, 0, 1, 1], 0]], ['partial-repair [[[1, 1, 1, 1, 0], [1, 0, 1, 0, 1]], [0, 1, 1, 0, 0]]', [[[1, 1, 1, 1, 0], [1, 0, 1, 0, 1]], [0, 1, 1, 0, 0]], [[0, 1, 1, 0, 1], 1]], ['control [[[1, 0, 1, 1, 1, 0, 0], [1, 1, 0, 1, 0, 1, 0], [0, 1, 1, 1, 0, 0, ...', [[[1, 0, 1, 1, 1, 0, 0], [1, 1, 0, 1, 0, 1, 0], [0, 1, 1, 1, 0, 0, 1]], [0, 0, 0, 0, 0, 1, 0]], [[0, 0, 0, 0, 0, 0, 0], 1]], ['control [[[1, 1, 0, 1, 0, 0], [0, 1, 1, 0, 1, 0], [1, 0, 1, 0, 0, 1]], [1, ...', [[[1, 1, 0, 1, 0, 0], [0, 1, 1, 0, 1, 0], [1, 0, 1, 0, 0, 1]], [1, 0, 0, 0, 0, 0]], [[0, 0, 0, 0, 0, 0], 1]], ['control [[[1, 1, 0, 1, 0, 0], [0, 1, 1, 0, 1, 0], [1, 0, 1, 0, 0, 1]], [0, ...', [[[1, 1, 0, 1, 0, 0], [0, 1, 1, 0, 1, 0], [1, 0, 1, 0, 0, 1]], [0, 1, 0, 0, 0, 0]], [[0, 0, 0, 0, 0, 0], 1]], ['control [[[1, 1, 1, 1, 0], [1, 0, 1, 0, 1]], [0, 0, 0, 1, 0]]', [[[1, 1, 1, 1, 0], [1, 0, 1, 0, 1]], [0, 0, 0, 1, 0]], [[0, 1, 0, 1, 0], 1]], ['control [[[1, 0, 1, 1, 1, 0, 0], [1, 1, 0, 1, 0, 1, 0], [0, 1, 1, 1, 0, 0, ...', [[[1, 0, 1, 1, 1, 0, 0], [1, 1, 0, 1, 0, 1, 0], [0, 1, 1, 1, 0, 0, 1]], [0, 1, 1, 1, 0, 0, 0]], [[0, 1, 1, 1, 0, 0, 1], 1]]]]
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 [[[1, 0, 1, 1, 1, 0, 0], [1, 1, 0, 1, 0, 1, 0], [0, 1, 1, 1, 0, 0, ... | [[0, 1, 1, 1, 0, 0, 1], 1] | [[0, 1, 1, 1, 0, 0, 1], 1] | Passed |
| regression [[[1, 0, 1, 1, 1, 0, 0], [1, 1, 0, 1, 0, 1, 0], [0, 1, 1, 1, 0, 0, ... | [[0, 0, 1, 1, 0, 1, 0], 1] | [[0, 0, 1, 1, 0, 1, 0], 1] | Passed |
| control [[[1, 0, 1, 1, 1, 0, 0], [1, 1, 0, 1, 0, 1, 0], [0, 1, 1, 1, 0, 0, ... | [[0, 0, 0, 0, 0, 0, 0], 1] | [[0, 0, 0, 0, 0, 0, 0], 1] | Passed |
| control [[[1, 1, 0, 1, 0, 0], [0, 1, 1, 0, 1, 0], [1, 0, 1, 0, 0, 1]], [1, ... | [[0, 0, 0, 0, 0, 0], 1] | [[0, 0, 0, 0, 0, 0], 1] | Passed |
| control [[[1, 1, 0, 1, 0, 0], [0, 1, 1, 0, 1, 0], [1, 0, 1, 0, 0, 1]], [0, ... | [[0, 0, 0, 0, 0, 0], 1] | [[0, 0, 0, 0, 0, 0], 1] | Passed |
| control [[[1, 1, 1, 1, 0], [1, 0, 1, 0, 1]], [0, 0, 0, 1, 0]] | [[0, 1, 0, 1, 0], 1] | [[0, 1, 0, 1, 0], 1] | Passed |
| control [[[1, 0, 1, 1, 1, 0, 0], [1, 1, 0, 1, 0, 1, 0], [0, 1, 1, 1, 0, 0, ... | [[0, 1, 1, 1, 0, 0, 1], 1] | [[0, 1, 1, 1, 0, 0, 1], 1] | Passed |
| control [[[1, 0, 1, 1, 1, 0, 0], [1, 1, 0, 1, 0, 1, 0], [0, 1, 1, 1, 0, 0, ... | [[1, 1, 1, 1, 1, 1, 1], 1] | [[1, 1, 1, 1, 1, 1, 1], 1] | Passed |
SHA-256 / 22cb54404a6cdb59428872424c908302b5de80da37aa7bc1962b054d3d62cfb4
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.925544+00:00.
Case digest / 8b18ad7a992b487c5abe1e4f7817c9411157c08a00778b75fe372206638910be