(*********************************************************)
(*		Definition is_above		  	 *)

Inductive is_above : avl_tree -> Int -> Prop :=
  | Above_Nil : forall k0 : Int, is_above Avl_Nil k0
  | Above_Node :
      forall (k : Int) (d : B) (l r : avl_tree) (b : bal) (k0 : Int),
      Less k0 k ->
      is_above l k0 -> is_above r k0 -> is_above (Avl_Node k d l r b) k0.(*********************************************************)
(*		Definition is_above		  	 *)

Inductive is_above : avl_tree -> Int -> Prop :=
  | Above_Nil : forall k0 : Int, is_above Avl_Nil k0
  | Above_Node :
      forall (k : Int) (d : B) (l r : avl_tree) (b : bal) (k0 : Int),
      Less k0 k ->
      is_above l k0 -> is_above r k0 -> is_above (Avl_Node k d l r b) k0.(*********************************************************)
(*		Definition is_above		  	 *)

Inductive is_above : avl_tree -> Int -> Prop :=
  | Above_Nil : forall k0 : Int, is_above Avl_Nil k0
  | Above_Node :
      forall (k : Int) (d : B) (l r : avl_tree) (b : bal) (k0 : Int),
      Less k0 k ->
      is_above l k0 -> is_above r k0 -> is_above (Avl_Node k d l r b) k0.

Lemma inv_above_key : forall (k : Int) (d : B) (l r : avl_tree) (b : bal) (k0 : Int), is_above (Avl_Node k d l r b) k0 -> Less k0 k.