Leonardo de Moura
2d9c950144
feat(library/tactic/constructor_tactic): allow 'constructor' tactic without index
...
see issue #500
2015-04-30 21:15:07 -07:00
Leonardo de Moura
15e52b06df
fix(library/tactic/constructor_tactic): bug in constructor tactic
...
see example (constr_tac2.lean) in comment at issue #500
2015-04-30 20:18:24 -07:00
Leonardo de Moura
d18f9c7607
fix(library/tactic/constructor_tactic): use 1 (instead of 0) to reference the first constructor
...
see comment at issue #500
2015-04-30 20:08:00 -07:00
Leonardo de Moura
0b995c4fe3
fix(library/tactic/rewrite_tactic): relax reducibility constraints in some parts of the rewrite tactic
...
fixes #567
2015-04-30 18:22:58 -07:00
Leonardo de Moura
d152f38518
feat(library/tactic): add 'constructor', 'split', 'left', 'right' and 'existsi' tactics
...
see issue #500
2015-04-30 17:52:29 -07:00
Leonardo de Moura
1c6067bac2
feat(library/tactic): add 'exfalso' tactic
...
see issue #500
2015-04-30 15:43:07 -07:00
Leonardo de Moura
d546b019fb
fix(library/tactic/rewrite_tactic): assertion violation when checking
...
dependencies at rewrite tactic
2015-04-30 15:41:57 -07:00
Leonardo de Moura
936e024128
fix(library/tactic/rewrite_tactic): bug in rewrite hypothesis in HoTT mode
2015-04-30 15:30:25 -07:00
Leonardo de Moura
9c8a63caec
feat(library/tactic): add 'contradiction' tactic
...
see issue #500
Remark: this tactic also applies no_confusion to take care of a contradiction
2015-04-30 13:47:40 -07:00
Leonardo de Moura
3233008039
feat(library/tactic): allow user to name generalized term in the 'generalize' tactic
...
closes #421
2015-04-30 11:57:40 -07:00
Leonardo de Moura
3912bc24c8
feat(frontends/lean): nicer syntax for 'intros' 'reverts' and 'clears'
2015-04-30 11:00:39 -07:00
Leonardo de Moura
dce7177382
feat(library/tactic/change_tactic): improve 'change' tactic
...
- Better error messages
- Try to solve unification constraints produced during is_def_eq test
addresses comment on issue #531
2015-04-29 13:31:09 -07:00
Leonardo de Moura
d055947243
feat(library/tactic/rewrite_tactic): ignore implicit argument when matching at rewrite tactic
2015-04-29 12:51:33 -07:00
Leonardo de Moura
182a8a542e
feat(library/tactic/rewrite_tactic): store exception "what" message in rewrite trace
2015-04-29 12:46:41 -07:00
Leonardo de Moura
b790ca9806
fix(library/tactic/rewrite_tactic): type check rewriting steps
...
closes #550
2015-04-29 12:16:37 -07:00
Leonardo de Moura
91abba3c3d
refactor(kernel): rename method
2015-04-29 11:46:27 -07:00
Leonardo de Moura
d2c7b5c319
feat(library/tactic): add 'let' tactic
...
closes #555
2015-04-28 17:24:43 -07:00
Leonardo de Moura
ca8943f45b
feat(library,hott): remove rapply tactic
2015-04-27 15:06:16 -07:00
Leonardo de Moura
9d01868361
feat(frontends/lean): use rewrite tactic to implement unfold (it has a unfold step)
...
closes #502
2015-04-24 17:23:12 -07:00
Leonardo de Moura
28404fe16d
fix(library/tactic/rewrite_tactic): second problem reported at issue #548
...
closes #548
2015-04-24 16:49:32 -07:00
Leonardo de Moura
4148d6b8cc
fix(library/tactic/rewrite_tactic): first two problems at issue #548
2015-04-24 16:07:00 -07:00
Leonardo de Moura
2613e7c444
fix(frontends/lean): bug when handling identifiers in tactics
...
This bug was reported by Jeremy in the Lean Google group:
https://groups.google.com/forum/?utm_medium=email&utm_source=footer#!msg/lean-discuss/ZKJ8WPPEVJA/n05x6rPRzvMJ
2015-04-22 16:03:22 -07:00
Leonardo de Moura
697a536d9e
fix(library/tactic/inversion_tactic): type incorrect term being built by 'cases' tactic
...
fixes #545
2015-04-20 19:24:52 -07:00
Leonardo de Moura
431eade894
fix(library/tactic/inversion_tactic): incorrect use of optimization
2015-04-20 16:21:44 -07:00
Leonardo de Moura
6f6d106a10
feat(library/tactic): add "check_expr" tactic
...
closes #486
2015-04-19 19:00:05 -07:00
Leonardo de Moura
b7ca2a0ec9
fix(library/tactic/exact_tactic): exact and or_else
...
fixes #543
2015-04-19 17:23:09 -07:00
Leonardo de Moura
5d95cb0979
feat(library/tactic): add 'refine' tactic
...
closes #482
2015-04-06 18:36:56 -07:00
Leonardo de Moura
412f03b08b
feat(library/tactic/exact_tactic): generate error if 'exact' tactic produces a term containing metavariables
2015-04-06 13:38:53 -07:00
Leonardo de Moura
2bc13f6bfd
feat(library/tactic/exact): enforce goal type during elaboration when executing 'exact' tactic
...
Remark: this was the behavior of the 'sexact' tactic.
This commit also adds the 'rexact' (relaxed exact) tactic which does not
enforce the goal type.
closes #495
2015-04-06 13:23:38 -07:00
Leonardo de Moura
ea3407d06d
fix(library/tactic): valgrind warnings for still reachable memory
2015-03-28 12:32:57 -07:00
Leonardo de Moura
b9e3c474c9
feat(library/tactic): add all_goals tactic
...
closes #501
2015-03-25 17:42:34 -07:00
Leonardo de Moura
38a63a8a58
fix(library/tactic/exact_tactic): segfault when accessing head of empty list
...
closes #485
2015-03-23 19:00:01 -07:00
Leonardo de Moura
ac30052a29
fix(library/tactic/rewrite_tactic): apply substitution before trying to rewrite
...
closes #487
2015-03-23 18:32:52 -07:00
Leonardo de Moura
5bf46d1226
fix(library/tactic/inversion_tactic): improve 'cases' tactic for HoTT mode
...
closes #481
2015-03-23 18:06:11 -07:00
Leonardo de Moura
98cc325695
refactor(library/tactic/inversion_tactic): cleanup
2015-03-23 17:15:47 -07:00
Leonardo de Moura
0814e76298
fix(library/tactic/clear_tactic): unexpected failure
...
This commit also improves the error message produced by the 'clear' tactic.
fixes #488
2015-03-23 12:08:15 -07:00
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
Leonardo de Moura
e17ba27596
fix(library/tactic/rewrite_tactic): adjust the behavior of class resolution in rewriter
...
The solution is not very satisfactory. I should investigate it more.
2015-02-05 19:08:47 -08:00
Leonardo de Moura
ffe0d1186e
feat(library/tactic/rewrite_tactic): add "reduce_to" step at rewrite tactic
2015-02-05 13:59:55 -08:00
Leonardo de Moura
116c65bff5
feat(library/tactic/rewrite_tactic): add reduction step to rewrite tactic
2015-02-05 13:42:50 -08:00
Leonardo de Moura
7cdc88701d
feat(library/tactic/rewrite_tactic): add "reduction" step to rewrite tactic
2015-02-05 13:16:05 -08:00
Leonardo de Moura
808521223b
feat(library/tactic/rewrite_tactic): support constant unfolding in rewrite tactic
2015-02-05 12:58:30 -08:00
Leonardo de Moura
d6958be7e7
fix(library/tactic/location): replace cache must not be used when only a subset of all occurrences should be replaced at replace_occurrences
2015-02-05 10:50:40 -08:00
Leonardo de Moura
941b493835
chore(library/tactic/rewrite_tactic): modify param name
2015-02-05 10:04:03 -08:00
Leonardo de Moura
0abfa30ead
fix(library/tactic/rewrite_tactic): elaboration bug in the rewrite tactic steps/elements
2015-02-05 10:01:18 -08:00
Leonardo de Moura
14c72e82f6
feat(library/tactic/rewrite_tactic): add support for rewriting hypotheses
2015-02-04 20:04:19 -08:00
Leonardo de Moura
55fb678db2
fix(library/tactic/location): clang++ 3.3 compilation problem
2015-02-04 18:48:23 -08:00
Leonardo de Moura
42c2f7eb11
fix(library/tactic/rewrite_tactic): memory leak
2015-02-04 18:40:11 -08:00
Leonardo de Moura
89fde9d829
feat(library/tactic/rewrite_tactic): add maximum number of iterations threshold to rewrite tactic
...
The idea is to avoid nontermination.
2015-02-04 16:13:15 -08:00
Leonardo de Moura
dc297865d4
chore(library/tactic/rewrite_tactic): fix compilation warnings
2015-02-04 15:34:02 -08:00
Leonardo de Moura
ee079d12f4
feat(library/tactic/rewrite_tactic): remove trivial goal in rewrite_tactic
2015-02-04 15:29:52 -08:00
Leonardo de Moura
e5381679d6
feat(library/tactic/rewrite_tactic): rewrite goal
2015-02-04 15:17:58 -08:00
Leonardo de Moura
09818adf90
feat(library/tactic/rewrite_tactic): elaborate rewrite rule using unifier
2015-02-04 13:51:32 -08:00
Leonardo de Moura
ccae014ef9
feat(library/tactic/rewrite_tactic): ignore inst_implicit arguments when matching applications of declarations which contain them
2015-02-04 12:14:47 -08:00
Leonardo de Moura
0e05c239a5
feat(library/tactic/rewrite_tactic): add custom matcher pluging for rewriter
2015-02-04 11:51:39 -08:00
Leonardo de Moura
d6a7ec4621
chore(library/tactic/rewrite_tactic): fix style
2015-02-04 11:51:39 -08:00
Leonardo de Moura
b4dd2cc729
refactor(library/tactic/rewrite_tactic): more general rewrite step
...
The rule can be an arbitrary expression.
Allow user to provide a pattern that restricts the application of the rule.
2015-02-04 11:51:39 -08:00
Leonardo de Moura
461fd45efc
feat(frontends/lean): allow a different location for each rewrite element
2015-02-04 11:51:39 -08:00
Leonardo de Moura
c845e44777
feat(frontends/lean): parse rewrite tactic
2015-02-04 11:51:39 -08:00
Leonardo de Moura
180cda304e
feat(library/tactic): add rewrite tactic skeleton
...
The tactic has not been implemented yet, but this commit adds all the
support for storing arguments, serializing and deserializing them.
2015-02-04 11:51:39 -08:00
Leonardo de Moura
8a78adc9af
feat(library/tactic): add auxiliary object "location"
...
This object will used to specify the scope of application of tactics
2015-02-04 11:51:39 -08:00
Leonardo de Moura
4c7a17cc4a
refactor(library/tactic/class_instance_synth): move has_expr_metavar_relaxed to util
2015-02-01 10:59:27 -08:00
Leonardo de Moura
c311e0aba6
chore(library/tactic/inversion_tactic): cleanup
2015-02-01 10:47:32 -08:00
Leonardo de Moura
143143e94c
fix(library/tactic/inversion_tactic): missing normalization step in the inversion_tactic
2015-02-01 10:38:30 -08:00
Leonardo de Moura
dbc8e9e13a
refactor(*): add method get_num_univ_params
2015-01-28 17:22:18 -08:00
Leonardo de Moura
27f6bfd3f0
refactor(*): add file constants.txt with all constants used by the Lean binary
2015-01-23 16:50:32 -08:00
Leonardo de Moura
41935906a8
chore(frontends/lean): use update_if_undef
2015-01-13 13:02:14 -08:00
Leonardo de Moura
1fbfe59a9a
feat(library/tactic/goal): when listing context/goal variables, collect vars of same type in one line
...
closes #391
2015-01-13 11:14:44 -08:00
Leonardo de Moura
576c053c25
fix(library/tactic/inversion_tactic): bug at implementation_list update
2015-01-04 19:56:10 -08:00
Leonardo de Moura
762a515a5b
feat(library/tactic/inversion_tactic): mark new arguments that have been "unified" into terms
2015-01-02 22:02:15 -08:00
Leonardo de Moura
3fb2d8bbc0
feat(library/tactic/inversion_tactic): use the "simpler" compilation approach in more cases
...
The approach implemented in the commit 8974d70c11ef7b9b2c5d can be
extended to indexed inductive families. See comments in the code.
2015-01-01 19:33:15 -08:00
Leonardo de Moura
be9e2500ce
feat(library/tactic/inversion_tactic): add more efficient "compilation" for non-indexed inductive datatypes
2015-01-01 19:33:14 -08:00
Leonardo de Moura
57490a6431
feat(library/tactic/inversion_tactic): avoid unnecessary eq.rec's
2015-01-01 19:33:14 -08:00
Leonardo de Moura
761810f350
feat(library/tactic/inversion_tactic): generate auxiliary information
2015-01-01 19:33:14 -08:00
Leonardo de Moura
1f13bfa4f7
feat(library/tactic/inversion_tactic): add inversion::apply procedure
...
The new procedure is essentially a "customized" version of the
inversion (aka cases) tactic for the equations package
2015-01-01 19:33:14 -08:00
Leonardo de Moura
1d79cb9c07
fix(library/tactic/inversion_tactic): fix bug in 'cases' tactic for HoTT library
2014-12-22 09:40:15 -08:00
Leonardo de Moura
d2958044fd
feat(frontends/lean): add multiple_instances command
...
After this commit, Lean "cuts" the search after the first instance is
computed. To obtain the previous behavior, we must use the new command
multiple_instances <class-name>
closes #370
2014-12-21 17:28:44 -08:00
Leonardo de Moura
5efadb09cc
feat(library/tactic/inversion_tactic): improve 'cases' tactic for HoTT library
...
This commit adds support for hypotheses (h : C As idxs) where the indices idxs
are just local constants. Before this commit the indices idxs had to be hsets.
Now, they can be hsets or local constants.
The new tests demonstrate new examples that can be handled by the
improved tactic in the HoTT library
2014-12-21 15:19:25 -08:00
Leonardo de Moura
677ec2a2fe
feat(library/tactic/inversion_tactic): adjust inversion tactic to HoTT lib
2014-12-20 11:32:27 -08:00
Leonardo de Moura
d9d822baa7
feat(library/tactic/class_instance_synth): add mk_hset_instance procedure
2014-12-19 22:00:25 -08:00
Leonardo de Moura
d6f79423e9
feat(library/tactic/class_instance_synth): add mk_class_instance procedures
2014-12-19 20:09:09 -08:00
Leonardo de Moura
4421069e34
refactor(library/tactic): rename placeholder_elaborator to class_instance_synth
2014-12-19 19:57:38 -08:00
Leonardo de Moura
ded869b7e0
refactor(frontends/lean): move placeholder_elaborator to library/tactic
2014-12-19 15:23:22 -08:00
Leonardo de Moura
a22dc773b7
refactor(frontends/lean): move some auxiliary procedures to library/tactic
2014-12-19 15:19:45 -08:00
Leonardo de Moura
ebda057499
fix(library/tactic/intros_tactic): seg fault at intros tactic, fixes #366
2014-12-04 09:26:10 -08:00
Leonardo de Moura
59d403f7d8
fix(library/tactic/inversion_tactic): warning on clang++
2014-12-03 21:14:10 -08:00
Leonardo de Moura
e6672b958f
fix(library/tactic/inversion_tactic): add missing case
2014-12-01 19:11:44 -08:00
Leonardo de Moura
bc7ee2958f
fix(library/tactic/inversion_tactic): bug in mutually recursive case
2014-12-01 18:32:38 -08:00
Leonardo de Moura
193fed7061
fix(library/tactic/inversion_tactic): uninitialized variable
2014-11-30 22:41:22 -08:00
Leonardo de Moura
c08f4672e4
feat(library/tactic): add 'assert' tactic, closes #349
2014-11-29 21:34:49 -08:00
Leonardo de Moura
f51fa93292
feat(library/tactic): add 'fapply' tactic, closes #356
2014-11-29 19:20:41 -08:00
Leonardo de Moura
a0d650d9cc
fix(library/tactic/inversion_tactic): complete 'deletion' transition
2014-11-29 09:36:41 -08:00
Leonardo de Moura
e0debca771
feat(library/tactic/inversion_tactic): add 'case ... with ...' variant that allows user to specify names for new hypotheses
2014-11-28 22:25:37 -08:00
Leonardo de Moura
22b2f3c78c
fix(library/tactic/inversion_tactic): bug in injectivity transition
2014-11-28 22:07:35 -08:00
Leonardo de Moura
a6be460166
feat(library/tactic/inversion_tactic): basic 'inversion' tactic
2014-11-28 21:56:13 -08:00
Leonardo de Moura
6768c76b52
feat(library/tactic): refine 'get_unused_name'
2014-11-28 19:39:07 -08:00
Leonardo de Moura
9516cd9ee3
feat(library/tactic): 'exact' tactic report unsolved placeholders in nested expression
...
Actually, the elaborator is the one reporting the unassigned
placeholders. The 'exact' tactic just makes the request.
To implement this feature we had to extend the elaboration interface
expected by the tactic framework.
2014-11-28 14:59:35 -08:00
Leonardo de Moura
04dfda99ab
fix(library/tactic/inversion_tactic): bug in name generation
2014-11-28 14:51:12 -08:00
Leonardo de Moura
13405b2bb0
fix(library/tactic/inversion_tactic): inversion tactic for datatypes with dependent elimination
2014-11-27 10:37:22 -08:00
Leonardo de Moura
db9fd53b80
fix(library/tactic): pretty printer for proof states
2014-11-27 09:43:58 -08:00
Leonardo de Moura
976e907c8a
chore(library/tactic/tactic.h): cleanup
2014-11-27 09:15:49 -08:00