fact: Definition Comp_ind_deep' (P : Comp -> Prop) (Pl : list Comp -> Prop) (IHVar : forall x : nat, P (CompVar x)) (IHApp : forall s : Comp, P s -> forall t : Comp, P t -> P (s t)) (IHClos : forall (s : term) (A : list Comp), Pl A -> P (CompClos s A)) (IHNil : Pl nil) (IHCons : forall (a:Comp) (A : list Comp), P a -> Pl A -> Pl (a::A)) (x:Comp) : P x := (fix f c : P c:= match c with | CompVar x => IHVar x | CompApp s t => IHApp s (f s) t (f t) | CompClos s A => IHClos s A ((fix g A : Pl A := match A with [] => IHNil | a::A => IHCons a A (f a) (g A) end) A) end) x .