Constructs the hypotheses for the extensionality lemma.
Calls the continuation k
with the list of parameters to the structure,
two structure variables x
and y
, and a list of pairs (field, ty)
where ty
is x.field = y.field
or HEq x.field y.field
.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Creates the type of the extensionality lemma for the given structure,
elaborating to x.1 = y.1 → x.2 = y.2 → x = y
, for example.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Make an Iff
application.
Equations
- Std.Tactic.Ext.mkIff p q = Lean.mkApp2 (Lean.mkConst `Iff) p q
Instances For
Make an n-ary And
application. mkAndN []
returns True
.
Equations
- Std.Tactic.Ext.mkAndN [] = Lean.mkConst `True
- Std.Tactic.Ext.mkAndN [p] = p
- Std.Tactic.Ext.mkAndN (p :: ps) = Lean.mkAnd p (Std.Tactic.Ext.mkAndN ps)
Instances For
Creates the type of the iff-variant of the extensionality lemma for the given structure,
elaborating to x = y ↔ x.1 = y.1 ∧ x.2 = y.2
, for example.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Apply a single extensionality lemma to goal
.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Apply a single extensionality lemma to the current goal.
Equations
- Std.Tactic.Ext.tacticApply_ext_lemma = Lean.ParserDescr.node `Std.Tactic.Ext.tacticApply_ext_lemma 1024 (Lean.ParserDescr.nonReservedSymbol "apply_ext_lemma" false)
Instances For
Postprocessor for withExt
which runs rintro
with the given patterns when the target is a
pi type.
Equations
- One or more equations did not get rendered due to their size.
- Std.Tactic.Ext.tryIntros g [] k = do let __do_lift ← liftM (liftM (Lean.MVarId.intros g)) k __do_lift.snd []
Instances For
Applies a single extensionality lemma, using pats
to introduce variables in the result.
Runs continuation k
on each subgoal.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Applies a extensionality lemmas recursively, using pats
to introduce variables in the result.
Runs continuation k
on each subgoal.
Equations
- One or more equations did not get rendered due to their size.
- Std.Tactic.Ext.withExtN g pats k 0 failIfUnchanged = k g pats
Instances For
Apply extensionality lemmas as much as possible, using pats
to introduce the variables
in extensionality lemmas like funext
. Returns a list of subgoals.
Equations
- One or more equations did not get rendered due to their size.
Instances For
ext pat*
applies extensionality lemmas as much as possible, usingpat*
to introduce the variables in extensionality lemmas usingrintro
. For example, this names the variables introduced by lemmas such asfunext
.ext
applies extensionality lemmas as much as possible but introduces anonymous variables whenever needed.ext pat* : n
applies ext lemmas only up to depthn
.
The ext1 pat*
tactic is like ext pat*
except that it only applies a single extensionality lemma.
The ext?
tactic (note: unimplemented) has the same syntax as the ext
tactic,
and it gives a suggestion of an equivalent tactic to use in place of ext
.
Equations
- One or more equations did not get rendered due to their size.
Instances For
ext1 pat*
is like ext pat*
except that it only applies a single extensionality lemma rather
than recursively applying as many extensionality lemmas as possible.
The pat*
patterns are processed using the rintro
tactic.
If no patterns are supplied, then variables are introduced anonymously using the intros
tactic.
The ext1?
tactic (note: unimplemented) has the same syntax as the ext1?
tactic,
and it gives a suggestion of an equivalent tactic to use in place of ext1
.
Equations
- One or more equations did not get rendered due to their size.
Instances For
ext1? pat*
is like ext1 pat*
but gives a suggestion on what pattern to use
Equations
- One or more equations did not get rendered due to their size.
Instances For
ext? pat*
is like ext pat*
but gives a suggestion on what pattern to use
Equations
- One or more equations did not get rendered due to their size.