Definition FSet := Map unit.Definition in_FSet : ad -> FSet -> bool := in_dom unit.Fixpoint MapDom (m:Map A) : FSet :=
    match m with
    | M0 => M0 unit
    | M1 a _ => M1 unit a tt
    | M2 m m' => M2 unit (MapDom m) (MapDom m')
    end.

Lemma MapDom_semantics_1 : forall (m:Map A) (a:ad) (y:A), MapGet A m a = Some y -> in_FSet a (MapDom m) = true.