Commit graph

5960 commits

Author SHA1 Message Date
Leonardo de Moura
67e291ac84 feat(library/blast/strategies): add strategy for testing congruence closure module 2015-12-06 14:33:21 -08:00
Leonardo de Moura
39dbbd687b feat(library/blast/strategy): add 'orelse' combinator 2015-12-06 14:12:44 -08:00
Leonardo de Moura
732a92de05 feat(frontends/lean): add 'simp' as shortcut for 'with_options [blast.strategy "simp"] blast' 2015-12-06 13:14:04 -08:00
Leonardo de Moura
c105d2fe47 feat(library/blast): add simp strategies 2015-12-06 13:04:41 -08:00
Leonardo de Moura
80725cc416 fix(library): references to algebra in the source code 2015-12-05 23:50:26 -08:00
Leonardo de Moura
61b3c7c655 chore(library/blast): disable spurious style warnings 2015-12-05 21:48:50 -08:00
Leonardo de Moura
648f6c5f82 fix(library/blast/strategies): constructor action was being applied too soon 2015-12-05 19:44:07 -08:00
Leonardo de Moura
20d7727a9c fix(library/blast/forward/pattern): pattern inference bug 2015-12-05 19:38:24 -08:00
Leonardo de Moura
aa998bfad3 fix(library/fun_info_manager): reducibility issue 2015-12-05 19:26:06 -08:00
Leonardo de Moura
6193816f6a fix(library/tmp_type_context): bug at pop() 2015-12-05 19:14:33 -08:00
Leonardo de Moura
df567717f8 feat(library/blast/strategies): add 'blast.strategy "preprocess"' 2015-12-05 18:17:15 -08:00
Leonardo de Moura
11400edd4a refactor(library/blast): blast strategy framework 2015-12-05 16:55:23 -08:00
Leonardo de Moura
eeae5d1b6c feat(library/blast/options): add 'blast.strategy' option 2015-12-05 16:54:21 -08:00
Leonardo de Moura
6102938717 fix(library/blast/hypothesis): incorrect method being invoked 2015-12-05 16:53:47 -08:00
Leonardo de Moura
b409720ac7 feat(util/sexpr/option_declarations): add register_string_option 2015-12-05 16:53:16 -08:00
Leonardo de Moura
d7150f210c fix(library/blast/trace): avoid unnecessary trace information 2015-12-05 16:52:41 -08:00
Leonardo de Moura
96b37241bd feat(util/list): add is_suffix_eqp 2015-12-05 16:52:18 -08:00
Leonardo de Moura
3b40b09a36 refactor(library/blast): rename strategy to strategy_fn 2015-12-05 13:25:20 -08:00
Leonardo de Moura
fa938bb94c feat(frontends/lean/decl_cmds): allow modifier to be provided after the 'attribute' keyword, test 'at' keyword 2015-12-05 11:50:08 -08:00
Leonardo de Moura
07419617b0 fix(library/scoped_ext): assertion 2015-12-05 11:36:52 -08:00
Leonardo de Moura
e5aab3fd63 feat(library/scoped_ext,frontends/lean): add support for setting attributes into different namespaces 2015-12-05 11:15:02 -08:00
Daniel Selsam
08e0fc796b feat(library/blast/actions): by_contradiction action 2015-12-04 20:19:05 -08:00
Leonardo de Moura
78b1749c2c feat(library/blast): make sure blast can be interrupted 2015-12-04 18:44:04 -08:00
Daniel Selsam
a04c28d4c9 refactor(library/algebra): construct simplifier sets incrementally 2015-12-04 18:28:56 -08:00
Leonardo de Moura
2682fe9525 feat(library/blast/blast): force 'ne' to be always transparent 2015-12-04 18:24:36 -08:00
Leonardo de Moura
af01e7fea8 chore(library/blast): remove "leftover" file used in the old blast architecture 2015-12-04 17:34:56 -08:00
Leonardo de Moura
5da1b52e47 feat(library/blast/unit/unit_propagate): make sure unif_propagate works even if 'not' is marked as '[reducible]' 2015-12-04 16:49:21 -08:00
Leonardo de Moura
00e34683f2 feat(library/app_builder): (try to) address not-issue and other reducibility annotation related issues in the app_builder 2015-12-04 16:03:06 -08:00
Leonardo de Moura
a8b6a286dd fix(library/app_builder): make sure app_builder works even if iff is marked as reducible 2015-12-04 13:51:56 -08:00
Leonardo de Moura
93b17e2ec1 refactor(kernel/ext_exception): add ext_exception
Now, any exception that requires pretty printing support should be a
subclass of ext_exception
2015-12-04 13:22:42 -08:00
Leonardo de Moura
4bf9fc2cf5 refactor(library/blast): move simple_strategy to strategies folder
We will add more strategies in the future.
2015-12-04 11:46:56 -08:00
Leonardo de Moura
73622150a6 refactor(library/blast): move actions to actions folder
to make Daniel happy.
2015-12-04 10:00:04 -08:00
Leonardo de Moura
07cb35fd3c fix(library/abstract_expr_manager): incorrect handling of de-Bruijn variables 2015-12-04 09:27:21 -08:00
Leonardo de Moura
769da9c95a fix(library/unifier): missing occurs check 2015-12-04 09:14:55 -08:00
Leonardo de Moura
8c431bdb20 chore(library/blast/imp_extension): fix unused argument warning 2015-12-04 08:34:20 -08:00
Daniel Selsam
9689085834 fix(library/abstract_expr_manager): instantiate before calling mk_congr 2015-12-04 08:31:38 -08:00
Daniel Selsam
d729302718 fix(library/abstract_expr_manager): remove unnecessary include 2015-12-04 08:31:38 -08:00
Daniel Selsam
25a3cff54e refactor(library/abstract_expr_manager): remove fun_info_manager 2015-12-04 08:31:38 -08:00
Daniel Selsam
7854158751 fix(library/abstract_expr_manager): only squash Cast subsingletons 2015-12-04 08:31:38 -08:00
Daniel Selsam
6e478696d2 feat(library/blast/unit): preprocessor placeholder 2015-12-04 08:30:04 -08:00
Daniel Selsam
0df4556eb5 feat(library/blast/unit): quantified and non-Prop facts 2015-12-04 08:30:03 -08:00
Daniel Selsam
c604333af2 fix(library/blast/unit): typo 2015-12-04 08:30:03 -08:00
Daniel Selsam
2bf9989bd9 refactor(library/blast/unit): simplify module 2015-12-04 08:30:03 -08:00
Leonardo de Moura
61db311227 chore(library/blast/imp_extension): style 2015-12-04 08:26:03 -08:00
Daniel Selsam
606e28ca99 refactor(library/blast/imp_extension): buffer instead of list 2015-12-04 08:22:46 -08:00
Daniel Selsam
601dc544b6 feat(library/blast/imp_extension): imperative branch extensions 2015-12-04 08:22:46 -08:00
Leonardo de Moura
83b9769225 fix(library/blast): init_classical_flag
The procedure get_namespaces does not return the set of opened
namespaces. I added a comment there to clarify that.
2015-12-04 08:13:19 -08:00
Daniel Selsam
0dfac6d07e feat(library/blast): classical flag 2015-12-04 07:53:05 -08:00
Leonardo de Moura
fe020b49c1 chore(library/scoped_ext): add comment 2015-12-04 07:52:28 -08:00
Leonardo de Moura
6bbe72190d fix(library/congr_lemma_manager): bug in congruence lemma generator 2015-12-03 14:21:30 -08:00
Leonardo de Moura
038369533e fix(library/blast/recursor_action): indexed families 2015-12-02 23:43:15 -08:00
Leonardo de Moura
87995b96e3 fix(library/blast/congruence_closure): is_relation_app ==> is_equivalence_relation_app 2015-12-02 23:28:57 -08:00
Daniel Selsam
42dcbebd1c fix(library/blast/forward/ematch): typo 2015-12-02 23:17:24 -08:00
Daniel Selsam
139536896c feat(library/light_lt_manager): light wrappers for ordered rewriting 2015-12-02 22:56:54 -08:00
Daniel Selsam
c064f0cd82 fix(library/blast/simplifier/ceqv): typos 2015-12-02 22:56:00 -08:00
Daniel Selsam
aac50873fe fix(library/num): fix memory leak 2015-12-02 22:55:18 -08:00
Leonardo de Moura
acb5b969c6 fix(library/blast/subst_action): missing occurs check 2015-12-02 22:52:55 -08:00
Leonardo de Moura
d2054bb65c chore(library/blast): fix style 2015-12-02 22:52:55 -08:00
Leonardo de Moura
028ef47c84 feat(frontends/lean,library/blast/forward/pattern): check whether patterns can be inferred at declaration time 2015-12-02 22:52:55 -08:00
Leonardo de Moura
f84c6a6cfa fix(library/blast,frontends/lean): handling pattern hints after unfolding 2015-12-02 22:52:55 -08:00
Leonardo de Moura
950f356d9a refactor(library/blast,frontends/lean): forward pattern index 2015-12-02 22:52:55 -08:00
Leonardo de Moura
562d7b3e4a feat(library/blast/blast): add support in blast for controlling whether macros are unfolded or not at whnf/normalize 2015-12-02 22:52:55 -08:00
Leonardo de Moura
24e4dbe353 feat(src/library/type_context): add support for preserving macros at type_context whnf 2015-12-02 22:52:55 -08:00
Leonardo de Moura
39429251c6 chore(library/blast/forward/ematch): fix style 2015-12-02 22:52:55 -08:00
Leonardo de Moura
af9180b35c fix(library/blast/forward/qcf): compilation warning 2015-12-02 22:52:55 -08:00
Leonardo de Moura
a83a7f8356 feat(library/blast/forward/pattern): remove redundant multi-patterns 2015-12-02 22:52:55 -08:00
Leonardo de Moura
ec7c38d847 feat(library/blast/forward/pattern): add minimal pattern validation 2015-12-02 22:52:55 -08:00
Leonardo de Moura
72bd4a8f5a fix(library/blast/options): typo 2015-12-02 22:52:54 -08:00
Leonardo de Moura
32ad59adc1 feat(library/blast/forward/ematch): add support for multi-patterns 2015-12-02 22:52:54 -08:00
Leonardo de Moura
9260be01b2 feat(library/blast): add blast.backward option for disabling/enabling backward chaining 2015-12-02 22:52:54 -08:00
Leonardo de Moura
a8bb4ba109 fix(library/blast/congruence_closure): bug in congruence closure proof extraction 2015-12-02 22:52:54 -08:00
Leonardo de Moura
08bb966581 feat(library/blast/forward/ematch): generate new instances 2015-12-02 22:52:54 -08:00
Leonardo de Moura
d5b2efc74f feat(library/idx_metavar): add has_idx_metavar 2015-12-02 22:52:54 -08:00
Leonardo de Moura
4d63a27f13 feat(library/blast/forward/ematch): use type class resolution to infer missing arguments 2015-12-02 22:52:54 -08:00
Leonardo de Moura
37ad850455 fix(library/type_context): improve on_is_def_eq_failure 2015-12-02 22:52:54 -08:00
Leonardo de Moura
3d7831284b fix(library/blast/forward/ematch): extract lemma using target expression instead of pattern
Reason: pattern contains temporary universe meta-variables.
2015-12-02 22:52:54 -08:00
Leonardo de Moura
9f3f24b46c fix(src/library/blast/forward/ematch): use head_index at m_apps 2015-12-02 22:52:54 -08:00
Leonardo de Moura
2296168bda feat(library/blast): add blast.ematch option, and ematching search procedure 2015-12-02 22:52:54 -08:00
Leonardo de Moura
4c624206f4 feat(library/blast/forward/pattern): save meta-variables 2015-12-02 22:52:54 -08:00
Leonardo de Moura
7fa2b7cace feat(library/blast/forward/ematch): ematching skeleton 2015-12-02 22:52:54 -08:00
Leonardo de Moura
001f8084a9 chore(library/blast/forward/forward_extension): rename procedure 2015-12-02 22:52:54 -08:00
Leonardo de Moura
4129b398da fix(frontends/lean/builtin_cmds): private constants in the print command 2015-12-02 22:52:54 -08:00
Leonardo de Moura
e4e9c30e66 fix(frontends/lean/builtin_cmds): print patterns 2015-12-02 22:52:54 -08:00
Leonardo de Moura
05477d34bb fix(library/blast/forward/pattern): missing case 2015-12-02 22:52:54 -08:00
Leonardo de Moura
fdd442bd38 feat(frontends/lean/decl_attributes): turn on [forward] if pattern hints have been provided 2015-12-02 22:52:54 -08:00
Soonho Kong
c75e037b3c doc(emacs/README.md): mention issue 906 in Known Issues
see #906
[skip ci]
2015-12-02 17:37:10 -05:00
Soonho Kong
ff8f24a29b fix(library/blast/backward/backward_rule_set.cpp): fully annotate the use of map2
Close #904
2015-12-01 13:42:25 -05:00
Leonardo de Moura
41ff4bc193 feat(library/blast/forward/pattern): pattern inference and heuristic instantiation index 2015-11-25 23:45:08 -08:00
Leonardo de Moura
0ceaf0b4fe feat(frontends/lean/builtin_cmds): display '[forward]' annotation for heuristic instantiation lemmas 2015-11-25 17:53:13 -08:00
Leonardo de Moura
996a660de8 feat(library/blast): add is_hi_lemma 2015-11-25 17:52:59 -08:00
Leonardo de Moura
d395a54165 feat(frontends/lean): add '[forward]' annotation 2015-11-25 17:44:58 -08:00
Leonardo de Moura
2becc0367d feat(library/blast/forward/pattern): add add_hi_lemma 2015-11-25 17:44:27 -08:00
Leonardo de Moura
87c31acf8c feat(library/blast/forward/pattern): basic indexing for heuristic instantiation 2015-11-25 17:30:24 -08:00
Leonardo de Moura
30214af15c fix(util/rb_multi_map): missing include 2015-11-25 14:26:08 -08:00
Leonardo de Moura
3335c1782d feat(library/blast/forward/pattern): extract trackable and residue hypotheses 2015-11-25 13:43:27 -08:00
Leonardo de Moura
edd1b34143 doc(library/blast/forward/pattern): describe pattern inference heuristic 2015-11-25 11:57:30 -08:00
Daniel Selsam
ca71a2eb12 feat(library/blast/unit): conjunctive conclusions 2015-11-24 22:45:39 -08:00
Daniel Selsam
eac1ebbf72 feat(library/blast/unit): propagate clauses 2015-11-24 21:16:01 -08:00
Daniel Selsam
8f4bc7e0ba fix(util/rb_multi_map): no duplicate values 2015-11-24 20:19:46 -08:00
Leonardo de Moura
c923120db5 feat(library/blast/congruence_closure): expose mk_ext_congr_lemma 2015-11-24 18:48:23 -08:00
Leonardo de Moura
651e3834ba feat(library/blast/congruence_closure): allow meta-variables in the congruence closure module after partitions have been frozen 2015-11-24 18:48:23 -08:00
Leonardo de Moura
67a4cd3972 feat(frontends/lean): add print [no_pattern] command 2015-11-24 18:48:22 -08:00
Leonardo de Moura
017abdfb6a feat(frontends/lean): add notation for providing patterns 2015-11-24 18:48:22 -08:00
Leonardo de Moura
a2f43212d6 feat(frontends/lean): add '[no_pattern]' attribute 2015-11-24 18:48:22 -08:00
Leonardo de Moura
8c729d1620 feat(library/blast/forward): start 'pattern' module 2015-11-24 18:48:22 -08:00
Soonho Kong
27cec52770 doc(emacs/README.md): update unicode instructions 2015-11-24 11:30:33 -05:00
Jeremy Avigad
e8ee91f59d refactor(src/emacs/README.md): clarify setup instructions 2015-11-23 22:05:41 -05:00
Leonardo de Moura
c50d7ac4b8 feat(library/blast/congruence_closure): add add/assume API 2015-11-23 15:21:28 -08:00
Leonardo de Moura
f0ccffe968 feat(library/blast/congruence_closure): track mod-time 2015-11-23 15:03:46 -08:00
Leonardo de Moura
712f60d003 feat(library/blast/congruence_closure): expose get_cc() 2015-11-23 14:41:22 -08:00
Leonardo de Moura
11f838c13a perf(library/blast/congruence_closure): only copy parents that are still congruence roots 2015-11-23 14:38:31 -08:00
Leonardo de Moura
f4a7268bd7 fix(library/blast/congruence_closure): bug in add_eqv_step 2015-11-23 14:26:33 -08:00
Leonardo de Moura
f1a3f8ec9d feat(library/blast/congruence_closure): add blast.trace_cc option 2015-11-23 14:24:59 -08:00
Daniel Selsam
46e60abda6 feat(library/blast/forward): branch extension 2015-11-23 13:58:13 -08:00
Daniel Selsam
a8700e6778 refactor(library/blast/unit): rename unit propagation module 2015-11-23 13:58:13 -08:00
Leonardo de Moura
20cfe9e02e feat(library/blast/state): improve lazy initialization 2015-11-23 11:32:45 -08:00
Leonardo de Moura
3ee32c02d8 feat(library/blast/congruence_closure): add freeze_partitions API for qcf procedure 2015-11-23 11:26:15 -08:00
Leonardo de Moura
565a294489 fix(library/blast/congruence_closure): bug at is_congr_root 2015-11-23 11:25:58 -08:00
Floris van Doorn
c44ad80e4e feat(homotopy/torus): give recursion and induction principle for the torus
also change the surface of the torus to a square instead of an equality between paths
2015-11-22 18:29:37 -08:00
Leonardo de Moura
8632b7ae27 chore(library/blast/backward/backward_strategy): remove unused param 2015-11-22 18:27:23 -08:00
Leonardo de Moura
b442fe66b2 chore(library/blast/simple_strategy): fix style 2015-11-22 18:24:59 -08:00
Leonardo de Moura
0fcf8ed7d2 refactor(library/blast): hypothesis activation protocol 2015-11-22 18:22:26 -08:00
Leonardo de Moura
1bd827dffc feat(library/blast/simplifier/simplifier_actions): add simplify_hypothesis_action 2015-11-22 17:49:00 -08:00
Leonardo de Moura
8681b34129 fix(library/blast/simplifier/simplifier_actions): update target when simplifier produces a definitionally equal output that is not structurally equal
This update also uses the even target_updated to decide when the target
needs to be updated.
2015-11-22 17:25:54 -08:00
Leonardo de Moura
0c4fb6b3d5 feat(library/blast): add option 'blast.recursor' for disabling recursor action 2015-11-22 17:15:38 -08:00
Leonardo de Moura
56282a11f6 feat(library/blast/blast): use type_context normalizer 2015-11-22 17:04:04 -08:00
Leonardo de Moura
6b248f44eb feat(library/blast): add option for showing the blast failure state 2015-11-22 16:32:07 -08:00
Leonardo de Moura
fc461ce832 feat(library/app_builder): avoid redundant proof terms at mk_of_iff_true and mk_not_of_iff_false 2015-11-22 15:49:17 -08:00
Leonardo de Moura
94f7b7f95d feat(library/blast/congruence_closure): add support for propagating units in the congruence closure module
See blast_cc12.lean for example.
2015-11-22 15:39:44 -08:00
Leonardo de Moura
f326e731a0 fix(library/blast/subst_action): do not apply subst to (H : a = a), let the discard_action to get rid of it 2015-11-22 15:37:32 -08:00
Leonardo de Moura
6fc0e41439 fix(library/blast/congruence_closure): proof generation for congruences such as (a = b) <-> (b = a)
The congruence closure module treats these two terms as the same thing.
So, we should take this into account when building proofs
2015-11-21 19:50:59 -08:00
Leonardo de Moura
5e9914ef45 feat(library/blast/congruence_closure): avoid eq.rec if major premise is eq.refl 2015-11-21 19:00:16 -08:00
Leonardo de Moura
607552e51f feat(library/blast): add target_updated event 2015-11-21 17:58:21 -08:00
Leonardo de Moura
091b0f0cc7 feat(library/blast): add option for disabling congruence closure 2015-11-21 17:45:25 -08:00
Leonardo de Moura
c4328aad3a feat(library/blast/congruence_closure): missing case 2015-11-21 17:40:15 -08:00
Leonardo de Moura
c49caf3740 feat(library/blast/congruence_closure): add support for user-defined congruence lemmas in the congruence closure module 2015-11-21 14:43:51 -08:00
Leonardo de Moura
a61869ba1a feat(library/blast): add option for disabling simplifier 2015-11-21 12:19:55 -08:00
Leonardo de Moura
85601c5a83 chore(library/blast/congruence_closure): fix style 2015-11-20 16:46:28 -08:00
Leonardo de Moura
8f368cebbf feat(library/blast/congruence_closure): lift equalities 2015-11-20 13:48:22 -08:00
Leonardo de Moura
28970ef717 feat(library/blast/congruence_closure): proof extraction 2015-11-20 12:23:32 -08:00
Leonardo de Moura
1e3f549c39 feat(library/blast/subst_action): add option for disabling subst action 2015-11-20 10:53:02 -08:00
Leonardo de Moura
028a2ab785 feat(library/blast): add get_config() 2015-11-20 10:39:26 -08:00
Leonardo de Moura
c76b04719c feat(library/app_builder): add lift_from_eq 2015-11-20 10:27:58 -08:00
Leonardo de Moura
f6ba746b03 chore(library/blast/trace): fix signature 2015-11-20 08:55:44 -08:00
Leonardo de Moura
ffacf70230 chore(library/io_state_stream): remove unused variable 2015-11-20 08:20:29 -08:00
Leonardo de Moura
628608ca7d chore(library/blast/congruence_closure): fix style 2015-11-19 19:49:59 -08:00
Leonardo de Moura
d5b0a45aa4 chore(library/blast/simplifier/simplifier_actions): fix warnings 2015-11-19 19:47:04 -08:00
Daniel Selsam
21cb409e6c refactor(library/blast/simplifier): move simplifier module into blast 2015-11-19 19:43:04 -08:00
Daniel Selsam
2c72f46adc feat(library/blast/forward): opportunistically delete dead hypotheses 2015-11-19 19:40:40 -08:00
Leonardo de Moura
2d93fe4b76 feat(library/blast/congruence_closure): implement congruence closure
Proof extraction is still missing
2015-11-19 19:37:11 -08:00
Leonardo de Moura
968b615390 feat(library/blast/congruence_closure): add "add_eqv" 2015-11-19 15:56:21 -08:00
Leonardo de Moura
f9ced4b3e1 feat(library/blast): add "ppb" helper class for pretty printing expression in blast 2015-11-19 15:55:22 -08:00
Leonardo de Moura
86ad8c348e fix(library/norm_num): memory leaks 2015-11-19 14:32:47 -08:00
Leonardo de Moura
ee3083c12c feat(library/blast): add action based on congruence closure module 2015-11-19 12:30:45 -08:00
Leonardo de Moura
b1777855cf chore(util/rb_multi_map): remove unnecessary includes 2015-11-19 11:45:20 -08:00
Daniel Selsam
5ada4312d7 feat(library/blast/forward): propositional forward chaining 2015-11-19 11:44:53 -08:00
Daniel Selsam
3523e32345 chore(library/blast/simplifier): use blast's app_builder 2015-11-19 10:57:33 -08:00
Daniel Selsam
e856de5ab4 chore(library/blast/simplifier): remove old comment 2015-11-19 10:57:33 -08:00
Leonardo de Moura
193c446fc4 fix(library/blast/blast): metavariable assignment validation 2015-11-19 10:52:18 -08:00
Soonho Kong
b4b365239f feat(emacs/lean-mode.el): use --dir option in lean-exec-at-pos
See #821 and #788
2015-11-19 12:56:07 -05:00
Leonardo de Moura
f78e57fd52 feat(shell,frontends/lean): add command line option --dir
See #821
See #788
2015-11-19 08:34:23 -08:00
Leonardo de Moura
4bb58a04db fix(CMakeLists): remove tests for dead module, fixes #883 2015-11-19 07:59:57 -08:00
Leonardo de Moura
3bd83b8e41 feat(library/blast/backward/backward_strategy): don't try constructor action by default 2015-11-18 19:14:37 -08:00
Leonardo de Moura
aa1451888c fix(library/blast): spurious trace messages, typo 2015-11-18 19:12:29 -08:00
Leonardo de Moura
d85e26898e fix(library/blast): uninitialized variables 2015-11-18 18:56:19 -08:00
Leonardo de Moura
fbeee674b3 chore(library/blast/union_find): remove dead code 2015-11-18 18:35:00 -08:00
Leonardo de Moura
f8a20341cb refactor(library/blast): get_hypothesis_decl return a reference 2015-11-18 18:20:02 -08:00
Leonardo de Moura
b61eb3ea0c fix(library/blast): compilation errors in debug mode 2015-11-18 18:01:58 -08:00
Leonardo de Moura
808e6f0089 chore(library/blast/backward/backward_rule_set): unused variable 2015-11-18 17:59:31 -08:00
Daniel Selsam
413989afd6 feat(library/blast/backward): backward chaining strategy 2015-11-18 17:48:39 -08:00
Daniel Selsam
39a9ab6bf8 fix(library/blast/simplifier): misc cleanup 2015-11-18 17:32:08 -08:00
Leonardo de Moura
5251752b9c chore(library/blast/state): document branch extension methods 2015-11-18 17:29:01 -08:00
Leonardo de Moura
70a1aebfe3 feat(library/blast/state): add initialized event handler for branch extensions. 2015-11-18 17:24:04 -08:00
Leonardo de Moura
107c155574 chore(library/blast/state): fix style 2015-11-18 15:50:24 -08:00
Leonardo de Moura
223e77c4a9 refactor(library/blast): use branch_extension for recursor_action 2015-11-18 15:49:02 -08:00
Leonardo de Moura
6823a34935 feat(library/blast): branch extensions 2015-11-18 15:30:59 -08:00
Leonardo de Moura
bf5fe8d180 feat(library/blast): add trace module 2015-11-18 12:59:53 -08:00
Leonardo de Moura
453e90261b refactor(library/blast): make sure all actions return action_result, add macros for simplifying strategy definition
revert is not an action, but a procedure for helping us to build actions.
2015-11-18 12:29:43 -08:00
Leonardo de Moura
59e676e4fa fix(library/blast/strategy): initialization
A strategy is supposed to solve the current branch.
2015-11-18 10:20:02 -08:00
Leonardo de Moura
93a0f62cd3 chore(library/blast/congruence_closure): fix style 2015-11-17 19:16:42 -08:00
Leonardo de Moura
dde4aa72f9 chore(library/blast/congruence_closure): fix warnings 2015-11-17 19:14:12 -08:00
Leonardo de Moura
3734cc671a feat(library/blast/congruence_closure): add is_eqv 2015-11-17 19:10:00 -08:00
Leonardo de Moura
d833410f0d feat(library/blast/congruence_closure): add proved/disproved aux methods 2015-11-17 19:06:23 -08:00
Leonardo de Moura
3f6b79227f refactor(library/blast/congruence_closure,library/app_builder): add helper methods for theorems heavily used in the congruence closure module 2015-11-17 18:57:40 -08:00
Leonardo de Moura
3de9a89d93 feat(library/blast/congruence_closure): congruence_closure basics 2015-11-17 18:45:22 -08:00
Leonardo de Moura
de67288305 fix(library/app_builder): mk_rel supports relations where the lhs and rhs are not necessarily the last two arguments (e.g., heq) 2015-11-17 18:45:22 -08:00
Leonardo de Moura
f363975856 feat(frontends/lean): add command #congr_rel for testing new congruence lemma for equivalence relations 2015-11-17 18:45:22 -08:00
Leonardo de Moura
16bcd2f522 feat(congr_lemma_manager): add congruence lemma for equivalence relation over iff/eq 2015-11-17 18:45:22 -08:00
Leonardo de Moura
491c7c55e1 feat(library/simplifier/simp_rule_set): add priorities for simp and congr rules 2015-11-16 22:34:06 -08:00
Leonardo de Moura
f7c6eee791 feat(library/head_map): add head_map_prio 2015-11-16 22:07:04 -08:00
Daniel Selsam
a689c66b1e fix(library/blast/simplifier): handle scalar in fusion 2015-11-16 20:39:15 -08:00
Daniel Selsam
49ff8640d9 fix(library/blast/simplifier): use ac rules for numerals 2015-11-16 20:39:15 -08:00
Daniel Selsam
8ca5d87f0b feat(library/blast/simplifier): rely on norm_num for recursion 2015-11-16 20:33:22 -08:00
Daniel Selsam
56efc969fd feat(library/simplifier/simp_rule_set): throw exception for null simp rule 2015-11-16 20:33:22 -08:00
Daniel Selsam
9f1dda5622 style(library/blast/simplifier): follow else brace rules 2015-11-16 20:33:22 -08:00
Daniel Selsam
6ba42bb7bc test(simplifier11.lean): add rule for (not P) 2015-11-16 20:33:22 -08:00
Daniel Selsam
b9a516783c fix(library/blast/simplifier): remove unnecessary casts 2015-11-16 20:33:22 -08:00
Daniel Selsam
550cac6065 feat(library/norm_num): use type_context 2015-11-16 20:33:22 -08:00
Leonardo de Moura
770ca546be fix(library/norm_num): unused variables warnings 2015-11-16 19:02:02 -08:00
Leonardo de Moura
ab98be633a fix(library/blast/simplifier): warning when compiling using clang on OSX 2015-11-16 18:56:35 -08:00
Leonardo de Moura
d5d8ac8b44 fix(kernel/expr): warning when compiling using clang on OSX 2015-11-16 18:50:34 -08:00
Leonardo de Moura
f482e09cc2 fix(compiler/preprocess_rec): warning when compiling using clang on OSX 2015-11-16 18:38:41 -08:00
Leonardo de Moura
4dc27fb43b chore(library/blast): use "override" consistently for proof_step objects 2015-11-16 18:30:59 -08:00
Leonardo de Moura
38436468e2 chore(library/type_context): remove dead code 2015-11-16 18:23:45 -08:00
Leonardo de Moura
4afd366a2c fix(library/congr_lemma_manager): warnings when compiling using clang on OSX 2015-11-16 18:23:17 -08:00
Leonardo de Moura
8e4fd50913 chore(frontends/lean/builtin_cmds): fix style 2015-11-16 16:10:01 -08:00
Leonardo de Moura
39ec756331 feat(library/blast): add congruence closure skeleton 2015-11-16 16:07:00 -08:00
Leonardo de Moura
60945e95b4 feat(library/blast): add 'discard' action for detecting irrelevant hypotheses 2015-11-16 11:43:51 -08:00
Leonardo de Moura
7abb0d6b96 chore(frontends/lean/builtin_cmds,library/blast/simplifier): fix style 2015-11-16 11:10:12 -08:00
Leonardo de Moura
a567cce685 fix(library/blast/simplify_actions): compilation error due to recent changes in the simplifier API 2015-11-16 10:13:27 -08:00
Daniel Selsam
5e8068b2b2 feat(library/blast/simplifier): draft of fusion 2015-11-16 09:13:07 -08:00
Daniel Selsam
c694d443d7 feat(library/blast/simplifier): placeholder for fusion 2015-11-16 09:13:07 -08:00
Daniel Selsam
f72da014d4 feat(library/blast/fusion): refactor 2015-11-16 09:13:07 -08:00
Daniel Selsam
d852be0d79 feat(library/blast/simplifier): option for fusing 2015-11-16 09:12:29 -08:00
Leonardo de Moura
db59c6829c feat(library/blast): add basic support for non-recursive recursors/eliminators in the simple_strategy, fix bug at recursor_action 2015-11-15 18:39:12 -08:00
Leonardo de Moura
a545860aa1 feat(library/blast/intros_action): apply head_beta_reduce at intros 2015-11-15 18:14:12 -08:00
Leonardo de Moura
2e057477ef feat(library/blast/recursor_action): ignore type class instances in the recursor action 2015-11-15 18:04:08 -08:00
Leonardo de Moura
24ed427c2f feat(library/blast): add "recursor" (aka elimination/induction) action 2015-11-15 18:00:32 -08:00
Leonardo de Moura
9e8627380a chore(library/blast/simple_strategy): fix style 2015-11-15 15:08:01 -08:00
Leonardo de Moura
1308c7c4e2 feat(library/blast): add action for not(a ~ a) when ~ is a reflexive relation 2015-11-15 15:00:25 -08:00
Leonardo de Moura
96bc8ac208 fix(library/relation_manager): typo 2015-11-15 14:59:21 -08:00
Leonardo de Moura
ffd0c2b09a refactor(library/blast/simple_strategy): eliminate duplicated code 2015-11-15 14:30:24 -08:00
Leonardo de Moura
2549e49e72 feat(library/blast): add priority_queue for hypotheses we want to eliminate (apply recursion over) 2015-11-15 13:32:43 -08:00
Leonardo de Moura
4cd5e18bd0 refactor(library/blast): add strategy abstract object 2015-11-15 13:12:21 -08:00
Leonardo de Moura
bae37d287d fix(library/blast/state): bad style warnings 2015-11-15 12:38:07 -08:00
Leonardo de Moura
ff73fb22fb feat(library/user_recursors): store whether recursor is recursive or not 2015-11-15 12:37:35 -08:00
Leonardo de Moura
e18e4e3200 fix(library/user_recursors): bug at get_num_minors 2015-11-15 11:48:34 -08:00
Leonardo de Moura
eae26cdfae feat(library/user_recursors): add get_num_minors 2015-11-15 11:35:55 -08:00
Leonardo de Moura
ccdaa524f7 fix(library/relation_manager): bad style warnings 2015-11-15 11:35:20 -08:00
Leonardo de Moura
fd41a4f76d feat(library/blast): add simplify_target action 2015-11-14 16:18:12 -08:00
Leonardo de Moura
6a554f6ba7 fix(library/blast/simple_actions): missing include 2015-11-14 15:41:54 -08:00
Leonardo de Moura
4d68e2a520 feat(library,hott): add eq.mpr and eq.mp lemmas 2015-11-14 15:40:47 -08:00
Leonardo de Moura
b5db77961d feat(library/blast): add "trivial" action 2015-11-14 15:02:14 -08:00
Leonardo de Moura
2ba9979822 feat(library/relation_manager): add helper procedures 2015-11-14 14:11:52 -08:00
Leonardo de Moura
0803db21d3 refactor(library/blast): add "_action" suffix to files defining actions 2015-11-14 13:22:12 -08:00
Leonardo de Moura
9921228dd5 feat(library/blast): add simp_rule_sets to branch 2015-11-14 13:16:00 -08:00
Leonardo de Moura
0f4e59a84f feat(library/blast): add "no_confusion" action 2015-11-13 18:19:05 -08:00
Leonardo de Moura
29d472788f feat(library/blast/subst): avoid unnecessary proof step 2015-11-13 16:31:07 -08:00
Leonardo de Moura
3849aff674 fix(library/blast/subst): bug in subst action, add hypothesis_idx_buffer_set (helper class), refine revert_action interface 2015-11-13 16:10:25 -08:00
Leonardo de Moura
33036befc6 fix(library/blast/intros): corner case 2015-11-13 15:25:55 -08:00
Leonardo de Moura
6c038626f8 fix(library/blast/simple_strategy): tracing 2015-11-13 15:22:09 -08:00
Leonardo de Moura
ca4c078089 feat(library/blast): add "subst" action 2015-11-13 15:21:26 -08:00
Leonardo de Moura
cc4608a392 feat(library/blast): add "revert" auxiliary action 2015-11-13 14:15:48 -08:00
Leonardo de Moura
92a7c38260 feat(kernel/expr): add mk_app that takes a list of arguments 2015-11-13 14:01:15 -08:00
Leonardo de Moura
950f9ff79f feat(util/rb_tree): buffer => rb_tree 2015-11-13 14:00:35 -08:00
Leonardo de Moura
0dd6d6b140 feat(library/blast): avoid default name when creating hypotheses 2015-11-13 13:13:48 -08:00
Leonardo de Moura
bc8c5a3f68 feat(library/blast): basic tracing for blast 2015-11-13 13:05:20 -08:00
Leonardo de Moura
2889ec5870 feat(library/blast/state): add methods for deleting hypotheses 2015-11-13 11:59:34 -08:00
Leonardo de Moura
0a25652885 feat(library/blast/intros): intros is now a silent step. 2015-11-13 10:55:15 -08:00
Leonardo de Moura
4aa20fcff0 feat(library/blast/state): add support for "silent" proof steps. 2015-11-13 10:54:10 -08:00
Leonardo de Moura
2e32cf51f9 feat(library/blast/state): do not track dependecies to values 2015-11-13 10:38:25 -08:00
Leonardo de Moura
a7fdf5cc73 fix(library/blast/blast): avoid unnecessary calls to set_local_instances
This was producing a performance problem since the cache is invalidated/flushed
whenever we call this method.
2015-11-13 10:08:29 -08:00
Daniel Selsam
1276f2f050 feat(library/blast/simplifier): struct for cache key 2015-11-12 21:21:52 -08:00
Daniel Selsam
f17320eccf fix(library/abstract_expr_manager): remove weight and lt 2015-11-12 21:21:52 -08:00
Daniel Selsam
4e85d59785 style(library/abstract_expr_manager): whitespace 2015-11-12 21:21:52 -08:00
Daniel Selsam
3703938e55 feat(library/abstract_expr_manager): compare exprs ignoring subsingletons 2015-11-12 21:21:51 -08:00
Daniel Selsam
031979cb49 feat(library/blast/simplifier): take simp_rule_sets as argument 2015-11-12 21:20:16 -08:00
Rob Lewis
44a099f6f1 feat(norm_num): performance and style fixes 2015-11-12 20:53:37 -08:00
Rob Lewis
4bf0519843 feat(norm_num): numeral normalizer works for +, -, *, / 2015-11-12 20:53:37 -08:00
Rob Lewis
616450be64 feat(library/norm_num): extend norm_num to handle subtraction 2015-11-12 20:53:37 -08:00
Leonardo de Moura
8f378db661 feat(library/blast): add normalize procedure to blast API 2015-11-12 20:42:58 -08:00
Leonardo de Moura
e1f81cfdcd feat(library/type_context): add normalizer for type_context 2015-11-12 20:31:36 -08:00
Leonardo de Moura
d9816b6e21 fix(library/type_context): avoid errors in the infer type method due to opaque constants 2015-11-12 20:04:46 -08:00
Leonardo de Moura
9aaa2d0991 feat(frontends/lean): add new command for testing new congruence lemmas
Remark: #congr_simp is the old command, and #congr is the new one.
2015-11-12 18:55:25 -08:00
Leonardo de Moura
1d1cd0fc24 feat(library/congr_lemma_manager): add congruence lemma for normalization and congruence closure 2015-11-12 18:54:12 -08:00
Leonardo de Moura
15cd92f89f fix(library/type_context): methods assign and force_assign were not processing postponed constraints 2015-11-12 18:52:31 -08:00
Leonardo de Moura
1e436b8b3e fix(library/blast/state): incorrect assertions 2015-11-12 16:28:09 -08:00
Leonardo de Moura
98f91931bf fix(library/blast/state): compilation errors 2015-11-12 16:25:59 -08:00
Leonardo de Moura
6eef52196e feat(library/blast): add gexpr "generalized expressions" 2015-11-11 16:11:51 -08:00
Leonardo de Moura
5ceac83b6a feat(frontends/lean/elaborator): restrict the number of places where coercions are considered
We do not consider coercions around meta-variables anymore.
2015-11-11 12:37:19 -08:00
Leonardo de Moura
fa3baed701 feat(frontends/lean): add new option (elaborator.coercions) for disabling coercions 2015-11-11 11:57:44 -08:00
Leonardo de Moura
9bedbbb739 refactor(library,hott): remove coercions between algebraic structures
They are classes, and mixing coercion with type class resolution is a
recipe for disaster (aka counterintuitive behavior).
2015-11-11 11:57:44 -08:00
Leonardo de Moura
fee0cff295 feat(library/blast): add simple indexing data-structure for active hypotheses 2015-11-11 00:02:47 -08:00
Leonardo de Moura
41e14fddf8 feat(library/head_map): support local name in the head_map 2015-11-10 20:02:31 -08:00
Leonardo de Moura
bd06bf9fb1 doc(library/blast): document action_result 2015-11-10 17:49:41 -08:00
Leonardo de Moura
48eb6cb138 refactor(library/blast/state): simplify state 2015-11-10 17:27:39 -08:00
Leonardo de Moura
511337a4e9 fix(library/blast): missing file 2015-11-10 17:00:26 -08:00
Leonardo de Moura
f8f3f9402e feat(library/blast): major reorg and basic backward chaining action 2015-11-10 17:00:16 -08:00
Leonardo de Moura
5be1893d98 fix(library/blast/state): bug at instantiate_urefs_mrefs 2015-11-10 16:38:44 -08:00
Leonardo de Moura
6f01a7339a refactor(library/blast): move simple search strategy to separate module 2015-11-10 11:44:18 -08:00
Leonardo de Moura
6ac2bf9c6c refactor(library/blast): add choice_point object 2015-11-10 11:28:59 -08:00
Leonardo de Moura
b76cdb1c68 refactor(library/blast): move blast options to separate module 2015-11-10 11:03:54 -08:00
Leonardo de Moura
f1c2a88e17 feat(library/blast): add proof_expr thin layer for creating proof terms at blast 2015-11-10 10:50:58 -08:00
Leonardo de Moura
5304f62f54 feat(library/blast/hypothesis): track proof depth in hypotheses 2015-11-10 09:54:28 -08:00
Leonardo de Moura
409ad18f9b refactor(library/blast/state): cleanup state interface 2015-11-10 09:20:44 -08:00
Daniel Selsam
fc5dba4cd1 fix(library/simplifier/simp_rule_set): use lists instead of vectors 2015-11-10 08:58:46 -08:00
Leonardo de Moura
b59dd2305c refactor(library/blast): rename state::get ==> state::get_hypothesis_decl 2015-11-09 14:52:21 -08:00
Leonardo de Moura
fb7a47cf2b refactor(library/blast): avoid auxiliary local when creating hypothesis for intros 2015-11-09 14:40:39 -08:00
Leonardo de Moura
a14bb86148 feat(library/blast/state): add mk_lambda/mk_pi for abstracting hrefs 2015-11-09 14:20:19 -08:00
Leonardo de Moura
973a5c4812 feat(library/blast): improve blast type_context push/pop operations 2015-11-09 13:36:49 -08:00
Leonardo de Moura
9c364b410e refactor(library/blast): hypothesis m_depth ==> m_dep_depth 2015-11-09 13:29:07 -08:00
Leonardo de Moura
9a557958f4 refactor(library/blast): merge state and branch classes
We will keep only one active branch in blast.
All other branches are implicit.
2015-11-09 13:24:30 -08:00
Leonardo de Moura
9bdf3a0d33 refactor(library/blast): we should reuse uref/mref/href in idxs
Motivation: avoid nasty bugs when caching results
2015-11-09 12:41:52 -08:00
Leonardo de Moura
d952a1d299 refactor(library/blast/expr): remove unnecessary complexity 2015-11-09 12:27:33 -08:00
Leonardo de Moura
c5117785a8 feat(library/blast): add intros action 2015-11-08 19:18:40 -08:00
Leonardo de Moura
78f1679b03 feat(library/blast): add basic assumption action 2015-11-08 18:16:34 -08:00
Leonardo de Moura
6340b1ae5b feat(library/blast): very basic search procedure and iterative deepening 2015-11-08 17:57:37 -08:00
Leonardo de Moura
1d39b6d5d4 feat(util/rb_map): add erase_min 2015-11-08 17:29:30 -08:00
Leonardo de Moura
c1392e60be feat(util/rb_tree): add double_cmp 2015-11-08 17:10:49 -08:00
Leonardo de Moura
8308e87a6c feat(library/blast/blast): initialize local instances at type_context objects 2015-11-08 15:20:05 -08:00
Leonardo de Moura
39019b6873 refactor(library/blast/simplifier): use app_builder mk_congr, mk_congr_arg and mk_congr_fun 2015-11-08 14:05:03 -08:00
Leonardo de Moura
1374f8cba1 fix(library/blast/simplifier): compilation warnings 2015-11-08 14:05:03 -08:00
Leonardo de Moura
b8857b078b feat(library/blast): add get_app_builder to blast API 2015-11-08 14:05:03 -08:00
Leonardo de Moura
1d1f043192 refactor(library/app_builder): throw exception instead of returning none_expr 2015-11-08 14:05:03 -08:00
Daniel Selsam
0061d595d0 feat(library/blast/simplifier): use generated congruence lemmas 2015-11-08 14:05:03 -08:00
Daniel Selsam
b2368ba81b style(library/blast/simplifier): whitespace 2015-11-08 14:05:03 -08:00
Daniel Selsam
f1d5cc5d5b test(library/blast/simplifier): add asserts 2015-11-08 14:05:03 -08:00
Leonardo de Moura
afc7a2af84 feat(library/blast): expose mk_congr_lemma_for_simp and get_fun_info 2015-11-08 14:05:03 -08:00
Leonardo de Moura
f74e8288bd refactor(library/congr_lemma_manager): API 2015-11-08 14:05:03 -08:00
Leonardo de Moura
f19fcf255a chore(library/constants.cpp): regenerate automatically generated file 2015-11-08 14:05:03 -08:00
Daniel Selsam
f3caeb77cd style(library/blast/simplifier): whitespace 2015-11-08 14:05:03 -08:00
Daniel Selsam
6c2c82f47c feat(library/blast/simplifier): conditional rewriting 2015-11-08 14:05:03 -08:00
Daniel Selsam
d4e410162b feat(library/blast/simplifier): expand macros 2015-11-08 14:05:02 -08:00
Daniel Selsam
b727d5810a feat(library/blast/simplifier): rewrite with tmp locals 2015-11-08 14:05:02 -08:00
Daniel Selsam
3f331a261a fix(library/blast/simplifier): stack of caches for local context 2015-11-08 14:05:02 -08:00
Daniel Selsam
b81aa35221 feat(library/blast/simplifier): more informative tracing 2015-11-08 14:05:02 -08:00
Daniel Selsam
0ad41173bb fix(library/blast/simplifier): caches for each relation 2015-11-08 14:05:02 -08:00
Daniel Selsam
a304f6a9df fix(library/blast/simplifier): loop rewrite rules 2015-11-08 14:05:02 -08:00
Daniel Selsam
a73e4e30a3 feat(library/blast/simplifier): use new blast_tmp_type_context constructor 2015-11-08 14:05:02 -08:00
Daniel Selsam
8e5e8e6540 feat(library/blast/simplifier): basic infrastructure 2015-11-08 14:05:02 -08:00
Leonardo de Moura
78a9116a23 chore(library/congr_lemma_manager): fix style 2015-11-08 14:05:02 -08:00
Leonardo de Moura
77c0866599 feat(library/congr_lemma_manager): fallback to simple congruence theorem if needed 2015-11-08 14:05:02 -08:00
Leonardo de Moura
0eb0a679e8 feat(library/congr_lemma_manager): add support for complex lemmas 2015-11-08 14:05:02 -08:00
Leonardo de Moura
ba477a0e98 feat(library/congr_lemma_manager): handle simple congruence lemmas 2015-11-08 14:05:02 -08:00
Leonardo de Moura
3dc8f72c32 feat(frontends/lean/builtin_cmds): display congr lemma arg mask 2015-11-08 14:05:02 -08:00
Leonardo de Moura
df94864809 fix(library/congr_lemma_manager): use abstract_local 2015-11-08 14:05:02 -08:00
Leonardo de Moura
8a7321714a feat(library/congr_lemma_manager): add mk_congr_simp that takes the number of expected arguments
Use sorry to be able to test first part
2015-11-08 14:05:02 -08:00
Leonardo de Moura
5a48a2cebe feat(library/app_builder): add mk_sorry method 2015-11-08 14:05:02 -08:00
Leonardo de Moura
c16423194c feat(library/fun_info_manager): add method for getting information about function prefix 2015-11-08 14:05:02 -08:00
Leonardo de Moura
559c5a26a3 fix(library/congr_lemma_manager): take resulting type into account when computing congruence lemma 2015-11-08 14:05:02 -08:00
Leonardo de Moura
b89b4cb5f0 fix(library/fun_info_manager): bug tracking dependecies 2015-11-08 14:05:02 -08:00
Leonardo de Moura
76032eea90 feat(kernel/expr): change dummy expression used in default constructor 2015-11-08 14:05:02 -08:00
Leonardo de Moura
7d588636a1 feat(library/fun_info_manager): collect additional information 2015-11-08 14:05:02 -08:00
Leonardo de Moura
9b34526030 feat(frontends/lean): add #congr debugging command 2015-11-08 14:05:02 -08:00
Leonardo de Moura
22dcf6825e feat(library/congr_lemma_manager): add congr_lemma_manager skeleton and compute type of congruence lemma
proof is still missing
2015-11-08 14:05:02 -08:00
Leonardo de Moura
01bde866d6 feat(library/util): add auxiliary recognizers 2015-11-08 14:05:01 -08:00
Leonardo de Moura
2d04156959 fix(library/app_builder): bug in eq_drec 2015-11-08 14:05:01 -08:00
Leonardo de Moura
34d5882b9a refactor(library/util): rename old is_eq_rec 2015-11-08 14:05:01 -08:00
Leonardo de Moura
2482c49729 test(frontends/lean): add #replace command for debugging purposes 2015-11-08 14:05:01 -08:00
Leonardo de Moura
6519e570f3 feat(library/fun_info_manager): safer "replace" function 2015-11-08 14:05:01 -08:00
Leonardo de Moura
78b1d4279b fix(library/blast/state): compilation problems in debug mode 2015-11-08 14:05:01 -08:00
Leonardo de Moura
7e7919950d fix(library/type_context): compilation warning 2015-11-08 14:05:01 -08:00
Leonardo de Moura
8d9d84f33c refactor(library/blast): we don't require maximally shared terms anymore in blast
This commit also removes the blast::mk_* expr and level functions.
They were just noops.

