Documentation

HexGraphIso.Nauty.Sparse.RowsTransport

theorem Hex.GraphIso.Nauty.Sparse.Graph.rows_map {n : Nat} (G H : SparseGraph n) (p : Perm n) (hiso : ∀ (u v : Fin n), H.adj (p.get u) (p.get v) = G.adj u v) (vertices visits : List Nat) (hb : ∀ (v : Nat), v ∈ vertices → v < n) (hp : visits.Perm (List.map (renamingOf p).toFun vertices)) :

Concatenating native rows transports the neighbour multiset even when both the splitter order and individual native row orders change.

theorem Hex.GraphIso.Nauty.Sparse.Graph.cell_rows_map {n first len level : Nat} (G H : SparseGraph n) (p : Perm n) (hiso : ∀ (u v : Fin n), H.adj (p.get u) (p.get v) = G.adj u v) {lab out ptn : Array Nat} (hp : lab.toList.Perm (List.range n)) (hb : first + len ≤ n) (hc : IsCell ptn level first len) (hperm : cellsPerm ptn level out (Array.map (renamingOf p).toFun lab)) :
(List.flatMap (fun (q : Nat) => (ofGraph H).row out[q]!) (List.range' first len)).Perm (List.map (renamingOf p).toFun (List.flatMap (fun (q : Nat) => (ofGraph G).row lab[q]!) (List.range' first len)))

The native row sequence of a whole partition cell transports under renaming and arbitrary permutations within the original cells.