Commit graph

11817 commits

Author SHA1 Message Date
Leonardo de Moura
5d825483c4 refactor(library/init/meta/interactive): tactic.interactive.types ==> interactive.types
Motivation: we will use auto-quotation for other tactic monads
2016-12-30 18:06:41 -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
cc6d4a6ef8 chore(library/init/meta/interactive): typo 2016-12-30 09:04:27 -08:00
Leonardo de Moura
85b98f08e9 fix(frontends/lean): bad position at spurious 'end' token 2016-12-29 19:51:36 -08:00
Leonardo de Moura
5480036b7b test(tests/lean/run): add ac_refl tests 2016-12-29 19:51:18 -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
d573704657 feat(library/init/meta): add ac_refl tactic
It is basically cc without taking the hypotheses into account.
2016-12-29 19:22:40 -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
ec1c689073 test(tests/lean/run/cc_ac5): mix two AC symbols 2016-12-29 18:25:00 -08:00
Leonardo de Moura
a500059672 refactor(library/unfold_macros): use replace_visitor_with_tc to implement unfold_macros
This commit also fixes a potential peformance problem at
unfold_macros (it was eagerly expanding let-expressions).
2016-12-29 18:11:33 -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
c0f7d01cc4 fix(tests/lean/run/ematch2): remove example that produces a tsunami of redundant equalities to the AC module 2016-12-29 15:55:09 -08:00
Leonardo de Moura
3faa72de24 chore(library/tactic/ac_tactics): style 2016-12-29 15:36:38 -08:00
Leonardo de Moura
97330f9f02 test(tests/lean/run): add new AC test with set union 2016-12-29 15:30:29 -08:00
Leonardo de Moura
52db1f1419 feat(library/data/set): add basic lemmas for demoing the AC procedure 2016-12-29 15:29:33 -08:00
Leonardo de Moura
312445fc57 test(tests/lean/run/cc_ac3): add test that requires superpose 2016-12-29 15:11:33 -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
4eafd201f6 test(tests/lean/run): add cc+ac sanity test 2016-12-28 21:35:26 -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
7f86ad64eb chore(library/unfold_macros): add definition for disabling optimization 2016-12-28 21:23:07 -08:00
Leonardo de Moura
5b6e81ddb9 chore(tests/lean/run/cc1): remove trace option 2016-12-28 09:03:54 -08:00
Leonardo de Moura
caf92bbcc0 feat(kernel/expr): compress expr_macro representation 2016-12-28 09:01:21 -08:00
Leonardo de Moura
80670abb8f fix(library/tactic/congruence/congruence_closure): assertion violation 2016-12-28 08:55:24 -08:00
Sebastian Ullrich
2b0d458094 chore(emacs/lean-util): delete old code 2016-12-27 21:41:02 -08:00
Sebastian Ullrich
98398b16f3 feat(frontends/lean,shell): implement completing options 2016-12-27 21:41:02 -08:00
Sebastian Ullrich
4552fc13f2 chore(tests): add tests for goal at pos 2016-12-27 21:41:02 -08:00
Sebastian Ullrich
3e2d1de21a perf(shell/server,emacs): do not actually compute completions during preliminary 'complete' requests 2016-12-27 21:41:02 -08:00
Sebastian Ullrich
d228c24c81 feat(shell/server,emacs): autocompletion based on server-side parsing 2016-12-27 21:41:02 -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
aa23ba8714 chore(library/init/algebra): remove unnecessary generality
We can add it back if we find a compelling use case.
2016-12-27 17:40:34 -08:00
Leonardo de Moura
7c06306154 chore(library/type_context): reduce redundancy 2016-12-27 17:19:19 -08:00
Leonardo de Moura
8fcfe0bbd4 feat(library/init/algebra/ac): add helper classes for AC 2016-12-27 16:54:00 -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
Leonardo de Moura
244e115412 chore(library/init/data): add more "short-circuit" instances for int/nat 2016-12-27 11:51:42 -08:00
Daniel Selsam
1af202f816 feat(library/tactic/simp_lemmas.cpp): tracing for invalid simp_lemmas 2016-12-27 11:45:07 -08:00
Gabriel Ebner
f8331a0dfe fix(library/tools/super/prover_state): correctly detect sos lemmas 2016-12-27 11:21:52 -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
Sebastian Ullrich
daf839e0d5 feat(frontends/lean,shell/server): report current goal anywhere within begin-end/by 2016-12-27 10:07:34 -08:00