aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authormohring2000-12-12 15:54:41 +0000
committermohring2000-12-12 15:54:41 +0000
commitc553366ec1cc485f6ec791ae1c04bbc53f5c65d0 (patch)
tree132290e933ceb70d5daad8a751e37c6249f57176
parentc5301d16345e4d3c6b332cc73e7b66d7b915341a (diff)
Ajout de tests
git-svn-id: svn+ssh://scm.gforge.inria.fr/svn/coq/trunk@1087 85f007b7-540e-0410-9357-904b9bb8a0f7
-rw-r--r--test-suite/failure/clash_cons.v9
-rw-r--r--test-suite/success/fix.v44
-rw-r--r--test-suite/success/induct.v10
-rw-r--r--test-suite/success/mutual_ind.v34
-rw-r--r--test-suite/success/unfold.v8
5 files changed, 105 insertions, 0 deletions
diff --git a/test-suite/failure/clash_cons.v b/test-suite/failure/clash_cons.v
new file mode 100644
index 0000000000..ac6511bdf8
--- /dev/null
+++ b/test-suite/failure/clash_cons.v
@@ -0,0 +1,9 @@
+(* Teste la verification d'unicite des noms de constr *)
+
+
+Inductive X : Set :=
+ cons : X.
+
+Inductive Y : Set :=
+ cons : Y.
+
diff --git a/test-suite/success/fix.v b/test-suite/success/fix.v
new file mode 100644
index 0000000000..3834fc0f52
--- /dev/null
+++ b/test-suite/success/fix.v
@@ -0,0 +1,44 @@
+(* Ancien bug signale par Laurent Thery sur la condition de garde *)
+
+Require Import Bool.
+Require Import ZArith.
+
+Definition rNat := positive.
+
+Inductive rBoolOp: Set :=
+ rAnd: rBoolOp
+ | rEq: rBoolOp .
+
+Definition rlt: rNat -> rNat ->Prop := [a, b:rNat](compare a b EGAL)=INFERIEUR.
+
+Definition rltDec: (m, n:rNat){(rlt m n)}+{(rlt n m) \/ m=n}.
+Intros n m; Generalize (compare_convert_INFERIEUR n m);
+ Generalize (compare_convert_SUPERIEUR n m);
+ Generalize (compare_convert_EGAL n m); Case (compare n m EGAL).
+Intros H' H'0 H'1; Right; Right; Auto.
+Intros H' H'0 H'1; Left; Unfold rlt.
+Apply convert_compare_INFERIEUR; Auto.
+Intros H' H'0 H'1; Right; Left; Unfold rlt.
+Apply convert_compare_INFERIEUR; Auto.
+Apply H'0; Auto.
+Defined.
+
+
+Definition rmax: rNat -> rNat ->rNat.
+Intros n m; Case (rltDec n m); Intros Rlt0.
+Exact m.
+Exact n.
+Defined.
+
+Inductive rExpr: Set :=
+ rV: rNat ->rExpr
+ | rN: rExpr ->rExpr
+ | rNode: rBoolOp -> rExpr -> rExpr ->rExpr .
+
+Fixpoint maxVar[e:rExpr]: rNat :=
+ Cases e of
+ (rV n) => n
+ | (rN p) => (maxVar p)
+ | (rNode n p q) => (rmax (maxVar p) (maxVar q))
+ end.
+
diff --git a/test-suite/success/induct.v b/test-suite/success/induct.v
new file mode 100644
index 0000000000..cffc8ba7af
--- /dev/null
+++ b/test-suite/success/induct.v
@@ -0,0 +1,10 @@
+(* Teste des definitions inductives imbriquees *)
+
+Require PolyList.
+
+Inductive X : Set :=
+ cons1 : (list X)->X.
+
+Inductive Y : Set :=
+ cons2 : (list Y*Y)->Y.
+
diff --git a/test-suite/success/mutual_ind.v b/test-suite/success/mutual_ind.v
new file mode 100644
index 0000000000..61d984eb46
--- /dev/null
+++ b/test-suite/success/mutual_ind.v
@@ -0,0 +1,34 @@
+(* Definition mutuellement inductive et dependante *)
+
+Require Export PolyList.
+
+ Record signature : Type := {
+ sort : Set;
+ sort_beq : sort->sort->bool;
+ sort_beq_refl : (f:sort)true=(sort_beq f f);
+ sort_beq_eq : (f1,f2:sort)true=(sort_beq f1 f2)->f1=f2;
+ fsym :> Set;
+ fsym_type : fsym->(list sort)*sort;
+ fsym_beq : fsym->fsym->bool;
+ fsym_beq_refl : (f:fsym)true=(fsym_beq f f);
+ fsym_beq_eq : (f1,f2:fsym)true=(fsym_beq f1 f2)->f1=f2
+ }.
+
+
+ Variable F : signature.
+
+ Definition vsym := (sort F)*nat.
+
+ Definition vsym_sort := (fst (sort F) nat).
+ Definition vsym_nat := (snd (sort F) nat).
+
+
+ Mutual Inductive term : (sort F)->Set :=
+ | term_var : (v:vsym)(term (vsym_sort v))
+ | term_app : (f:F)(list_term (Fst (fsym_type F f)))
+ ->(term (Snd (fsym_type F f)))
+ with list_term : (list (sort F)) -> Set :=
+ | term_nil : (list_term (nil (sort F)))
+ | term_cons : (s:(sort F);l:(list (sort F)))
+ (term s)->(list_term l)->(list_term (cons s l)).
+
diff --git a/test-suite/success/unfold.v b/test-suite/success/unfold.v
new file mode 100644
index 0000000000..59adcff237
--- /dev/null
+++ b/test-suite/success/unfold.v
@@ -0,0 +1,8 @@
+(* Test le Hint Unfold sur des var locales *)
+
+Section toto.
+Local EQ:=eq.
+Goal (EQ nat O O).
+Hints Unfold EQ.
+Auto.
+Save.