Commit graph

4961 commits

Author SHA1 Message Date
Leonardo de Moura
5a8ddb2817 fix(library/message_builder): compilation warning 2018-09-17 08:53:03 -07:00
Leonardo de Moura
33821f399c chore(library/compiler): lc_util.* ==> util.* 2018-09-17 08:50:50 -07:00
Leonardo de Moura
81067d355d chore(library/compiler): util.* ==> old_util.* 2018-09-17 08:44:45 -07:00
Leonardo de Moura
499ab0baa3 feat(library/compiler/preprocess): save declarations after csimp
We inline functions using these auxiliary declarations.
2018-09-16 14:07:42 -07:00
Leonardo de Moura
d378e95467 feat(library/compiler/csimp): eliminate cases over structures 2018-09-15 16:12:11 -07:00
Leonardo de Moura
512c7b6ab6 fix(library/compiler/old_cse): linker issue with clang on OSX 2018-09-14 17:58:16 -07:00
Leonardo de Moura
c60be8c6e3 fix(library/compiler/csimp): debug build 2018-09-14 17:55:45 -07:00
Leonardo de Moura
52d1abf0bc feat(library/compiler): add cse to new compiler stack 2018-09-14 17:48:18 -07:00
Leonardo de Moura
ef21f069bd refactor(library/compiler): add is_cases_on_app helper function 2018-09-14 17:33:03 -07:00
Leonardo de Moura
8571430a34 chore(library/compiler): cse ==> old_cse 2018-09-14 16:58:37 -07:00
Leonardo de Moura
9e265f8c7f chore(library/compiler/csimp): remove unused var 2018-09-14 16:46:25 -07:00
Leonardo de Moura
242ab16d1c feat(library/compiler/csimp): simplify cases minor premises 2018-09-14 16:40:22 -07:00
Leonardo de Moura
8380035a6c fix(library/compiler/csimp): bug at find 2018-09-14 16:40:22 -07:00
Leonardo de Moura
768a45b7f9 feat(library/compiler/csimp): avoid unnecessary let-decls 2018-09-14 16:40:22 -07:00
Leonardo de Moura
8840f340aa feat(library/compiler/csimp): add reduction for application over cast 2018-09-14 16:40:22 -07:00
Sebastian Ullrich
65816d8b87 chore(library/message_builder): handle nested kernel exceptions 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
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
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
647f40763c feat(library/message_builder): pretty-print kernel_exceptions 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
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
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
c526670e6f feat(library/compiler/lcnf): eliminate id_rhs even if it is partially applied 2018-09-12 10:45:23 -07:00
Leonardo de Moura
2d6582e67c fix(library/compiler/lcnf): dumb mistake, Pi case is not reachable 2018-09-12 10:40:09 -07:00
Leonardo de Moura
ec1809de74 fix(library/compiler/lcnf): restore cache 2018-09-12 10:40:09 -07:00
Leonardo de Moura
70f057bee7 chore(library/type_context): add infer_proj to type_context_old
We need it to pp the new compiler intermediate results.
2018-09-12 10:40:09 -07:00