def
Hex.GraphIso.Nauty.Sparse.produceCand
{n k : Nat}
(G : Sparse.Colored n k)
:
Option (CertCandidate n)
Run the optimized search once, then expand proof subtrees against its installed key. The native label and tie order are retained literally.
Equations
- One or more equations did not get rendered due to their size.
Instances For
theorem
Hex.GraphIso.Nauty.Sparse.produceCand_eq
{n k : Nat}
(G : Sparse.Colored n k)
:
produceCand G = some { tree := produceRoot G (canonSpecKey G), key := canonSpecKey G, lab := (runColored G).canonlab }
The unlimited producer succeeds with the actual production label and the proved canonical maximum. This uses unconditional production correctness.
theorem
Hex.GraphIso.Nauty.Sparse.produceCand_replays
{n k : Nat}
{G : Sparse.Colored n k}
{c : CertCandidate n}
(h : produceCand G = some c)
:
theorem
Hex.GraphIso.Nauty.Sparse.produceCand_key
{n k : Nat}
{G : Sparse.Colored n k}
{c : CertCandidate n}
(h : produceCand G = some c)
:
theorem
Hex.GraphIso.Nauty.Sparse.produceCand_label
{n k : Nat}
{G : Sparse.Colored n k}
{c : CertCandidate n}
(h : produceCand G = some c)
:
def
Hex.GraphIso.Nauty.Sparse.validateKey?
{n k : Nat}
(G : Sparse.Colored n k)
(c : CertCandidate n)
:
Validate an untrusted candidate through a single native sparse replay.
Equations
Instances For
theorem
Hex.GraphIso.Nauty.Sparse.validateKey?_sound
{n k : Nat}
{G : Sparse.Colored n k}
{c : CertCandidate n}
{B : Key n}
(h : validateKey? G c = some B)
:
Produce and check a sparse key. No-limit failure is excluded by the producer completeness theorem, independently of any trust in compiled code.