aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorherbelin2011-04-28 07:11:39 +0000
committerherbelin2011-04-28 07:11:39 +0000
commit39514550177a887a526a66b8ec080cae5c463a9d (patch)
treecef80ee3246d3dc3b53957ca8bcee3e65871c539
parent60dcc820b206ac0540af248ee993bfd000ba7bf0 (diff)
Fixing an "apply -> ... in hyp" bug (the hyp was considered as a fixed
ident by Ltac). git-svn-id: svn+ssh://scm.gforge.inria.fr/svn/coq/trunk@14074 85f007b7-540e-0410-9357-904b9bb8a0f7
-rw-r--r--test-suite/success/apply.v7
-rw-r--r--theories/Init/Tactics.v4
2 files changed, 9 insertions, 2 deletions
diff --git a/test-suite/success/apply.v b/test-suite/success/apply.v
index d1efbca85a..32d82bd1a8 100644
--- a/test-suite/success/apply.v
+++ b/test-suite/success/apply.v
@@ -202,6 +202,13 @@ try apply H.
unfold ID; apply H0.
Qed.
+(* Test hyp in "apply -> ... in hyp" is correctly instantiated by Ltac *)
+
+Goal (True <-> False) -> True -> False.
+intros Heq H.
+match goal with [ H : True |- _ ] => apply -> Heq in H end.
+Abort.
+
(* Test coercion below product and on non meta-free terms in with bindings *)
(* Cf wishes #1408 from E. Makarov *)
diff --git a/theories/Init/Tactics.v b/theories/Init/Tactics.v
index 82951f92dc..2caf6a4b8d 100644
--- a/theories/Init/Tactics.v
+++ b/theories/Init/Tactics.v
@@ -153,10 +153,10 @@ bapply lemma ltac:(fun H => destruct H as [H _]; apply H).
Tactic Notation "apply" "<-" constr(lemma) :=
bapply lemma ltac:(fun H => destruct H as [_ H]; apply H).
-Tactic Notation "apply" "->" constr(lemma) "in" ident(J) :=
+Tactic Notation "apply" "->" constr(lemma) "in" hyp(J) :=
bapply lemma ltac:(fun H => destruct H as [H _]; apply H in J).
-Tactic Notation "apply" "<-" constr(lemma) "in" ident(J) :=
+Tactic Notation "apply" "<-" constr(lemma) "in" hyp(J) :=
bapply lemma ltac:(fun H => destruct H as [_ H]; apply H in J).
(** An experimental tactic simpler than auto that is useful for ending