Additional utilities in Lean.MVarId #
Applies intro repeatedly until it fails. We use this instead of
Lean.MVarId.intros to allowing unfolding.
For example, if we want to do introductions for propositions like ¬p,
the ¬ needs to be unfolded into → False, and intros does not do such unfolding.
Equations
- mvarId.intros! = Lean.MVarId.intros!.run mvarId #[] mvarId
Instances For
Get the type the given metavariable after instantiating metavariables and cleaning up annotations.
Equations
- mvarId.getType'' = do let __do_lift ← mvarId.getType let __do_lift ← Lean.instantiateMVars __do_lift pure __do_lift.cleanupAnnotations
Instances For
Analogue of liftMetaTactic for tactics that return a single goal.
Equations
- Lean.Elab.Tactic.liftMetaTactic' tac = Lean.Elab.Tactic.liftMetaTactic fun (g : Lean.MVarId) => do let __do_lift ← tac g pure [__do_lift]