aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPierre-Marie Pédrot2017-09-26 17:52:34 +0200
committerPierre-Marie Pédrot2017-09-26 17:52:34 +0200
commit3f734c5f5338feb491a6ca021e8b5a578f95c88b (patch)
tree30f0f0c2e5eba9f1607bc38150b63b9c52b64918
parent67851196e552948da9960fe32e9e9f628b349ee1 (diff)
Slightly more straightforward notation for (e)apply.
-rw-r--r--tests/example2.v7
-rw-r--r--theories/Notations.v16
2 files changed, 9 insertions, 14 deletions
diff --git a/tests/example2.v b/tests/example2.v
index a21f3a7f4e..378abb86a8 100644
--- a/tests/example2.v
+++ b/tests/example2.v
@@ -44,6 +44,13 @@ apply &H with (m := 0).
split.
Qed.
+Goal forall (P : nat -> Prop), (forall n m, n = m -> P n) -> (0 = 1) -> P 0.
+Proof.
+intros P H e.
+apply &H with (m := 1) in e.
+exact e.
+Qed.
+
Goal forall (P : nat -> Prop), (forall n m, n = m -> P n) -> P 0.
Proof.
intros P H.
diff --git a/theories/Notations.v b/theories/Notations.v
index 1b5792e051..d4520dbdfd 100644
--- a/theories/Notations.v
+++ b/theories/Notations.v
@@ -246,28 +246,16 @@ Ltac2 Notation "eelim" c(thunk(constr)) bnd(thunk(with_bindings))
elim0 true c bnd use.
Ltac2 apply0 adv ev cb cl :=
- let cl := match cl with
- | None => None
- | Some p =>
- let ((_, id, ipat)) := p in
- let p := match ipat with
- | None => None
- | Some p =>
- let ((_, ipat)) := p in
- Some ipat
- end in
- Some (id, p)
- end in
Std.apply adv ev cb cl.
Ltac2 Notation "eapply"
cb(list1(thunk(seq(constr, with_bindings)), ","))
- cl(opt(seq(keyword("in"), ident, opt(seq(keyword("as"), intropattern))))) :=
+ cl(opt(seq("in", ident, opt(seq("as", intropattern))))) :=
apply0 true true cb cl.
Ltac2 Notation "apply"
cb(list1(thunk(seq(constr, with_bindings)), ","))
- cl(opt(seq(keyword("in"), ident, opt(seq(keyword("as"), intropattern))))) :=
+ cl(opt(seq("in", ident, opt(seq("as", intropattern))))) :=
apply0 true false cb cl.
Ltac2 default_on_concl cl :=