Commit graph

951 commits

Author SHA1 Message Date
Leonardo de Moura
ca6d3743c7 feat(library/tactic/smt): add mk_eq_true_intro mk_of_eq_true mk_eq_false_intro mk_not_of_eq_false 2017-01-02 13:39:16 -08:00
Leonardo de Moura
b200a86240 feat(library/tactic/smt): simplify congruence_closure internalization, visit lemmas at unit_propagation 2017-01-02 12:23:32 -08:00
Leonardo de Moura
316507081c feat(library/tactic/smt): unit propagation interface 2017-01-02 10:28:26 -08:00
Leonardo de Moura
6e53d73e61 feat(library/tactic/smt): add cc_propagation_handler 2017-01-02 09:58:57 -08:00
Leonardo de Moura
32cc36214a feat(library/init/meta/smt_tactic): allow user to select simp attribute to be used during SMT preprocessing, use preprocessing at intros too 2017-01-01 22:26:26 -08:00
Leonardo de Moura
effe19d334 feat(library/tactic/smt/smt_state): add smt_tactic.intros, define smt_state in Lean as (list smt_goal) 2017-01-01 14:17:03 -08:00
Leonardo de Moura
90096a3ee8 feat(library/init/meta/smt_tactic): add smt_tactic.close 2017-01-01 11:56:36 -08:00
Leonardo de Moura
19154e1ff3 chore(library/tactic/smt/smt_state): typo 2017-01-01 10:41:09 -08:00
Leonardo de Moura
d2e935522c feat(library/tactic/smt/smt_state): unique names at intro_all 2017-01-01 09:44:39 -08:00
Leonardo de Moura
35cc334b10 feat(library/init/meta): smt_tactic skeleton 2016-12-31 18:22:23 -08:00
Leonardo de Moura
5f87ec3356 feat(library/tactic): allow user to write their own pretty printer for tactic states 2016-12-30 18:58:50 -08:00
Leonardo de Moura
b86494f0d4 feat(library/tactic): add destruct tactic that is similar to cases, but does not use revert/intro/clear
This tactic is useful for building more complex tactics using ematch and
cc because it does not invalidate cc_state nor ematch_state.
2016-12-30 17:05:24 -08:00
Leonardo de Moura
9c069a3eda refactor(library/tactic/congruence): rename directory to smt 2016-12-30 13:15:19 -08:00
Leonardo de Moura
a0e9d38241 feat(library/init/meta/congruence_tactics): allow user to configure congruence_closure module 2016-12-30 12:42:10 -08:00
Leonardo de Moura
79043177ee fix(library/tactic/congruence/congruence_closure): bug in the interface between cc and ac modules 2016-12-29 19:25:29 -08:00
Leonardo de Moura
84cc00b1ea fix(library/tactic/ac_tactics,library/tactic/congruence/theory_ac): crash when mixing different AC symbols 2016-12-29 18:38:40 -08:00
Leonardo de Moura
73bf232fea fix(library/module): deadlock?
This commit also undoes the hackish workaround used at e33bd2e665

