intros t avl_t; elim avl_t; clear avl_t t.
intros; apply Above_Nil.
intros k d l r b avl_l ih_l avl_r ih_r Balanced_t below_l above_r k0
above_avl.
clear avl_l avl_r Balanced_t.
inversion_clear above_avl.
apply Above_Node.
assumption.
apply ih_l; assumption.
apply ih_r.
apply above_avl_trans with k.
assumption.
assumption.
Qed.
(***************************************************************)
(*  lookup_avl                                                 *)

Lemma lookup_avl_inv_equal :
forall (key k : Int) (d : B) (l r : avl_tree) (b : bal) (data : B),
is_avl (Avl_Node k d l r b) ->
Equal key k -> lookup key (Avl_Node k d l r b) data -> d = data.