Fixpoint MapCanonicalize (m:Map A) : Map A :=
    match m with
    | M2 m0 m1 => makeM2 A (MapCanonicalize m0) (MapCanonicalize m1)
    | _ => m
    end.

Lemma MapSubset_c_1 : forall (m:Map A) (m':Map B), mapcanon m -> MapSubset A B m m' -> MapDomRestrBy A B m m' = M0 A.