Commit graph

8598 commits

Author SHA1 Message Date
Leonardo de Moura
fd83b711b6 fix(library/type_context): make sure aux_recursors are not unfolded in whnf_pred IF the given predicate returns false for them. 2016-05-03 17:26:53 -07:00
Leonardo de Moura
8c878e8196 refactor(library/aux_recursors): make sure is_aux_recursor returns true for manually defined nat.cases_on 2016-05-03 17:26:11 -07:00
Leonardo de Moura
156068609f feat(compiler/preprocess_rec): do not unfold cases_on 2016-05-03 15:42:20 -07:00
Leonardo de Moura
1c1ecdc3a9 feat(compiler/compiler_step_visitor): add visit_app 2016-05-03 15:41:50 -07:00
Leonardo de Moura
ea3fae060f chore(compiler/preprocess_rec): use tout 2016-05-02 18:18:53 -07:00
Leonardo de Moura
da79cd7d95 feat(frontends/lean/pp): add option pp.hide_binder_types 2016-05-02 18:16:27 -07:00
Leonardo de Moura
85e7003524 refactor(compiler): expose primitive for marking computationally irrelevant terms 2016-05-02 17:33:49 -07:00
Leonardo de Moura
007d82107d feat(compiler): add basic function inliner 2016-05-02 17:24:13 -07:00
Leonardo de Moura
da8f37d7cc feat(compiler): mark computationally irrelevant terms 2016-05-02 16:23:54 -07:00
Leonardo de Moura
5d770f9575 feat(compiler): add lambda lifting 2016-05-01 19:33:51 -07:00
Leonardo de Moura
2fca1ac2a4 feat(library/type_context): add method mk_let
It is identical to mk_lambda, but makes sure all locals are actually let-decls
2016-05-01 19:32:54 -07:00
Leonardo de Moura
889bdec2f7 feat(util/rb_tree): add unsigned_rev_cmp 2016-05-01 19:30:51 -07:00
Leonardo de Moura
048376d8fd feat(library/locals): add auxiliary method 2016-05-01 19:01:47 -07:00
Leonardo de Moura
bd18516ddd fix(library/local_context): typo 2016-05-01 19:01:30 -07:00
Leonardo de Moura
7bf3e2ffbb fix(compiler/simp_pr1_rec): typo 2016-05-01 16:47:53 -07:00
Leonardo de Moura
d86772e986 fix(library/type_context): compilation errors in debug mode 2016-05-01 12:05:42 -07:00
Leonardo de Moura
d64a8d24f9 fix(library/replace_visitor): remove replace_visitor_closed, it does not handle nested let-expr correctly 2016-05-01 12:04:28 -07:00
Leonardo de Moura
f2c10b0cee feat(compiler): add compiler_step_visitor helper class 2016-05-01 12:02:42 -07:00
Leonardo de Moura
847e1c60e7 refactor(compiler/util): use new kernel type_checker 2016-05-01 10:49:36 -07:00
Leonardo de Moura
e2c1c7f3a4 feat(compiler): add mk_fresh_constant 2016-05-01 10:21:59 -07:00
Leonardo de Moura
92325f9295 fix(compiler/preprocess_rec): fix expand_aux_recursors_fn 2016-04-28 17:41:08 -07:00
Leonardo de Moura
21daa18950 chore(compiler/simp_pr1_rec): cleanup 2016-04-28 17:40:34 -07:00
Leonardo de Moura
0b3e23892b refactor(library/replace_visitor): add replace_visitor_closed 2016-04-28 17:09:02 -07:00
Leonardo de Moura
836b3bfe95 refactor(compiler/preprocess_rec): make sure expand_aux_recursors does not depend on old code 2016-04-28 16:40:24 -07:00
Leonardo de Moura
f05e52e59f fix(library/init/nat): recursor attribute should be in the top-level since nat was defined in the top-level 2016-04-28 16:34:37 -07:00
Leonardo de Moura
5fc90adf6b feat(kernel): add whnf_cond to kernel type_checker 2016-04-28 16:08:03 -07:00
Leonardo de Moura
bf5e443418 feat(frontends/lean): add #compile command back 2016-04-28 15:59:38 -07:00
Leonardo de Moura
0b812bc91d fix(kernel/declaration): typo and restoring trusted flag for constants 2016-04-28 15:59:09 -07:00
Leonardo de Moura
c14bee0bbd feat(library/type_context): add whnf_pred helper method 2016-04-28 15:33:20 -07:00
Leonardo de Moura
7932872487 feat(kernel/declaration): untrusted constant declarations
This feature is useful for implementing the new tactic framework
2016-04-28 15:16:24 -07:00
Leonardo de Moura
54f68226f4 chore(frontends/lean): disable old tactic framework and blast 2016-04-25 16:22:15 -07:00
Leonardo de Moura
fdea718d9d chore(frontends/lean): remove all #include "library/tactic.*" from frontends/lean 2016-04-25 15:41:12 -07:00
Leonardo de Moura
d88098f38d chore(frontends/lean): remove some of the tactic support 2016-04-25 15:26:56 -07:00
Leonardo de Moura
de64750621 chore(frontends/lean): disable expressions that use tactic framework 2016-04-25 15:07:26 -07:00
Leonardo de Moura
a29eaf0067 feat(kernel): add 'trusted' flag for definitions 2016-04-11 15:49:29 -07:00
Leonardo de Moura
4728b03f20 refactor(kernel/type_checker): do not use definitional depth in the kernel type checker 2016-04-11 14:53:02 -07:00
Leonardo de Moura
d66406a1f4 feat(frontends/lean): add #elab command for testing new elaborator 2016-04-05 17:03:23 -07:00
Leonardo de Moura
03809e7973 refactor(frontends/lean): elaborator_context 2016-04-05 16:19:06 -07:00
Leonardo de Moura
2577be6344 chore(frontends/lean): remove useless elaborator options 2016-04-05 16:03:10 -07:00
Leonardo de Moura
a1bc662eca dev(frontends/lean/parser): add local_context 2016-03-30 16:33:17 -07:00
Leonardo de Moura
e806700648 fix(frontends/lean/builtin_cmds): redeclare_aliases 2016-03-30 16:30:18 -07:00
Leonardo de Moura
06ef0ad7be refactor(frontends/lean): add local_level_decls
Remark: the template local_decls will be deleted in the future.
The instances local_expr_decls will be replace by local_context.
2016-03-30 15:47:32 -07:00
Leonardo de Moura
c4f25cf15b refactor(frontends/lean): rename elaborate methods 2016-03-30 15:05:24 -07:00
Leonardo de Moura
75549bafd7 refactor(frontends/lean/elaborator): rename elaborator to old_elaborator 2016-03-30 14:59:18 -07:00
Leonardo de Moura
59278b3911 chore(library/type_context): add trace 2016-03-27 15:37:24 -07:00
Leonardo de Moura
7ddf1ef7a7 feat(library/type_context): add on_is_def_eq_failure 2016-03-27 15:20:38 -07:00
Leonardo de Moura
c538269b47 feat(library/type_context): type class resolution 2016-03-27 14:41:18 -07:00
Leonardo de Moura
ee27480210 feat(library/type_context): initialize type class resolution 2016-03-27 13:41:07 -07:00
Leonardo de Moura
c5122223e1 feat(library/type_context): add is_class predicate 2016-03-27 10:20:32 -07:00
Leonardo de Moura
f6e3521b8e chore(library/type_context): add trace 2016-03-27 09:58:06 -07:00