theorem
Hex.GraphIso.Nauty.Sparse.targetcell_nontrivial
{n : Nat}
(G : SparseGraph n)
(lab ptn : Array Nat)
(level tcLevel : Nat)
(hint : Int)
(hp : lab.toList.Perm (List.range n))
(hs : ptn.size = n)
(hend : ptn[n - 1]! ≤ level)
(hc : bcount ptn level n < n)
:
Fresh target selection needs no caller-supplied label parser success or cache: both are derived from the node's permutation and partition facts.
theorem
Hex.GraphIso.Nauty.Sparse.maketargetcell_valid
{n : Nat}
(G : SparseGraph n)
(lab ptn : Array Nat)
(level tcLevel : Nat)
(hint : Int)
(hp : lab.toList.Perm (List.range n))
(hs : ptn.size = n)
(hend : ptn[n - 1]! ≤ level)
(hc : bcount ptn level n < n)
:
The fresh target's returned size is the length of a bounded nontrivial partition cell, including valid hints and both depth-cutoff branches.
theorem
Hex.GraphIso.Nauty.Sparse.maketargetCached_validCell
{n : Nat}
(G : SparseGraph n)
(lab ptn : Array Nat)
(level tcLevel : Nat)
(hint : Int)
(scratch : Scratch)
(hp : lab.toList.Perm (List.range n))
(hs : ptn.size = n)
(hend : ptn[n - 1]! ≤ level)
(hv : Scratch.Valid n lab ptn level scratch)
(hc : bcount ptn level n < n)
:
Every admissible scratch state yields the same bounded nontrivial target as the fresh selector, without additional cache or parsing assumptions.