Documentation

HexGraphIso.Nauty.Sparse.IndexRun

theorem Hex.GraphIso.Nauty.Sparse.indexCells_valid {n : Nat} (lab ptn starts ends : Array Nat) (level : Nat) (hptn : ptn.size = n) (hend : ptn[n - 1]! ≤ level) (hbound : ∀ (i : Nat), i < n → lab[i]! < n) (hinj : ∀ (i j : Nat), i < n → j < n → lab[i]! = lab[j]! → i = j) (hs : starts.size = n) (he : ends.size = n) :
Index.Valid n lab ptn level (indexCells n lab ptn level starts ends).fst (indexCells n lab ptn level starts ends).snd

The executed bounded cell walk fills every cell index. It needs only a bounded injective labelling and a partition closed at its last position.

theorem Hex.GraphIso.Nauty.Sparse.indexCells_label {n : Nat} (lab ptn starts ends : Array Nat) (level : Nat) (l : Label n) (hl : Label.ofArray? n lab = some l) (hptn : ptn.size = n) (hend : ptn[n - 1]! ≤ level) (hs : starts.size = n) (he : ends.size = n) :
Index.Valid n lab ptn level (indexCells n lab ptn level starts ends).fst (indexCells n lab ptn level starts ends).snd

A checked public label supplies the bounded, injective raw labelling.