@gebner Could you please take a quick look at this fix, and check
whether it makes sense?
2016-12-29 17:56:50 -08:00
Leonardo de Moura
e33bd2e665 chore(library/unfold_macros): checking whether commit 7f86ad64eb broke the remote build 2016-12-29 16:18:13 -08:00
Leonardo de Moura
3faa72de24 chore(library/tactic/ac_tactics): style 2016-12-29 15:36:38 -08:00
Leonardo de Moura
4f463d6b85 fix(library/tactic/congruence/theory_ac): typo 2016-12-29 15:04:04 -08:00
Leonardo de Moura
b3d15b196d feat(library/tactic/ac_tactics,library/tactic/congruence/theory_ac): add superpose transition 2016-12-29 14:54:25 -08:00
Leonardo de Moura
846caf53f7 refactor(library/tactic/ac_tactics,library/tactic/congruence/theory_ac): minimize number of AC macros 2016-12-29 13:15:42 -08:00
Leonardo de Moura
7ccbf0eb02 feat(library/tactic/congruence/theory_ac): add collapse transition 2016-12-29 11:24:36 -08:00
Leonardo de Moura
7d17840e3f feat(library/tactic/congruence/theory_ac): add compose transition 2016-12-29 11:11:44 -08:00
Leonardo de Moura
deaf252acf chore(library/tactic/congruence/theory_ac): improve trace messages 2016-12-29 09:59:11 -08:00
Leonardo de Moura
9065cf0350 feat(library/tactic/congruence/theory_ac): add internalization, interface with congruence closure module, and trivial/simp/orient transitions
Still missing: superpose, collapse and compose transitions.
2016-12-28 21:35:16 -08:00
Leonardo de Moura
bb37b33237 fix(library/tactic/ac_tactics): binary.left_comm ==> left_comm 2016-12-28 21:23:07 -08:00
Leonardo de Moura
80670abb8f fix(library/tactic/congruence/congruence_closure): assertion violation 2016-12-28 08:55:24 -08:00
Leonardo de Moura
1d519e4c7b feat(library/tactic/congruence): add theory AC skeleton 2016-12-27 21:38:03 -08:00
Leonardo de Moura
4d0404bd6d chore(library): define rb_expr_tree and rb_expr_map 2016-12-27 20:29:31 -08:00
Leonardo de Moura
b5c1b429e7 feat(library/tactic/ac_tactics): add ac_manager helper class 2016-12-27 17:57:56 -08:00
Leonardo de Moura
d3795b20dd feat(library/defeq_canonizer): remove thread local cache
The goal is to avoid hard to debug behavior because any tactic (e.g., simp/dsimp/cc) using
defeq_canonize was breaking referential transparency.
2016-12-27 12:56:39 -08:00
Daniel Selsam
1af202f816 feat(library/tactic/simp_lemmas.cpp): tracing for invalid simp_lemmas 2016-12-27 11:45:07 -08:00
Leonardo de Moura
fb54126d08 fix(library/tactic/congruence/congruence_closure): do not assume instances have been canonized. 2016-12-27 11:19:45 -08:00
Leonardo de Moura
773389f9df feat(library/init/meta/congruence_tactics): add cc_state.gmt and cc_state.inc_gmt 2016-12-27 10:49:20 -08:00
Leonardo de Moura
f719991c71 feat(library/tactic/congruence/congruence_closure): propagate projection over constructor equality 2016-12-26 19:47:29 -08:00
Leonardo de Moura
941bbd3e96 fix(library/tactic/congruence/congruence_closure): crash when processing partially applied constructors 2016-12-26 18:51:03 -08:00
Leonardo de Moura
15f1c6bab2 chore(library/tactic/congruence/ematch): style 2016-12-26 18:23:57 -08:00
Leonardo de Moura
6661faf3da fix(library/tactic/congruence/congruence_closure): but at add_occurrence 2016-12-26 18:13:06 -08:00
Leonardo de Moura
8419219ca6 feat(library/tactic/congruence/congruence_closure): add trace.debug.cc option 2016-12-26 18:13:02 -08:00
Leonardo de Moura
148d34b3bf feat(library/tactic/congruence/congruence_closure): merge annotated term with term being annotated 2016-12-26 16:30:18 -08:00
Leonardo de Moura
9e46818563 feat(library/tactic/congruence): ematching 2016-12-26 15:52:18 -08:00
Leonardo de Moura
6a5f6a84cd feat(library/tactic/congruence/hinst_lemma): add heuristic instantiation lemmas 2016-12-25 20:11:58 -08:00
Leonardo de Moura
9b35adfc8c feat(library/tactic/congruence/congruence_closure): add support for constructor equalities 2016-12-25 12:47:17 -08:00
Leonardo de Moura
a30081a715 feat(library/tactic/congruence/congruence_closure): interpreted values in the same equivalence class 2016-12-25 11:09:55 -08:00
Leonardo de Moura
8f401c8752 chore(library/tactic/congruence/congruence_closure): remove unnecessary field 2016-12-24 09:14:25 -08:00
Leonardo de Moura
0906d84c92 fix(library/tactic/congruence/congruence_closure): proof generation for congruence with different arity 2016-12-24 09:12:10 -08:00
Leonardo de Moura
424a6acb68 fix(library/tactic/congruence/congruence_closure): missing proof construction step 2016-12-24 08:43:04 -08:00
Leonardo de Moura
a176bd324d fix(library/tactic/congruence/congruence_closure): check_eq_true 2016-12-23 22:24:39 -08:00
Leonardo de Moura
a13d3c83c9 fix(library/tactic/congruence/congruence_closure): heq bug and add more tests 2016-12-23 21:57:49 -08:00