trans
tactic #
This implements the trans
tactic, which can apply transitivity theorems with an optional middle
variable argument.
Discrimation tree settings for the trans
extension.
Equations
- Mathlib.Tactic.transExt.config = { iota := true, beta := true, proj := Lean.Meta.ProjReductionKind.yesWithDelta, zeta := true }
Instances For
Environment extension storing transitivity lemmas
solving e ← mkAppM' f #[x]
Equations
- One or more equations did not get rendered due to their size.
- Mathlib.Tactic.getExplicitFuncArg? e = pure none
Instances For
solving tgt ← mkAppM' rel #[x, z]
given tgt = f z
Equations
- One or more equations did not get rendered due to their size.
- Mathlib.Tactic.getExplicitRelArg? tgt f z = pure none
Instances For
def
Mathlib.Tactic.getExplicitRelArgCore
(tgt : Lean.Expr)
(rel : Lean.Expr)
(x : Lean.Expr)
(z : Lean.Expr)
:
refining tgt ← mkAppM' rel #[x, z]
dropping more arguments if possible
Equations
- One or more equations did not get rendered due to their size.
- Mathlib.Tactic.getExplicitRelArgCore tgt rel x z = pure (rel, x)
Instances For
trans
applies to a goal whose target has the form t ~ u
where ~
is a transitive relation,
that is, a relation which has a transitivity lemma tagged with the attribute [trans].
trans s
replaces the goal with the two subgoalst ~ s
ands ~ u
.- If
s
is omitted, then a metavariable is used instead.
Equations
- One or more equations did not get rendered due to their size.