(* occurence de termes dans les listes *)
Inductive term_occur : term -> term -> Prop :=
| to_eq : forall t : term, term_occur t t
| to_st :
forall (t : term) (a : ad) (tl : term_list),
term_list_occur t tl -> term_occur t (app a tl)
with term_list_occur : term -> term_list -> Prop :=
| tlo_head :
forall (t hd : term) (tl : term_list),
term_occur t hd -> term_list_occur t (tcons hd tl)
| tlo_tail :
forall (t hd : term) (tl : term_list),
term_list_occur t tl -> term_list_occur t (tcons hd tl).
Definition term_occur_def_0 (t : term) :=
forall u : term, term_occur u t -> term_high u <= term_high t.
Definition term_occur_def_1 (t : term_list) :=
forall u : term, term_list_occur u t -> term_high u <= term_high_0 t.

Lemma term_occur_0_2 :
forall t : term,
term_occur_def_0 t ->
forall t0 : term_list, term_occur_def_1 t0 -> term_occur_def_1 (tcons t t0).