(** * [find] *)

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.

(* Specifications: *)
Lemma find_2 : forall m x e, find x m = Some e -> MapsTo x e m.
Lemma find_1 : forall m (Hm:NoDupA m) x e, MapsTo x e m -> find x m = Some e.
Lemma find_eq : forall m (Hm:NoDupA m) x x', X.eq x x' -> find x m = find x' m.