Definition map_leq {A B} (m1: PTree.t A)(m2: PTree.t B): Prop :=
  forall p, m1 ! p -> m2 ! p.

(* Specifications: *)
Lemma map_leq_apply: forall {A B} (m1: PTree.t A)(m2: PTree.t B) p f1, map_leq m1 m2 -> m1 ! p = Some f1 -> exists f2, m2 ! p = Some f2.
Lemma treemap_sub_map: forall {A B} (f: positive -> B -> A) m2, map_leq (PTree.map f m2) m2.
Lemma map_leq_apply: forall {A B} (m1: PTree.t A)(m2: PTree.t B) p f1, map_leq m1 m2 -> m1 ! p = Some f1 -> exists f2, m2 ! p = Some f2.
Lemma treemap_sub_map: forall {A B} (f: positive -> B -> A) m2, map_leq (PTree.map f m2) m2.