The first minimum fragment is indexed; the scatter of the second
fragment is complete up to upto.
Instances For
theorem
Hex.GraphIso.Nauty.Sparse.Index.Two.step_long
{n first v2 v3 upto : Nat}
{lab starts : Array Nat}
(h : Two n first v2 v3 upto lab starts)
(hbound : ∀ (i : Nat), i < n → lab[i]! < n)
(hinj : ∀ (i j : Nat), i < n → j < n → lab[i]! = lab[j]! → i = j)
(hu : v2 ≤ upto)
(hb : upto < n)
(hv : v3 ≠ v2 + 1)
:
theorem
Hex.GraphIso.Nauty.Sparse.Index.Two.runs
{n first v2 v3 : Nat}
{lab starts ends hits : Array Nat}
{last w1 w2 : Nat}
(h : Two n first v2 v3 v3 lab starts)
(hm : Minima lab hits first v2 v3 last w1 w2)
(hv : v2 < v3)
(hb : last ≤ n)
(he : ends.size = n)
:
Runs n first (last - 1) v3 lab hits starts ((ends.setIfInBounds first (v2 - 1)).setIfInBounds v2 (v3 - 1))
The endpoint writes install precisely the first two maximal count runs.