diff options
| author | herbelin | 2011-04-28 07:11:39 +0000 |
|---|---|---|
| committer | herbelin | 2011-04-28 07:11:39 +0000 |
| commit | 39514550177a887a526a66b8ec080cae5c463a9d (patch) | |
| tree | cef80ee3246d3dc3b53957ca8bcee3e65871c539 | |
| parent | 60dcc820b206ac0540af248ee993bfd000ba7bf0 (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.v | 7 | ||||
| -rw-r--r-- | theories/Init/Tactics.v | 4 |
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 |
