Commit graph

3516 commits

Author SHA1 Message Date
Leonardo de Moura
c795a75045 feat: modify approach for generating equational theorems 2021-09-18 15:58:31 -07:00
Leonardo de Moura
2a9ba9f795 fix: add support for hierachical names containing numerical parts
closes #677
2021-09-17 19:21:49 -07:00
Leonardo de Moura
d413aa1dc5 feat: generate proofs for structural (conditional) equality theorems 2021-09-17 18:57:39 -07:00
Leonardo de Moura
1a0badac06 feat: generate conditional structural equation theorem types
TODO: proofs
2021-09-17 16:49:30 -07:00
Leonardo de Moura
d378df47d7 fix: fixes #633 2021-09-16 14:11:34 -07:00
Leonardo de Moura
04b7924154 chore: fix tests 2021-09-16 10:29:38 -07:00
Leonardo de Moura
6fb2a2b47b chore: remove notation for HEq
We don't really needed it here.
2021-09-15 08:06:32 -07:00
Leonardo de Moura
ae8989a8c6 feat: add mkAppOptM' and mkAppM' 2021-09-15 06:35:40 -07:00
Daniel Selsam
5eed3b73bf chore: adjust pp.analyze funext test 2021-09-15 09:41:16 +02:00
Daniel Selsam
664737def8 feat: trust subtype.mk by default 2021-09-15 09:41:16 +02:00
Daniel Selsam
4b011affca chore: better msgs in pp.analyze test 2021-09-15 09:41:16 +02:00
Daniel Selsam
4646b36459 feat: pp.analyze no explicit holes by default 2021-09-15 09:41:16 +02:00
Leonardo de Moura
3fa54e604d fix: inductive type name is not a necessarily a prefix of the constructor name in Lean 4 anymore 2021-09-14 18:52:43 -07:00
Leonardo de Moura
b92a2cd918 feat: heterogeneous congruence theorems
These theorems are needed to implement the congruence closure module.
2021-09-14 17:23:12 -07:00
Leonardo de Moura
96d00ff2d7 fix: fixes #664 2021-09-12 19:54:45 -07:00
Leonardo de Moura
bbe6d37109 fix: specialize 2021-09-11 19:52:51 -07:00
Leonardo de Moura
127681666a test: more equality theorems using split 2021-09-10 19:36:27 -07:00
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