aboutsummaryrefslogtreecommitdiff
path: root/contrib/field/Field_Compl.v
diff options
context:
space:
mode:
authorherbelin2003-11-29 17:28:49 +0000
committerherbelin2003-11-29 17:28:49 +0000
commit9a6e3fe764dc2543dfa94de20fe5eec42d6be705 (patch)
tree77c0021911e3696a8c98e35a51840800db4be2a9 /contrib/field/Field_Compl.v
parent9058fb97426307536f56c3e7447be2f70798e081 (diff)
Remplacement des fichiers .v ancienne syntaxe de theories, contrib et states par les fichiers nouvelle syntaxe
git-svn-id: svn+ssh://scm.gforge.inria.fr/svn/coq/trunk@5027 85f007b7-540e-0410-9357-904b9bb8a0f7
Diffstat (limited to 'contrib/field/Field_Compl.v')
-rw-r--r--contrib/field/Field_Compl.v91
1 files changed, 45 insertions, 46 deletions
diff --git a/contrib/field/Field_Compl.v b/contrib/field/Field_Compl.v
index aa3a991470..c90fea1ecc 100644
--- a/contrib/field/Field_Compl.v
+++ b/contrib/field/Field_Compl.v
@@ -8,55 +8,54 @@
(* $Id$ *)
-Inductive listT [A:Type] : Type :=
- nilT : (listT A) | consT : A->(listT A)->(listT A).
-
-Fixpoint appT [A:Type][l:(listT A)] : (listT A) -> (listT A) :=
- [m:(listT A)]
- Cases l of
- | nilT => m
- | (consT a l1) => (consT A a (appT A l1 m))
+Inductive listT (A:Type) : Type :=
+ | nilT : listT A
+ | consT : A -> listT A -> listT A.
+
+Fixpoint appT (A:Type) (l m:listT A) {struct l} : listT A :=
+ match l with
+ | nilT => m
+ | consT a l1 => consT A a (appT A l1 m)
end.
-Inductive prodT [A,B:Type] : Type :=
- pairT: A->B->(prodT A B).
+Inductive prodT (A B:Type) : Type :=
+ pairT : A -> B -> prodT A B.
Definition assoc_2nd :=
-Fix assoc_2nd_rec
- {assoc_2nd_rec
- [A:Type;B:Set;eq_dec:(e1,e2:B){e1=e2}+{~e1=e2};lst:(listT (prodT A B))]
- : B->A->A:=
- [key:B;default:A]
- Cases lst of
- | nilT => default
- | (consT (pairT v e) l) =>
- (Cases (eq_dec e key) of
- | (left _) => v
- | (right _) => (assoc_2nd_rec A B eq_dec l key default)
- end)
- end}.
-
-Definition fstT [A,B:Type;c:(prodT A B)] :=
- Cases c of
- | (pairT a _) => a
- end.
-
-Definition sndT [A,B:Type;c:(prodT A B)] :=
- Cases c of
- | (pairT _ a) => a
- end.
+ (fix assoc_2nd_rec (A:Type) (B:Set)
+ (eq_dec:forall e1 e2:B, {e1 = e2} + {e1 <> e2})
+ (lst:listT (prodT A B)) {struct lst} :
+ B -> A -> A :=
+ fun (key:B) (default:A) =>
+ match lst with
+ | nilT => default
+ | consT (pairT v e) l =>
+ match eq_dec e key with
+ | left _ => v
+ | right _ => assoc_2nd_rec A B eq_dec l key default
+ end
+ end).
+
+Definition fstT (A B:Type) (c:prodT A B) := match c with
+ | pairT a _ => a
+ end.
+
+Definition sndT (A B:Type) (c:prodT A B) := match c with
+ | pairT _ a => a
+ end.
Definition mem :=
-Fix mem {mem [A:Set;eq_dec:(e1,e2:A){e1=e2}+{~e1=e2};a:A;l:(listT A)] : bool :=
- Cases l of
- | nilT => false
- | (consT a1 l1) =>
- Cases (eq_dec a a1) of
- | (left _) => true
- | (right _) => (mem A eq_dec a l1)
- end
- end}.
-
-Inductive option [A:Type] : Type :=
- | None : (option A)
- | Some : (A -> A -> A) -> (option A).
+ (fix mem (A:Set) (eq_dec:forall e1 e2:A, {e1 = e2} + {e1 <> e2})
+ (a:A) (l:listT A) {struct l} : bool :=
+ match l with
+ | nilT => false
+ | consT a1 l1 =>
+ match eq_dec a a1 with
+ | left _ => true
+ | right _ => mem A eq_dec a l1
+ end
+ end).
+
+Inductive option (A:Type) : Type :=
+ | None : option A
+ | Some : (A -> A -> A) -> option A. \ No newline at end of file