Each graph decided by an exhaustive search, in two implementations held to each other
With AlphaEvolve (arXiv 2603.09172) Google released 18 graphs, one per claimed lower bound on a Ramsey number R(s, t). A graph on m − 1 vertices with no clique of size s and no independent set of size t proves R(s, t) ≥ m. Here each file is read as a simple graph and both properties are decided by an exhaustive search written from the definition, in two implementations held to each other root by root: 16 of 18 CERTIFIED, 2 still searching.
Published, not peer-reviewed. The graphs and the bounds are Google's (Apache-2.0), copied unmodified from github.com/google-research/google-research at 0d94f8c4 and pinned by sha256; their sha256 equal those maximusrufus published with the same files (cert-machine#1). Neither Google's notebook nor maximusrufus's checker was run or read for this decision. A CERTIFIED file proves its bound; whether the bound is new is the paper's claim, not checked here.
The verifier ships unexecuted. The release's check is a notebook, verify_bounds.ipynb, which lists every clique of size s in the graph and every clique of size t in its complement with igraph's cliques(min=k, max=k). It is published with 0 output cells and no execution count, so the release carries no record that the check was run on any file, or how long the five large ones took.
What would close it. The notebook's output, or the run's log and timing, beside the files.
Half the matrix is read. The notebook builds the graph from the entries above the diagonal that equal 1. Symmetry and the diagonal are never looked at, and an entry other than 0 or 1 would be read as "no edge". All 18 files are in fact symmetric 0/1 matrices with a zero diagonal (checked here, instruments/ramsey/graph.py), so no verdict changes; a file that was not would have been "verified" as the graph of its upper triangle.
What would close it. Three assertions before the graph is built: square, symmetric, zero diagonal, entries in {0, 1}.
| claim | vertices | no s-clique (K side) | no independent t-set (I side) | both implementations | verdict |
|---|---|---|---|---|---|
| R(3, 12) >= 53 | 52 | none · 52 nodes | none · 4,967 nodes | yes, root by root | CERTIFIED |
| R(3, 13) >= 61 | 60 | none · 60 nodes | none · 54,515 nodes | yes, root by root | CERTIFIED |
| R(3, 15) >= 74 | 73 | none · 73 nodes | none · 130,758 nodes | yes, root by root | CERTIFIED |
| R(3, 17) >= 93 | 92 | none · 92 nodes | none · 1,730,104 nodes | yes, root by root | CERTIFIED |
| R(3, 18) >= 100 | 99 | none · 99 nodes | none · 1,423,686 nodes | yes, root by root | CERTIFIED |
| R(4, 13) >= 139 | 138 | none · 1,371 nodes | none · 250,304 nodes | yes, root by root | CERTIFIED |
| R(4, 14) >= 148 | 147 | none · 1,300 nodes | none · 1,038,704 nodes | yes, root by root | CERTIFIED |
| R(4, 15) >= 163 | 162 | none · 1,716 nodes | none · 2,344,398 nodes | yes, root by root | CERTIFIED |
| R(4, 16) >= 174 | 173 | none · 1,689 nodes | none · 5,024,559 nodes | yes, root by root | CERTIFIED |
| R(4, 18) >= 209 | 208 | none · 2,793 nodes | none · 10,754,608 nodes | yes, root by root | CERTIFIED |
| R(4, 19) >= 219 | 218 | none · 2,722 nodes | none · 16,226,653 nodes | yes, root by root | CERTIFIED |
| R(4, 20) >= 237 | 236 | none · 3,612 nodes | none · 10,401,596 nodes | yes, root by root | CERTIFIED |
| R(4, 21) >= 244 | 243 | none · 3,488 nodes | none · 17,515,703 nodes | yes, root by root | CERTIFIED |
| R(8, 12) >= 511 | 510 | none · 1,805,950 nodes | none · 23,489,926,261 nodes | kernel; roots on record | CERTIFIED |
| R(7, 13) >= 513 | 512 | none · 2,399,667 nodes | 57 / 512 roots · 46,390,841,578 nodes | kernel; roots on record | REFUSED |
| R(9, 11) >= 617 | 616 | none · 79,590,364 nodes | none · 10,998,244,950 nodes | kernel; roots on record | CERTIFIED |
| R(10, 12) >= 856 | 855 | none · 503,223,948 nodes | none · 88,209,553,369 nodes | kernel; roots on record | CERTIFIED |
| R(8, 18) >= 1052 | 1051 | none · 18,979,448 nodes | 0 / 1051 roots · 0 nodes | kernel; roots on record | REFUSED |
Node counts are search nodes of this algorithm, comparable between its two implementations and across runs, not across programs. A long side's finished roots are kept in corpus/ramsey/runs/<file>.<side>.progress ("rank nodes"), so a stopped search resumes and every closed root stays on record.
Reading. graph.py refuses a file that is not square, has an entry outside {0, 1}, is not symmetric, has a vertex joined to itself, or has a vertex count other than the m − 1 its name claims. The independent-set side searches the complement for cliques of size t.
Search. smallest-last (ties by smallest label); roots in rank order with their later neighbours; greedy colouring of the candidates (lowest label first), walked backwards; size + colour < k closes the branch. clique.py is the reference: standard library, agreeing with brute force on thousands of random small graphs. clique.c is the kernel, threaded over roots, held to the reference: the same order, the same colouring, the same branch order, so on every graph both finish the per-root node counts must be equal, or the build refuses.
Independence. Written from the definition of R(s, t). Google's notebook (igraph) and maximusrufus's checker were not run and their code was not read for this decision; the only things taken from the release are the 18 matrices and the claims in their file names.