Equations
- Lean.Meta.Simp.throwCongrHypothesisFailed = throw (Lean.Exception.internal Lean.Meta.Simp.congrHypothesisExceptionId)
Instances For
Helper method for bootstrapping purposes. It disables arith
if support theorems have not been defined yet.
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
Return true if e
is of the form ofNat n
where n
is a kernel Nat literal
Equations
- Lean.Meta.Simp.isOfNatNatLit e = (Lean.Expr.isAppOfArity e `OfNat.ofNat 3 && Lean.Expr.isNatLit (Lean.Expr.appArg! (Lean.Expr.appFn! e)))
Instances For
Equations
- Lean.Meta.Simp.instInhabitedM = { default := fun x x x => default }
Equations
Instances For
- dep: Lean.Meta.Simp.SimpLetCase
- nondepDepVar: Lean.Meta.Simp.SimpLetCase
- nondep: Lean.Meta.Simp.SimpLetCase
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
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
Try to use automatically generated congruence theorems. See mkCongrSimp?
.
Process the given congruence theorem hypothesis. Return true if it made "progress".
Try to rewrite e
children using the given congruence theorem
Equations
- Lean.Meta.Simp.simp.simpConst e = do let __do_lift ← liftM (Lean.Meta.Simp.reduce e) pure { expr := __do_lift, proof? := none, dischargeDepth := 0 }
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
- 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
Return true if e
is of the form (x : α) → ... → s = t → ... → False
Recall that this kind of proposition is generated by Lean when creating equations for
functions and match-expressions with overlapping cases.
Example: the following match
-expression has overlapping cases.
def f (x y : Nat) :=
match x, y with
| Nat.succ n, Nat.succ m => ...
| _, _ => 0
The second equation is of the form
(x y : Nat) → ((n m : Nat) → x = Nat.succ n → y = Nat.succ m → False) → f x y = 0
The hypothesis (n m : Nat) → x = Nat.succ n → y = Nat.succ m → False
is essentially
saying the first case is not applicable.
Equations
Instances For
Equations
Instances For
Equations
- One or more equations did not get rendered due to their size.
Instances For
Tries to solve e
using unifyEq?
.
It assumes that isEqnThmHypothesis e
is true
.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
- Lean.Meta.Simp.DefaultMethods.methods = { pre := Lean.Meta.Simp.DefaultMethods.pre, post := Lean.Meta.Simp.DefaultMethods.post, discharge? := Lean.Meta.Simp.DefaultMethods.discharge? }
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
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.
Instances For
See simpTarget
. This method assumes mvarId
is not assigned, and we are already using mvarId
s local context.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Simplify the given goal target (aka type). Return none
if the goal was closed. Return some mvarId'
otherwise,
where mvarId'
is the simplified new goal.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Apply the result r
for prop
(which is inhabited by proof
). Return none
if the goal was closed. Return some (proof', prop')
otherwise, where proof' : prop'
and prop'
is the simplified prop
.
This method assumes mvarId
is not assigned, and we are already using mvarId
s local context.
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
Simplify prop
(which is inhabited by proof
). Return none
if the goal was closed. Return some (proof', prop')
otherwise, where proof' : prop'
and prop'
is the simplified prop
.
This method assumes mvarId
is not assigned, and we are already using mvarId
s local context.
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
Simplify simp
result to the given local declaration. Return none
if the goal was closed.
This method assumes mvarId
is not assigned, and we are already using mvarId
s local context.
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
- One or more equations did not get rendered due to their size.