Library Mtac2Tests.cevar
From Mtac2 Require Import Mtac2.
Import Mtac2.lib.List.ListNotations.
Example ex1 (x y: nat) (H: x>y) (z: nat) : True.
MProof.
M.Cevar _ [m:ahyp H mNone | ahyp y mNone | ahyp x mNone].
Unshelve.
Fail M.Cevar _ [m:ahyp x mNone| ahyp H mNone| ahyp y mNone].
Fail M.Cevar _ [m:ahyp x mNone| ahyp x mNone| ahyp y mNone].
M.Cevar _ [m:ahyp H mNone| ahyp y (mSome 0)| ahyp x mNone].
Unshelve.
T.exact I.
Qed.
Example ex2 : forall (x y: nat) (H: x>y) (z:nat), True.
MProof.
cintros (x y: nat) (H: x>y) (z: nat) {-
e <- M.Cevar _ [m:ahyp H mNone| ahyp y mNone| ahyp x mNone];
T.exact e
-}. Unshelve.
T.exact I.
Qed.
Example ex3 : forall (x y: nat) (H: x>y), True.
MProof.
Fail cintros (x y: nat) (H: x>y) {-
e <- M.Cevar True [m:ahyp x mNone| ahyp H mNone| ahyp y mNone];
T.exact e
-}.
Fail cintros (x y: nat) (H: x>y) {-
e <- M.Cevar True [m:ahyp x mNone| ahyp x mNone| ahyp y mNone];
T.exact e
-}.
cintros (x y: nat) (H: x>y) {-
e <- M.Cevar _ [m:ahyp H mNone| ahyp y (mSome x)| ahyp x mNone];
T.exact e
-}.
Unshelve.
Fail M.Cevar _ [m:ahyp (x > y) mNone| ahyp y (mSome x)| ahyp x mNone].
T.exact I.
Qed.
Import Mtac2.lib.List.ListNotations.
Example ex1 (x y: nat) (H: x>y) (z: nat) : True.
MProof.
M.Cevar _ [m:ahyp H mNone | ahyp y mNone | ahyp x mNone].
Unshelve.
Fail M.Cevar _ [m:ahyp x mNone| ahyp H mNone| ahyp y mNone].
Fail M.Cevar _ [m:ahyp x mNone| ahyp x mNone| ahyp y mNone].
M.Cevar _ [m:ahyp H mNone| ahyp y (mSome 0)| ahyp x mNone].
Unshelve.
T.exact I.
Qed.
Example ex2 : forall (x y: nat) (H: x>y) (z:nat), True.
MProof.
cintros (x y: nat) (H: x>y) (z: nat) {-
e <- M.Cevar _ [m:ahyp H mNone| ahyp y mNone| ahyp x mNone];
T.exact e
-}. Unshelve.
T.exact I.
Qed.
Example ex3 : forall (x y: nat) (H: x>y), True.
MProof.
Fail cintros (x y: nat) (H: x>y) {-
e <- M.Cevar True [m:ahyp x mNone| ahyp H mNone| ahyp y mNone];
T.exact e
-}.
Fail cintros (x y: nat) (H: x>y) {-
e <- M.Cevar True [m:ahyp x mNone| ahyp x mNone| ahyp y mNone];
T.exact e
-}.
cintros (x y: nat) (H: x>y) {-
e <- M.Cevar _ [m:ahyp H mNone| ahyp y (mSome x)| ahyp x mNone];
T.exact e
-}.
Unshelve.
Fail M.Cevar _ [m:ahyp (x > y) mNone| ahyp y (mSome x)| ahyp x mNone].
T.exact I.
Qed.