(* Contribution to the Coq Library   V6.3 (July 1999)                    *)
(****************************************************************************)
(* This contribution was updated for Coq V5.10 by the COQ workgroup.        *)
(* January 1995                                                             *)
(****************************************************************************)
(*                           Relations_3_facts.v                            *)
(****************************************************************************)
intros U R x y H'; red in |- *.
exists y; auto.
Qed.
Hint Resolve Rstar_imp_coherent.
unfold coherent at 1 in |- *.
intros U R; red in |- *.
intros x y h; elim h; intros z h0; elim h0; intros H' H'0; clear h h0.
exists z; auto.
Qed.
intros U R H'; red in |- *.
intro x; red in |- *; intros a b H'0.
unfold coherent at 1 in |- *.
generalize b; clear b.
elim H'0; clear H'0.
intros x0 b H'1; exists b; auto.
intros x0 y z H'1 H'2 H'3 b H'4.
generalize (Lemma1 U R); intro h; lapply h;
[ intro H'0; generalize (H'0 x0 b); intro h0; lapply h0;
[ intro H'5; generalize (H'5 y); intro h1; lapply h1;
[ intro h2; elim h2; intros z0 h3; elim h3; intros H'6 H'7;
clear h h0 h1 h2 h3
| clear h h0 h1 ]
| clear h h0 ]
| clear h ]; auto.
generalize (H'3 z0); intro h; lapply h;
[ intro h0; elim h0; intros z1 h1; elim h1; intros H'8 H'9; clear h h0 h1
| clear h ]; auto.
exists z1; split; auto.
apply Rstar_n with z0; auto.
Qed.

Theorem Strong_confluence_direct :
forall (U : Type) (R : Relation U), Strongly_confluent U R -> Confluent U R.