Fixpoint Map_of_alist (l:alist) : Map A :=
match l with
| nil => M0 A
| (a, y) :: l' => MapPut A (Map_of_alist l') a y
end.

Lemma alist_MapMerge_semantics :
forall m m':Map A,
eqm A (alist_semantics (aapp (alist_of_Map m') (alist_of_Map m)))
(alist_semantics (alist_of_Map (MapMerge A m m'))).