import numpy as np from gates import survive rng=np.random.default_rng(127) # Step 3 check: homogeneous half-line Rule 150 (dark lighthouse): Delta_1(r + 2^m) == Delta_1(r) def evolve150(D,T): L=len(D)+T+4; x=np.zeros(L,dtype=np.uint8); x[:len(D)]=D; out=[] for t in range(T): out.append(int(x[0])) near=np.concatenate([[0],x[:-1]]); far=np.concatenate([x[1:],[0]]); x=far^x^near return out ok=tot=0 for _ in range(300): W=int(rng.integers(1,12)); D=rng.integers(0,2,size=W).astype(np.uint8); D[-1]=1 seq=evolve150(D,1100) for m in (6,7,8,9): for r in range(0,(1<