elim T; clear T.
exact (lookup_dec key).
Qed.
(***************************************************************************)
Definition LIN_AVL (T : AVL) := match T with
| AVL_intro t _ => lin_avl t
end.
(***************************************************************************)
Definition LIN_INS (key : Int) (update : B -> B) (init : B)
(T0 T : AVL) :=
match T0 with
| AVL_intro t0 _ =>
match T with
| AVL_intro t _ => lin_ins_spec key update init t0 t
end
end.
Definition EQUIV_INS (key : Int) (update : B -> B)
(init : B) (T0 T : AVL) :=
match T0 with
| AVL_intro t0 _ =>
match T with
| AVL_intro t _ => equiv_ins key update init t0 t
end
end.
Definition INSRT_Spec (key : Int) (update : B -> B)
(init : B) (T0 : AVL) :=
match T0 with
| AVL_intro t0 _ => avl_ins_spec key update init t0
end.

(* Specifications: *)
Theorem INSRT_AVL :
forall (key : Int) (update : B -> B) (init : B) (T0 : AVL),
INSRT_Spec key update init T0.