Documentation

HexGraphIso.Nauty.Sparse.Compact

theorem Hex.GraphIso.Nauty.Sparse.take_set (lab : Array Nat) (k v : Nat) (hk : k < lab.size) :

A write at the end of a retained prefix appends exactly that vertex.

structure Hex.GraphIso.Nauty.Sparse.Compact (before : Array Nat) (p : Nat → Bool) (first upto : Nat) (seen : List Nat) (lab hit : Array Nat) (next : Nat) :

The singleton splitter compacts the vertices that do not meet the splitter while collecting the others. Unread source positions are retained.

Instances For
    theorem Hex.GraphIso.Nauty.Sparse.Compact.initial (before : Array Nat) (p : Nat → Bool) (first : Nat) (hb : first ≤ before.size) :
    Compact before p first first [] before #[] first
    theorem Hex.GraphIso.Nauty.Sparse.Compact.collect {before : Array Nat} {p : Nat → Bool} {first upto : Nat} {seen : List Nat} {lab hit : Array Nat} {next : Nat} (h : Compact before p first upto seen lab hit next) (hb : upto < before.size) (hv : p before[upto]! = true) :
    Compact before p first (upto + 1) (seen ++ [before[upto]!]) lab (hit.push before[upto]!) next
    theorem Hex.GraphIso.Nauty.Sparse.Compact.keep {before : Array Nat} {p : Nat → Bool} {first upto : Nat} {seen : List Nat} {lab hit : Array Nat} {next : Nat} (h : Compact before p first upto seen lab hit next) (hb : upto < before.size) (hv : p before[upto]! = false) :
    Compact before p first (upto + 1) (seen ++ [before[upto]!]) (lab.setIfInBounds next before[upto]!) hit (next + 1)