(** * [find] *)

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.

Lemma find_1 : forall m (Hm:Sort m) x e, MapsTo x e m -> find x m = Some e.