Section Mapi.
Variable elt elt' : Type.
Variable f : key -> elt -> elt'.

(* Specifications: *)
Lemma mapi_1 : forall (m: tree elt)(x:key)(e:elt),
MapsTo x e m -> exists y, X.eq y x /\ MapsTo x (f y e) (mapi f m).
Lemma mapi_2 : forall (m: t elt)(x:key),
In x (mapi f m) -> In x m.
Lemma mapi_bst : forall m, bst m -> bst (mapi f m).
End Mapi.
Lemma mapi_height : forall m, height (mapi f m) = height m.
Lemma mapi_avl : forall m, avl m -> avl (mapi f m).
End Mapi.