Documentation

HexGraphIso.Nauty.Sparse.CountPassEquiv

theorem Hex.GraphIso.Nauty.Sparse.CountTrace.Pass.equiv {n level : Nat} {distance : Bool} {key : Nat → Nat} {xs : List Nat} {s a : RefineSt n} (σ : Renaming n) (h : Pass level distance key xs s a) {t b : RefineSt n} {other : Nat → Nat} :
Pass level distance other xs t b → s.lab.toList.Perm (List.range n) → t.lab.toList.Perm (List.range n) → s.ptn.size = n → t.ptn = s.ptn → Index.Valid n s.lab s.ptn level s.cellstart s.cellend → Index.Valid n t.lab t.ptn level t.cellstart t.cellend → cellsPerm s.ptn level t.lab (Array.map σ.toFun s.lab) → (∀ (v : Nat), v < n → other (σ.toFun v) = key v) → control s = control t → s.numcells = t.numcells → a.ptn = b.ptn ∧ cellsPerm a.ptn level b.lab (Array.map σ.toFun a.lab) ∧ control a = control b ∧ a.numcells = b.numcells

Count-split traces transport all observations when their semantic counts commute with renaming. Only processed cells constrain scratch hits.