(* 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.(* 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.(* 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.
Lemma succs_refl : forall t : Tree, Successor t t.
Lemma Succs_Tree_ind : forall P : Tree -> Prop, (forall a : A, P (node a Nil_Forest)) -> (forall t0 t1 : Tree, Successor t0 t1 -> P t0 -> P t1) -> forall t : Tree, P t.