Commit graph

5529 commits

Author SHA1 Message Date
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