Commit graph

24686 commits

Author SHA1 Message Date
Sebastian Ullrich
f0960b7f89 fix: ignore antiquotations outside quotations 2021-04-29 13:33:48 +02:00
Sebastian Ullrich
73cf3533a1 fix: count quotation depth in parser correctly 2021-04-29 13:33:48 +02:00
Sebastian Ullrich
be1a929dc7 chore: update stage0 2021-04-29 13:33:48 +02:00
Sebastian Ullrich
7990f6e6e1 perf: use optimized withAntiquot in leading_parser 2021-04-29 13:30:09 +02:00
Sebastian Ullrich
683ecb2d65 feat: ignore unquoted identifiers in prechecked quotations 2021-04-29 13:30:09 +02:00
Leonardo de Moura
f75c9caf30 chore: disable check in the prelude inferInstance helper functions 2021-04-28 17:22:20 -07:00
Leonardo de Moura
e9a93b6f5e chore: update stage0 2021-04-28 17:20:32 -07:00
Leonardo de Moura
45bcf4a32c feat: check instance implicit binder annotations 2021-04-28 17:15:08 -07:00
Sebastian Ullrich
40b17bc364 refactor: introduce a few double-backtick quotations 2021-04-28 12:09:13 +02:00
Leonardo de Moura
04c7d83476 chore: update stage0 2021-04-27 16:41:48 -07:00
Sebastian Ullrich
75e95f93a9 feat: improve let error locality 2021-04-27 16:38:46 -07:00
Sebastian Ullrich
9f0fa19237 feat: notation: unfold to prechecked quotation 2021-04-27 16:38:37 -07:00
Sebastian Ullrich
ad7ee2c81b fix: disable quotation precheck if hygiene is false 2021-04-27 16:38:37 -07:00
Sebastian Ullrich
9301e05a7e feat: double-quoted quotation semantics and basic precheck hooks 2021-04-27 16:38:37 -07:00
Sebastian Ullrich
e9441e4d45 refactor: iterative fun expansion as a macro 2021-04-27 16:38:37 -07:00
Sebastian Ullrich
1b16d1d525 chore: update stage0 2021-04-27 16:38:37 -07:00
Sebastian Ullrich
8119daeb18 feat: syntax & attribute for double-quoted quotations 2021-04-27 16:38:37 -07:00
Leonardo de Moura
26b6953558 chore: remove dead code
Tuple notation is a macro now.
2021-04-27 16:14:45 -07:00
Leonardo de Moura
35411d5b2c chore: fix tests 2021-04-27 16:06:26 -07:00
Leonardo de Moura
5f29cf1568 fix: update ref after macro expansion 2021-04-27 16:05:44 -07:00
Leonardo de Moura
e8531ef4de fix: new type ascription elaborator
It was propating the incorrect type.
2021-04-27 16:03:27 -07:00
Sebastian Ullrich
2e250e6f04 refactor: paren as a (partial) macro 2021-04-27 14:50:44 -07:00
Leonardo de Moura
920a2b2a14 perf: Ord USize instance and missing inline 2021-04-27 12:08:21 -07:00
Daniel Fabian
0238bf8c33 refactor: use Ordering inside of rbmap instead of lt. 2021-04-27 07:58:58 -07:00
Leonardo de Moura
bdce1a2a79 chore: update stage0 2021-04-26 19:25:00 -07:00
Leonardo de Moura
18085b9712 fix: improve match generalizing feature 2021-04-26 19:22:03 -07:00
Daniel Fabian
1f05f5bf11 chore: rename ProofBelow to below. 2021-04-26 20:33:21 +02:00
Sebastian Ullrich
14c5ec559b test: forgot tabs ban test 2021-04-26 17:09:48 +02:00
Leonardo de Moura
af391fe812 test: reflective inductive predicate 2021-04-25 20:35:13 -07:00
Leonardo de Moura
a04f3a5d9f chore: update stage0 2021-04-25 20:18:16 -07:00
Daniel Fabian
eda4bdd337 test: extend inductive_pred.lean with tests using the new construction. 2021-04-25 20:02:22 -07:00
Daniel Fabian
371504e9cf feat: add ProofBelow construction for inductive predicates.
This construction allows us to define `brecOn` for inductive predicates.
2021-04-25 20:02:22 -07:00
Sebastian Ullrich
53b0e7dde8 fix: ban tabs
Fixes #339
2021-04-25 19:55:15 -07:00
Leonardo de Moura
2cbdd637c7 test: add second example for issue #423 2021-04-25 10:35:23 -07:00
Leonardo de Moura
b670d6b8d7 test: for issue #423 2021-04-25 10:30:26 -07:00
Leonardo de Moura
675bebb446 fix: isLevelDefEq missing case 2021-04-25 10:27:14 -07:00
Leonardo de Moura
0533fc4056 chore: fix test 2021-04-25 10:25:35 -07:00
Leonardo de Moura
d68d1f0841 fix: fixes #423 2021-04-25 10:00:38 -07:00
Leonardo de Moura
67f007fb51 feat: improve error message 2021-04-25 09:59:32 -07:00
Leonardo de Moura
96b987c366 chore: update stage0 2021-04-24 22:23:57 -07:00
Leonardo de Moura
f47f605039 fix: remove incorrect test
It had two problems:
- It was preventing coercions from being applied.
- It was compromising error recovery. The body of the lambda was not
being elaborated when the exception was thrown.

The new error message is more verbose and potentially confusing, but
it is better than the one produced this morning.
2021-04-24 22:17:29 -07:00
Leonardo de Moura
1f9975d35d feat: improve error message and include variables introduced by the implicit lambda notation 2021-04-24 21:34:42 -07:00
Leonardo de Moura
10185d24dd feat: improve error message 2021-04-24 20:43:13 -07:00
Leonardo de Moura
a6888f72dd fix: instance + where + implicts issue
The following could not be elaborated.

```lean
instance : MulComm Bool where
  mulComm := fun {a b} =>
    match a, b with
    | true, true   => rfl
    | true, false  => rfl
    | false, true  => rfl
    | false, false => rfl
```
2021-04-24 20:07:35 -07:00
Leonardo de Moura
2ff8052ce4 fix: missing do 2021-04-24 19:40:40 -07:00
Leonardo de Moura
cf734814fd chore: update stage0 2021-04-24 19:36:58 -07:00
Leonardo de Moura
c76820a251 fix: no method lift over let 2021-04-24 19:33:55 -07:00
Sebastian Ullrich
01f6cece2f chore: fix parser error message 2021-04-24 21:48:12 +02:00
Sebastian Ullrich
069bcf8933 fix: restore missing invariant 2021-04-24 21:46:48 +02:00
Leonardo de Moura
a076b5b89e feat: improved error recovery for interpolated strings 2021-04-24 10:24:57 -07:00