Notation map2_opt := (map2_opt f mapl mapr).

(* Specifications: *)
Lemma map2_opt_2 : forall m m' y, bst m -> bst m' -> In y (map2_opt m m') -> In y m \/ In y m'.
Lemma map2_opt_bst : forall m m', bst m -> bst m' -> bst (map2_opt m m').
Lemma map2_opt_avl : forall m1 m2, avl m1 -> avl m2 -> avl (map2_opt m1 m2).
Lemma map2_avl : forall m1 m2, avl m1 -> avl m2 -> avl (map2 f m1 m2).