Commit graph

3524 commits

Author SHA1 Message Date
Leonardo de Moura
1282fb2d97 fix: getMatchWithExtra
`getMatchKeyArgs` returns arguments in reverse order.
2021-09-25 08:36:12 -07:00
Chris Lovett
ad7c5b26a7
fix: UTF-8 file path support for lean on Windows
* fix msys2 windows build so the windows apps support utf-8 file paths.

* use windres to compile default-manifest.o

* windres is in binutils.

* stop modifying default-manifest.o

* copy to stage0

* fix semicolon joining of lists in add_custom_target

* undo changes to stage0 as per CR feedback.

* fix makefile

* fix: revert cmakelists.txt COMMAND_EXPAND_LISTS  change

* fix: msys2 dependencies

* add unit test for decoding UTF-8 chars to prove "lean.exe" can read utf-8 encoded files where utf-8 is also used in the file name.

* fix: utf-8 test by using windows-2022

* fix: do we really need cmake 3.11 or will 3.10 do?

* nope, really does require cmake 11.
2021-09-22 12:21:52 +02:00
Leonardo de Moura
9085167872 test: Fin match test that relies heavily on contradiction
This example is based on a Lean 3 issue described at
https://leanprover.zulipchat.com/#narrow/stream/113488-general/topic/equation.20compiler.20help.20me.20plz
2021-09-21 12:57:08 -07:00
Leonardo de Moura
2cbf0ba8e9 test: add "parameters" that are fixed in all equations 2021-09-20 12:58:22 -07:00
Leonardo de Moura
41a58459d7 test: equational theorem generation 2021-09-20 11:12:42 -07:00
Leonardo de Moura
9e980b2a78 fix: bug at decAux?
We are getting a few "stuck at universe constraint" errors after the
fix. We may need to add some kind of approximation in the future.
2021-09-20 07:12:57 -07:00
Leonardo de Moura
fe55205105 test: equational theorem test 2021-09-19 09:34:08 -07:00
Leonardo de Moura
82f3042fa4 fix: equational theorem generation for structural recursion 2021-09-19 08:48:40 -07:00
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