Commit graph

20170 commits

Author SHA1 Message Date
Leonardo de Moura
8a2dd414ff feat: inductive command
cc @Kha
2020-07-15 16:32:23 -07:00
Leonardo de Moura
98d8520158 feat: infer binder annotations for constructor parameters 2020-07-15 16:32:23 -07:00
Leonardo de Moura
9876f91cf7 chore: cleanup 2020-07-15 16:32:23 -07:00
Leonardo de Moura
ab2ea30a19 feat: replace fvars with consts 2020-07-15 16:32:23 -07:00
Leonardo de Moura
4fbef3b6ed feat: collect and sort used level params 2020-07-15 16:32:23 -07:00
Leonardo de Moura
fbf59e0799 fix: register levelNames defined in the inductive command 2020-07-15 16:32:22 -07:00
Leonardo de Moura
26a35e3ab1 feat: updateResultingUniverse 2020-07-15 16:32:22 -07:00
Leonardo de Moura
5ff8ad3b88 feat: add Level.replace and Expr.replaceLevel 2020-07-15 16:32:22 -07:00
Leonardo de Moura
94154113b5 feat: remove unused variables 2020-07-15 16:32:22 -07:00
Leonardo de Moura
fbf2d5d300 fix: do not print as arrow if binder_info is not the default one 2020-07-15 16:32:22 -07:00
Leonardo de Moura
4745519b54 feat: add Lean.Elab.CollectFVars 2020-07-15 16:32:22 -07:00
Sebastian Ullrich
b7f6f37079 chore: remove unreliable cache metrics 2020-07-15 17:16:04 +02:00
Leonardo de Moura
02de582941 feat: inductive datatype resulting universe inference 2020-07-14 17:18:58 -07:00
Leonardo de Moura
19b281e11e fix: universe parameter generation 2020-07-14 17:15:15 -07:00
Leonardo de Moura
10fec63568 fix: missing resulting mctx 2020-07-14 16:50:08 -07:00
Leonardo de Moura
64bcb71b7a chore: fix test 2020-07-14 16:44:02 -07:00
Leonardo de Moura
48c6c7c871 feat: report unused universe parameters 2020-07-14 16:40:56 -07:00
Leonardo de Moura
19595a0d03 fix: resolve pending universe metavars 2020-07-14 10:23:20 -07:00
Leonardo de Moura
455361d7d7 chore: update comment 2020-07-13 16:22:49 -07:00
Leonardo de Moura
d4ae4da222 feat: check given constructor resulting type 2020-07-13 16:22:49 -07:00
Leonardo de Moura
920343d36b fix: unspecified constructor resulting type is not allowed inductive families 2020-07-13 16:22:49 -07:00
Leonardo de Moura
9960ca01f0 feat: reject protected constructors in a private inductive datatype
In a private inductive datatype, all constructors are private.
2020-07-13 16:22:49 -07:00
Leonardo de Moura
2744ae96bb feat: check unsafe annotations in mutually inductive datatype declarations 2020-07-13 16:22:49 -07:00
Leonardo de Moura
2bf10b3d2c feat: add inferMod field to CtorView 2020-07-13 16:22:49 -07:00
Leonardo de Moura
2cc2e71a53 feat: elaborate constructors 2020-07-13 16:22:49 -07:00
Leonardo de Moura
77ad630c80 test: inductive command 2020-07-13 16:22:49 -07:00
Leonardo de Moura
3fc6d8ce61 chore: improve constructor syntax
I think
```
inductive Foo
| private mk : Foo -> Foo
```
looks better than
```
inductive Foo
private | mk : Foo -> Foo
```

cc @Kha
2020-07-13 16:22:48 -07:00
Leonardo de Moura
d5f64f52a9 feat: add CtorView and modifier validation for inductive and constructors 2020-07-13 16:22:48 -07:00
Leonardo de Moura
6e12987dd9 feat: add declModifiers to constructor declarations
The goal is to allow users to attach doc strings and
`private/protected` to constructor declarations.

TODO: reject non applicable modifiers such as `unsafe` and `partial`.

cc @Kha
2020-07-13 16:22:48 -07:00
Leonardo de Moura
83431dc88e feat: elaborate protected 2020-07-13 16:22:48 -07:00
Leonardo de Moura
fb6dfa4af2 chore: fix test 2020-07-13 16:22:48 -07:00
Leonardo de Moura
667f2ed601 feat: resolve inductive and ctor names 2020-07-13 16:22:48 -07:00
Leonardo de Moura
18fce4f455 feat: add Expr.inferImplicit 2020-07-13 16:22:48 -07:00
Sebastian Ullrich
162e63030c leanmake: allow setting linker options 2020-07-13 21:39:04 +02:00
Leonardo de Moura
cda11dea25 feat: check universe parameters in mutually recursive inductive declaration 2020-07-11 08:01:36 -07:00
Leonardo de Moura
2949586244 feat: add local declarations for mutually inductive datatypes 2020-07-11 08:01:36 -07:00
Leonardo de Moura
c8636f2bf7 chore: generalize withDeclId 2020-07-11 08:01:36 -07:00
Leonardo de Moura
e26ec036ba feat: add instantiateForall 2020-07-11 08:01:36 -07:00
Sebastian Ullrich
8826330862 chore: add slightly different config for new speedcenter 2020-07-10 17:28:58 +02:00
Sebastian Ullrich
96fb5ca4eb chore: update temci 2020-07-10 17:28:58 +02:00
Sebastian Ullrich
fb02fbb867 fix: freeing Environments in tests 2020-07-10 07:42:26 -07:00
Sebastian Ullrich
719819bf49 fix: finally shouldn't call finalizer when finalizer throws 2020-07-10 07:42:26 -07:00
Sebastian Ullrich
c38f4fe837 feat: unsafe functions for freeing compacted regions 2020-07-10 07:42:26 -07:00
Sebastian Ullrich
ebd72d200f fix: alloc/free mismatch detected by asan 2020-07-10 07:42:26 -07:00
Leonardo de Moura
f559576994 feat: inductive datatype header validation 2020-07-09 15:34:25 -07:00
Leonardo de Moura
c19c5e8427 chore: update stage0 2020-07-08 12:46:56 -07:00
Leonardo de Moura
a488ec903e fix: remove old assertions 2020-07-08 12:45:53 -07:00
Leonardo de Moura
707ca63f87 chore: remove leftover MK_THREAD_LOCAL_GET
cc @Kha
2020-07-08 11:58:22 -07:00
Leonardo de Moura
d044e9f47e chore: remove instance cache
If the missing cache generates perf problems in the future, we should
add the cache at `MetaM`.

cc @Kha
2020-07-08 09:40:34 -07:00
Sebastian Ullrich
00eda2f8c6 chore: update nixpkgs, changing back to LLVM 10 2020-07-08 12:14:49 +02:00