Commit graph

20857 commits

Author SHA1 Message Date
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
Leonardo de Moura
8d72e4c1e8 chore: update stage0 2020-09-04 18:42:55 -07:00
Leonardo de Moura
7dc1b461fa chore: give a proper node to matchAlts 2020-09-04 18:42:09 -07:00
Leonardo de Moura
70c42456b9 feat: expand intro+matchAlts macro 2020-09-04 18:22:56 -07:00
Leonardo de Moura
68d7b9d40b chore: update stage0 2020-09-04 16:36:31 -07:00
Leonardo de Moura
a88b2be72a feat: add intro + funMatchAlts syntax 2020-09-04 16:32:53 -07:00
Leonardo de Moura
ef64e1c25a feat: fun+match macro
Example:
```
fun
  | 0 => true
  | _ => false
```
2020-09-04 16:23:01 -07:00
Leonardo de Moura
b2f932c4dc feat: lift let rec expressions nested in a mutual block 2020-09-04 15:40:58 -07:00
Leonardo de Moura
12f69a78b7 chore: change meaning of lambdaTelescope
`lambdaTelescope` now only consumes `lambda`s.
`lambdaLetTelescope` implements the old behavior.
2020-09-04 13:35:17 -07:00
Leonardo de Moura
0199e93079 chore: add Array.erase 2020-09-04 13:35:01 -07:00
Leonardo de Moura
3dbd2b728b feat: add Array.getMax? 2020-09-04 10:40:34 -07:00
Leonardo de Moura
a04fc631e0 doc: Closure.lean
@Kha I documented the new `Closure.lean` module, and tried to capture
the issues we discussed this morning.
Tomorrow, I will implement a similar procedure for "closing" all the
let-recs in a `mutual` block.
2020-09-03 18:06:30 -07:00
Leonardo de Moura
555a3f0dcf feat: new and improved mkAuxDefinition 2020-09-03 17:37:06 -07:00
Leonardo de Moura
f34fd3e6b4 refactor: move Closure.lean to Meta
We will need to improve the support for let-decls. We will use
the new `trackZeta`.
2020-09-03 11:54:08 -07:00
Leonardo de Moura
ad774ae397 feat: support for tracking which let-decls have been zeta expanded 2020-09-03 11:32:46 -07:00
Leonardo de Moura
5cc0dd75ec refactor: remove unnecessary abstraction 2020-09-03 10:16:56 -07:00
Leonardo de Moura
238c38fed9 feat: preserve nonDep flag at LocalDecl.ldecl 2020-09-03 09:08:59 -07:00
Leonardo de Moura
3ab19a1cc6 chore: update stage0 2020-09-03 08:50:37 -07:00
Leonardo de Moura
1480b39d86 chore: no Task in Theorem 2020-09-03 08:47:55 -07:00
Leonardo de Moura
0faaa5ac54 fix: use mkForallFVars and mkLambdaFVars 2020-09-03 08:33:16 -07:00
Leonardo de Moura
06c6002d45 feat: lift nested 'let-rec's 2020-09-02 18:53:18 -07:00
Leonardo de Moura
f2a6562eed feat: validate 'let rec' types 2020-09-02 17:02:40 -07:00
Leonardo de Moura
1afecc3fbf fix: applyAttributes at 'let rec' 2020-09-02 17:02:35 -07:00
Leonardo de Moura
9ffd1b1672 feat: filter unused variables in mutually recursive definitions 2020-09-02 17:02:35 -07:00
Leonardo de Moura
8aa5409bac feat: elaborate 'let rec'
Remark: the actual lift is going to be performed at `MutualDef.lean`.
2020-09-02 17:02:35 -07:00
Leonardo de Moura
0883f96da0 chore: remove optional partial from 'let rec'
It will inherit the parent declaration annotation.
2020-09-02 17:02:22 -07:00
Leonardo de Moura
a8f8be4b30 feat: elaborate mutually rec definitions values 2020-09-02 13:12:53 -07:00
Leonardo de Moura
c240172aff feat: add macro expandMatchAltsIntoMatch 2020-09-02 11:26:53 -07:00
Leonardo de Moura
6bd6fb0c25 chore: simplify code to workaround bug at csimp.cpp 2020-09-02 10:45:15 -07:00
Leonardo de Moura
93bc39f897 chore: parameters do not need to match in mutually recursive definitions 2020-09-02 10:30:35 -07:00
Leonardo de Moura
907a202961 feat: expand in command macro 2020-09-02 10:04:58 -07:00
Leonardo de Moura
849b0b8dfd chore: update stage0 2020-09-02 09:54:26 -07:00
Leonardo de Moura
bda85f287c feat: in trailing command 2020-09-02 09:52:54 -07:00
Leonardo de Moura
988bb09aaf feat: new inductive command syntax
cc @Kha
2020-09-02 09:41:52 -07:00
Leonardo de Moura
c5cd5f2e5b feat: check kinds 2020-09-01 17:20:06 -07:00
Leonardo de Moura
f5fea33651 chore: mark TODOs 2020-09-01 17:07:01 -07:00
Leonardo de Moura
5ced8867b0 feat: anonymous instances and support for all kinds of definition at mutual 2020-09-01 17:00:00 -07:00
Leonardo de Moura
d74551b19e feat: elaborate header of mutually recursive definitions 2020-09-01 16:13:04 -07:00
Leonardo de Moura
356b11578b chore: add helper functions 2020-09-01 16:11:27 -07:00
Leonardo de Moura
9e038e331c feat: add forallTelescopeCompatible 2020-09-01 14:46:32 -07:00
Leonardo de Moura
dfd344c9eb chore: add MutualDef.lean 2020-09-01 14:18:10 -07:00
Leonardo de Moura
095e07d52d chore: letrec => let rec
cc @Kha
2020-09-01 13:27:41 -07:00
Leonardo de Moura
b9d50d2adf refactor: expandDeclId 2020-09-01 13:12:36 -07:00
Leonardo de Moura
5e5b75af61 chore: remove withDeclId 2020-09-01 13:04:08 -07:00
Leonardo de Moura
d7e99c76c3 feat: mutual + namespace macro 2020-09-01 12:25:29 -07:00