Sebastian Ullrich
dce62fc190
fix(library/init/lean/expander): structural substitution instead of abstraction-application when applying notations
2019-01-16 19:12:40 +01:00
Sebastian Ullrich
3d66e7dbe1
fix(library/pos_info_provider): row and column were swapped
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
Leonardo de Moura
0451a53b54
doc(library/compiler/llnf): document explicit_rc_fn
2019-01-15 16:26:09 -08:00
Leonardo de Moura
54fe7e7be9
feat(library/compiler/llnf): explicit_rc_fn
...
TODO: cases_on terms
2019-01-15 15:54:38 -08:00
Leonardo de Moura
c268796545
fix(frontends/lean): clang errors and warnings
...
cc @kha
2019-01-15 13:48:08 -08:00
Leonardo de Moura
579d462776
feat(library/compiler/llnf): add process_app
2019-01-15 12:49:08 -08:00
Sebastian Ullrich
31588a1013
fix(library/init/lean/elaborator): do not attach position to app, nodes without pos data
2019-01-15 18:51:24 +01:00
Sebastian Ullrich
5660a8e690
feat(library/init/lean/elaborator): transmit position information
2019-01-15 18:28:35 +01:00
Sebastian Ullrich
1b565fcaa0
feat(library/init/lean/elaborator): simplistic support of export
2019-01-15 17:44:14 +01:00
Sebastian Ullrich
d444b5ef49
chore(library/init/core): move sorry_ax up (temporarily) to get error recovery sooner
2019-01-15 17:42:09 +01:00
Sebastian Ullrich
cead81fcea
fix(frontends/lean/inductive_cmds): set m_explicit_levels, and call collect_implicit_locals only after that
2019-01-15 16:47:28 +01:00
Sebastian Ullrich
7dd21df59f
fix(library/init/lean/elaborator): C++ expects the oldest variable first
2019-01-15 16:20:46 +01:00
Sebastian Ullrich
d0062691de
feat(library/init/lean): implement init_quot
2019-01-15 15:06:51 +01:00
Sebastian Ullrich
6e64089123
feat(frontends/lean/structure_cmd): implement structure
2019-01-15 15:01:52 +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
7aa06338c9
feat(frontends/lean/vm_elaborator): implement inductive
2019-01-14 14:49:40 +01:00
Sebastian Ullrich
0945a87fbb
fix(library/init/lean/elaborator): to_pexpr: explicitness modifiers
2019-01-14 14:48:49 +01:00
Sebastian Ullrich
93d8431d00
fix(frontends/lean/definition_cmds): fix build
2019-01-14 11:24:11 +01:00
Sebastian Ullrich
3216b1a268
feat(library/init/lean/elaborator): implement instance/example
2019-01-12 15:10:00 +01:00
Sebastian Ullrich
84e9dd9b1a
feat(library/init/lean/elaborator,frontends/lean/vm_elaborator): implement def/theorem/abbreviation
2019-01-12 15:10:00 +01:00
Sebastian Ullrich
49f580f190
feat(library/compiler/builtin,frontends/lean/vm_elaborator): add temporary expr.local primitive
...
This makes it possible (or at least much easier) to interface with old
parser/elaborator code using local_consts for e.g. `def` parameters.
2019-01-12 14:16:43 +01:00
Sebastian Ullrich
da865fc33a
refactor(frontends/lean/{vm_,}elaborator): move name resolution over to parser locals
...
In the end I wasn't quite sure whether this is necessary, but it's at least simpler.
2019-01-12 14:14:22 +01:00
Leonardo de Moura
e0da13128e
refactor(library/compiler/llnf): explicit_rc_fn
2019-01-09 16:57:38 -08:00
Leonardo de Moura
7b4b92702f
feat(library/compiler/llnf): cancel _unbox over _box and _box over _unbox
2019-01-09 16:57:38 -08:00
Leonardo de Moura
78379e2224
fix(library/compiler/llnf): avoid unnecessary let-decl at cast_if_needed
2019-01-09 16:57:38 -08:00
Leonardo de Moura
c1fd3e6062
fix(library/compiler/llnf): unnecessary let-decl
2019-01-09 16:57:38 -08:00
Leonardo de Moura
8111aaad8a
fix(library/compiler/llnf): missing case
2019-01-09 16:57:37 -08:00
Sebastian Ullrich
fec4502e0f
feat(library/init/lean/parser/term): parse and expand sorry
2019-01-07 22:19:47 +01:00
Sebastian Ullrich
2b5f19677d
feat(frontends/lean/vm_elaborator): elaborate #check
2019-01-07 22:19:47 +01:00
Sebastian Ullrich
9ac41835ba
test(tests/lean/parser1): add some name resolution tests
2019-01-06 18:22:18 +01:00
Sebastian Ullrich
aadf2eb5c1
fix(library/init/lean/elaborator): resolve_global: add missing name part, append root and open resolutions
2019-01-06 18:19:12 +01:00
Sebastian Ullrich
93b0c372e0
fix(library/init/lean/elaborator): reset namespace stack at end of namespace
2019-01-06 18:17:28 +01:00
Sebastian Ullrich
b17568aeff
feat(library/init/lean/elaborator): pass current namespace to C++ elaborator
...
This seems to be the only information in `scope_mng_ext` we definitely need
2019-01-06 18:10:49 +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
d2de703e51
feat(frontends/lean/vm_elaborator): add primitive environment.contains
2019-01-06 15:47:06 +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
9a6ae42be8
feat(frontends/lean/vm_elaborator): return new environment
2019-01-06 15:44:56 +01:00
Sebastian Ullrich
807b460e9c
feat(*/elaborator): pass preresolved names to C++ as annotations and use them for global name resolution
...
With actual preresolution still missing, the only preresolved names so far are
ones like `opt_param` from built-in macros that have been preresolved manually
(and which weren't successfully resolved before this commit because of the macro
scopes applied to them)
2019-01-01 23:59: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
595590e7f5
feat(library/init/lean/elaborator): elaborate open and export
2019-01-01 13:50:21 +01:00
Sebastian Ullrich
23c83d7e06
refactor(library/placeholder,library/init/lean/elaborator): encode pexpr placeholders as anonymous mvars
2018-12-21 15:53:12 +01:00
Sebastian Ullrich
5757792345
chore(library/placeholder): remove unused placeholder type and kinds
2018-12-21 15:52:56 +01:00
Sebastian Ullrich
8753491cb5
chore(library/placeholder): remove obsolete level one_placeholder
...
Remnant of the previous Type/Sort approach
2018-12-21 15:52:56 +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
dd65fbb736
refactor(library/init/lean): remove duplicate position type, rename pos to position
...
Makes it easier to work with local `pos` variables
2018-12-20 15:32:46 +01:00
Sebastian Ullrich
f7a395d035
feat(library/init/data/rbmap/basic): implement rbmap.lower_bound
2018-12-20 15:32:46 +01:00
Sebastian Ullrich
72274870ef
feat(lean4-mode/lean4-flycheck): add lean4-bootstrapped-checker
2018-12-20 14:28:18 +01:00
Sebastian Ullrich
32a3c0e62e
feat(library/init/lean/frontend,bin/lean-bootstrapped): expose new frontend as executable
2018-12-20 14:28:18 +01:00
Sebastian Ullrich
0e5cfa5e8f
feat(library/init/lean/elaborator): position on "unknown command" error
2018-12-20 14:28:18 +01:00