(* OUT-OF-SCOPE *)

(* Temp1,2,3,4 identical *)

Inductive multi {X:Type} (R: relation X) : relation X :=
  | multi_refl  : forall (x : X), multi R x x
  | multi_step : forall (x y z : X),
                    R x y ->
                    multi R y z ->
                    multi R x z.(* OUT-OF-SCOPE *)

(* Temp1,2,3,4 identical *)

Inductive multi {X:Type} (R: relation X) : relation X :=
  | multi_refl  : forall (x : X), multi R x x
  | multi_step : forall (x y z : X),
                    R x y ->
                    multi R y z ->
                    multi R x z.(* OUT-OF-SCOPE *)

(* Temp1,2,3,4 identical *)

Inductive multi {X:Type} (R: relation X) : relation X :=
  | multi_refl  : forall (x : X), multi R x x
  | multi_step : forall (x y z : X),
                    R x y ->
                    multi R y z ->
                    multi R x z.Notation " t '===>*' t' " := (multi step t t') (at level 40).

(* Specifications: *)
Theorem multi_R : forall (X:Type) (R:relation X) (x y : X), R x y -> (multi R) x y.
Theorem multi_trans : forall (X:Type) (R: relation X) (x y z : X), multi R x y -> multi R y z -> multi R x z.