Definition delete_min (s: t) : option (elt * t) :=
   match min_elt s with
   | Some x => Some (x, remove x s)
   | None => None
  end.

(* Specifications: *)
Lemma delete_min_spec1: forall (s: t) k s', delete_min s = Some (k,s') <-> (min_elt s = Some k /\ remove k s = s').
Lemma delete_min_spec2: forall s, delete_min s = None <-> Empty s.