Instance stepplus_star_subrelation : subrelation stepplus star.
(** ** Reduction equivalence *)
Reserved Notation "s '≡' t" (at level 50).
Inductive equiv : term -> term -> Prop :=
| eqStep s t : step s t -> s ≡ t
| eqRef s : s ≡ s
| eqSym s t : t ≡ s -> s ≡ t
| eqTrans s t u: s ≡ t -> t ≡ u -> s ≡ u
where "s '≡' t" := (equiv s t).
Hint Constructors equiv.
(* *** Properties of the equivalence relation *)
Instance equiv_Equivalence : Equivalence equiv.

(* Specifications: *)
Lemma star_equiv s t : s ≻* t -> s ≡ t.
Lemma church_rosser s t : s ≡ t -> exists u, s ≻* u /\ t ≻* u.
Instance app_equiv : Proper (equiv ==> equiv ==> equiv) app.