|
1 | 1 | # Tactics |
2 | 2 |
|
3 | | -Mathlib version: `c1ee2821db22c395b37586d80ae2b7f9a24ee2cb` |
| 3 | +Mathlib version: `786ca91ad0b41b6ee048e3dcdd23cc71807fddbb` |
4 | 4 |
|
5 | 5 | ## \#adaptation_note |
6 | 6 | Defined in: `«tactic#adaptation_note_»` |
@@ -3306,59 +3306,11 @@ The tactic supports all the same syntax variants and options as the `have` term. |
3306 | 3306 | which may be important for performance reasons. |
3307 | 3307 | Consider using the equivalent `let +nondep` to indicate the intent. |
3308 | 3308 |
|
3309 | | -## have!? |
3310 | | -Defined in: `Mathlib.Tactic.Propose.«tacticHave!?:_Using__»` |
3311 | | - |
3312 | | -* `have? using a, b, c` tries to find a lemma |
3313 | | - which makes use of each of the local hypotheses `a, b, c`, |
3314 | | - and reports any results via trace messages. |
3315 | | -* `have? : h using a, b, c` only returns lemmas whose type matches `h` (which may contain `_`). |
3316 | | -* `have?! using a, b, c` will also call `have` to add results to the local goal state. |
3317 | | - |
3318 | | -Note that `have?` (unlike `apply?`) does not inspect the goal at all, |
3319 | | -only the types of the lemmas in the `using` clause. |
3320 | | - |
3321 | | -`have?` should not be left in proofs; it is a search tool, like `apply?`. |
3322 | | - |
3323 | | -Suggestions are printed as `have := f a b c`. |
3324 | | - |
3325 | 3309 | ## have' |
3326 | 3310 | Defined in: `Lean.Parser.Tactic.tacticHave'` |
3327 | 3311 |
|
3328 | 3312 | Similar to `have`, but using `refine'` |
3329 | 3313 |
|
3330 | | -## have? |
3331 | | -Defined in: `Mathlib.Tactic.Propose.propose'` |
3332 | | - |
3333 | | -* `have? using a, b, c` tries to find a lemma |
3334 | | - which makes use of each of the local hypotheses `a, b, c`, |
3335 | | - and reports any results via trace messages. |
3336 | | -* `have? : h using a, b, c` only returns lemmas whose type matches `h` (which may contain `_`). |
3337 | | -* `have?! using a, b, c` will also call `have` to add results to the local goal state. |
3338 | | - |
3339 | | -Note that `have?` (unlike `apply?`) does not inspect the goal at all, |
3340 | | -only the types of the lemmas in the `using` clause. |
3341 | | - |
3342 | | -`have?` should not be left in proofs; it is a search tool, like `apply?`. |
3343 | | - |
3344 | | -Suggestions are printed as `have := f a b c`. |
3345 | | - |
3346 | | -## have?! |
3347 | | -Defined in: `Mathlib.Tactic.Propose.«tacticHave?!:_Using__»` |
3348 | | - |
3349 | | -* `have? using a, b, c` tries to find a lemma |
3350 | | - which makes use of each of the local hypotheses `a, b, c`, |
3351 | | - and reports any results via trace messages. |
3352 | | -* `have? : h using a, b, c` only returns lemmas whose type matches `h` (which may contain `_`). |
3353 | | -* `have?! using a, b, c` will also call `have` to add results to the local goal state. |
3354 | | - |
3355 | | -Note that `have?` (unlike `apply?`) does not inspect the goal at all, |
3356 | | -only the types of the lemmas in the `using` clause. |
3357 | | - |
3358 | | -`have?` should not be left in proofs; it is a search tool, like `apply?`. |
3359 | | - |
3360 | | -Suggestions are printed as `have := f a b c`. |
3361 | | - |
3362 | 3314 | ## haveI |
3363 | 3315 | Defined in: `Lean.Parser.Tactic.tacticHaveI__` |
3364 | 3316 |
|
|
0 commit comments