Commit graph

25880 commits

Author SHA1 Message Date
Chris Lovett
bc3900cbb9 doc: small fixes 2021-09-07 19:19:58 -07:00
Leonardo de Moura
3fc226dc6d chore: fix tests 2021-09-07 19:14:30 -07:00
Leonardo de Moura
445cc3085f refactor: avoid Name, MVarId, and FVarId confusion 2021-09-07 19:06:50 -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
e5600b03df chore: update stage0 2021-09-07 17:51:26 -07:00
Leonardo de Moura
53ec43ff9b refactor: lazy evaluation for >>, <*>, <*, and *>
see issue: #617
2021-09-07 17:50:34 -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
6ea7869c6a chore: "fix" <|> notation declaration
The `infix` declaration was generating a delaborator, but it is
producing the invalid term
```
ConstantFunction.f myFun 3 <|> fun _ => ConstantFunction.f myFun 4
```
It is invalid because the `macro_rules` for `<|>` is based on
`binop_lazy%` which introduces the `fun _ =>` for us.

I tried to use
```
notation:20 a:21 " <|> " b:20 => HOrElse.hOrElse a fun _ : Unit => b
```
but the delaborator generator does not work for this case.
2021-09-07 17:29:27 -07:00
Leonardo de Moura
eb94e87195 chore: fix some tests 2021-09-07 17:20:21 -07:00
Leonardo de Moura
c5f9113dcf test: use <|> at binop_lazy test 2021-09-07 17:10:36 -07:00
Leonardo de Moura
2f0a936f88 chore: update stage0 2021-09-07 17:08:16 -07:00
Leonardo de Moura
3714cf16ec refactor: lazy evaluation for <|>
see #617
2021-09-07 17:06:10 -07:00
Leonardo de Moura
3b136816fe chore: update stage0 2021-09-07 13:39:59 -07:00
Leonardo de Moura
55f01fb6e1 feat: elaborate binop_lazy% 2021-09-07 13:30:09 -07:00
Leonardo de Moura
61976c4e56 chore: update stage0 2021-09-07 13:29:50 -07:00
Leonardo de Moura
d991c20859 chore: add binop_lazy%
This is a gadget for issue #617.
2021-09-07 13:00:36 -07:00
Leonardo de Moura
5a862a06c6 chore: remove leftover 2021-09-07 12:57:27 -07:00
Leonardo de Moura
f46eedac84 fix: fixes #655 2021-09-07 12:17:28 -07:00
Leonardo de Moura
a8007ee827 chore: update stage0 2021-09-07 08:26:55 -07:00
Leonardo de Moura
c8406a301d chore: reduce src/include/lean 2021-09-07 08:24:54 -07:00
Leonardo de Moura
c93982d10c chore: disable pp.analyze for now
see #651
2021-09-07 07:51:43 -07:00
Leonardo de Moura
ebd8f1efa7 chore: avoid object.h dependencies 2021-09-07 07:31:48 -07:00
Daniel Selsam
b36baa143f feat: improved name-unresolving in delab
Fixes #641
2021-09-07 16:26:00 +02:00
Henrik Böving
b46aa05241 doc: new way to install lean4-mode
The current installation procedure requires you to have and update a checkout
of lean4 yourself which is rather annoying if you are just someone who
wants to work with lean4-mode for another project. straight.el +
use-package provide a nice alternative to the current approach.
2021-09-07 16:23:18 +02:00
Henrik Böving
4eca7c2a39 fix: add lsp-mode to the lean4-mode dependencies
lean4-mode implicitly relies on lsp-mode being installed, however this
dependency is not explicitly declared. The version used is the latest
release version which seemed to work out for me.
2021-09-07 16:23:18 +02:00
Leonardo de Moura
e2cc056cdd fix: assertion violation 2021-09-07 07:16:12 -07:00
Leonardo de Moura
d643dfd1c7 chore: update stage0 2021-09-06 12:02:41 -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
1ce2ff394c chore: update stage0 2021-09-06 11:57:21 -07:00
Leonardo de Moura
d174ffb075 chore: update stage0 2021-09-06 11:55:51 -07:00
Leonardo de Moura
a7c621854e feat: optimized noConfusion for enumeration types 2021-09-06 11:52:36 -07:00
Leonardo de Moura
d43a1c7d9a chore: move Constructions to Meta 2021-09-06 10:51:11 -07:00
Leonardo de Moura
ab63382158 feat: add helper functions for optimized noConfusion 2021-09-06 10:33:34 -07:00
Leonardo de Moura
09326df213 chore: fix test output 2021-09-06 07:39:57 -07:00
Leonardo de Moura
ec30a6b7e8 chore: update stage0 2021-09-06 07:37:16 -07:00
Leonardo de Moura
1d68f38aa6 feat: use approxDepth to compute hash code 2021-09-06 07:36:41 -07:00
Leonardo de Moura
5ce97286bb chore: update stage0 2021-09-06 07:28:10 -07:00
Leonardo de Moura
fa29428934 feat: use 8-bits to store the approximate depth on an expression
We are going to use this information to (try to) minimize the number
of hash collisions.
2021-09-06 07:26:51 -07:00
Leonardo de Moura
65509c5617 doc: add basic perf documentation 2021-09-06 07:12:36 -07:00
Leonardo de Moura
20022f3c6d chore: update stage0 2021-09-05 20:44:08 -07:00
Leonardo de Moura
a8044eb252 feat: improve Match module for patterns containing Fin and UInt literals 2021-09-05 20:43:40 -07:00
Leonardo de Moura
fc334ffbee fix: pattern matching on UInt 2021-09-05 19:15:59 -07:00
Leonardo de Moura
0d751f3bd3 chore: update stage0 2021-09-05 18:49:02 -07:00
Leonardo de Moura
dc3b4a06f3 fix: missing case 2021-09-05 18:43:39 -07:00
Leonardo de Moura
fa94ce0660 chore: fix test output 2021-09-05 17:49:03 -07:00
Leonardo de Moura
da31ea4b5b chore: update stage0 2021-09-05 17:17:30 -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
e4410cfbf8 chore: missing Fin instances 2021-09-05 16:09:18 -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