Leonardo de Moura
1e1a085ab3
test: eq theorem derivation
2021-09-09 17:51:49 -07:00
Leonardo de Moura
7607a24469
test: deriving DecidableEq for enum types
...
Forgot to add test.
2021-09-09 17:47:23 -07:00
Leonardo de Moura
193d4dc9f5
feat: optimized deriving DecidableEq for enumeration types
...
The proof term is liner on the number of constructors, but type
checking is not linear because the reduction engine in the kernel is
not efficient.
2021-09-08 16:21:32 -07:00
Leonardo de Moura
9b0dfc4b90
feat: convert "orphan" kernel nat literals n into ofNat n
2021-09-08 14:58:13 -07:00
Christian Pehle
bd02f16b43
feat: optimized ``deriving BEq`` for enumeration types
2021-09-08 14:57:21 -07:00
Leonardo de Moura
716ffecf89
chore: add sorry tactic
2021-09-08 08:10:37 -07:00
Leonardo de Moura
c1573d15c1
test: missing tests
2021-09-08 08:00:36 -07:00
Leonardo de Moura
12af1480d6
feat: add specialize tactic
2021-09-08 08:00:02 -07:00
Leonardo de Moura
3fc226dc6d
chore: fix tests
2021-09-07 19:14:30 -07:00
Leonardo de Moura
750c2507da
test: add *> laziness test
...
This commit also fixes a broken test
Closes #617
The following operators are now lazy: `<|>`, `>>`, `*>`, `<*`, `<*>`
2021-09-07 18:03:15 -07:00
Leonardo de Moura
51b7c4cf21
chore: remove Nondet.lean
...
It was too "unsafe", and it is dead code.
2021-09-07 17:36:20 -07:00
Leonardo de Moura
eb94e87195
chore: fix some tests
2021-09-07 17:20:21 -07:00
Leonardo de Moura
70f2200778
chore: remove enum command
...
Now, `inductive` is also efficient for big enumeration types
2021-09-06 12:01:37 -07:00
Leonardo de Moura
6f075e6ece
feat: add enum command for declaring enumeration types
...
closes #654
2021-09-05 16:58:49 -07:00
Leonardo de Moura
c3bb948009
feat: ignore nested proofs in patterns
2021-09-05 15:46:03 -07:00
Leonardo de Moura
029c5b74a2
feat: ignore implicit arguments at congr conv tactic
2021-09-05 09:44:52 -07:00
Leonardo de Moura
aedc706e7d
feat: in modifier at conv tactic
...
It is just a macro for `pattern`
2021-09-04 18:20:33 -07:00
Leonardo de Moura
229373a7e6
chore: fix test
2021-09-03 18:59:13 -07:00
Leonardo de Moura
3f70bc543f
feat: add simp conv tactic
2021-09-03 12:06:29 -07:00
Leonardo de Moura
8a249bddd2
feat: add try rfl at end of convTarget
2021-09-03 08:14:47 -07:00
Leonardo de Moura
b5b5ef6fdf
feat: add funext conv tactic
2021-09-03 08:00:37 -07:00
Leonardo de Moura
95b83ac2c0
feat: add 'conv at .. => ..' support
2021-09-02 19:40:08 -07:00
Leonardo de Moura
397774157f
feat: nested tactic support in conv mode
2021-09-02 19:12:05 -07:00
Leonardo de Moura
41ce24e2c6
feat: add done and traceState conv tactics
2021-09-02 18:46:03 -07:00
Leonardo de Moura
33361929b9
feat: add rewrite conv tactic
2021-09-02 18:13:19 -07:00
Leonardo de Moura
4df9983843
feat: lhs and rhs conv tactics
2021-09-02 15:05:51 -07:00
Leonardo de Moura
e3ccc03a45
chore: add nested conv tactics
2021-09-01 18:44:35 -07:00
Leonardo de Moura
7a69c6483d
feat: add congr conv tactic
2021-09-01 18:32:21 -07:00
Leonardo de Moura
346e3ac845
feat: add helper methods for conv
2021-09-01 17:43:32 -07:00
Leonardo de Moura
22a80a9623
test: split tactic tests
2021-08-31 17:09:00 -07:00
Leonardo de Moura
9e728ebb0a
test: split tactic
2021-08-31 13:14:10 -07:00
Leonardo de Moura
c7d797f5b6
feat: add simpMatch and use it at splitMatch
2021-08-31 12:53:41 -07:00
Leonardo de Moura
d37d340bb0
test: MatchEqs.lean
2021-08-31 06:10:10 -07:00
Leonardo de Moura
aba0a479ec
fix: intro at split tactic
2021-08-30 20:58:04 -07:00
Leonardo de Moura
b500a2053d
feat: split tactic for splitting match and if terms
2021-08-30 18:31:20 -07:00
Leonardo de Moura
ad3b0b4a2c
feat: nary generalize tactic
...
This commit also fixes a bug when using multiple targets with the
`induction` and `cases` tactics.
2021-08-30 16:31:39 -07:00
Leonardo de Moura
2012d9dca1
fix: make sure simp only still uses eq_self
2021-08-30 09:50:11 -07:00
Leonardo de Moura
ce47000e33
fix: missing whnf at tryLemma?
2021-08-30 08:33:58 -07:00
Leonardo de Moura
34d8ecc066
fix: use show .. from .. to implement calc
...
Recall that `show .. from ..` ensures that proof has exactly the type
provided by the user.
In the new test, `rw [ih]` without this change because the goal would
be
```
... |- 0 + succ n = succ n
```
2021-08-29 11:33:50 -07:00
Leonardo de Moura
1f37cc7b41
feat: add next x₁ ... xₙ => tac tactic
2021-08-29 10:51:01 -07:00
Leonardo de Moura
1e5a4729c3
feat: case _ ... => ... as solve next goal
2021-08-29 10:45:38 -07:00
Leonardo de Moura
091efbec4f
test: simulate split tactic for match
2021-08-29 10:21:52 -07:00
Leonardo de Moura
9d5f211c28
feat: add environment extension for storing match conditional equations and splitter
2021-08-28 14:49:20 -07:00
Leonardo de Moura
e0e3de5c62
feat: allow (decidable) propositions at #eval
2021-08-27 15:06:48 -07:00
Leonardo de Moura
6713d8777a
fix: work duplication bug at specialize.cpp
...
closes #646
2021-08-27 10:35:27 -07:00
Leonardo de Moura
c897f63dd0
fix: using incorrect local context to process simp arguments
2021-08-26 12:49:12 -07:00
Leonardo de Moura
b5a434d8a9
test: for induction q with Quot.ind issue
...
See
https://leanprover.zulipchat.com/#narrow/stream/270676-lean4/topic/Induction.20alternative.20name.20when.20using.20Quot.2Eind.3F
2021-08-26 11:15:14 -07:00
Leonardo de Moura
1ede4843e3
feat: add renameI tactic
2021-08-25 18:50:59 -07:00
Leonardo de Moura
5003c74191
chore: fix test
2021-08-25 07:00:25 -07:00
Leonardo de Moura
42f1e16f44
chore: fix calc test
2021-08-25 06:59:46 -07:00