Commit graph

3712 commits

Author SHA1 Message Date
Leonardo de Moura
1bb5b2ec01 feat(library/tactic/simp_lemmas): do not pretty print bizarre "perm" flag 2017-01-11 13:48:11 -08:00
Leonardo de Moura
2df280431a fix(library/compiler/comp_irrelevant): fix #1302 2017-01-11 11:10:17 -08:00
Leonardo de Moura
19e20f7e1a fix(frontends/lean/elaborator): universe elaboration issue 2017-01-10 22:35:12 -08:00
Leonardo de Moura
e96bbaee3f fix(library/type_context): fix #1295 2017-01-10 11:54:38 -08:00
Leonardo de Moura
cd947e263a fix(library/tactic/smt/congruence_closure): nat numerals do not have a canonical representation 2017-01-10 11:26:50 -08:00
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
80d0b8d5f5 chore(library,shell): fix style 2017-01-10 09:00:17 -08:00
Sebastian Ullrich
cc3126e944 feat(frontends/lean,library/scoped_ext,shell): complete namespaces 2017-01-10 12:25:33 +01: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
b526e30c55 fix(library/compiler/cse): common subexpressions inside common subexpressions were not being eliminated 2017-01-09 11:11:55 -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
7ff91ec1ef feat(library/defeq_canonizer): add trace.defeq_canonizer 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
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
8e315c61e3 fix(library/util): is_eq was returning true for partially applied terms
This commit also cleanups many of the is_* predicates
2017-01-07 13:35:53 -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
da945e34de perf(library/equations_compiler/util, library/local_context): preserve instance fingerprint and avoid flushing the cache 2017-01-07 00:17:09 -08:00
Leonardo de Moura
ff455d3ec9 chore(library/vm/vm): warning 2017-01-06 21:22:27 -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
36453b894d fix(library/print): avoid numerical internal names in the pretty printer 2017-01-06 19:27:31 -08:00
Leonardo de Moura
de8ba72a86 feat(library/vm/vm): suppress snapshots when printing profiling information 2017-01-06 19:22:07 -08:00
Leonardo de Moura
93c8e69313 chore(frontends/lean, library): cleanup anonymous instance management 2017-01-06 14:37:44 -08:00
Leonardo de Moura
b86aef1ff0 feat(shell/completion): do not show internal declarations 2017-01-06 14:14:43 -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
d5da18299b feat(library/private): make sure the private prefix is an internal name 2017-01-06 11:48:05 -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
Gabriel Ebner
70e41305e5 fix(module_mgr): produce olean files with correct mtimes 2017-01-06 01:04:18 -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
7ba889b5cf feat(frontends/lean/tactic_notation): try/repeat for smt_tactic in interactive mode 2017-01-05 18:31:57 -08:00
Gabriel Ebner
bc09a53f71 feat(library/task_queue): add flag to prevent priority inversion 2017-01-05 18:09:28 -08:00
Gabriel Ebner
063130ee18 feat(kernel/environment): add function that checks whether all proofs are correct 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
1395bebc44 feat(library/type_context): avoid typing errors due to reducibility when checking types at metavariable assignment 2017-01-05 18:01:23 -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