Commit graph

97 commits

Author SHA1 Message Date
Sebastian Ullrich
d1f707a6f0 doc: fix typo
Co-authored-by: Gabriel Ebner <gebner@gebner.org>
2021-06-29 06:35:45 -07:00
Sebastian Ullrich
9f7af2b77b doc: document a few tactics 2021-06-29 06:35:45 -07:00
Sebastian Ullrich
a379d2db5e refactor: simplify matches implementation 2021-06-23 13:59:08 +02:00
Sebastian Ullrich
bae919355e feat: matches 2021-06-21 10:17:26 -07:00
Sebastian Ullrich
e257caa446 feat: move block tactic macro to Init 2021-05-21 17:13:33 -07:00
Leonardo de Moura
b52edf1259 fix: fixes #452
The new syntax is similar to `matchAlts` and uses `colGe`.
The first `|` is not optional anymore.
2021-05-10 17:28:10 -07:00
Leonardo de Moura
7d39a0d56c chore: prepare to change first syntax 2021-05-10 17:05:31 -07:00
Sebastian Ullrich
9ed8db4bc3 feat: add constructor tactic 2021-05-06 10:40:56 -07:00
Leonardo de Moura
7398db5f3f fix: rw final goal state 2021-05-04 16:58:44 -07:00
Sebastian Ullrich
5b02254297 fix: rw final goal state 2021-05-04 15:24:42 -07:00
Sebastian Ullrich
aabb4a50aa feat: remove bracket-less rw 2021-05-04 15:24:22 -07:00
Leonardo de Moura
93189e0fce chore: prepare to change case tactic 2021-05-01 19:53:44 -07:00
Leonardo de Moura
a2e8bc0780 feat: use binop% to define arith operators
closes #382
2021-04-30 19:40:45 -07:00
Sebastian Ullrich
40b17bc364 refactor: introduce a few double-backtick quotations 2021-04-28 12:09:13 +02:00
Leonardo de Moura
3a80e87793 chore: #405 step 1 2021-04-22 20:03:48 -07:00
Leonardo de Moura
bf4b9b0ccd fix: use noImplicitLambda% when defining tactic macros such as have, let, etc
Thus, we don't change the expected type when using them.
2021-04-12 23:01:47 -07:00
Leonardo de Moura
8917e08251 feat: add tactic macro unhygienic <tactic-seq> 2021-04-10 16:18:40 -07:00
Sebastian Ullrich
30062b8988 fix: nomatch with non-fvar terms 2021-04-02 16:04:47 +02:00
Leonardo de Moura
d03f5fe318 feat: add trivial extensible (macro) tactic 2021-03-24 09:50:56 -07:00
Sebastian Ullrich
bbf6c717fc feat: introduce arg precedence 2021-03-22 16:33:37 +01:00
Leonardo de Moura
86a204d8a1 feat: add simp_all tactic
cc @Kha
2021-03-19 22:34:35 -07:00
Leonardo de Moura
d70740fef2 fix: location notation and simp 2021-03-19 19:54:22 -07:00
Leonardo de Moura
205b42a397 feat: proper syntax for configuring simp 2021-03-17 16:37:04 -07:00
Leonardo de Moura
a30a256123 refactor: remove Tactic/Binders.lean
These macro expansion functions can be now implemented using `macro` and `macro_rules`.
2021-03-12 17:59:21 -08:00
Leonardo de Moura
d330f1e2e2 feat: rotateLeft and rotateRight tactics 2021-03-12 17:13:03 -08:00
Leonardo de Moura
3d58c4d115 chore: remove old notation 2021-03-12 15:05:06 -08:00
Leonardo de Moura
bf8119a5cd chore: convert keywords to snake_case
Again `!` is only for functions that can panic.
2021-03-12 13:34:51 -08:00
Leonardo de Moura
1112ab6eff chore: use new notation 2021-03-11 11:19:33 -08:00
Leonardo de Moura
e7140959c4 chore: add elaborator for let_fun and let_delayed 2021-03-11 10:40:25 -08:00
Leonardo de Moura
9f88ea8047 chore: remove old decide!, nativeRefl!, and nativeDecide! 2021-03-11 08:06:20 -08:00
Leonardo de Moura
55115a4a1b feat: add inferInstance tactic 2021-03-07 12:08:25 -08:00
Leonardo de Moura
dfa5cf9282 chore: add optional preprocessing tactic 2021-03-07 12:03:54 -08:00
Leonardo de Moura
66f1a88f2c feat: simp [-decl] 2021-03-04 17:50:44 -08:00
Joe Hendrix
2831dd6872 feat: Bitwise classes using F# notation. 2021-03-04 15:40:12 -08:00
Leonardo de Moura
1fedbfb9a3 feat: simp only 2021-03-04 11:58:34 -08:00
Leonardo de Moura
130a087ecf feat: Lean 3 french single quote notation 2021-03-04 09:43:59 -08:00
Leonardo de Moura
3107473c9f feat: add rename tactic
cc @Kha
2021-03-03 18:32:25 -08:00
Leonardo de Moura
6cdc6cb1d0 feat: add contradiction 2021-03-03 17:00:54 -08:00
Leonardo de Moura
e583b3bdc0 feat: allow @ modifier at inductionAlt 2021-02-01 17:13:51 -08:00
Leonardo de Moura
d408c835d2 fix: defaultInstance priorities for Neg Int and OfScientific Float 2021-01-25 13:21:07 -08:00
Leonardo de Moura
e742dd1348 feat: allow user to set Simp.Config at simp 2021-01-01 15:12:18 -08:00
Leonardo de Moura
34f6f8ef5d feat: pre/post simp lemmas 2020-12-30 13:46:14 -08:00
Leonardo de Moura
eba3983658 feat: use binrel! gadget to define >, <, ... notations
It has better support for applying coercions.
2020-12-29 16:53:10 -08:00
Leonardo de Moura
7f9466a7ce chore: use soft line breaks at if-then-else formatters
and remove `priority` leftover.
2020-12-24 08:35:43 -08:00
Leonardo de Moura
3655b1d9d0 chore: remove old if-then-else parsers 2020-12-24 08:25:14 -08:00
Leonardo de Moura
c9b42af537 chore: (prepare to) rename if-then-else parsers
We also add formatting directives to the new if-then-else parsers.
2020-12-24 08:20:07 -08:00
Leonardo de Moura
9a1116d918 chore: remove <or>, first subsumes it 2020-12-22 14:10:08 -08:00
Leonardo de Moura
832c7412d6 feat: add first tactical
@Kha It has a few advantages over `<or>` (`<|>`).
- It is not an infix operator.
- It takes tactic sequences instead of tactics as arguments

For example, we can write
```
  first
    | apply h1; assumption
    | exact y; exact h3; assumption
```
or
```
first apply h1; assumption | exact y; exact h3; assumption
```
instead of
```
(apply h1; assumption) <|> (exact y; exact h3; assumption)
```
2020-12-22 14:10:07 -08:00
Leonardo de Moura
56e2ff81b8 chore: ensure all term parsers have precedence >= min 2020-12-22 14:10:07 -08:00
Leonardo de Moura
69d83ecb86 chore: make sure term and tactic parsers have disjoint infix operators 2020-12-22 14:10:07 -08:00