diff options
-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 d1efbca85..32d82bd1a 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 82951f92d..2caf6a4b8 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 |