- newHCtx : UpdatedHypContext
- oldHCtx : Option HypothesisContext
- oldCache : Option RewriteCacheMap
Instances For
- oldMatchCtx : MatchContextMap
- oldCache : RewriteCacheMap
Instances For
- newCtx : LocalDeclContext
- oldCtx : LocalDeclContext
Instances For
Equations
- Blaster.Optimize.instReprHypsStackContext = { reprPrec := fun (x : Blaster.Optimize.HypsStackContext) (x : Nat) => Std.Format.text "<HypsStackContext>" }
Equations
- Blaster.Optimize.instReprMatchStackContext = { reprPrec := fun (x : Blaster.Optimize.MatchStackContext) (x : Nat) => Std.Format.text "<MatchStackContext>" }
Equations
- Blaster.Optimize.instReprLocalDeclContext = { reprPrec := fun (x : Blaster.Optimize.LocalDeclContext) (x : Nat) => Std.Format.text "<LocalDeclContext>" }
Equations
- Blaster.Optimize.instReprLocalContext_blaster = { reprPrec := fun (x : Lean.LocalContext) (x : Nat) => Std.Format.text "<LocalContext>" }
- InitOptimizeExpr (e : Lean.Expr) : OptimizeStack
- InitOptimizeReturn (e : Lean.Expr) (isGlobal : Bool) : OptimizeStack
- InitOpaqueRecExpr (f : Lean.Expr) (args : Array Lean.Expr) : OptimizeStack
- RecFunDefWaitForStorage (args : Array Lean.Expr) (instApp subsInts : Lean.Expr) (params : ImplicitParameters) : OptimizeStack
- RecFunDefStorage (args : Array Lean.Expr) (instApp subsInts : Lean.Expr) (params : ImplicitParameters) (optBody : Lean.Expr) : OptimizeStack
- ForallWaitForType (n : Lean.Name) (bi : Lean.BinderInfo) (body : Lean.Expr) : OptimizeStack
- ForallWaitForBody (x t : Lean.Expr) (hctx : HypsStackContext) (lctx : LocalDeclContext) : OptimizeStack
- AppWaitForConst (args : Array Lean.Expr) : OptimizeStack
- OptimizeMatchInfoWaitForInst (f : Lean.Expr) (args : Array Lean.Expr) (startArgIdx : Nat) (pInfo : FunEnvInfo) (mInfo : MatcherRecInfo) : OptimizeStack
- AppOptimizeImplicitArgs (f : Lean.Expr) (args : Array Lean.Expr) (idx startArgIdx stopIdx : Nat) (pInfo : FunEnvInfo) : OptimizeStack
- AppOptimizeExplicitArgs (f : Lean.Expr) (args : Array Lean.Expr) (idx stopIdx : Nat) (pInfo : FunEnvInfo) (mInfo : Option MatchInfo) : OptimizeStack
- DiteChoiceWaitForCond (f : Lean.Expr) (args : Array Lean.Expr) (pInfo : FunEnvInfo) (startArgIdx : Nat) : OptimizeStack
- MatchChoiceOptimizeDiscrs (f : Lean.Expr) (args : Array Lean.Expr) (pInfo : FunEnvInfo) (startArgIdx idx : Nat) (mInfo : MatchInfo) : OptimizeStack
- LambdaWaitForType (n : Lean.Name) (bi : Lean.BinderInfo) (body : Lean.Expr) (inDite : Bool) : OptimizeStack
- LambdaWaitForBody (x : Lean.Expr) (lctx : LocalDeclContext) (hctx : Option HypsStackContext) : OptimizeStack
- MatchRhsLambdaWaitForType (n : Lean.Name) (bi : Lean.BinderInfo) (body : Lean.Expr) : OptimizeStack
- MatchRhsLambdaNext (e : Lean.Expr) : OptimizeStack
- MatchRhsLambdaWaitForBody (x : Lean.Expr) (lctx : LocalDeclContext) : OptimizeStack
- MatchAltWaitForExpr (params : Array Lean.Expr) (lctx : LocalDeclContext) (mctx : MatchStackContext) : OptimizeStack
- LetWaitForValue (body : Lean.Expr) : OptimizeStack
- MDataRecCallWaitForExpr (data : Lean.MData) : OptimizeStack
- ProjWaitForExpr (n : Lean.Name) (idx : Nat) : OptimizeStack
Instances For
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
@[reducible, inline]
Instances For
@[inline]
Equations
- One or more equations did not get rendered due to their size.
Instances For
@[inline]
Equations
- One or more equations did not get rendered due to their size.
Instances For
@[inline]
Equations
- One or more equations did not get rendered due to their size.
Instances For
@[inline]
Equations
Instances For
@[inline]
Equations
- One or more equations did not get rendered due to their size.
Instances For
@[inline]
Equations
Instances For
def
Blaster.Optimize.stackContinuity
(stack : List OptimizeStack)
(optExpr : Lean.Expr)
(skipCache : Bool := false)
:
Equations
Instances For
@[inline]
Given a function f := Expr const n l perform the following:
- When
n := mInfo ∈ isMatcherCache(i.e., match info already optimized)- return
none
- return
- When let some mInfo ← getMatcherRecInfo? n l (i.e., f's generic instance not optimized)
- return
some $ Sum.inr (mInfo, matchFun)
- return
- Otherwise
none
Equations
Instances For
@[inline]
Equations
- One or more equations did not get rendered due to their size.
Instances For
@[inline]
def
Blaster.Optimize.optimizeIfThenElse?
(f : Lean.Expr)
(args : Array Lean.Expr)
(stack : List OptimizeStack)
:
Apply simplification/normalization rules on Blaster.dite' expressions. Assume that f = Expr.const ``Blaster.dite'.
Equations
- One or more equations did not get rendered due to their size.
Instances For
@[inline]
Equations
- One or more equations did not get rendered due to their size.