structure
Hex.GraphIso.Nauty.Sparse.ActiveScan
{n : Nat}
(active : VSet n)
(queue : Array Nat)
(next : Option Nat)
:
The initial active scan enumerates distinct members in ascending order;
next is the least member not yet in the queue.
- ordered : List.Pairwise (fun (x1 x2 : Nat) => x1 < x2) queue.toList
Instances For
theorem
Hex.GraphIso.Nauty.Sparse.ActiveScan.initial
{n : Nat}
(active : VSet n)
:
ActiveScan active #[] (active.nextElem none)
theorem
Hex.GraphIso.Nauty.Sparse.ActiveScan.step
{n i : Nat}
{active : VSet n}
{queue : Array Nat}
{next : Option Nat}
(h : ActiveScan active queue next)
(hn : next = some i)
:
ActiveScan active (queue.push i) (active.nextElem (some i))