diff options
| author | Pierre-Marie Pédrot | 2017-09-26 17:52:34 +0200 |
|---|---|---|
| committer | Pierre-Marie Pédrot | 2017-09-26 17:52:34 +0200 |
| commit | 3f734c5f5338feb491a6ca021e8b5a578f95c88b (patch) | |
| tree | 30f0f0c2e5eba9f1607bc38150b63b9c52b64918 | |
| parent | 67851196e552948da9960fe32e9e9f628b349ee1 (diff) | |
Slightly more straightforward notation for (e)apply.
| -rw-r--r-- | tests/example2.v | 7 | ||||
| -rw-r--r-- | theories/Notations.v | 16 |
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 := |
