Equations
- One or more equations did not get rendered due to their size.
Instances For
- all
(subgoals : Array MVarId)
 : PatternMatchStateThe state corresponding to a (occs := *)pattern, which acts likeoccs := 1 2 ... nwherenis the total number of pattern matches.- subgoalsis the list of subgoals for patterns already matched
 
- occs
(subgoals : Array (Nat × MVarId))
(idx : Nat)
(remaining : List (Nat × Nat))
 : PatternMatchStateThe state corresponding to a partially consumed (occs := a₁ a₂ ...)pattern.- subgoalsis the list of subgoals for patterns already matched, along with their index in the original occs list
- idxis the number of matches that have occurred so far
- remainingis a list of- (i, orig)pairs representing matches we have not yet reached. We maintain the invariant that- idx :: remaining.map (·.1)is sorted. The number- iis the value in the- occslist and- origis its index in the list.
 
Instances For
Is this pattern no longer interested in accepting matches?
Equations
- (Lean.Elab.Tactic.Conv.PatternMatchState.all subgoals).isDone = false
- (Lean.Elab.Tactic.Conv.PatternMatchState.occs subgoals idx remaining).isDone = remaining.isEmpty
Instances For
Is this pattern interested in accepting the next match?
Equations
Instances For
Assuming isReady returned false, this advances to the next match.
Equations
- (Lean.Elab.Tactic.Conv.PatternMatchState.occs subgoals idx remaining).skip = Lean.Elab.Tactic.Conv.PatternMatchState.occs subgoals (idx + 1) remaining
- x✝.skip = x✝
Instances For
Assuming isReady returned true, this adds the generated subgoal to the list
and advances to the next match.
Equations
- One or more equations did not get rendered due to their size.
- Lean.Elab.Tactic.Conv.PatternMatchState.accept mvarId (Lean.Elab.Tactic.Conv.PatternMatchState.all subgoals) = Lean.Elab.Tactic.Conv.PatternMatchState.all (subgoals.push mvarId)
- Lean.Elab.Tactic.Conv.PatternMatchState.accept mvarId x✝ = x✝
Instances For
Equations
- One or more equations did not get rendered due to their size.