diff options
author | letouzey <letouzey@85f007b7-540e-0410-9357-904b9bb8a0f7> | 2007-10-29 23:52:01 +0000 |
---|---|---|
committer | letouzey <letouzey@85f007b7-540e-0410-9357-904b9bb8a0f7> | 2007-10-29 23:52:01 +0000 |
commit | 65ceda87c740b9f5a81ebf5a7873036c081b402c (patch) | |
tree | c52308544582bc5c4dcec7bd4fc6e792bba91961 /theories/FSets/FSetAVL.v | |
parent | 172a2711fde878a907e66bead74b9102583dca82 (diff) |
Revision of the FSetWeak Interface, so that it becomes a precise
subtype of the FSet Interface (and idem for FMapWeak / FMap).
1) No eq_dec is officially required in FSetWeakInterface.S.E
(EqualityType instead of DecidableType). But of course,
implementations still needs this eq_dec.
2) elements_3 differs in FSet and FSetWeak (sort vs. nodup). In
FSetWeak we rename it into elements_3w, whereas in FSet we
artificially add elements_3w along to the original elements_3.
Initial steps toward factorization of FSetFacts and FSetWeakFacts,
and so on...
Even if it's not required, FSetWeakList provides a eq_dec on sets,
allowing weak sets of weak sets.
git-svn-id: svn+ssh://scm.gforge.inria.fr/svn/coq/trunk@10271 85f007b7-540e-0410-9357-904b9bb8a0f7
Diffstat (limited to 'theories/FSets/FSetAVL.v')
-rw-r--r-- | theories/FSets/FSetAVL.v | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/theories/FSets/FSetAVL.v b/theories/FSets/FSetAVL.v index fa10809cc..20fdae9fe 100644 --- a/theories/FSets/FSetAVL.v +++ b/theories/FSets/FSetAVL.v @@ -1404,6 +1404,11 @@ Proof. Qed. Hint Resolve elements_sort. +Lemma elements_nodup : forall s : tree, bst s -> NoDupA X.eq (elements s). +Proof. + auto. +Qed. + (** * Filter *) Section F. @@ -2886,6 +2891,9 @@ Module IntMake (I:Int)(X: OrderedType) <: S with Module E := X. Lemma elements_3 : sort E.lt (elements s). Proof. exact (Raw.elements_sort _ (is_bst s)). Qed. + Lemma elements_3w : NoDupA E.eq (elements s). + Proof. exact (Raw.elements_nodup _ (is_bst s)). Qed. + Lemma min_elt_1 : min_elt s = Some x -> In x s. Proof. exact (Raw.min_elt_1 s x). Qed. Lemma min_elt_2 : min_elt s = Some x -> In y s -> ~ E.lt y x. |