theorem
Hex.GraphIso.Nauty.Sparse.refine_node
{n : Nat}
(G : SparseGraph n)
(level : Nat)
(lab ptn : Array Nat)
(active : VSet n)
(numcells : Nat)
(hp : lab.toList.Perm (List.range n))
(h : NodeOk n level lab ptn active)
(hc : numcells = bcount ptn level n)
:
Standalone sparse refinement preserves valid node data and exact counts, and never decreases the cell count.
theorem
Hex.GraphIso.Nauty.Sparse.specLeaves_nonempty
{n : Nat}
(G : SparseGraph n)
(tcLevel fuel level : Nat)
(lab ptn : Array Nat)
(active : VSet n)
(numcells : Nat)
(hp : lab.toList.Perm (List.range n))
(h : NodeOk n level lab ptn active)
(hc : numcells = bcount ptn level n)
(hl : level ≤ numcells)
(hf : n < fuel + numcells)
:
The unpruned specification cannot exhaust when its remaining recursion bound exceeds the number of possible further cell splits.
Every native coloured graph has an attaining leaf in the finite sparse tree, including the empty graph.