intros P step.
cut (forall (n : nat) (t : Tree), height_tree t <= n -> P t).
intro claim.
intro t.
apply claim with (height_tree t).
trivial.
intros n; elim n; clear n.
intros t; elim t; clear t.
intros a succs u0.
elimtype False.
inversion_clear u0.
intros n ih t.
elim t; clear t.
intros a succs u0.
apply step; clear step.
intros t in_t.
apply ih; clear ih P.
apply le_S_n.
apply le_trans with (S (height_forest succs)).
apply le_n_S.
apply height_in_le; assumption.
assumption.
Qed.
(* Successor relation  *)
Inductive Successor : Tree -> Tree -> Prop :=
| successor_refl : forall t : Tree, Successor t t
| successor_trans :
forall t0 t1 : Tree,
In_Forest t1 (successors t0) ->
forall t2 : Tree, Successor t2 t1 -> Successor t2 t0.

(* Specifications: *)
Lemma succs_trans :
forall t1 t2 : Tree,
Successor t2 t1 -> forall t0 : Tree, Successor t1 t0 -> Successor t2 t0.