def
Hex.GraphIso.Nauty.Sparse.CountTrace.Control.more
{n : Nat}
(s : Control n)
(distance : Bool)
(first v2 v3 : Nat)
:
The first tail state, after the second fragment has been enqueued and the initial largest-fragment comparison has executed.
Equations
- One or more equations did not get rendered due to their size.
Instances For
inductive
Hex.GraphIso.Nauty.Sparse.CountTrace.Result
{n : Nat}
(distance : Bool)
(first last : Nat)
(s : RefineSt n)
(lab : Array Nat)
:
The complete control trace of a count split: uniform early return, two fragments, or the first two fragments followed by the tail derivation.
- uniform {n : Nat} {distance : Bool} {first last : Nat} {s : RefineSt n} {lab : Array Nat} (hu : ∀ (q : Nat), first ≤ q → q < last → s.hits[s.lab[q]!]! = s.hits[s.lab[first]!]!) : Result distance first last s lab ((control s).hash first)
- divided {n : Nat} {distance : Bool} {first last : Nat} {s : RefineSt n} {lab : Array Nat} {v2 v3 w1 w2 : Nat} {out : Control n} (hn : ∃ (q : Nat), first ≤ q ∧ q < last ∧ s.hits[s.lab[q]!]! ≠ s.hits[s.lab[first]!]!) (hm : Minima lab s.hits first v2 v3 last w1 w2) (hv : v2 < v3) (hc : if v3 = last then out = ((control s).base distance first w1 w2 v2).pair first v2 v3 else let c := ((control s).base distance first w1 w2 v2).more distance first v2 v3; Tail distance lab s.hits first last (v3 - 1) c.fst c.snd.fst c.snd.snd out) : Result distance first last s lab out