Documentation

HexGraphIso.Nauty.Sparse.RefineBranches

theorem Hex.GraphIso.Nauty.Sparse.RefineSt.Equiv.singleton {n 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) {s t : RefineSt n} (h : Equiv (renamingOf p) level s t) (hs : Valid level s) (ht : Valid level t) (split : Nat) (hb : split < n) (hc : IsCell s.ptn level split 1) :
Equiv (renamingOf p) level (splitSingleton (Graph.ofGraph G) level split s) (splitSingleton (Graph.ofGraph H) level split t)

The native singleton branch transports at valid working states.

theorem Hex.GraphIso.Nauty.Sparse.RefineSt.Equiv.nontrivial {n 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) {s t : RefineSt n} (h : Equiv (renamingOf p) level s t) (hs : Valid level s) (ht : Valid level t) (split len : Nat) (hc : IsCell s.ptn level split len) (hb : split + len ≤ n) :
Equiv (renamingOf p) level (splitNontrivial (Graph.ofGraph G) level split s) (splitNontrivial (Graph.ofGraph H) level split t)

The native nontrivial branch transports at valid working states.

theorem Hex.GraphIso.Nauty.Sparse.RefineSt.Equiv.selected {n 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) {s t : RefineSt n} (h : Equiv (renamingOf p) level s t) (hs : Valid level s) (ht : Valid level t) (pos : Nat) (hp : pos < s.queue.size) :
Equiv (renamingOf p) level (RefineSt.selected (Graph.ofGraph G) level pos s) (RefineSt.selected (Graph.ofGraph H) level pos t)

The actual selected queue entry, swap/pop removal, hash and branch dispatch transport together.