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 sreplaces the goal with the two subgoalst ~ sands ~ u.- If
sis omitted, then a metavariable is used instead.
Equations
- One or more equations did not get rendered due to their size.