Definition set {A : Type} {dom : Dom.t} (x : key) (v : A) (m : @t A dom) (Hin : Dom.In x dom) :=
  exist (OK dom) (S.add x v (proj1_sig m)) (@set_OK _ _ x v m Hin).

Lemma singleton_OK : forall A x v, OK (Dom.singleton x) (S.add x v (S.empty A)).