Commit graph

6102 commits

Author SHA1 Message Date
Leonardo de Moura
41786f41f0 fix(library/vm): did not use copy constructor 2016-05-12 11:41:28 -07:00
Leonardo de Moura
705317ae77 feat(library/compiler): generate bytecode 2016-05-11 19:21:47 -07:00
Leonardo de Moura
7a4ed85fee feat(library/vm): add get_vm_decl 2016-05-11 17:42:14 -07:00
Leonardo de Moura
61471df3eb feat(library/vm): store idx at vm_decl 2016-05-11 17:39:49 -07:00
Leonardo de Moura
5189a83f57 feat(library/vm): pretty print bytecode 2016-05-11 16:57:56 -07:00
Leonardo de Moura
70cff1a4bd feat(library/compiler/lambda_lifting): avoid unnecessary auxiliary decls 2016-05-11 16:34:47 -07:00
Leonardo de Moura
ecc9014d82 fix(library/compiler/simp_inductive): check ignore predicate at visit_constant 2016-05-11 16:06:21 -07:00
Leonardo de Moura
99716306f1 feat(library/vm): accessors and setters for vm_instr 2016-05-11 15:54:46 -07:00
Leonardo de Moura
a383b25c50 feat(library/vm): add auxiliary procedures 2016-05-11 15:47:05 -07:00
Leonardo de Moura
7ca916cddf feat(library/compiler/simp_inductive): add optimization for _cases based on the number of reachable cases 2016-05-11 14:40:53 -07:00
Leonardo de Moura
a5c6741d1b fix(library/compiler/simp_inductive): add support for constructor without arguments 2016-05-11 14:24:43 -07:00
Leonardo de Moura
dd4d115cc5 fix(frontends/lean/structure_cmd): mark recursors generated by structure cmd as auxiliary 2016-05-11 14:18:29 -07:00
Leonardo de Moura
e53bfb9d0a feat(library/compiler): add new compilation step where we reduce cases_on, constructor and projection applications into a basic primitives 2016-05-11 14:17:32 -07:00
Leonardo de Moura
ef8b182fb6 feat(library/util): add get_constructor_idx 2016-05-11 13:16:40 -07:00
Leonardo de Moura
5f9120be63 feat(library/util): add get_contructor_relevant_fields 2016-05-11 13:11:37 -07:00
Leonardo de Moura
53308d55b1 feat(library/vm): add is_vm_builtin_function 2016-05-11 12:49:54 -07:00
Leonardo de Moura
74b9690b7f feat(library/vm): add Proj (projection) operation 2016-05-11 11:56:55 -07:00
Leonardo de Moura
1bb36e5a0a chore(library/compiler/simp_pr1_rec): assume num of typeformers (aka motive) is 1 2016-05-11 11:51:35 -07:00
Leonardo de Moura
08a563dc0a fix(library/compiler/simp_pr1_rec): bug in simplification step 2016-05-11 11:47:59 -07:00
Leonardo de Moura
26029c2078 chore(library/definitional/projection): cleanup 2016-05-11 11:42:46 -07:00
Leonardo de Moura
ca891c176e feat(frontends/lean/pp): add option pp.hide_comp_irrelevant
It is true by default
2016-05-11 11:31:38 -07:00
Leonardo de Moura
9d01d1bb04 chore(library/compiler/preprocess_rec): add extra assertions 2016-05-11 11:24:12 -07:00
Leonardo de Moura
a581017d8d chore(library/compiler/preprocess_rec): trace preprocessing steps 2016-05-11 11:17:40 -07:00
Leonardo de Moura
3b47d91b3e feat(library/compiler): add lambda lifting 2016-05-11 11:07:39 -07:00
Leonardo de Moura
1820bdc430 feat(library/compiler): generate better auxiliary function names 2016-05-11 10:26:51 -07:00
Leonardo de Moura
b12587dc5c feat(library/compiler/erase_irrelevant): false.rec ==> unreachable 2016-05-11 10:17:14 -07:00
Leonardo de Moura
906c4f86f1 feat(library/vm): add vm_decl(s) 2016-05-10 21:11:07 -07:00
Leonardo de Moura
3dd7cd7403 feat(library/vm): implement nat functions in C++ 2016-05-10 17:35:53 -07:00
Leonardo de Moura
7641b602ca chore(util): fun_array ==> parray 2016-05-10 16:05:41 -07:00
Leonardo de Moura
2daf9c8d59 feat(library): add VM objects and instructions 2016-05-10 15:59:01 -07:00
Leonardo de Moura
6cb8e82fef feat(util/fun_array): add functional array 2016-05-09 17:40:26 -07:00
Leonardo de Moura
de9df69ef6 refactor(src): move compiler folder to library 2016-05-09 13:28:00 -07:00
Leonardo de Moura
79bf13e3ed feat(compiler/inliner): simplify cases_on and nonrecursive recursor applications when possible 2016-05-09 13:24:20 -07:00
Leonardo de Moura
bc81d0957f feat(compiler): add preprocessing step for reducing the arity of auxiliary declarations 2016-05-09 11:46:22 -07:00
Leonardo de Moura
9d2ec9d675 feat(compiler/erase_irrelevant): remove auxiliary rec_fn_macro occurrences 2016-05-09 11:22:28 -07:00
Leonardo de Moura
47bde4547d feat(compiler/erase_irrelevant): erase type information from lambda and let expressions 2016-05-09 10:22:38 -07:00
Leonardo de Moura
94be486ade fix(frontends/lean/builtin_cmds): generate error if declaration is not a definition 2016-05-07 18:39:40 -07:00
Leonardo de Moura
93aa264060 feat(frontends/lean/pp): pretty print neutral/unreachable terms 2016-05-07 18:30:19 -07:00
Leonardo de Moura
e5118a3a3a feat(compiler/erase_irrelevant): replace irrelevant terms with "neutral" constant 2016-05-07 18:26:13 -07:00
Leonardo de Moura
c7b4e00bbf refactor(compiler): move is_comp_irrelevant predicate to util 2016-05-07 18:19:19 -07:00
Leonardo de Moura
5f8c5cf2a4 feat(compiler/erase_irrelevant): distribute app arguments over cases_on minor premises 2016-05-07 18:12:28 -07:00
Leonardo de Moura
ca2de7126e chore(compiler/erase_irrelevant): compilation warnings 2016-05-07 17:39:00 -07:00
Leonardo de Moura
2b7551501e feat(compiler/erase_irrelevant): rec => cases_on 2016-05-07 17:32:27 -07:00
Leonardo de Moura
b54cd38b51 chore(compiler/elim_recursors): cleanup 2016-05-07 17:32:10 -07:00
Leonardo de Moura
50fd4eb7bd feat(compiler/erase_irrelevant): eliminate subtype.tag, subtype.rec and subtype.elt_of 2016-05-07 16:57:26 -07:00
Leonardo de Moura
49ff96ae8c fix(compiler/preprocess_rec): do not type check after erase_irrelevant 2016-05-07 16:39:34 -07:00
Leonardo de Moura
42af7c2a67 feat(compiler/erase_irrelevant): eliminate no_confusion applications 2016-05-07 16:30:23 -07:00
Leonardo de Moura
9f6d4e85b6 refactor(compiler): move get_constructor_arity to util 2016-05-07 16:21:56 -07:00
Leonardo de Moura
4f5e55bcbf refactor(compiler): rename lambda_lifting to elim_recursors
Moreover, we do not apply lambda lifting anymore at this step.
We will do it later after irrelevant terms have been erased.
2016-05-07 16:00:57 -07:00
Leonardo de Moura
a322f5fe60 feat(compiler): start erase_irrelevant 2016-05-07 15:27:24 -07:00