Commit graph

3288 commits

Author SHA1 Message Date
Leonardo de Moura
9026b1c57b chore(tests/lean): fix tests output 2017-01-06 20:30:11 -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
d333c444cd test(tests/lean/run): add tactic examples 2017-01-06 18:48:03 -08:00
Sebastian Ullrich
7040844f9a feat(frontends/lean/parser,shell): complete imports 2017-01-06 14:02:31 -08:00
Sebastian Ullrich
3136f36ed6 fix(frontends/lean/parser): complete after periods trailing identifiers 2017-01-06 14:02:31 -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
13a11b4374 feat(library/init/meta/interactive): add get_eqn_lemmas_for tactic, allow user to provide definition name as an argument to simp 2017-01-06 11:45:09 -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
31a0d7d520 feat(frontends/lean/elaborator): catch exception at is_def_eq
@semorrison this commit improves the bad error message you have
reported at lean-user. It is not perfect since the user has to
remember the position of the structure field in the constructor.
2017-01-06 08:16:51 -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
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
7ba889b5cf feat(frontends/lean/tactic_notation): try/repeat for smt_tactic in interactive mode 2017-01-05 18:31:57 -08:00
Gabriel Ebner
fb2ac90cf4 chore(tests/lean/fail): add tests that check for positive exit values 2017-01-05 18:09:28 -08:00
Leonardo de Moura
82f8eeb280 feat(frontends/lean/definition_cmds): generate equational lemmas for regular definitions that were elaborated without using the equation compiler 2017-01-05 18:02:14 -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
eeab242595 feat(frontends/lean/elaborator): catch error early 2017-01-05 13:37:55 -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
0969997c64 feat(library/tactic/smt): add ematch smt_tactic 2017-01-04 22:41:36 -08:00
Leonardo de Moura
858ce76e73 feat(library/init/meta/smt/ematch): add commands for creating attributes for hinst_lemmas 2017-01-04 20:31:38 -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
8144eaa9bf feat(library/init/meta/smt/ematch): add hinst_lemmas API 2017-01-04 18:04:53 -08:00
Leonardo de Moura
eeb8237b04 feat(frontends/lean): 'begin [smt] ... end' blocks nested inside regular 'begin ... end' blocks 2017-01-04 15:35:46 -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
59f3c9775a feat(frontends/lean/tactic_notation): add support for begin [smt] ... end blocks
TODO: add support for inspecting intermediate states.
2017-01-04 11:13:00 -08:00
Leonardo de Moura
46a3aacc17 fix(frontends/lean): begin...end block scope 2017-01-03 21:01:14 -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
b636f03bb9 test(tests/lean/run/using_smt1): missing test 2017-01-03 15:13:15 -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
51efc6c178 fix(library/tactic/smt/congruence_closure): missing propagation 2017-01-03 13:48:14 -08:00
Leonardo de Moura
2262f70545 test(tests/lean/run/using_smt3): add zeta/nozeta test 2017-01-03 11:28:41 -08:00
Leonardo de Moura
c904437d57 fix(frontends/lean/elaborator): crash when elaborating invalid structure instance 2017-01-03 11:04:14 -08:00
Leonardo de Moura
abb63cbfa6 fix(frontends/lean/elaborator): cactch app_exception when trying to create coercion
closes #1279
2017-01-03 09:03:00 -08:00
Leonardo de Moura
61bf8d5902 test(tests/lean/run/blast_unit): add old blast unit propagation tests 2017-01-02 19:38:31 -08:00
Leonardo de Moura
cefccd0e47 feat(library/tactic/smt): perform "unit propagation" in the congruence closure module 2017-01-02 18:49:26 -08:00
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
a516d384ae fix(library/compiler/erase_irrelevant): make sure io monad actions are not erased by dead code elimination optimization 2017-01-02 01:42:36 -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
90096a3ee8 feat(library/init/meta/smt_tactic): add smt_tactic.close 2017-01-01 11:56:36 -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
7a06912427 test(tests/lean/run): add test for destruct tactic 2016-12-30 18:38:35 -08:00