I kept only mk_uref, mk_href and mk_mref
2015-11-08 14:05:01 -08:00
Leonardo de Moura
45c02cb65c feat(library/blast/blast): add extra constructor 2015-11-08 14:05:01 -08:00
Leonardo de Moura
980eb95e0c fix(library/type_context,library/blast/blast): blast uses multiple type_context objects, this commit makes sure all of them use the same local name generator 2015-11-08 14:05:01 -08:00
Leonardo de Moura
749d468440 feat(library): add fun_info_manager 2015-11-08 14:05:01 -08:00
Leonardo de Moura
e23523bb02 feat(library/type_context): add mk_subsingleton_instance 2015-11-08 14:05:01 -08:00
Daniel Selsam
a104b478f3 feat(library/type_context): make expand_macro public 2015-11-08 14:05:01 -08:00
Leonardo de Moura
f84f024b92 refactor(library/app_builder): change app_builder constructor 2015-11-08 14:05:01 -08:00
Leonardo de Moura
98b79373cc feat(library/blast/blast): add blast::internalize 2015-11-08 14:05:01 -08:00
Leonardo de Moura
43efc11f36 feat(library/blast/blast): automatically clear tmp_type_context at recycling time 2015-11-08 14:05:01 -08:00
Leonardo de Moura
3517a3dfa9 feat(library/blast): add blast_tmp_type_context 2015-11-08 14:05:01 -08:00
Leonardo de Moura
b2c9f2f6c5 feat(library/type_context): document our approach for managing meta-variables in type_context 2015-11-08 14:05:01 -08:00
Leonardo de Moura
aa697206e8 refactor(library/type_context): rename set_context to set_local_instances 2015-11-08 14:05:01 -08:00
Leonardo de Moura
fb7efa9337 feat(library/type_context): new tmp local_constant policy 2015-11-08 14:05:01 -08:00
Leonardo de Moura
333ba83087 feat(library/type_context): add mk_tmp_local that allows us to specify the pretty printing name
We also modify the type inference procedure to preserve the binder names.
2015-11-08 14:05:01 -08:00
Leonardo de Moura
01259a2d1c feat(library/app_builder): add helper functions for creating eq.rec applications 2015-11-08 14:05:01 -08:00
Leonardo de Moura
5b71025b07 fix(library/blast/blast): temporary type_context for blast must handle external meta-variables. 2015-11-08 14:05:01 -08:00
Leonardo de Moura
d1fa547335 feat(frontends/lean/builtin_cmds): change mask notation at #app_builder command 2015-11-08 14:05:01 -08:00
Leonardo de Moura
f21102a725 feat(frontends/lean): add test commands for new app_builder features 2015-11-08 14:05:01 -08:00
Leonardo de Moura
1c2c2a6077 feat(library/app_builder): mk_app with mask 2015-11-08 14:05:01 -08:00
Leonardo de Moura
8e0a3eec3f chore(library/relation_manager): fix bogus style warnings 2015-11-08 14:05:01 -08:00
Leonardo de Moura
0f631889b7 feat(library/app_builder): add helper methods for creating binary relations, and refl/symm/trans proofs 2015-11-08 14:05:00 -08:00
Leonardo de Moura
b5c40e30ef feat(library/app_builder): add set_context 2015-11-08 14:05:00 -08:00
Leonardo de Moura
137ec27059 feat(library/app_builder): add constructor for app_builder that may take subclasses of tmp_type_context
We need this feature because blast has its own version of tmp_type_context.
2015-11-08 14:05:00 -08:00
Leonardo de Moura
ee0974650a feat(library/app_builder): new app_builder on top of type_context
The new version is more robust, and invokes type class resolution if needed.
2015-11-08 14:05:00 -08:00
Leonardo de Moura
87ec7383dd fix(library/tmp_type_context): initialization 2015-11-08 14:05:00 -08:00
Leonardo de Moura
a26ea2a249 feat(frontends/lean/builtin_cmds): add command for testing app_builder 2015-11-08 14:05:00 -08:00
Leonardo de Moura
3804281919 refactor(library/app_builder): remove app_builder Lua API 2015-11-08 14:05:00 -08:00
Leonardo de Moura
f8916ed411 feat(library/blast/blast): create tmp_type_context that is compatible with blast 2015-11-08 14:05:00 -08:00
Leonardo de Moura
e01f2ec6a5 feat(library/tmp_type_context): add temporary type_context 2015-11-08 14:05:00 -08:00
Leonardo de Moura
18d9272f22 refactor(library/type_context): revise get_assignment
It is safer to return optional.
2015-11-08 14:05:00 -08:00
Leonardo de Moura
3bc5084bf6 refactor(library/simplifier): disable file
We will eventually delete it.
It will be subsumed by blast.
2015-11-08 14:05:00 -08:00
Leonardo de Moura
27904787fe refactor(library/type_inference): rename type_inference module to type_context 2015-11-08 14:05:00 -08:00
Daniel Selsam
ffc168d63a fix(frontends/lean/elaborator): visit_app partial 2015-11-08 14:05:00 -08:00
Leonardo de Moura
ab940a2001 feat(frontends/lean/elaborator): add support for partial explicit in the elaborator 2015-11-08 14:05:00 -08:00
Daniel Selsam
6b06a19294 chore(frontends/lean): remove whitespace 2015-11-08 14:05:00 -08:00
Daniel Selsam
fa58d7c71e feat(frontends/lean): basic support for partial explicit 2015-11-08 14:05:00 -08:00
Daniel Selsam
946e00f71a feat(library/explicit): support partial explicit 2015-11-08 14:05:00 -08:00
Leonardo de Moura
1d670e3193 feat(frontends/lean): support for '@@' -- the partial explicit operator 2015-11-08 14:05:00 -08:00
Leonardo de Moura
914f3b4e34 chore(library/blast/blast): fix style 2015-11-08 14:05:00 -08:00
Leonardo de Moura
0e4f97792e feat(library/blast): add blast::scope_debug auxiliary class for testing blast related procedures 2015-11-08 14:05:00 -08:00
Leonardo de Moura
fd917effad feat(library/blast): use new type_inference module in blast 2015-11-08 14:05:00 -08:00
Leonardo de Moura
52eb787288 refactor(library/type_inference): move (non-temporary) class.* options to type_inference module 2015-11-08 14:05:00 -08:00
Leonardo de Moura
56c15f4fb5 refactor(library/type_inference): move new type class resolution procedure to genere type_inference 2015-11-08 14:05:00 -08:00
Leonardo de Moura
4c573380b2 feat(library/class): add auxiliary methods 2015-11-08 14:05:00 -08:00
Leonardo de Moura
c361fc1f6f fix(frontends/lean/parser): method for parsing decimals
"division" has been renamed to "div"
2015-11-08 14:04:59 -08:00
Leonardo de Moura
6fa4691eb4 feat(library/type_inference): improve process_assignment 2015-11-08 14:04:59 -08:00
Leonardo de Moura
ab1937d46e feat(library/class_instance_resolution): add new (temporary) option class.force_new to force the new type class resolution procedure in HoTT mode 2015-11-08 14:04:59 -08:00
Floris van Doorn
46dba4ee5e refactor(category): move some files to subfolders, and create file with basic functors 2015-11-08 14:04:59 -08:00
Floris van Doorn
f2d07ca23c feat(category): various small changes in category theory 2015-11-08 14:04:59 -08:00
Floris van Doorn
de1c47eda9 feat(categories): add exponential laws for categories
also give nicer rules to construct equalities between (pre)categories
2015-11-08 14:04:59 -08:00
Floris van Doorn
21723a82b6 fix(lean-syntax): add some more syntax for categories 2015-11-08 14:04:59 -08:00
Floris van Doorn
a358813182 feat(lean-syntax): fix and extend syntax highlighting 2015-11-08 14:04:58 -08:00
Floris van Doorn
3f0d8c0a8c feat(category.adjoint): prove more about functors 2015-11-08 14:04:58 -08:00
Floris van Doorn
c7fd29f854 feat(category): start with the introduction rule for equivalences 2015-11-08 14:04:58 -08:00
Leonardo de Moura
410c9aef79 chore(library/type_inference): fix style 2015-11-08 14:04:58 -08:00
Leonardo de Moura
6465b16951 fix(library/class_instance_resolution): memory initialization bug in new type class resolution procedure 2015-11-08 14:04:58 -08:00
Leonardo de Moura
95348bc90b fix(library/class_instance_resolution): uninitialized variables 2015-11-08 14:04:58 -08:00
Leonardo de Moura
50186e2db3 feat(library/class_instance_resolution): add old type class resolution procedure back to be able to compile HoTT library 2015-11-08 14:04:58 -08:00
Leonardo de Moura
885393f4de feat(library/type_inference): check types when assigning meta-variables 2015-11-08 14:04:58 -08:00
Leonardo de Moura
766fdd415a feat(library/type_inference): postpone "nontrivial" universe unification constraints 2015-11-08 14:04:58 -08:00
Leonardo de Moura
0bf069f016 feat(library/class_instance_resolution): more liberal type class resolution procedure
This modification is needed for the group_theory folder
2015-11-08 14:04:58 -08:00
Leonardo de Moura
21501ccfa4 fix(library/type_inference): temporary hack for solving universe unification problems
We need a better solution. It turns out the universe constraints are not
as simple as we expected.
2015-11-08 14:04:58 -08:00
Leonardo de Moura
5f43b9b183 feat(library/class_instance_resolution): recursively invoke type class resolution when parameters are instances 2015-11-08 14:04:58 -08:00
Leonardo de Moura
6acf7afa16 fix(library/type_inference): bug when using apply_beta 2015-11-08 14:04:58 -08:00
Leonardo de Moura
8d8e43abfd fix(library/class_instance_resolution): transitive instances in the new type class resolution procedure 2015-11-08 14:04:58 -08:00
Leonardo de Moura
a1d200e1c6 feat(library/class_instance_resolution): add support for nested type
class resolution
2015-11-08 14:04:58 -08:00
Leonardo de Moura
e9b92adf29 feat(library/type_inference,library/class_instance_resolution): add on_is_def_eq_failure "event handler" 2015-11-08 14:04:57 -08:00
Leonardo de Moura
21bd30d51a fix(library/class_instance_resolution): bug in mk_choice_point 2015-11-08 14:04:57 -08:00
Leonardo de Moura
0446c43ebf refactor(library/class_instance_resolution): use new generic type_inference module to implement type class resolution 2015-11-08 14:04:57 -08:00
Leonardo de Moura
73543f1279 fix(library/norm_num): use new type-class resolution procedure at norm_num 2015-11-08 14:04:57 -08:00
Leonardo de Moura
f371182a6c feat(library/type_inference): generic and cheap type inference, unification, whnf 2015-11-08 14:04:57 -08:00
Leonardo de Moura
a7655b7d43 feat(library/class_instance_resolution): reset internal indices 2015-11-08 14:04:57 -08:00
Leonardo de Moura
1f01e5480d fix(library/class_instance_resolution): remove reset_cache_and_ctx used for debugging purposes 2015-11-08 14:04:57 -08:00
Leonardo de Moura
2edccf007b fix(library/class_instance_resolution): make sure that terms synthesized by type class resolution have override the ones synthesized by solving unification constraints. 2015-11-08 14:04:57 -08:00
Leonardo de Moura
b71a68c606 fix(frontends/lean/elaborator): visit_prenum was creating unnecessary universe metavariable
This was creating problems for the new type class resolution procedure
since visit_prenum was also not creating any constraint that enforced
the universe level of A to be equal to the superfluous universe level.
2015-11-08 14:04:57 -08:00
Leonardo de Moura
4787cf179e fix(library/class_instance_resolution): skip (instance) meta-variables that have been assigned by solving unification constraints 2015-11-08 14:04:57 -08:00
Leonardo de Moura
eb2236f036 feat(library/class_instance_resolution): bug in mk_choice 2015-11-08 14:04:57 -08:00
Leonardo de Moura
97407eb178 fix(library/class_instance_resolution): add hack for mk_subsingleton_instance API
The comment in the source code explains why the hack is needed
2015-11-08 14:04:57 -08:00
Leonardo de Moura
1b92a8333e fix(library/class_instance_resolution): better is_def_eq for universe levels at new type class resolution procedure 2015-11-08 14:04:57 -08:00
Leonardo de Moura
6b4a891adb fix(library/class_instance_resolution): bug when creating auxiliary meta-variables at try_instance 2015-11-08 14:04:57 -08:00
Leonardo de Moura
919d55b799 fix(library/class_instance_resolution): position information in the type class trace 2015-11-08 14:04:57 -08:00
Leonardo de Moura
088b0fb795 fix(library/class_instance_resolution): relax has_expr_metavar test at mk_choice 2015-11-08 14:04:57 -08:00
Leonardo de Moura
5f90ff0f07 fix(library/class_instance_resolution): incorrect assertion 2015-11-08 14:04:57 -08:00
Leonardo de Moura
443aca6280 chore(library/class_instance_resolution,library/init_module): fix style 2015-11-08 14:04:57 -08:00
Leonardo de Moura
abcfe0d805 feat(library/class_instance_resolution): add support for attribute [multiple-instances] in the new type class resolution procedure 2015-11-08 14:04:57 -08:00
Leonardo de Moura
2c177d595c fix(library/class_instance_resolution): bug in cache validation 2015-11-08 14:04:57 -08:00
Leonardo de Moura
343ede3fbe fix(library/class_instance_resolution): trace option for new type class resolution procedure 2015-11-08 14:04:57 -08:00
Leonardo de Moura
98943f7832 fix(library/class_instance_resolution): initialization bug and ignore universe metavariables not instantiated by unifier 2015-11-08 14:04:57 -08:00
Leonardo de Moura
6a36bffe4b fix(library/class_instance_resolution): bugs in new type class resolution procedure 2015-11-08 14:04:57 -08:00
Leonardo de Moura
bf17440f31 feat(library/class_instance_resolution): throw exception is maximum depth is reached 2015-11-08 14:04:57 -08:00
Leonardo de Moura
f5819fab60 feat(library/class_instance_resolution): new type class resolution procedure 2015-11-08 14:04:57 -08:00
Leonardo de Moura
c69bbd4eb7 chore(library/norm_num,library/tactic/norm_num_tactic): fix style 2015-11-08 14:04:57 -08:00
Leonardo de Moura
bda0b038b0 fix(library/norm_num): include 'constants.h' instead of 'constants.cpp'
By including 'constants.cpp' we get compilation errors in some
platforms (e.g., 'g_one has been defined in multiple files...')

