Collect unassigned metavariables occurring in the given expression.
Remark: if e contains ?m and there is a t assigned to ?m, we
collect unassigned metavariables occurring in t.
Remark: if e contains ?m and ?m is delayed assigned to some term t,
we collect ?m and unassigned metavariables occurring in t.
We collect ?m because it has not been assigned yet.
Return metavariables occurring in the given expression. See collectMVars
Equations
- Lean.Meta.getMVars e = do let __discr ← (Lean.Meta.collectMVars e).run { visitedExpr := ∅, result := #[] } match __discr with | (fst, s) => pure s.result
Instances For
Similar to getMVars, but removes delayed assignments.
Equations
- Lean.Meta.getMVarsNoDelayed e = do let mvarIds ← Lean.Meta.getMVars e Array.filterM (fun (mvarId : Lean.MVarId) => not <$> mvarId.isDelayedAssigned) mvarIds 0
Instances For
Equations
- Lean.Meta.collectMVarsAtDecl d = d.forExprM Lean.Meta.collectMVars
Instances For
Equations
- Lean.Meta.getMVarsAtDecl d = do let __discr ← (Lean.Meta.collectMVarsAtDecl d).run { visitedExpr := ∅, result := #[] } match __discr with | (fst, s) => pure s.result
Instances For
Collect the metavariables which mvarId depends on. These are the metavariables
which appear in the type and local context of mvarId, as well as the
metavariables which those metavariables depend on, etc.
Equations
- mvarId.getMVarDependencies includeDelayed = (fun (x : Unit × Lean.HashSet Lean.MVarId) => x.snd) <$> (Lean.MVarId.getMVarDependencies.go includeDelayed mvarId).run ∅
Instances For
Auxiliary definition for getMVarDependencies.
Auxiliary definition for getMVarDependencies.