Leonardo de Moura
232eefcef9
feat: add auxiliary constructions for inductive types
2020-07-15 16:32:23 -07:00
Leonardo de Moura
8fd25ec326
feat: export "constructions"
...
@Kha Maybe one day I will reimplement them in Lean. Note that they do
not depend on the old type_context.
2020-07-15 16:32:23 -07:00
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
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
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
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
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
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
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
b40ef65b39
feat: add IO.eprint(ln) for printing to stderr
...
Most useful when stdout is being consumed by another program
2020-07-06 09:22:47 -07:00
Sebastian Ullrich
0f6b9f5c94
chore: clean up stage 0 executable build
...
Previously we were building identical libInit/Std/Lean.a from the same stage0/stdlib sources. Now we simply link
everything right into libleancpp.a, again.
2020-07-03 19:26:00 +02:00
Leonardo de Moura
36c971546c
feat: add elabMutualInductive
2020-06-26 15:41:09 -07:00
Leonardo de Moura
30f03ad18c
feat: add mutual syntax
2020-06-26 12:47:43 -07:00
Leonardo de Moura
1ad5b5984a
feat: add Inductive.lean
2020-06-26 12:44:13 -07:00
Leonardo de Moura
b6f6e44f7c
fix: build
...
@Kha It is not clear why this change fixed the build on my
Linux (running on VirtualBox). The issue seems to be due
circular dependencies between the static libraries, and the order the
static libraries are processed. Note that the build worked on my OSX
without this change.
2020-06-25 15:30:11 -07:00