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
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 × Std.HashSet Lean.MVarId) => x.snd) <$> (Lean.MVarId.getMVarDependencies.go includeDelayed mvarId).run ∅
Instances For
Auxiliary definition for getMVarDependencies
.
Auxiliary definition for getMVarDependencies
.