intros k d r b avl_t.
apply equiv_del_intro.
intros k0 equal d0 lookup_r.
apply (less_irrefl k).
apply (less_equal_less k k0 k).
apply (lookup_above_greater k0 r d0 k lookup_r).
inversion_clear avl_t.
apply is_above_avl_is_above; assumption.
assumption.
intros k0 data notequal lookup_t.
generalize notequal; clear notequal.
inversion_clear lookup_t.
intro notequal.
elimtype False.
apply notequal.
apply equal_refl.
inversion_clear H.
intros; assumption.
intros k0 data notequal lookup_l.
apply Lookup_Right; assumption.
Qed.

Lemma equiv_del_equal :
forall (key k0 k : Int) (l0 l r0 : avl_tree) (b0 : bal) (d d0 : B),
Equal key k0 ->
equiv_del k l0 l ->
lookup k l0 d ->
is_below l0 k0 ->
is_above r0 k0 ->
is_avl l0 -> equiv_del key (Avl_Node k0 d0 l0 r0 b0) (Avl_Node k d l r0 b0).