Section Equivalences.
(** *** Equivalences between the different definition of the reflexive, symmetric, transitive closures *)
(** *** Contributed by P. Castéran *)
(** Direct transitive closure vs left-step extension *)
(** Direct transitive closure vs right-step extension *)
(** Direct reflexive-transitive closure is equivalent to transitivity by left-step extension *)
(** Direct reflexive-transitive closure is equivalent to transitivity by right-step extension *)
(** Induction on the left transitive step *)
(** Induction on the right transitive step *)

Lemma rt1n_ind_right : forall (P : A -> Prop) (z:A),
P z ->
(forall x y, R x y -> clos_refl_trans_1n R y z -> P y -> P x) ->
forall x, clos_refl_trans_1n R x z -> P x.