Definition ad_inj (pf:ad -> ad) :=
    forall a0 a1:ad, pf a0 = pf a1 -> a0 = a1.

Lemma alist_of_Map_semantics_1 : forall (m:Map A) (pf:ad -> ad), ad_inj pf -> forall a:ad, MapGet A m a = alist_semantics (MapFold1 alist anil aapp (fun (a0:ad) (y:A) => acons (a0, y) anil) pf m) (pf a).