Sebastian Ullrich
468ac814a7
perf(library/init/lean/parser/token): move number' out of longest_match call
2018-09-14 16:33:04 -07:00
Sebastian Ullrich
123adc1ae2
fix(library/init/lean/parser/parsec): longest_match: do not consume if no parser consumed
2018-09-14 16:33:04 -07:00
Sebastian Ullrich
384389c84b
refactor(library/init/lean/parser/basic): move out rec_t and trie
2018-09-14 16:33:04 -07:00
Sebastian Ullrich
6733d5ab21
feat(library/init/lean/parser/token): comments are not tokens anymore
2018-09-14 16:33:04 -07:00
Sebastian Ullrich
fea637288d
fix(library/init/data/nat/basic,library/vm/vm_nat): regression in old compiler: primitive for nat equality was ignored
...
Improves parser performance by 26%
2018-09-14 16:33:04 -07:00
Leonardo de Moura
1cc60fdeac
feat(library/compiler): add helper functions
2018-09-14 15:41:01 -07:00
Leonardo de Moura
964e2f3efb
feat(library/compiler/csimp): merge application-application
2018-09-14 15:23:50 -07:00
Leonardo de Moura
7174d53820
feat(library/compiler/csimp): distribute application over cases
2018-09-14 15:14:40 -07:00
Leonardo de Moura
1c0ff0db72
fix(library/compiler/lcnf): make sure lc_cast applications are not overapplied
2018-09-14 15:08:35 -07:00
Leonardo de Moura
24de0e95f1
feat(library/compiler/lcnf): make test complete
2018-09-14 14:45:51 -07:00
Leonardo de Moura
75b494e33d
feat(library/compiler): use new constructor info
2018-09-14 13:51:53 -07:00
Leonardo de Moura
4874e25715
feat(kernel): save constructor idx and nfields at constructor_val
2018-09-14 13:45:58 -07:00
Leonardo de Moura
31a9a22641
test(tests/lean/run/new_compiler): add test
2018-09-14 13:35:41 -07:00
Leonardo de Moura
a2c5daeded
feat(library/compiler/lcnf): modify LCNF format
...
Now, the body of a let-expression is atomic.
2018-09-14 13:26:24 -07:00
Leonardo de Moura
eb2d8543f7
chore(library/compiler/lcnf): add comment
2018-09-14 12:03:17 -07:00
Leonardo de Moura
5ed05db261
test(tests/lean/run/new_compiler): add test for new compiler stack
2018-09-14 09:46:02 -07:00
Leonardo de Moura
dc1b3aceda
fix(library/compiler/csimp): missing simplification
2018-09-14 09:36:13 -07:00
Leonardo de Moura
2638a77a79
feat(library/compiler/csimp): reduce cases of constructor
2018-09-14 09:24:48 -07:00
Leonardo de Moura
3cf0d0f77a
chore(library/compiler): lcsimp ==> csimp
2018-09-14 09:07:35 -07:00
Leonardo de Moura
1c0a6367c8
feat(library/compiler): new dead let removal
2018-09-14 08:41:55 -07:00
Leonardo de Moura
960eab96b3
chore(library/compiler): minor changes
2018-09-13 18:13:53 -07:00
Leonardo de Moura
4cca030251
chore(library/compiler/lcnf): do not beta reduce at to_lcnf
2018-09-13 18:13:53 -07:00
Leonardo de Moura
31d98caa0f
feat(library/compiler): add compiler simplifier skeleton
2018-09-13 18:13:53 -07:00
Sebastian Ullrich
e6b5598d7b
chore(library/init/lean/parser/term): actually remove Type*
2018-09-13 16:38:40 -07:00
Sebastian Ullrich
ce5618d332
chore(library/init/lean/parser/term): remove Sort*, Type*
...
These can be macros
2018-09-13 16:38:40 -07:00
Sebastian Ullrich
647f40763c
feat(library/message_builder): pretty-print kernel_exceptions
2018-09-13 16:38:40 -07:00
Sebastian Ullrich
98e09c274f
feat(library/init/lean/parser/{pratt,level}): factor out pratt combinator, implement level parsers
2018-09-13 16:38:40 -07:00
Sebastian Ullrich
b7c3f517a9
feat(frontends/lean/builtin_exprs): support for precedence annotations in node!/node_choice!
2018-09-13 16:38:40 -07:00
Sebastian Ullrich
a57573a5b7
fix(library/init/lean/parser/command): keywords in notation actions are not actual keywords
2018-09-13 16:38:40 -07:00
Leonardo de Moura
b8dceda9b7
chore(kernel): type_checker::context ==> type_checker::state
2018-09-13 14:06:57 -07:00
Leonardo de Moura
c02e2d3b56
feat(library/compiler/lcnf): split cases followed by application
2018-09-13 12:57:08 -07:00
Leonardo de Moura
23e5136ea2
fix(library/equations_compiler/wf_rec): do not generate code for auxiliary *._pack functions added by equation compiler
...
In the new equation compiler, we should not generate code in the
equation compiler.
2018-09-12 22:05:52 -07:00
Leonardo de Moura
20f31c85bf
chore(kernel/type_checker): we don't use the kernel type checker for elaboration anymore
2018-09-12 20:36:32 -07:00
Leonardo de Moura
c49ad19736
refactor(kernel/type_checker): type_checker::cache ==> type_checker::context
...
We also move `environment` and `name_generator` to
`type_checker::context`. Reason: the cache assumes the environment did
not change. The (cache) correctness relies on the fact that we don't
reuse free variable identifiers.
2018-09-12 20:34:30 -07:00
Leonardo de Moura
7f496f43f1
fix(library/compiler/lcnf): it was not erasing proofs that start with Pi
2018-09-12 18:26:23 -07:00
Leonardo de Moura
379c06faf4
fix(library/compiler/lcnf): avoid trivial let-decls
2018-09-12 18:24:12 -07:00
Leonardo de Moura
3ec73b7156
fix(library/equations_compiler/compiler): avoid pull_nested_rec_fn by unfolding auxiliary declarations
...
The idea is to mimic the behavior of meta definitions.
This is a temporary fix. The new equation compiler will have to provide
a better solution for this problem.
2018-09-12 18:17:50 -07:00
Leonardo de Moura
78317c5062
chore(library/init/control/combinators): remove dead notation
2018-09-12 17:34:25 -07:00
Leonardo de Moura
afd54039ab
chore(library): remove >>, we should use *>
2018-09-12 17:31:21 -07:00
Leonardo de Moura
1be71cf725
chore(shell/lean): fix unused variable warning
2018-09-12 16:51:59 -07:00
Leonardo de Moura
9e305a5f26
chore(library): remove return, we should use pure
2018-09-12 16:51:11 -07:00
Leonardo de Moura
df9d0b2211
fix(frontends/lean/elaborator): avoid internal identifiers leaking as "user names" in equations
2018-09-12 15:09:44 -07:00
Leonardo de Moura
bfb3ffbc79
feat(library/compiler/lcnf): safe beta reduction
2018-09-12 14:51:19 -07:00
Leonardo de Moura
112f183be4
feat(library/compiler/lcnf): eliminate false.cases_on and eq.cases_on
2018-09-12 14:27:01 -07:00
Leonardo de Moura
1e5f0a91f1
feat(library/compiler/lcnf): eliminate and.rec and and.cases_on
2018-09-12 14:21:28 -07:00
Leonardo de Moura
b1fb4416f3
feat(library/compiler/lcnf): make sure constructor applications are fully applied
2018-09-12 14:04:24 -07:00
Leonardo de Moura
4058276a82
feat(library/compiler/lcnf): eliminate false.rec
2018-09-12 13:55:32 -07:00
Leonardo de Moura
cfdc331ecb
feat(library/compiler/lcnf): replace eq.rec and eq.ndrec applications with lc_cast
2018-09-12 11:00:34 -07:00
Leonardo de Moura
9f2d543209
chore(library/init/core): hide arguments for lc_proof, lc_cast and lc_unreachable
2018-09-12 11:00:05 -07:00
Leonardo de Moura
c526670e6f
feat(library/compiler/lcnf): eliminate id_rhs even if it is partially applied
2018-09-12 10:45:23 -07:00