Leonardo de Moura
930164b597
chore(library/init/lean/parser/term): remove hack used during conversion
2019-03-21 15:06:45 -07:00
Sebastian Ullrich
97e5aa2411
chore(library): s/Punit/PUnit/g etc
2019-03-21 15:06:45 -07:00
Leonardo de Moura
2be87ecd92
chore(library/init): Bool.tt => Bool.true and Bool.ff => Bool.false
2019-03-21 15:06:44 -07:00
Leonardo de Moura
f8113a01eb
chore(library): unit => Unit
2019-03-21 15:06:44 -07:00
Leonardo de Moura
62e6341014
chore(*): lowercase file names
2019-03-21 15:06:44 -07:00
Leonardo de Moura
04e20623e6
chore(*): use lowercase dir names
2019-03-21 15:06:44 -07:00
Leonardo de Moura
67fb78bb47
chore(*): renaming files
2019-03-21 15:06:44 -07:00
Sebastian Ullrich
beda5f5f43
chore(library): capitalize types and namespaces
2019-03-21 15:06:43 -07:00
Sebastian Ullrich
b939162168
chore(library): switch from snake_case to camelCase
2019-03-21 15:06:43 -07:00
Leonardo de Moura
d5180ffa17
fix(library/init/lean/elaborator): make sure new frontend can parse the latest core.lean
2019-03-18 15:47:05 -07:00
Leonardo de Moura
0b7d987699
feat(frontends/lean, library/init/lean): opaque constants
...
@kha I have added support for opaque constants to the old C++ frontend,
and made sure the new frontend can still parse `library/init/core.lean`.
The kernel should enforce that opaque constants are really opaque, and
the following example should fail
```
constant x : nat := 0
theorem foo : x = 0 := rfl
```
If it doesn't, it is a bug.
Here are some remaining issues:
1- `environment.mk_empty` is currently an axiom because we cannot create
an inhabitant of an opaque type. A possible solution is to use
`option environment` instead of `environment`.
2- There is no support for opaque constants in the new
frontend. However, I modified it to handle axioms, and fixed the literal
values with decl_cmd_kind. I tried to mark some of my changes with
comments, but it is probably much easier for you to just check the
commit change list.
3- I did not add any support for automatically constructing `e`
at `constant x : t := e`. I think we can do this later
after we replace the old frontend with the new one. BTW, it took only a
few minutes to provide the inhabitants manually.
2019-03-15 17:41:44 -07:00
Leonardo de Moura
ecdb9d6df0
feat(library/init, frontends/lean): add abbreviation for abbreviation
2019-03-15 16:01:25 -07:00
Leonardo de Moura
a78c773f37
feat(library/init/lean): unsafe support in the new frontend
2019-03-15 15:49:03 -07:00
Leonardo de Moura
51838aede9
refactor(library/init/lean/parser/rec): use init.fix
2019-03-12 08:31:58 -07:00
Leonardo de Moura
68ebc2a5c5
feat(library/init/data/string/basic): implement iterators using uft8 low level API
2019-03-12 06:56:05 -07:00
Sebastian Ullrich
d0929c93cd
perf(library/init/lean/frontend): make file_map construction explicit, do it only once
2019-03-08 17:17:27 +01:00
Sebastian Ullrich
e0bbc094ad
chore(library/init): remove coroutines from stdlib
2019-03-08 15:34:17 +01:00
Sebastian Ullrich
234e4d1e8a
refactor(library/init/lean/elaborator): replace coroutines with explicit state
2019-03-08 15:23:01 +01:00
Sebastian Ullrich
81615fc856
refactor(library/init/lean/parser/module): replace coroutines with explicit snapshot state
2019-03-07 10:32:28 -08:00
Sebastian Ullrich
430fb81f69
fix(library/init/lean/parser/term,frontends/lean/builtin_exprs): @& should have higher rbp than ->
2019-03-07 14:35:25 +01:00
Sebastian Ullrich
6f83faaee0
perf(library/init/lean/parser/command): index command parsers by first token
2019-03-07 11:28:42 +01:00
Sebastian Ullrich
cfce916438
perf(library/init/lean/parser/module): make sure commands_aux is tail-recursive
2019-03-06 13:58:26 +01:00
Sebastian Ullrich
85bc52b9f2
feat(library/init/lean/frontend): profile frontend
2019-03-06 11:08:38 +01:00
Leonardo de Moura
61274c7d35
feat(library/init/data/char): use uint32 instead of nat for defining char
2019-02-15 18:07:55 -08:00
Sebastian Ullrich
dbc470d7e4
feat(library/init/lean/{parser/term,elaborator}): support @& borrowed annotations
2019-02-14 14:07:05 -08:00
Sebastian Ullrich
9f90dbfd3d
feat(library/init/lean/parser/syntax): improve syntax.get_pos for more error positions
2019-01-22 11:16:00 +01:00
Sebastian Ullrich
814ceb43fe
fix(library/init/lean/parser/declaration): axiom, constant, what's the difference
2019-01-21 18:09:26 +01:00
Sebastian Ullrich
c22fbb5cde
feat(library/init/lean,frontends/lean/vm_elaborator): set_option
2019-01-20 18:21:41 +01:00
Sebastian Ullrich
69e363446d
fix(library/init/lean/{parser/term,elaborator}): local notations override previous notations
2019-01-20 16:25:15 +01:00
Sebastian Ullrich
8cc35b854b
feat(library/init/lean/{expander,elaborator}): variable(s)
2019-01-17 17:06:52 +01:00
Sebastian Ullrich
13781ed114
feat(library/init/lean/parser/token): numeric literals of more exotic bases
2019-01-16 19:39:30 +01:00
Sebastian Ullrich
2c4b566038
feat(frontends/lean/vm_elaborator): implement equations
2019-01-16 19:12:40 +01:00
Sebastian Ullrich
a6d5af7387
feat(library/init/lean/expander): expand class and class inductive
2019-01-16 19:12:40 +01:00
Sebastian Ullrich
c17ba349f3
refactor(library/init/lean/parser/syntax): factor out syntax.(m)replace
2019-01-16 19:12:40 +01:00
Sebastian Ullrich
d0062691de
feat(library/init/lean): implement init_quot
2019-01-15 15:06:51 +01:00
Sebastian Ullrich
fc3a0403ab
feat(library/init/lean/parser/declaration): implement structure field blocks that go beyond regular binder syntax
2019-01-15 15:00:34 +01:00
Sebastian Ullrich
fec4502e0f
feat(library/init/lean/parser/term): parse and expand sorry
2019-01-07 22:19:47 +01:00
Sebastian Ullrich
22d5d32387
feat(library/init/lean/elaborator): do name preresolution just before elaboration
2019-01-06 15:47:54 +01:00
Sebastian Ullrich
a1ecf14ebe
feat(library/init/lean/parser/syntax): syntax.to_format: show ident metadata
2019-01-06 15:45:23 +01:00
Sebastian Ullrich
38df819817
fix(library/init/lean/expander): all identifiers in terms should be ident_univs
2019-01-01 23:59:23 +01:00
Sebastian Ullrich
fce5c5bd36
perf(library/init/lean/position): add file_map cache for position conversion
2018-12-20 15:32:46 +01:00
Sebastian Ullrich
0911d16bc3
feat(library/init/lean): compute and show error positions
2018-12-20 14:28:18 +01:00
Sebastian Ullrich
e5aaf391ff
fix(library/init/lean/parser/syntax): macro_scopes.flip
2018-12-19 15:04:48 +01:00
Sebastian Ullrich
5b44a6f93d
feat(library/init/lean/parser/parsec): structured doc_comment syntax nodes
2018-12-19 14:42:33 +01:00
Sebastian Ullrich
0cf88598d2
feat(library/init/lean/parser/declaration): stricter grammar for universe parameters and non-optional declaration types
2018-12-19 14:41:17 +01:00
Sebastian Ullrich
4f7be93e87
feat(library/init/lean): remove support for section aliases
2018-12-18 17:04:04 +01:00
Sebastian Ullrich
0a63d39247
refactor(library/init/lean): syntax.mk_app'/mk_app ~> syntax.mk_app/mk_capp
2018-12-14 17:37:37 +01:00
Sebastian Ullrich
306da89551
feat(library/init/lean/expander): expand universe( variable)s to multiple universe( variable) commands
2018-12-07 10:31:14 +01:00
Sebastian Ullrich
e7a6746b6a
refactor(library/init/lean): share error function between expander and elaborator
2018-12-06 17:03:01 +01:00
Sebastian Ullrich
9c9e642210
feat(library/init/lean/elaborator): universe operators, subtype
2018-12-06 13:23:12 +01:00