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
lemma
means the same as theorem
. It is used to denote "less important" theorems
Equations
- One or more equations did not get rendered due to their size.
Instances For
Implementation of the lemma
command, by macro expansion to theorem
.
Equations
- One or more equations did not get rendered due to their size.
Instances For
The syntax variable (X Y ... Z : Sort*)
creates a new distinct implicit universe variable
for each variable in the sequence.
Equations
- Mathlib.Tactic.«termSort*» = Lean.ParserDescr.node `Mathlib.Tactic.termSort* 1024 (Lean.ParserDescr.symbol "Sort*")
Instances For
The syntax variable (X Y ... Z : Type*)
creates a new distinct implicit universe variable
> 0
for each variable in the sequence.
Equations
- Mathlib.Tactic.«termType*» = Lean.ParserDescr.node `Mathlib.Tactic.termType* 1024 (Lean.ParserDescr.symbol "Type*")
Instances For
Given two arrays of FVarId
s, one from an old local context and the other from a new local
context, pushes FVarAliasInfo
s into the info tree for corresponding pairs of FVarId
s.
Recall that variables linked this way should be considered to be semantically identical.
The effect of this is, for example, the unused variable linter will see that variables from the first array are used if corresponding variables in the second array are used.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Function to help do the revert/intro pattern, running some code inside a context
where certain variables have been reverted before re-introing them.
It will push FVarId
alias information into info trees for you according to a simple protocol.
fvarIds
is an array offvarIds
to revert. These are passed toLean.MVarId.revert
withpreserveOrder := true
, hence the function raises an error if they cannot be reverted in the provided order.k
is given the goal with all the variables reverted and the array of revertedFVarId
s, with the requestedFVarId
s at the beginning. It must return a tuple of a value, an array describing whichFVarIds
to link, and a mutatedMVarId
.
The a : Array (Option FVarId)
array returned by k
is interpreted in the following way.
The function will intro a.size
variables, and then for each non-none
entry we
create an FVar alias between it and the corresponding intro
ed variable.
For example, having k
return fvars.map .some
causes all reverted variables to be
intro
ed and linked.
Returns the value returned by k
along with the resulting goal.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Replace the type of the free variable fvarId
with typeNew
.
If checkDefEq = true
then throws an error if typeNew
is not definitionally
equal to the type of fvarId
. Otherwise this function assumes typeNew
and the type
of fvarId
are definitionally equal.
This function is the same as Lean.MVarId.changeLocalDecl
but makes sure to push substitution
information into the infotree.
Equations
- One or more equations did not get rendered due to their size.
Instances For
by_cases p
makes a case distinction on p
,
resulting in two subgoals h : p ⊢
and h : ¬ p ⊢
.
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
The tactic introv
allows the user to automatically introduce the variables of a theorem and
explicitly name the non-dependent hypotheses.
Any dependent hypotheses are assigned their default names.
Examples:
example : ∀ a b : Nat, a = b → b = a := by
introv h,
exact h.symm
The state after introv h
is
a b : ℕ,
h : a = b
⊢ b = a
example : ∀ a b : Nat, a = b → ∀ c, b = c → a = c := by
introv h₁ h₂,
exact h₁.trans h₂
The state after introv h₁ h₂
is
a b : ℕ,
h₁ : a = b,
c : ℕ,
h₂ : b = c
⊢ a = c
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
- Mathlib.Tactic.evalIntrov.intro1PStep = Lean.Elab.Tactic.liftMetaTactic fun goal => do let __discr ← Lean.MVarId.intro1P goal match __discr with | (fst, goal) => pure [goal]
Instances For
Try calling assumption
on all goals; succeeds if it closes at least one goal.
Equations
- Mathlib.Tactic.tacticAssumption' = Lean.ParserDescr.node `Mathlib.Tactic.tacticAssumption' 1024 (Lean.ParserDescr.nonReservedSymbol "assumption'" false)
Instances For
Equations
- One or more equations did not get rendered due to their size.
Instances For
This tactic clears all auxiliary declarations from the context.
Equations
- Mathlib.Tactic.clearAuxDecl = Lean.ParserDescr.node `Mathlib.Tactic.clearAuxDecl 1024 (Lean.ParserDescr.nonReservedSymbol "clear_aux_decl" false)
Instances For
Clears the value of the local definition fvarId
. Ensures that the resulting goal state
is still type correct. Throws an error if it is a local hypothesis without a value.
Equations
- One or more equations did not get rendered due to their size.
Instances For
clear_value n₁ n₂ ...
clears the bodies of the local definitions n₁, n₂ ...
, changing them
into regular hypotheses. A hypothesis n : α := t
is changed to n : α
.
The order of n₁ n₂ ...
does not matter, and values will be cleared in reverse order of
where they appear in the context.
Equations
- One or more equations did not get rendered due to their size.