Leonardo de Moura
d987df3db9
feat(library/tactic/smt): allow propositions without universal quantifiers to be tagged as hinst_lemmas
2017-01-10 11:24:27 -08:00
Leonardo de Moura
c726f19d32
fix(library/tactic/smt/ematch): warning
2017-01-09 19:28:36 -08:00
Leonardo de Moura
3acdcaef2c
fix(library/tactic/smt/smt_state): ematch_using should not fail when a ground fact was added but no instance
2017-01-09 19:24:13 -08:00
Leonardo de Moura
5d750ba0a4
fix(library/tactic/tactic_state): closes #1293
2017-01-09 16:23:02 -08:00
Leonardo de Moura
694bb5c7b8
feat(library/tactic/smt/ematch): skeleton for AC support
2017-01-08 23:53:57 -08:00
Leonardo de Moura
0a6a09fb3a
fix(library/tactic/smt/hinst_lemmas): pattern normalization issue
2017-01-08 23:35:39 -08:00
Leonardo de Moura
5ba414700f
fix(library/tactic/smt/smt_state): canonize at intros
2017-01-08 19:31:04 -08:00
Leonardo de Moura
26949db4f1
fix(library/tactic/smt/smt_state): remove auxiliary hypotheses added by the equation compiler
2017-01-08 10:36:38 -08:00
Leonardo de Moura
9d273d924f
fix(library/tactic/smt/congruence_closure): must check whether constructors have the same type or not
2017-01-08 00:36:57 -08:00
Leonardo de Moura
8a12c834ca
fix(library/tactic/smt/ematch): ematch should not use app_builder since its type_context is already in tmp_mode
2017-01-07 17:06:12 -08:00
Leonardo de Moura
de60233ef1
fix(library/tactic/smt/congruence_closure): subsingleton propagation was introducing non canonical instances
2017-01-07 16:16:36 -08:00
Leonardo de Moura
8069872861
fix(library/tactic/backward/backward_chaining): bug in back_chaining tactic
2017-01-07 11:19:03 -08:00
Leonardo de Moura
94f16d1e44
refactor(library/tactic): move defeq_canonizer::state to tactic_state
...
It was being stored in the environment before. This was very hackish,
and it was producing a series of unnecessary environment updates, and
thread local caches invalidations.
The new test tests/lean/run/heap.lean is 5x-6x faster after this commit.
2017-01-07 10:17:51 -08:00
Leonardo de Moura
8c652600dd
feat(library/tactic/smt/smt_state): ematch tactics fail if no instance is produced
...
The goal is to avoid nontermination of (repeat {ematch}) when the goal
is not provable. Of course, if there is a matching loop, it will still loop.
2017-01-06 21:20:01 -08:00
Leonardo de Moura
d81acfc44a
feat(library/tactic/smt/smt_state): use eta reduction in the smt preprocessor
2017-01-06 20:23:41 -08:00
Leonardo de Moura
c29a2bdac9
feat(library/init/meta/tactic): add eta reduction tactic
2017-01-06 19:56:10 -08:00
Leonardo de Moura
5e3f26ec95
feat(library/tactic/smt/congruence_closure): propagate not_exists
2017-01-06 14:00:36 -08:00
Leonardo de Moura
db70c78704
feat(library/equations_compiler): make sure automatically generated equational lemmas use internal names
2017-01-06 11:40:34 -08:00
Leonardo de Moura
15eaf30192
feat(library/tactic/smt/smt_state): allow user to provide a function ("to be unfolded") in the ematch_using tactic
2017-01-06 00:33:58 -08:00
Leonardo de Moura
7e4b79b221
feat(library/tactic/smt/smt_state): add ematch_using tactic
2017-01-06 00:24:25 -08:00
Leonardo de Moura
6f328071ff
feat(library/tactic/smt/congruence_closure): basic support for beta-reduction
2017-01-05 23:36:14 -08:00
Leonardo de Moura
0a2f7555b7
feat(library/tactic/smt/congruence_closure): improve pp_eqc
2017-01-05 20:46:36 -08:00
Leonardo de Moura
4a76579cd0
feat(library/tactic/smt): add tactics for getting/setting ematching lemmas
2017-01-05 20:35:57 -08:00
Leonardo de Moura
5723b63afe
feat(library/tactic/smt/smt_state): add new tracing for smt
2017-01-05 18:47:42 -08:00
Leonardo de Moura
044fe965da
fix(library/tactic/unfold_tactic): failed to unfold prefix
2017-01-05 18:01:19 -08:00
Leonardo de Moura
b18b49dd6b
feat(library/tactic/smt/smt_state): add tactic for adding equational lemmas for a definition
2017-01-05 15:47:58 -08:00
Leonardo de Moura
3742d6573d
feat(library/tactic/smt/smt_state): add preprocess tactic
2017-01-05 13:43:50 -08:00
Leonardo de Moura
f008e623e9
feat(library/tactic/smt/smt_state): improve pretty printer for smt state
2017-01-05 13:12:15 -08:00
Leonardo de Moura
8eadaf51d8
feat(library/init/meta/smt): add helper tactics: get_facts, proof_for, refutation_for, add_lemmas_from_facts, ...
2017-01-05 12:59:11 -08:00
Leonardo de Moura
52c1a15313
feat(library/tactic/smt): add tactics for adding new lemmas to ematch state
2017-01-05 11:44:25 -08:00
Leonardo de Moura
b8e09bb86e
refactor(library/tactic/smt): move ematch Lean bindings to ematch.cpp
2017-01-05 10:35:59 -08:00
Leonardo de Moura
aaffcc59a9
refactor(library/tactic/smt): move hinst_lemma(s) Lean bindings to hinst_lemmas.cpp
2017-01-05 10:30:34 -08:00
Leonardo de Moura
0969997c64
feat(library/tactic/smt): add ematch smt_tactic
2017-01-04 22:41:36 -08:00
Leonardo de Moura
df9ee8be69
chore(library/tactic/smt/hinst_lemmas): style
2017-01-04 20:38:15 -08:00
Leonardo de Moura
d784aba249
feat(library/tactic/smt/hinst_lemmas): change how transparency is used to process hinst_lemmas
2017-01-04 19:12:37 -08:00
Leonardo de Moura
7c6f449db0
chore(library/tactic/smt/hinst_lemmas): improve error message
2017-01-04 18:15:15 -08:00
Leonardo de Moura
8144eaa9bf
feat(library/init/meta/smt/ematch): add hinst_lemmas API
2017-01-04 18:04:53 -08:00
Leonardo de Moura
384e8bc795
refactor(library/init/meta/smt): move ematch stuff to new file, and remove priority from hinst_lemma
2017-01-04 17:23:06 -08:00
Leonardo de Moura
2e15304f05
feat(frontends/lean): add support for smt_state in the info_manager
2017-01-04 14:23:48 -08:00
Leonardo de Moura
5f2b247af9
feat(frontends/lean/tactic_evaluator): step-by-step evaluation for 'begin [smt] ... end' blocks
2017-01-04 14:06:44 -08:00
Leonardo de Moura
d53215a2fb
feat(frontends/lean/tactic_notation, library/init/meta/smt): add by_cases and by_contradiction smt_tactics, support for classical reasoning, add support for 'begin [smt] with config, ... end'
2017-01-04 12:03:45 -08:00
Leonardo de Moura
d6ab3739ff
refactor(frontends/lean/elaborator): move tactic executation code to tactic_evaluator
2017-01-04 08:42:59 -08:00
Leonardo de Moura
30d90533bc
feat(library/tactic/destruct_tactic): support for non-dependent elimination
2017-01-03 18:33:57 -08:00
Leonardo de Moura
3adcf30d2f
feat(library/init/meta/smt_tactic): add assert/assertv/define/definev/pose/note for smt_tactic
2017-01-03 17:12:00 -08:00
Leonardo de Moura
554cef1d36
feat(library/tactic/smt/congruence_closure): propagate disequalities
2017-01-03 14:53:27 -08:00
Leonardo de Moura
34073c6f32
feat(library/tactic/smt/smt_state): improve smt_goal formatting
2017-01-03 13:50:25 -08:00
Leonardo de Moura
51efc6c178
fix(library/tactic/smt/congruence_closure): missing propagation
2017-01-03 13:48:14 -08:00
Leonardo de Moura
d546dc57cd
feat(library/tactic/smt/smt_state): use simplifier in the preprocessing step
2017-01-03 11:58:00 -08:00
Leonardo de Moura
78f4ab605e
feat(library/tactic/smt): preprocessing configuration options
2017-01-03 11:06:33 -08:00
Leonardo de Moura
7f4693a26d
chore(library/vm/vm_nat): add default value at force_to_unsigned
2017-01-03 10:26:36 -08:00