aboutsummaryrefslogtreecommitdiffhomepage
path: root/theories
diff options
context:
space:
mode:
authorGravatar herbelin <herbelin@85f007b7-540e-0410-9357-904b9bb8a0f7>2005-03-16 13:09:55 +0000
committerGravatar herbelin <herbelin@85f007b7-540e-0410-9357-904b9bb8a0f7>2005-03-16 13:09:55 +0000
commitf4d119e9fd2e62cbd2ee3b233c01513c879ed034 (patch)
tree75c3a6e139873db91a2be6ba298b32dd28408744 /theories
parent1caa545d5df15a0b7fc2d63d9660318fa7872032 (diff)
MAJ PolyList -> List
git-svn-id: svn+ssh://scm.gforge.inria.fr/svn/coq/trunk@6844 85f007b7-540e-0410-9357-904b9bb8a0f7
Diffstat (limited to 'theories')
-rw-r--r--theories/Bool/Bvector.v50
-rw-r--r--theories/Lists/ListSet.v10
2 files changed, 9 insertions, 51 deletions
diff --git a/theories/Bool/Bvector.v b/theories/Bool/Bvector.v
index df11a01cd..944485971 100644
--- a/theories/Bool/Bvector.v
+++ b/theories/Bool/Bvector.v
@@ -17,7 +17,7 @@ Require Import Arith.
Open Local Scope nat_scope.
(*
-On s'inspire de PolyList pour fabriquer les vecteurs de bits.
+On s'inspire de List.v pour fabriquer les vecteurs de bits.
La dimension du vecteur est un paramètre trop important pour
se contenter de la fonction "length".
La première idée est de faire un record avec la liste et la longueur.
@@ -26,42 +26,9 @@ de nombreux lemmes pour gerer les longueurs.
La seconde idée est de faire un type dépendant dans lequel la
longueur est un paramètre de construction. Cela complique un
peu les inductions structurelles, la solution qui a ma préférence
-est alors d'utiliser un terme de preuve comme définition.
-
-(En effet une définition comme :
-Fixpoint Vunaire [n:nat; v:(vector n)]: (vector n) :=
-Cases v of
- | Vnil => Vnil
- | (Vcons a p v') => (Vcons (f a) p (Vunaire p v'))
-end.
-provoque ce message d'erreur :
-Coq < Error: Inference of annotation not yet implemented in this case).
-
-
- Inductive list [A : Set] : Set :=
- nil : (list A) | cons : A->(list A)->(list A).
- head = [A:Set; l:(list A)] Cases l of
- | nil => Error
- | (cons x _) => (Value x)
- end
- : (A:Set)(list A)->(option A).
- tail = [A:Set; l:(list A)]Cases l of
- | nil => (nil A)
- | (cons _ m) => m
- end
- : (A:Set)(list A)->(list A).
- length = [A:Set] Fix length {length [l:(list A)] : nat :=
- Cases l of
- | nil => O
- | (cons _ m) => (S (length m))
- end}
- : (A:Set)(list A)->nat.
- map = [A,B:Set; f:(A->B)] Fix map {map [l:(list A)] : (list B) :=
- Cases l of
- | nil => (nil B)
- | (cons a t) => (cons (f a) (map t))
- end}
- : (A,B:Set)(A->B)->(list A)->(list B)
+est alors d'utiliser un terme de preuve comme définition, car le
+mécanisme d'inférence du type du filtrage n'est pas aussi puissant que
+celui implanté par les tactiques d'élimination.
*)
Section VECTORS.
@@ -141,13 +108,6 @@ Proof.
exact (Vcons a (S (S n)) (f H0)).
Defined.
-(*
-Lemma S_minus_S : (n,p:nat) (gt n (S p)) -> (S (minus n (S p)))=(minus n p).
-Proof.
- Intros.
-Save.
-*)
-
Lemma Vtrunc : forall n p:nat, n > p -> vector n -> vector (n - p).
Proof.
induction p as [| p f]; intros H v.
@@ -203,7 +163,7 @@ Implicit Arguments Vcons [A n].
Section BOOLEAN_VECTORS.
-(*
+(*
Un vecteur de bits est un vecteur sur l'ensemble des booléens de longueur fixe.
ATTENTION : le stockage s'effectue poids FAIBLE en tête.
On en extrait le bit de poids faible (head) et la fin du vecteur (tail).
diff --git a/theories/Lists/ListSet.v b/theories/Lists/ListSet.v
index 69d40eaf9..20dc61ef1 100644
--- a/theories/Lists/ListSet.v
+++ b/theories/Lists/ListSet.v
@@ -8,12 +8,10 @@
(*i $Id$ i*)
-(** A Library for finite sets, implemented as lists
- A Library with similar interface will soon be available under
- the name TreeSet in the theories/Trees directory *)
+(** A Library for finite sets, implemented as lists *)
-(** PolyList is loaded, but not exported.
- This allow to "hide" the definitions, functions and theorems of PolyList
+(** List is loaded, but not exported.
+ This allow to "hide" the definitions, functions and theorems of List
and to see only the ones of ListSet *)
Require Import List.
@@ -395,4 +393,4 @@ Section other_definitions.
End other_definitions.
-Unset Implicit Arguments. \ No newline at end of file
+Unset Implicit Arguments.