def
Lean.Meta.mkGeneralizationForbiddenSet
(targets : Array Lean.Expr)
(forbidden : optParam Lean.FVarIdSet ∅)
:
Add to forbidden
all a set of FVarId
s containing targets
and all variables they depend on.
Equations
- One or more equations did not get rendered due to their size.
def
Lean.Meta.mkGeneralizationForbiddenSet.visit
(fvarId : Lean.FVarId)
(todo : List Lean.FVarId)
(s : Lean.FVarIdSet)
:
Equations
- One or more equations did not get rendered due to their size.
partial def
Lean.Meta.mkGeneralizationForbiddenSet.loop
(todo : List Lean.FVarId)
(s : Lean.FVarIdSet)
:
def
Lean.Meta.getFVarSetToGeneralize
(targets : Array Lean.Expr)
(forbidden : Lean.FVarIdSet)
(ignoreLetDecls : optParam Bool false)
:
Collect variables to be generalized. It uses the following heuristic
-
Collect forward dependencies that are not in the forbidden set, and depend on some variable in
targets
. -
We use
mkForbiddenSet
to computeforbidden
.
Remark: we not collect instance implicit arguments nor auxiliary declarations for compiling recursive declarations.
Equations
- One or more equations did not get rendered due to their size.
def
Lean.Meta.getFVarsToGeneralize
(targets : Array Lean.Expr)
(forbidden : optParam Lean.FVarIdSet ∅)
(ignoreLetDecls : optParam Bool false)
:
Equations
- One or more equations did not get rendered due to their size.