structure
Hex.GraphIso.Nauty.Sparse.CellQueue
{n : Nat}
(ptn : Array Nat)
(level : Nat)
(active : VSet n)
(queue : Array Nat)
:
Every active queue entry is the beginning of a partition cell, and the queue agrees exactly with the packed active set.
- set : ActiveQueue active queue
Instances For
theorem
Hex.GraphIso.Nauty.Sparse.CellQueue.cut
{n level : Nat}
{ptn queue : Array Nat}
{active : VSet n}
(h : CellQueue ptn level active queue)
(q : Nat)
:
CellQueue (ptn.setIfInBounds q level) level active queue
theorem
Hex.GraphIso.Nauty.Sparse.CellQueue.cut_push
{n level v : Nat}
{ptn queue : Array Nat}
{active : VSet n}
(h : CellQueue ptn level active queue)
(hv : 0 < v)
(hn : v < n)
(hb : v - 1 < ptn.size)
(ho : level < ptn[v - 1]!)
:
CellQueue (ptn.setIfInBounds (v - 1) level) level (active.insert v) (queue.push v)
A new interior cut creates a fresh active cell start.