Equations
Equations
- One or more equations did not get rendered due to their size.
Equations
Instances For
Equations
- SEq.Tactic.DRewrite.instLECastMode = { le := fun (a b : SEq.Tactic.DRewrite.CastMode) => a.toNat ≤ b.toNat }
Equations
- transparency : Lean.Meta.TransparencyMode
- offsetCnstrs : Bool
- occs : Lean.Meta.Occurrences
- castMode : CastMode
Instances For
- cfg : Config
- p : Lean.Expr
The pattern to generalize over.
- x : Lean.Expr
The free variable to substitute for
p
. - h : Lean.Expr
- pHeadIdx : Lean.HeadIndex
- pNumArgs : Nat
- subst : Lean.Meta.FVarSubst
Instances For
Monad for computing dabstract
.
The cache is for visit
(not visitAndCast
, which has two arguments),
and the Nat
tracks which occurrence of the pattern we are currently seeing.
Equations
Instances For
Check that casting e : t
is allowed in the current mode.
(We don't need to know what type e
is cast to:
we only check the sort of t
, and it cannot change.)
Equations
- One or more equations did not get rendered due to their size.
Instances For
Given e
, return e[x/p]
(i.e., e
with occurrences of p
replaced by x
).
If et?
is not none
, the output is guaranteed to have type (defeq to) et?
.
Does not assume that e
is well-typed,
but assumes that for all subterms e'
of e
,
e'[x/p]
is well-typed.
We use this when processing lambdas:
to traverse fun (x : α) => b
,
we add x : α[x/p]
to the local context
and continue traversing b
.
x : α[x/p] ⊢ b
may be ill-typed,
but the output x : α[x/p] ⊢ b[x/p]
is well-typed.
Like visitAndCast
, but does not insert casts at the top level.
The expected types of certain subterms are computed from et?
.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Rewrite goal mvarId
dependently.
Equations
- One or more equations did not get rendered due to their size.
Instances For
rewrite!
is like rewrite
, but can also rewrite inside types by inserting casts.
This means that the 'motive is not type correct' error never occurs,
at the expense of potentially creating complicated terms.
It is also available as a conv
tactic.
The sort of casts that are inserted is controlled by the castMode
configuration option.
By default, only proof terms are casted:
by proof irrelevance, this adds no observable complexity.
Equations
- One or more equations did not get rendered due to their size.
Instances For
rw!
is like rewrite!
, but also calls dsimp
to simplify the result after every substitution.
It is also available as a conv
tactic.
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
Equations
- One or more equations did not get rendered due to their size.
Instances For
rewrite! [thm]
rewrites the target dependently using thm
. See the rewrite!
tactic for more information.
Equations
- One or more equations did not get rendered due to their size.
Instances For
rw! [thm]
rewrites the target using thm
. See the rw!
tactic for more information.
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
Equations
- One or more equations did not get rendered due to their size.