structure
Hex.GraphIso.Nauty.Sparse.Scan
{n : Nat}
(G : SparseGraph n)
(root : Fin n)
(dist queue : Array Nat)
(head tail current next : Nat)
(seen : List Nat)
extends Hex.GraphIso.Nauty.Sparse.Bfs G root dist queue head tail :
State of one packed adjacency scan. The queue head is advanced only after all these edge obligations have been discharged.
Instances For
theorem
Hex.GraphIso.Nauty.Sparse.Scan.add
{n : Nat}
{G : SparseGraph n}
{root : Fin n}
{dist queue : Array Nat}
{head tail current next e : Nat}
{seen : List Nat}
(h : Scan G root dist queue head tail current next seen)
(hlo : G.offsets[current]! ≤ e)
(hhi : e < G.offsets[current + 1]!)
(hd : dist[(Graph.ofGraph G).neighbor e]! = n)
:
theorem
Hex.GraphIso.Nauty.Sparse.Scan.keep
{n : Nat}
{G : SparseGraph n}
{root : Fin n}
{dist queue : Array Nat}
{head tail current next e : Nat}
{seen : List Nat}
(h : Scan G root dist queue head tail current next seen)
(hhi : e < G.offsets[current + 1]!)
(hd : dist[(Graph.ofGraph G).neighbor e]! ≠ n)
: