Leonardo de Moura
f6f2c499ae
fix(library/tactic/rewrite_tactic): rewrite macros did not implement operator==
...
This problem was affecting the cache
2015-03-13 19:24:09 -07:00
Leonardo de Moura
aba158dbd4
feat(library/tactic/inversion_tactic): improve error message for unknown hypothesis
2015-03-13 15:19:19 -07:00
Leonardo de Moura
cda19f5aa6
feat(library/tactic/rewrite_tactic): improve rewrite tactic error messages
...
closes #471
2015-03-12 20:49:53 -07:00
Leonardo de Moura
7accd0f1e6
feat(library/tactic/rewrite_tactic): allow rewrite with terms that contains binders
...
see discussion at #470
2015-03-12 18:07:55 -07:00
Leonardo de Moura
4ea323a2b2
refactor(library/tactic): cleanup common pattern
2015-03-12 14:52:41 -07:00
Leonardo de Moura
6a78ae7b46
fix(library/tactic/class_instance_synth): enforce consistent behavior in type class resolution
...
Auxiliary procedure mk_class_instance was not discarding partial solutions.
This procedure is used by the apply and inversion (aka cases) tactics
2015-03-12 10:27:05 -07:00
Leonardo de Moura
b38c943086
fix(library/tactic/class_instance_synth): discard partial solutions even when option class.unique_instances = true is used
2015-03-12 10:13:16 -07:00
Leonardo de Moura
47a350d888
fix(library/tactic/inversion_tactic): missing condition for applying optimization
2015-03-12 09:11:36 -07:00
Leonardo de Moura
7de3d5771d
feat(library/tactic/rewrite_tactic): add eta-reduction support at esimp
...
closes #469
2015-03-12 00:32:31 -07:00
Leonardo de Moura
a7af8e7c71
feat(library/tactic/inversion_tactic): remove dummy hypotheses of the form (H : a = a)
...
closes #468
2015-03-11 20:50:06 -07:00
Leonardo de Moura
b5fb7c734e
feat(library/tactic/inversion_tactic): remove hypothesis being destructed
...
addresses second issue in #468
2015-03-11 20:42:50 -07:00
Leonardo de Moura
0a5340aa22
feat(library/tactic/goal): add auxiliary method
2015-03-11 20:39:41 -07:00
Leonardo de Moura
ebdda67812
fix(library/tactic/inversion_tactic.cpp): remove unnecessary hypothesis in HoTT mode
...
partial solution for #468
2015-03-11 19:30:34 -07:00
Leonardo de Moura
737faecc65
feat(library/tactic/inversion_tactic): fail if is_hset type class synthesis produced term containing meta-variables, improve error messages
...
fixes #467
2015-03-11 15:54:50 -07:00
Leonardo de Moura
4c6b0dc0e5
fix(library/tactic/expr_to_tactic): tactic_expr_to_id did not take as_atomic annotation into account
...
fixes #466
2015-03-11 08:49:59 -07:00
Leonardo de Moura
1490bdad49
feat(frontends/lean): add version of 'exact' tactic (sexact) that enforces goal type during term elaboration
2015-03-06 17:34:45 -08:00
Leonardo de Moura
368f9d347e
refactor(frontends/lean): approach used to parse tactics
...
The previous approach was too fragile
TODO: we should add separate parsing tables for tactics
2015-03-05 18:11:21 -08:00
Leonardo de Moura
bd0f209659
feat(library/tactic/exact_tactic): do not force 'exact' tactic expression to be fully elaborated (i.e., metavariable free)
2015-03-05 11:12:39 -08:00
Leonardo de Moura
8295ef4e57
fix(library/tactic/class_instance_synth): constraint execution order at type class resolution
...
We could not fix this problem before because we did not have the
[quasireducible] annotation.
Without this annotation, the fixed TC would loop in some HoTT files.
2015-03-04 22:20:20 -08:00
Leonardo de Moura
abd238aef0
feat(*): add [quasireducible] attribute
2015-03-04 22:12:49 -08:00
Leonardo de Moura
51504a1872
feat(library/tactic/class_instance_synth): restrict higher-order unification even more during type class resolution
2015-03-03 20:26:49 -08:00
Leonardo de Moura
fdb169b8f3
feat(library/tactic): improve error localization when compiling tactics
2015-03-02 12:21:02 -08:00
Leonardo de Moura
ededf4fc6c
feat(frontends/lean): remove unnecessary instantiate_all's that were messing with error localization
2015-03-01 14:51:44 -08:00
Leonardo de Moura
ca57b43698
feat(library/tactic): add 'change' tactic
2015-03-01 14:15:39 -08:00
Leonardo de Moura
e07c6675b3
feat(library/tactic/elaborate): better error message for tactics using elaborate_with_respect_to
2015-03-01 13:42:53 -08:00
Leonardo de Moura
cf56935b01
feat(frontends/lean): improve support for user defined tactics
2015-02-27 16:58:25 -08:00
Leonardo de Moura
96b54a8007
feat(frontends/lean/builtin_exprs): add 'have' notation in 'begin-end' blocks
...
It is notation for the assert tactic.
2015-02-25 14:04:17 -08:00
Leonardo de Moura
42289d4334
feat(library/tactic/class_instance_synth): create class instance synthesis subproblems only for arguments marked with the []
binder annotation
2015-02-24 16:12:39 -08:00
Leonardo de Moura
1cd44e894b
feat(library/tactic/class_instance_synth): conservative class-instance resolution: expand only definitions marked as reducible
...
closes #442
2015-02-24 16:12:35 -08:00
Leonardo de Moura
787fed95aa
fix(library/tactic/inversion_tactic): bug in simpler case (hypotheses were being lost)
2015-02-23 16:10:49 -08:00
Leonardo de Moura
7d35d18cad
fix(library/tactic/rewrite_tactic): bug when matching terms that expanded into projections
2015-02-22 18:23:10 -08:00
Leonardo de Moura
af787d9b7f
fix(library/constants): regenerate constants.cpp and fix affected files
2015-02-22 09:22:51 -08:00
Leonardo de Moura
7fc216183e
feat(library/tactic): produce better error message when a tactic fails
...
closes #348
2015-02-16 18:42:15 -08:00
Leonardo de Moura
5cbdd77ad0
feat(library/tactic/rewrite_tactic): improve matcher in rewrite_tactic
...
closes #433
2015-02-13 12:40:55 -08:00
Leonardo de Moura
98960cbeda
fix(library/tactic/rewrite_tactic): bug in HoTT mode
2015-02-13 10:09:18 -08:00
Leonardo de Moura
058377c8c6
feat(library/tactic/rewrite_tactic): treat iff.refl as trivial step in the rewrite tactic
2015-02-08 17:27:59 -08:00
Leonardo de Moura
e04250f0d8
refactor(library/tactic/rewrite_tactic): use default_converter
2015-02-07 16:44:51 -08:00
Leonardo de Moura
c2a296b1de
feat(library/tactic/apply_tactic): add flag for disabling class instance resolution in the apply tactic
2015-02-06 17:27:24 -08:00
Leonardo de Moura
1557a579ed
feat(library/tactic/proof_state): add report_failure flag to proof state
...
tactic can use the flag to produce nice error messages
2015-02-06 16:29:04 -08:00
Leonardo de Moura
2126b8ec9a
feat(library/tactic/apply_tactic): perform class-instance resolution in the apply tactic
...
closes #360
2015-02-06 16:14:03 -08:00
Leonardo de Moura
18808d133e
refactor(library/tactic/goal): move goal => local_context conversion to goal class
2015-02-06 16:09:59 -08:00
Leonardo de Moura
f10424d729
fix(library/tactic/rewrite_tactic): memory leak
2015-02-06 15:24:09 -08:00
Leonardo de Moura
aa70334f8d
feat(library/tactic/rewrite_tactic): add "fold" step
2015-02-06 15:21:49 -08:00
Leonardo de Moura
47bd5e53e2
fix(library/tactic/rewrite_tactic): memory leak
2015-02-06 14:24:10 -08:00
Leonardo de Moura
7aac9f1fdb
feat(library/tactic/rewrite_tactic): use expensive convertability checker at reduce_to steps and trivial goal
2015-02-06 13:53:03 -08:00
Leonardo de Moura
5b2a9dacc2
fix(library/tactic/rewrite_tactic): matcher should unfold only reducible constants
2015-02-06 13:44:04 -08:00
Leonardo de Moura
b4139627e5
feat(library/tactic/rewrite_tactic): add option to prevent any kind of constant unfolding when perfoming pattern matching in the rewrite tactic
2015-02-06 13:27:33 -08:00
Leonardo de Moura
ba9557bb94
fix(library/tactic/rewrite_tactic): incorrect assertion
2015-02-06 13:02:50 -08:00
Leonardo de Moura
2e626b29fb
feat(library/tactic/rewrite_tactic): allow many constants to be provided in a single rewrite unfold step
2015-02-06 11:03:36 -08:00
Leonardo de Moura
264cedb3a6
fix(frontends/lean/rewrite_tactic): incorrect assertion
2015-02-05 20:02:49 -08:00