intros P leaf step t.
apply My_Tree_ind.
intros a succs; case succs; clear succs.
intros.
apply leaf.
intros t0 succs ih.
apply step with t0.
apply successor_trans with t0.
simpl in |- *.
apply in_forest_head.
apply successor_refl.
apply ih.
apply in_forest_head.
Qed.
(* In_tree *)
(* ------- *)
Inductive In_tree : A -> Tree -> Prop :=
| in_leave : forall (a : A) (succs : Forest), In_tree a (node a succs)
| in_succs :
forall (succs : Forest) (t : Tree),
In_Forest t succs ->
forall a : A, In_tree a t -> forall a' : A, In_tree a (node a' succs).

(* Specifications: *)
Lemma in_successor_in :
forall (a : A) (t : Tree),
In_tree a t -> forall t' : Tree, Successor t t' -> In_tree a t'.