Commit graph

1507 commits

Author SHA1 Message Date
Leonardo de Moura
89daecb568 fix(library/type_context): assertion violation
fixes #1335
2017-01-25 16:05:23 -08:00
Leonardo de Moura
258fb522d3 feat(library/tactic/smt): add generation heuristic to control matching loops 2017-01-24 22:46:45 -08:00
Leonardo de Moura
c60024d0c5 test(tests/lean/run): add "array" test 2017-01-24 22:00:33 -08:00
Leonardo de Moura
477ffd1bc7 fix(library/tactic/smt): make sure a partially applied terms can be used to ematch terms with "more arguments" 2017-01-24 19:25:00 -08:00
Leonardo de Moura
0ba60e62d7 feat(kernel/quotient/quotient): make quotient module robust against users that define their own prelude's
Before this commit, an user could define their own prelude and change
the types of quot, quot.mk, quot.lift or quot.ind.
By doing that, they could prove false.

This commit prevents this kind of abuse.
It also modifies the definition of `quot` and avoids the `setoid`
dependency.
The previous `quot` type is now called `quotient`, and it is defined
using the new `quot` type provided by the kernel.

See discussion at #1330
2017-01-24 15:59:38 -08:00
Leonardo de Moura
ac6bfce01c feat(library/tactic/smt/congruence_closure): improve propagation for beta reduction in the congruence closure module 2017-01-24 12:09:37 -08:00
Leonardo de Moura
28ce1e6d2b fix(library/tactic/simplify): make sure a partially applied lhs can be used to rewrite terms with "more arguments" in simp
See discussion at issue #1331
2017-01-23 19:53:49 -08:00
Leonardo de Moura
f60bbb5fcb fix(library/tactic/simp_lemmas): refl_lemma_rewrite, make sure a partially applied lhs can be used rewrite terms with "more arguments" 2017-01-23 19:37:35 -08:00
Leonardo de Moura
6d12de6339 refactor(library/init/meta/smt): use default value for config structures 2017-01-23 14:18:06 -08:00
Leonardo de Moura
0048d0490b fix(frontends/lean/parser): structure followed by doc string 2017-01-23 10:35:07 -08:00
Leonardo de Moura
778d5382f6 refactor(library/init/meta/simp_tactic): use default field values at simplify_config 2017-01-23 10:22:48 -08:00
Leonardo de Moura
2ca2920284 fix(library/tactic/simplify): relax test
We only need to check whether the resulting expression does not contain
temporary metavariables introduced by the simplifier.
It is ok if it contains regular metavariables that were already in the goal.

This fixes the issue reported at
https://groups.google.com/forum/#!topic/lean-user/3qzchWkut0g
2017-01-23 09:59:06 -08:00
Leonardo de Moura
71a7a7f466 feat(frontends/lean): add default field values 2017-01-22 21:25:49 -08:00
Leonardo de Moura
f7edf601c8 fix(library/init/data/nat/lemmas): avoid bad patterns in nat sub ematch lemmas
The attribute [ematch_lhs] instructs Lean to use the left-hand-side of
the conclusion as a pattern.
2017-01-22 19:48:01 -08:00
Leonardo de Moura
75525a1120 fix(frontends/lean/definition_cmds): allow '.' after equations 2017-01-22 12:51:23 -08:00
Leonardo de Moura
cce88c6190 refactor(frontends/lean): interactive tactic support
After this commit, new interactice tactic classes can be added without
writing C++ code (see example: tests/lean/run/my_tac_class.lean).

The tactic_evaluator was simplified, and all the complexity has been
moved to tactic_notation, and lean code.

We can now inspect the intermediate states produced by the rewrite
tactic.

The function (@scope_trace _ line col thunk) can be used to position trace
messages produced by thunk. If line/col are not provided (i.e., we
just write (scope_trace thunk)), then line/col are filled with the
position of this term by the elaborator.

