Commit graph

24 commits

Author SHA1 Message Date
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
4cca030251 chore(library/compiler/lcnf): do not beta reduce at to_lcnf 2018-09-13 18:13:53 -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
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
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
ec92653d93 feat(library/compiler/lcnf): do not create aux let-decl for lc_proof-applications 2018-09-12 10:40:09 -07:00
Leonardo de Moura
d5d926b0ef feat(library/compiler/lcnf): eliminate no_confusion 2018-09-12 10:40:09 -07:00
Leonardo de Moura
8ee10e202f chore(library/compiler/lcnf): use _x_<idx> instead of _x.<idx>
This is a temporary change while we debug the new compiler.
2018-09-11 18:10:10 -07:00
Leonardo de Moura
72e99ea3ee fix(library/compiler/lcnf): apply_beta takes arguments in reverse order 2018-09-11 18:10:10 -07:00
Leonardo de Moura
9b21287a3e feat(library/compiler/lcnf): add lean compiler normal form 2018-09-11 18:10:10 -07:00