Documentation

HexGraphIso.Nauty.Sparse.SpecNode

structure Hex.GraphIso.Nauty.Sparse.SpecNode {n : Nat} (G : SparseGraph n) (level : Nat) (lab ptn : Array Nat) (active : VSet n) (numcells : Nat) :

Entry invariants of the unpruned sparse tree, including the certificate that supplies equitability after the actual refinement.

Instances For
    theorem Hex.GraphIso.Nauty.Sparse.SpecNode.refined {n : Nat} {G : SparseGraph n} {level numcells : Nat} {lab ptn : Array Nat} {active : VSet n} (h : SpecNode G level lab ptn active numcells) :
    have r := refine (Graph.ofGraph G) level lab ptn active numcells; SpecNode G level r.lab r.ptn r.active r.numcells ∧ Equitable (Graph.context G) level r.lab r.ptn

    Executed sparse refinement preserves the tree's entry invariants and returns an equitable partition, with no equitability premise.

    theorem Hex.GraphIso.Nauty.Sparse.SpecNode.child {n : Nat} {G : SparseGraph n} {level numcells : Nat} {lab ptn : Array Nat} {active : VSet n} (h : SpecNode G level lab ptn active numcells) (heq : Equitable (Graph.context G) level lab ptn) {tc len o : Nat} (hc : IsCell ptn level tc len) (hb : tc + len ≤ n) (hn : 1 < len) (ho : o < len) :
    have c := breakout n lab ptn (level + 1) tc lab[tc + o]!; SpecNode G (level + 1) c.fst c.snd.fst c.snd.snd (numcells + 1)

    Every target member supplies the complete next-node invariant through the actual rotation and singleton activation.

    Actual stable colour buckets establish every nonempty root invariant.