Instances For
- all: Array Lean.MVarId → Lean.Elab.Tactic.Conv.PatternMatchState
The state corresponding to a
(occs := *)
pattern, which acts likeoccs := 1 2 ... n
wheren
is the total number of pattern matches.subgoals
is the list of subgoals for patterns already matched
- occs: Array (Nat × Lean.MVarId) → Nat → List (Nat × Nat) → Lean.Elab.Tactic.Conv.PatternMatchState
The state corresponding to a partially consumed
(occs := a₁ a₂ ...)
pattern.subgoals
is the list of subgoals for patterns already matched, along with their index in the original occs listidx
is the number of matches that have occurred so farremaining
is a list of(i, orig)
pairs representing matches we have not yet reached. We maintain the invariant thatidx :: remaining.map (·.1)
is sorted. The numberi
is the value in theoccs
list andorig
is its index in the list.
Instances For
Is this pattern no longer interested in accepting matches?
Instances For
Is this pattern interested in accepting the next match?
Instances For
Assuming isReady
returned false, this advances to the next match.
Instances For
Assuming isReady
returned true, this adds the generated subgoal to the list
and advances to the next match.