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
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
c38f4fe837
feat: unsafe functions for freeing compacted regions
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
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
cbb14673ef
chore: move RBTree and RBMap to Std
2020-06-25 13:26:16 -07:00
Leonardo de Moura
11ed7c6195
chore: move PersistentArray to Std
2020-06-25 13:02:21 -07:00
Leonardo de Moura
02aa8498cd
chore: move AssocList to Std
2020-06-25 12:52:23 -07:00
Leonardo de Moura
1612097788
chore: move HashMap and HashSet to Std
2020-06-25 12:46:56 -07:00
Leonardo de Moura
1be221a1f4
chore: move PersistentHashMap and PersistentHashSet to Std
2020-06-25 11:56:00 -07:00
Leonardo de Moura
2dd1d3ac3e
chore: move ShareCommon to Std
2020-06-25 11:45:29 -07:00
Leonardo de Moura
249bda16c0
chore: remove prelude commands from Lean package
2020-06-25 11:21:17 -07:00
Sebastian Ullrich
81376d3902
feat: allow capturing expected type in elab
...
/cc @leodemoura
2020-06-25 14:58:45 +02:00
Sebastian Ullrich
51e4b49ba6
feat: allow arbitrary syntax in macro/elab
2020-06-25 13:54:11 +02:00
Leonardo de Moura
80bb6f174d
feat: expand elab command
...
cc @Kha
2020-06-24 20:16:56 -07:00
Leonardo de Moura
cefbc27720
feat: add elab and elab_rules command syntax
2020-06-24 18:34:23 -07:00
Leonardo de Moura
7ece1172a3
chore: remove TODOs
2020-06-17 21:28:03 -07:00
Leonardo de Moura
dbbacb3bfd
chore: remove comment from Linter
...
Old frontend is just providing `Syntax.missing`
2020-06-17 21:28:03 -07:00
Leonardo de Moura
0c089b8cbd
feat: elaborate syntaxAbbrev as a definition
...
@Kha I elaborated it as a definition. It works because we can now
reference Parser declarations in `syntax` command.
This change allowed us to replace `p.getArg 0` with `p` in the
`Websever` demo.
2020-06-16 15:43:17 -07:00
Leonardo de Moura
b01a923281
chore: throw error if a precedence is used with a parser declaration
2020-06-16 15:26:38 -07:00
Leonardo de Moura
18cd41f902
feat: add syntaxAbbrev
2020-06-16 15:18:10 -07:00
Leonardo de Moura
3e028e3812
feat: allow syntax command to use existing parser declarations
...
@Kha Note that I had to change the pattern. After I replaced,
```
syntax text : child
```
with
```
syntax Prelim.text : child
```
Thus, I wrote
```
`(child|$t:text)
```
as
```
`(child|$t)
```
It works for this example, but it may be a problem in general.
2020-06-16 15:08:23 -07:00
Leonardo de Moura
c6e7ea8fd5
feat: add ParserDescr.parser constructor for embedding parser definitions into parser descriptions
2020-06-16 14:06:46 -07:00
Leonardo de Moura
f61e4ffbbd
chore: ParserDescr.parser ==> ParserDescr.cat
2020-06-16 13:40:16 -07:00
Sebastian Ullrich
4b84f8fa88
fix: nullary attributes in new frontend
2020-06-16 21:59:40 +02:00
Sebastian Ullrich
52d966f70b
feat: #eval
2020-06-16 10:41:42 -07:00
Leonardo de Moura
392d078011
feat: declare quotation parser for new parsing category
...
@Kha We can now delete the command
```
@[termParser] def childStxQuot : Parser :=
checkPrec maxPrec >> (node `Lean.Parser.Term.stxQuot $ symbol "`(child|" >> categoryParser `child 0 >> symbol ")")
```
from the web demo.
2020-06-16 10:38:37 -07:00
Sebastian Ullrich
b3d2e51aff
feat: generalize tactic/command macro syntax
2020-06-16 19:21:48 +02:00
Simon Hudon
a64e78b90b
feat: add std streams
...
Co-authored-by: Sebastian Ullrich <sebasti@nullri.ch>
2020-06-16 12:06:53 +02:00
Sebastian Ullrich
1ccaadfcf0
feat: add #eval syntax
2020-06-16 10:56:47 +02:00
Leonardo de Moura
09eb27404f
chore: remove <$ and $> notation
...
cc @Kha
2020-06-15 14:52:31 -07:00