Step-wise reasoning over transitive relations.
calc
a = b := pab
b = c := pbc
...
y = z := pyz
proves a = z
from the given step-wise proofs. =
can be replaced with any
relation implementing the typeclass Trans
. Instead of repeating the right-
hand sides, subsequent left-hand sides can be replaced with _
.
calc
a = b := pab
_ = c := pbc
...
_ = z := pyz
It is also possible to write the first relation as <lhs>\n _ = <rhs> := <proof>
. This is useful for aligning relation symbols, especially on longer:
identifiers:
calc abc
_ = bce := pabce
_ = cef := pbcef
...
_ = xyz := pwxyz
calc
works as a term, as a tactic or as a conv
tactic.
See Theorem Proving in Lean 4 for more information.
Equations
Instances For
Step-wise reasoning over transitive relations.
calc
a = b := pab
b = c := pbc
...
y = z := pyz
proves a = z
from the given step-wise proofs. =
can be replaced with any
relation implementing the typeclass Trans
. Instead of repeating the right-
hand sides, subsequent left-hand sides can be replaced with _
.
calc
a = b := pab
_ = c := pbc
...
_ = z := pyz
It is also possible to write the first relation as <lhs>\n _ = <rhs> := <proof>
. This is useful for aligning relation symbols, especially on longer:
identifiers:
calc abc
_ = bce := pabce
_ = cef := pbcef
...
_ = xyz := pwxyz
calc
works as a term, as a tactic or as a conv
tactic.
See Theorem Proving in Lean 4 for more information.
Equations
Instances For
Step-wise reasoning over transitive relations.
calc
a = b := pab
b = c := pbc
...
y = z := pyz
proves a = z
from the given step-wise proofs. =
can be replaced with any
relation implementing the typeclass Trans
. Instead of repeating the right-
hand sides, subsequent left-hand sides can be replaced with _
.
calc
a = b := pab
_ = c := pbc
...
_ = z := pyz
It is also possible to write the first relation as <lhs>\n _ = <rhs> := <proof>
. This is useful for aligning relation symbols, especially on longer:
identifiers:
calc abc
_ = bce := pabce
_ = cef := pbcef
...
_ = xyz := pwxyz
calc
works as a term, as a tactic or as a conv
tactic.
See Theorem Proving in Lean 4 for more information.
Equations
Instances For
Apply function extensionality and introduce new hypotheses.
The tactic funext
will keep applying the funext
lemma until the goal target is not reducible to
|- ((fun x => ...) = (fun x => ...))
The variant funext h₁ ... hₙ
applies funext
n
times, and uses the given identifiers to name the new hypotheses.
Patterns can be used like in the intro
tactic. Example, given a goal
|- ((fun x : Nat × Bool => ...) = (fun x => ...))
funext (a, b)
applies funext
once and performs pattern matching on the newly introduced pair.
Equations
Instances For
Expands
class abbrev C <params> := D_1, ..., D_n
into
class C <params> extends D_1, ..., D_n
attribute [instance] C.mk
Equations
Instances For
· tac
focuses on the main goal and tries to solve it using tac
, or else fails.
Equations
Instances For
Similar to first
, but succeeds only if one the given tactics solves the current goal.
Equations
Instances For
Unexpander for the { x }
notation.
Equations
Instances For
Unexpander for the { x, y, ... }
notation.