(************************************************************************)
(************************************************************************)
(************************************************************************)

Inductive AVL : Set :=
    AVL_intro : forall t : avl_tree, is_avl t -> AVL.(************************************************************************)
(************************************************************************)
(************************************************************************)

Inductive AVL : Set :=
    AVL_intro : forall t : avl_tree, is_avl t -> AVL.Definition AVL_NIL := AVL_intro Avl_Nil Nil_Is_Avl.Definition LOOKUP (key : Int) (T : AVL) (data : B) :=
  match T with
  | AVL_intro t _ => lookup key t data
  end.Definition LOOKUP_Dec_Spec (key : Int) (T : AVL) :=
  match T with
  | AVL_intro t _ => lookup_dec_spec key t
  end.

(* Specifications: *)
Theorem LOOKUP_DEC : forall (key : Int) (T : AVL), LOOKUP_Dec_Spec key T.