Equations
- Lean.Meta.Simp.instInhabitedResult = { default := { expr := default, proof? := default, dischargeDepth := default } }
Instances For
Instances For
- config : Lean.Meta.Simp.Config
- simpTheorems : Lean.Meta.SimpTheoremsArray
- congrTheorems : Lean.Meta.SimpCongrTheorems
- dischargeDepth : Nat
Instances For
Equations
- Lean.Meta.Simp.instInhabitedContext = { default := { config := default, simpTheorems := default, congrTheorems := default, parent? := default, dischargeDepth := default } }
Equations
- Lean.Meta.Simp.Context.isDeclToUnfold ctx declName = Lean.Meta.SimpTheoremsArray.isDeclToUnfold ctx.simpTheorems declName
Instances For
Equations
- One or more equations did not get rendered due to their size.
Instances For
Instances For
- cache : Lean.Meta.Simp.Cache
- congrCache : Lean.Meta.Simp.CongrCache
- usedTheorems : Lean.Meta.Simp.UsedSimps
- numSteps : Nat
Instances For
Equations
Instances For
Instances For
Equations
- Lean.Meta.Simp.instInhabitedStep = { default := Lean.Meta.Simp.Step.visit default }
Equations
- Lean.Meta.Simp.Step.result x = match x with | Lean.Meta.Simp.Step.visit r => r | Lean.Meta.Simp.Step.done r => r
Instances For
Equations
- Lean.Meta.Simp.Step.updateResult x✝ x = match x✝, x with | Lean.Meta.Simp.Step.visit a, r => Lean.Meta.Simp.Step.visit r | Lean.Meta.Simp.Step.done a, r => Lean.Meta.Simp.Step.done r
Instances For
- post : Lean.Expr → Lean.Meta.SimpM Lean.Meta.Simp.Step
- discharge? : Lean.Expr → Lean.Meta.SimpM (Option Lean.Expr)
Instances For
Equations
- Lean.Meta.Simp.instInhabitedMethods = { default := { pre := default, post := default, discharge? := default } }
Instances For
Equations
- Lean.Meta.Simp.pre e = do let __do_lift ← read liftM (Lean.Meta.Simp.Methods.pre __do_lift e)
Instances For
Equations
- Lean.Meta.Simp.post e = do let __do_lift ← read liftM (Lean.Meta.Simp.Methods.post __do_lift e)
Instances For
Equations
- Lean.Meta.Simp.discharge? e = do let __do_lift ← read liftM (Lean.Meta.Simp.Methods.discharge? __do_lift e)
Instances For
Equations
- Lean.Meta.Simp.getConfig = do let __do_lift ← read pure __do_lift.config
Instances For
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
- Lean.Meta.Simp.getSimpTheorems = do let __do_lift ← readThe Lean.Meta.Simp.Context pure __do_lift.simpTheorems
Instances For
Equations
- Lean.Meta.Simp.getSimpCongrTheorems = do let __do_lift ← readThe Lean.Meta.Simp.Context pure __do_lift.congrTheorems
Instances For
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
- Lean.Meta.Simp.Result.getProof r = match r.proof? with | some p => pure p | none => Lean.Meta.mkEqRefl r.expr
Instances For
Similar to Result.getProof
, but adds a mkExpectedTypeHint
if proof?
is none
(i.e., result is definitionally equal to input), but we cannot establish that
source
and r.expr
are definitionally when using TransparencyMode.reducible
.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
- Lean.Meta.Simp.removeUnnecessaryCasts.isDummyEqRec e = ((Lean.Expr.isAppOfArity e `Eq.rec 6 || Lean.Expr.isAppOfArity e `Eq.ndrec 6) && Lean.Expr.isAppOf (Lean.Expr.appArg! e) `Eq.refl)
Instances For
Given a simplified function result r
and arguments args
, simplify arguments using simp
and dsimp
.
The resulting proof is built using congr
and congrFun
theorems.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Helper class for generalizing mkCongrSimp?
- find? : Lean.Expr → m (Option (Option Lean.Meta.CongrTheorem))
- save : Lean.Expr → Option Lean.Meta.CongrTheorem → m Unit
Instances
Equations
- One or more equations did not get rendered due to their size.
Retrieve auto-generated congruence lemma for f
.
Remark: If all argument kinds are fixed
or eq
, it returns none
because
using simple congruence theorems congr
, congrArg
, and congrFun
produces a more compact proof.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Try to use automatically generated congruence theorems. See mkCongrSimp?
.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Auxiliary method.
Given the current target
of mvarId
, apply r
which is a new target and proof that it is equal to the current one.
Equations
- One or more equations did not get rendered due to their size.