The top-down analyzer is an optional preprocessor to the delaborator that aims to determine the minimal annotations necessary to ensure that the delaborated expression can be re-elaborated correctly. Currently, the top-down analyzer is neither sound nor complete: there may be edge-cases in which the expression can still not be re-elaborated correctly, and it may also add many annotations that are not strictly necessary.
Instances For
Equations
- Lean.PrettyPrinter.Delaborator.isNonConstFun (Lean.Expr.lam binderName binderType b binderInfo) = Lean.PrettyPrinter.Delaborator.isNonConstFun b
- Lean.PrettyPrinter.Delaborator.isNonConstFun motive = pure (Lean.Expr.hasLooseBVars motive)
Instances For
Instances For
Instances For
Instances For
Instances For
Instances For
Instances For
Instances For
def
Lean.PrettyPrinter.Delaborator.TopDownAnalyze.isDefEqAssigning
(t : Lean.Expr)
(s : Lean.Expr)
:
Instances For
Instances For
Instances For
Instances For
Instances For
Instances For
Equations
- Lean.PrettyPrinter.Delaborator.TopDownAnalyze.nameNotRoundtrippable.containsNum (Lean.Name.str p str) = Lean.PrettyPrinter.Delaborator.TopDownAnalyze.nameNotRoundtrippable.containsNum p
- Lean.PrettyPrinter.Delaborator.TopDownAnalyze.nameNotRoundtrippable.containsNum (Lean.Name.num pre i) = true
- Lean.PrettyPrinter.Delaborator.TopDownAnalyze.nameNotRoundtrippable.containsNum Lean.Name.anonymous = false
Instances For
Instances For
Instances For
- knowsType : Bool
- knowsLevel : Bool
- inBottomUp : Bool
- parentIsApp : Bool
- subExpr : Lean.SubExpr
Instances For
- annotations : Lean.PrettyPrinter.Delaborator.OptionsPerPos
Instances For
@[inline, reducible]
Instances For
Instances For
def
Lean.PrettyPrinter.Delaborator.TopDownAnalyze.inspectOutParams
(arg : Lean.Expr)
(mvar : Lean.Expr)
:
Instances For
def
Lean.PrettyPrinter.Delaborator.TopDownAnalyze.withKnowing
{α : Type}
(knowsType : Bool)
(knowsLevel : Bool)
(x : Lean.PrettyPrinter.Delaborator.TopDownAnalyze.AnalyzeM α)
:
Instances For
@[inline, reducible]
Instances For
partial def
Lean.PrettyPrinter.Delaborator.TopDownAnalyze.analyze
(parentIsApp : optParam Bool false)
:
partial def
Lean.PrettyPrinter.Delaborator.TopDownAnalyze.analyzeAppStagedCore.applyFunBinderHeuristic.core
(args : Array Lean.Expr)
(mvars : Array Lean.Expr)
(bInfos : Array Lean.BinderInfo)
(argIdx : Nat)
(mvarType : Lean.Expr)
: