Commit graph

29801 commits

Author SHA1 Message Date
Leonardo de Moura
ebe2cf272e feat: add MonadCacheT 2020-09-08 10:48:47 -07:00
Leonardo de Moura
b52713ef8f refactor: split PreDefinition.lean into smaller files 2020-09-08 08:23:41 -07:00
Leonardo de Moura
ef87b33cdc test: add another missing hole test 2020-09-07 17:18:20 -07:00
Leonardo de Moura
fc0be5e391 feat: improve error message position when definition type is metavar 2020-09-07 17:16:44 -07:00
Leonardo de Moura
0ec284db24 feat: check for unassigned metavars before recursion elimination 2020-09-07 17:11:10 -07:00
Leonardo de Moura
18a9cb9b43 feat: improve error message position for binders with implicit types 2020-09-07 17:02:43 -07:00
Leonardo de Moura
47c7452926 chore: update stage0 2020-09-07 16:41:21 -07:00
Leonardo de Moura
cf944e32cf chore: add back support for Lean3 mixfix/reserve syntax
We have tests that rely on them :(
2020-09-07 16:40:12 -07:00
Leonardo de Moura
722608d0c6 chore: fix test 2020-09-07 16:35:28 -07:00
Leonardo de Moura
1bc9b5c119 feat: expand ! and ¬ syntax 2020-09-07 16:35:28 -07:00
Leonardo de Moura
b6079e12b8 feat: expand macros infix, infixl, infixr, prefix, and postfix 2020-09-07 16:35:25 -07:00
Leonardo de Moura
98a1ac04cf chore: update stage0 2020-09-07 15:56:58 -07:00
Leonardo de Moura
804ebcec16 feat: adjust mixfix syntax 2020-09-07 15:55:02 -07:00
Leonardo de Moura
aed9b16dc8 feat: add MatcherInfo extension 2020-09-07 15:08:21 -07:00
Leonardo de Moura
fded18d114 chore: mkElim ==> mkMatcher 2020-09-07 14:33:39 -07:00
Leonardo de Moura
43b593a888 feat: check for nonsensical declaration modifiers combinations 2020-09-07 12:36:58 -07:00
Leonardo de Moura
91363bae19 feat: improve resolveLVal 2020-09-07 12:25:43 -07:00
Leonardo de Moura
7809fe0b01 fix: def+match macro 2020-09-07 11:34:53 -07:00
Leonardo de Moura
a12bc273bb refactor: src/Lean/Meta/EqnCompiler ==> src/Lean/Meta/Match 2020-09-07 11:09:48 -07:00
Leonardo de Moura
d959f15cbd chore: update stage0 2020-09-07 08:44:16 -07:00
Leonardo de Moura
87db970cfa chore: control code size explosion 2020-09-07 08:42:39 -07:00
Leonardo de Moura
67d31f60c6 chore: update stage0 2020-09-07 08:31:28 -07:00
Leonardo de Moura
936b8d34dd chore: add auxiliary declaration to stop specialization 2020-09-07 08:30:08 -07:00
Leonardo de Moura
02967117ae chore: update stage0 2020-09-07 08:09:55 -07:00
Leonardo de Moura
ddf12c91c2 fix: do not consider auxiliary declarations as local instances 2020-09-07 08:08:35 -07:00
Leonardo de Moura
36bc65385d chore: naming convention 2020-09-07 08:03:41 -07:00
Leonardo de Moura
79130bc3f9 feat: add addAndCompilePartial 2020-09-07 07:56:11 -07:00
Leonardo de Moura
f30b5bdcba chore: control code size explosion 2020-09-07 07:23:44 -07:00
Leonardo de Moura
81582e4482 feat: break PreDefinitions into strongly connected components 2020-09-06 14:22:06 -07:00
Leonardo de Moura
56e6b9b398 feat: add Tarjan's SCC 2020-09-06 14:19:59 -07:00
Leonardo de Moura
565d617bab chore: fix test 2020-09-06 08:57:33 -07:00
Leonardo de Moura
35a81e80d6 refactor: move PreDeclaration (now PreDefinition) to its own module 2020-09-06 08:54:38 -07:00
Leonardo de Moura
d0993d07a1 chore: rename Definition.lean => DefView.lean 2020-09-06 08:40:48 -07:00
Leonardo de Moura
6704468f07 feat: add coeId instance
Add an example showing why it is useful.

TODO: reconsider whether we should use the approximation described in
the new test or not.
2020-09-06 08:27:26 -07:00
Leonardo de Moura
d8855c2673 feat: elaborate all definitions using elabMutualDef 2020-09-06 07:23:47 -07:00
Leonardo de Moura
102d2ae57d fix: avoid unnecessary reduction
```lean
forallBoundedTelescope `(Nat -> IO Nat) 1 fun xs type => ...
```
should assign `IO Nat` to `type` instead of `IO.RealWorld -> ...`
2020-09-06 06:57:52 -07:00
Leonardo de Moura
dc60739bd6 feat: partition non recursive 2020-09-05 09:22:18 -07:00
Leonardo de Moura
3ae3c51a8c feat: add Array.partition 2020-09-05 08:48:15 -07:00
Leonardo de Moura
52aef7611a chore: fix val vs value naming convention 2020-09-05 08:38:37 -07:00
Leonardo de Moura
fbe18ee84c feat: addAndCompileNonRec 2020-09-05 08:32:56 -07:00
Leonardo de Moura
4e7ca37204 chore: use Lean version 2020-09-05 08:15:53 -07:00
Leonardo de Moura
61670a773a chore: update stage0 2020-09-05 08:04:32 -07:00
Leonardo de Moura
20c041b421 feat: mkUnsafeRecName and isUnsafeRecName? in Lean 2020-09-05 08:03:52 -07:00
Leonardo de Moura
91cedab090 feat: add addAndCompileAsUnsafe 2020-09-05 07:56:02 -07:00
Leonardo de Moura
9b788db91f feat: compute level parameters for mutually recursive definitions 2020-09-05 07:34:26 -07:00
Leonardo de Moura
0d39c00782 feat: modifiers for 'let rec's 2020-09-05 06:48:38 -07:00
Leonardo de Moura
19be535fb3 chore: add TODO 2020-09-04 19:29:54 -07:00
Leonardo de Moura
7e0395a3b0 fix: code is reachable 2020-09-04 19:14:51 -07:00
Leonardo de Moura
d089a25f0e chore: update stage0 2020-09-04 19:00:51 -07:00
Leonardo de Moura
250dc3e3a9 fix: adjust expanders and elaborators to new matchAlts node 2020-09-04 18:59:28 -07:00