The module constants(.h/cpp) does not expose global variables such as g_one.
We have to use the procedures get_one_name() instead.
2015-11-08 14:04:56 -08:00
Rob Lewis
ce1cbcc205 feat(library/norm_num): give better error message when norm_num fails 2015-11-08 14:04:56 -08:00
Rob Lewis
eb0b688da8 style(library/norm_num): remove debug code 2015-11-08 14:04:56 -08:00
Rob Lewis
958add9ef8 feat(library/norm_num): fix numeral normalization to work on new numeral structure; add support for multiplication 2015-11-08 14:04:56 -08:00
Leonardo de Moura
f4ce2bcbfe fix(library/CMakeLists): build 2015-11-08 14:04:56 -08:00
Leonardo de Moura
3b6eae1907 feat(library): start new type class resolution procedure 2015-11-08 14:04:56 -08:00
Leonardo de Moura
ee924e4842 fix(library/blast/infer_type): typos 2015-11-08 14:04:56 -08:00
Leonardo de Moura
4f394bd979 feat(library/meng_paulson): minor improvement 2015-11-08 14:04:56 -08:00
Leonardo de Moura
5b6b8257d8 chore(library/meng_paulson): fix style 2015-11-08 14:04:56 -08:00
Leonardo de Moura
b7e79dea29 fix(frontends/lean/parser): bug in parse_double 2015-11-08 14:04:56 -08:00
Leonardo de Moura
ee347772d7 feat(library/meng_paulson): ignore class and class-instances when computing set of relevant theorems 2015-11-08 14:04:56 -08:00
Leonardo de Moura
023ec1ba76 feat(library): add Meng&Paulson heuristic for selecting theorems 2015-11-08 14:04:56 -08:00
Leonardo de Moura
d64b410bbd feat(library): add declaration statistics 2015-11-08 14:04:56 -08:00
Leonardo de Moura
6df31d3406 refactor(library/data/nat/basic): mark some theorems as protected to avoid overloading 2015-11-08 14:04:56 -08:00
Leonardo de Moura
2b3af47fcf feat(frontends/lean/pp): pretty print "num numerals" too
This is an useful for "eval" demos
2015-11-08 14:04:56 -08:00
Leonardo de Moura
7838ed386d refactor(frontends/lean/pp,library/init/reserved_notation): pretty print "nat numerals" nicely even when namespace nat is not open 2015-11-08 14:04:56 -08:00