Registers an extensionality theorem.
When
@[ext]is applied to a theorem, the theorem is registered for theexttactic, and it generates an "ext_iff" theorem. The name of the theorem is from adding the suffix_iffto the theorem name.When
@[ext]is applied to a structure, it generates an.exttheorem and applies the@[ext]attribute to it. The result is an.extand an.ext_ifftheorem with the.exttheorem registered for theexttactic.An optional natural number argument, e.g.
@[ext 9000], specifies a priority for theextlemma. Higher-priority lemmas are chosen first, and the default is1000.The flag
@[ext (iff := false)]disables generating anext_ifftheorem.The flag
@[ext (flat := false)]causes generated structure extensionality theorems to show inherited fields based on their representation, rather than flattening the parents' fields into the lemma's equality hypotheses.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Applies extensionality lemmas that are registered with the @[ext] attribute.
ext pat*applies extensionality theorems as much as possible, using the patternspat*to introduce the variables in extensionality theorems usingrintro. For example, the patterns are used to name the variables introduced by lemmas such asfunext.- Without patterns,
extapplies extensionality lemmas as much as possible but introduces anonymous hypotheses whenever needed. ext pat* : napplies ext theorems only up to depthn.
The ext1 pat* tactic is like ext pat* except that it only applies a single extensionality theorem.
Unused patterns will generate warning. Patterns that don't match the variables will typically result in the introduction of anonymous hypotheses.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Apply a single extensionality theorem to the current goal.
Equations
- Lean.Elab.Tactic.Ext.applyExtTheorem = Lean.ParserDescr.node `Lean.Elab.Tactic.Ext.applyExtTheorem 1024 (Lean.ParserDescr.nonReservedSymbol "apply_ext_theorem" false)
Instances For
ext1 pat* is like ext pat* except that it only applies a single extensionality theorem rather
than recursively applying as many extensionality theorems 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.
Equations
- One or more equations did not get rendered due to their size.