Commit graph

2675 commits

Author SHA1 Message Date
Leonardo de Moura
04fb7b88e7 feat(library/init/algebra): mark basic facts as [ematch] until we have support for arithmetic 2017-01-13 10:36:08 -08:00
Leonardo de Moura
6f4bcbab20 feat(library/init/meta/smt/ematch): convenient way of marking all equational lemmas of a giving definition as ematch lemmas 2017-01-13 10:35:09 -08:00
Leonardo de Moura
6588b04fd5 feat(library/init/meta/declaration): add helper definition for demos 2017-01-12 21:12:44 -08:00
Leonardo de Moura
d2e393c779 feat(library/init/logic): allow exists.intro to be used in pattern matching 2017-01-12 16:03:01 -08:00
Gabriel Ebner
51924eb726 refactor(tools/super/lpo): add mk_lpo function 2017-01-12 21:47:46 +01:00
Gabriel Ebner
f8caacfcb3 fix(tools/super/superposition): use none transparency to remove beta-redex 2017-01-12 21:47:46 +01:00
Gabriel Ebner
b6a25f8074 feat(tools/super/defs): unfold definitions using dunfold_expr_core 2017-01-12 21:47:46 +01:00
Gabriel Ebner
17bc32e41b chore(tools/super/prover_state): clean up prover monad definition 2017-01-12 21:47:46 +01:00
Gabriel Ebner
020cb5b271 fix(tools/super/clause): fix universal closure of clauses with dependent types 2017-01-12 21:47:46 +01:00
Gabriel Ebner
8319a4c927 perf(tools/super/trim): make trim much cheaper 2017-01-12 21:47:46 +01:00
Gabriel Ebner
f2b3c7ae30 fix(tools/super/misc_preprocessing): normalize clauses during preprocessing 2017-01-12 21:47:46 +01:00
Gabriel Ebner
fcc559a7f0 feat(library/init/util): add trace_call_stack function 2017-01-12 21:47:46 +01:00
Gabriel Ebner
42eb3ef497 feat(tools/super/inhabited): look in the local context as well 2017-01-12 21:47:46 +01:00
Leonardo de Moura
3967cd28fa fix(library/vm/vm): curr_fn() may not be available 2017-01-12 11:47:45 -08:00
Leonardo de Moura
df91ae3738 fix(library/string,library/init/data/to_string): handle ASCII control characters 2017-01-11 23:44:33 -08:00
Leonardo de Moura
d0c86f13bb chore(library/init/data/nat): rename nat.less_than to nat.less_than_or_equal as suggested by Rob 2017-01-11 17:47:49 -08:00
Leonardo de Moura
d5c3736609 feat(library/init/meta/tactic): add helper tactic 2017-01-11 17:08:03 -08:00
Leonardo de Moura
5d3ac31f25 feat(library/init/data/list/lemmas): add lemmas for POPL demo 2017-01-11 17:07:37 -08:00
Leonardo de Moura
dc7e39887b refactor(library/tools/super/simp): reorganize simplify lemmas API 2017-01-11 13:47:49 -08:00
Leonardo de Moura
178be8d8ea fix(library/init/coe): coe should be reducible 2017-01-10 20:14:28 -08:00
Leonardo de Moura
e256022746 chore(library/init/meta/tactic): avoid the weird 'command' type when auto completing tactics 2017-01-10 14:59:10 -08:00
Leonardo de Moura
e96bbaee3f fix(library/type_context): fix #1295 2017-01-10 11:54:38 -08:00
Jeremy Avigad
20edc93b17 fix(library/init/data/list/lemmas): fix theorem names, now nil_append and cons_append 2017-01-10 09:10:33 -08:00
Gabriel Ebner
d6a70b4aa3 chore(library/tools/super/clause_ops): remove unnecessary type annotations 2017-01-10 09:07:37 -08:00
Gabriel Ebner
890ba702e6 feat(tools/super/demod): demodulation 2017-01-10 09:07:37 -08:00
Gabriel Ebner
b8f1b16cfe chore(init/meta/smt/congruence_closure): remove unnecessary line 2017-01-10 09:07:37 -08:00
Gabriel Ebner
e0dd8326c8 feat(tools/super/clause): more compact formatting 2017-01-10 09:07:37 -08:00
Gabriel Ebner
beb355f798 feat(tools/super): clausify during preprocessing
Some inference produce terms with large useless redexes such as
(prod.fst (prod.mk _ _)).  Since we do normalization during
preprocessing, we can avoid ever even looking at these terms.
2017-01-10 09:07:37 -08:00
Gabriel Ebner
38c311c47a feat(tools/super/clausifier): fully normalize terms 2017-01-10 09:07:37 -08:00
Gabriel Ebner
244e061f76 refactor(tools/super/simp): do not enable simp by default
simp interacts badly with super's term ordering.  I believe a better
approach is to pick the term ordering according to the available simp
rules, as in "More SPASS with Isabelle".
2017-01-10 09:07:37 -08:00
Gabriel Ebner
4e1106ffb5 feat(tools/super): use congruence closure 2017-01-10 09:07:37 -08:00
Leonardo de Moura
a43b856086 feat(library/init/meta/smt): add simp tactics to smt_tactic
We can simplify the target without affecting the smt state
2017-01-09 19:19:48 -08:00
Leonardo de Moura
5050e40aec feat(library/init/meta/smt): add slift smt tactic 2017-01-09 19:07:54 -08:00
Leonardo de Moura
b1c1d2dfa4 feat(library/init/meta): improve dsimp tactic notation 2017-01-09 17:31:35 -08:00
Leonardo de Moura
fa4d47edd8 chore(library/init/algebra/ring): document messy problem in the algebraic hierarchy 2017-01-08 23:35:39 -08:00
Leonardo de Moura
f56250d41e chore(library/init/data/nat/lemmas): mark nat.add_zero as protected 2017-01-07 14:17:56 -08:00
Leonardo de Moura
0c4c41ae54 feat(library/init/meta): produce nicer error message for overloaded simp/ematch lemma 2017-01-07 14:13:46 -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
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
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
4a76579cd0 feat(library/tactic/smt): add tactics for getting/setting ematching lemmas 2017-01-05 20:35:57 -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
4d4e47921a fix(library/init/core): mark all rfl-lemmas as lemmas 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
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