Definition singleton {A : Type} (x : key) (v : A) : t A (Dom.singleton x) :=
  exist (OK (Dom.singleton x)) (S.add x v (@S.empty A)) (singleton_OK x v).

(* Specifications: *)
Lemma remove_OK : forall A dom x (m : t A dom), OK (Dom.remove x dom) (S.remove (elt:=A) x (proj1_sig m)).