Module L := FMapList.Raw E.
(** Not exactly pretty nor perfect, but should suffice as a first naive implem. Anyway, map2 isn't in Ocaml... *)
Definition anti_elements (A:Type)(l:list (key*A)) := L.fold (@add _) l (empty _).
Definition map2 (A B C:Type)(f:option A->option B -> option C)(m:t A)(m':t B) : t C :=
anti_elements (L.map2 f (elements m) (elements m')).

Lemma anti_elements_mapsto_aux : forall (A:Type)(l:list (key*A)) m k e,
NoDupA (eq_key (A:=A)) l ->
(forall x, L.PX.In x l -> In x m -> False) ->
(MapsTo k e (L.fold (@add _) l m) <-> L.PX.MapsTo k e l \/ MapsTo k e m).