(** * [mem] *)

(* Specifications: *)
Lemma mem_1 : forall m (Hm:NoDupA m) x, In x m -> mem x m = true.
Lemma mem_2 : forall m (Hm:NoDupA m) x, mem x m = true -> In x m.
Fixpoint find (k:key) (s: t elt) {struct s} : option elt :=
match s with
| nil => None
| (k',x)::s' => if X.eq_dec k k' then Some x else find k s'
end.
Lemma mem_1 : forall m (Hm:Sort m) x, In x m -> mem x m = true.
Lemma mem_2 : forall m (Hm:Sort m) x, mem x m = true -> In x m.
Fixpoint find (k:key) (s: t elt) {struct s} : option elt :=
match s with
| nil => None
| (k',x)::s' =>
match X.compare k k' with
| LT _ => None
| EQ _ => Some x
| GT _ => find k s'
end
end.