Definition indprinciple_3_aux (n : nat) :=
forall P : term -> Prop,
(forall (a : ad) (tl : term_list),
(forall u : term, term_list_occur u tl -> P u) -> P (app a tl)) ->
forall t : term, term_high t <= n -> P t.

(* Specifications: *)
Lemma indprinciple_3_0 : indprinciple_3_aux 0.
Lemma indprinciple_3_1 :
forall n : nat, indprinciple_3_aux n -> indprinciple_3_aux (S n).
Lemma indprinciple_3_2 :
forall (n : nat) (P : term -> Prop),
(forall (a : ad) (tl : term_list),
(forall u : term, term_list_occur u tl -> P u) -> P (app a tl)) ->
forall t : term, term_high t <= n -> P t.
Lemma indprinciple_term :
forall P : term -> Prop,
(forall (a : ad) (tl : term_list),
(forall u : term, term_list_occur u tl -> P u) -> P (app a tl)) ->
forall t : term, P t.