We can visualize the intermediate tactic states inside nested blocks
such as (try { ... })

The new infrastructure can be used to implement custom tactic_state
pretty printers.
2017-01-21 22:38:47 -08:00
Leonardo de Moura
37bc2133ec fix(library/tactic/dsimplify): make sure dsimp only unfold reducible constants when matching
fixes #1327
2017-01-21 22:38:17 -08:00
Gabriel Ebner
d4879b74cd chore(tests/lean/run/destruct): fix test 2017-01-21 10:28:46 +01:00
Leonardo de Moura
a357c0cab2 chore(tests/lean): fix tests 2017-01-20 20:35:18 -08:00
Leonardo de Moura
4e6ad1d34d fix(library/init/meta/contradiction_tactic): make sure contradiction uses whnf for constructor-eq-constructor case 2017-01-20 18:42:27 -08:00
Leonardo de Moura
b309ef66d7 fix(library/equations_compiler/elim_match): fix #1318 2017-01-18 08:21:53 -08:00
Leonardo de Moura
694e6f47dc fix(library/init/meta/smt/ematch,library/tactic/simp_lemmas): trick for adding equations of a definition to a simp/hinst lemma set
Before this commit, if we declared an equational lemma using 'def',
then it would not be correctly added to the simp/hinst lemma set.
The new test exposes the problem.
2017-01-18 02:05:04 -08:00
Gabriel Ebner
b4774e9ed1 fix(library/vm/vm): fix segfault in call_stack_fn 2017-01-17 16:00:01 -08:00
Leonardo de Moura
8e76d079d3 chore(tests/lean/run): fix tests 2017-01-17 15:50:54 -08:00
Gabriel Ebner
1a6629ce3b feat(frontends/lean/parser): keep list of tasks that have to succeed 2017-01-17 15:31:17 -08:00
Leonardo de Moura
e19e5ae212 test(tests/lean/run): test inductive datatypes with non-recursive arguments after recursive ones 2017-01-16 22:59:17 -08:00
Leonardo de Moura
29b7001bff fix(library/equations_compiler/elim_match): avoid nasty inferred types in auxiliary declarations produced by the equation compiler 2017-01-16 22:55:12 -08:00
Leonardo de Moura
cce6e4d58c fix(library/equations_compiler/compiler): fix #1315 2017-01-16 20:01:25 -08:00
Leonardo de Moura
0ad6dec5fd fix(tests/lean/run/converter): fix test 2017-01-16 19:04:52 -08:00
Leonardo de Moura
67226269b4 feat(library/tactic/simp_lemmas): convenient way of adding equational lemmas of a definition to a simp set 2017-01-14 22:16:16 -08:00
Leonardo de Moura
a6ef7f52a9 chore(tests/lean/run): repair SMT tests 2017-01-13 13:36:19 -08:00
Gabriel Ebner
5f790d82cd fix(test/lean/run/super_tests): fix try_sup API change 2017-01-13 11:33:35 -08:00
Leonardo de Moura
69fd35f068 feat(library/init/meta/smt): add helper tactics and doc-strings 2017-01-13 11:21:20 -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
c1ecaf4edd feat(library/tactic/smt/smt_state): do not apply intros automatically in begin[smt]...end blocks 2017-01-12 21:49:17 -08: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
7e1db95c79 fix(frontends/lean): doc strings after constants and axioms 2017-01-12 00:22:37 -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
8e26d200b0 test(tests/lean/run/smt_facts_as_hinst_lemmas): add test for facts as hinst_lemmas 2017-01-10 11:27:22 -08:00
Gabriel Ebner
a586cadfa1 chore(tests/lean/run/super_examples): clean up 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
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
Leonardo de Moura
30a962d5e0 test(tests/lean/run): add more tests for the smt_tactic framework 2017-01-09 19:26:29 -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
b89b1dd4c7 chore(tests/lean/run/nested_common_subexpr_issue): typo 2017-01-09 15:36:49 -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
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