diff options
| author | coqbot-app[bot] | 2020-11-02 13:02:53 +0000 |
|---|---|---|
| committer | GitHub | 2020-11-02 13:02:53 +0000 |
| commit | dc244adce087f5041ffa94c369b02e538a0a3f4a (patch) | |
| tree | c921acd2fc862e7f32e18aa016204f8b8f32574c /test-suite | |
| parent | 35354fcb1d86fc0e8a9372b17e43a2b4a409a00e (diff) | |
| parent | 7de7fe612ffc5a598311f9542e57e50803ff2007 (diff) | |
Merge PR #13183: attribute #[using] for Definition and Fixpoint
Reviewed-by: SkySkimmer
Ack-by: herbelin
Ack-by: Zimmi48
Diffstat (limited to 'test-suite')
| -rw-r--r-- | test-suite/success/definition_using.v | 68 |
1 files changed, 68 insertions, 0 deletions
diff --git a/test-suite/success/definition_using.v b/test-suite/success/definition_using.v new file mode 100644 index 0000000000..120e62b145 --- /dev/null +++ b/test-suite/success/definition_using.v @@ -0,0 +1,68 @@ +Require Import Program. +Axiom bogus : Type. + +Section A. +Variable x : bogus. + +#[using="All"] +Definition c1 : bool := true. + +#[using="All"] +Fixpoint c2 n : bool := + match n with + | O => true + | S p => c3 p + end +with c3 n : bool := + match n with + | O => true + | S p => c2 p +end. + +#[using="All"] +Definition c4 : bool. Proof. exact true. Qed. + +#[using="All"] +Fixpoint c5 (n : nat) {struct n} : bool. Proof. destruct n as [|p]. exact true. exact (c5 p). Qed. + +#[using="All", program] +Definition c6 : bool. Proof. exact true. Qed. + +#[using="All", program] +Fixpoint c7 (n : nat) {struct n} : bool := + match n with + | O => true + | S p => c7 p + end. + +End A. + +Check c1 : bogus -> bool. +Check c2 : bogus -> nat -> bool. +Check c3 : bogus -> nat -> bool. +Check c4 : bogus -> bool. +Check c5 : bogus -> nat -> bool. +Check c6 : bogus -> bool. +Check c7 : bogus -> nat -> bool. + +Section B. + +Variable a : bogus. +Variable h : c1 a = true. + +#[using="a*"] +Definition c8 : bogus := a. + +Collection ccc := a h. + +#[using="ccc"] +Definition c9 : bogus := a. + +#[using="ccc - h"] +Definition c10 : bogus := a. + +End B. + +Check c8 : forall a, c1 a = true -> bogus. +Check c9 : forall a, c1 a = true -> bogus. +Check c10: bogus -> bogus. |
