Definition DMerge :=
    MapFold (Map A) (Map A) (M0 A) (MapMerge A) (fun (_:ad) (m:Map A) => m).

(* Specifications: *)
Lemma in_dom_DMerge_1 : forall (m:Map (Map A)) (a:ad), in_dom A a (DMerge m) = match MapSweep _ (fun (_:ad) (m0:Map A) => in_dom A a m0) m with | Some _ => true | _ => false end.
Lemma in_dom_DMerge_2 : forall (m:Map (Map A)) (a:ad), in_dom A a (DMerge m) = true -> {b : ad & {m0 : Map A | MapGet _ m b = Some m0 /\ in_dom A a m0 = true}}.
Lemma in_dom_DMerge_3 : forall (m:Map (Map A)) (a b:ad) (m0:Map A), MapGet _ m a = Some m0 -> in_dom A b m0 = true -> in_dom A b (DMerge m) = true.