intros Re_1 Re_2 inter_X_V2_V1_empty u v Der_Ru_u.
elim Der_Ru_u.
intros u0 v0 A dans_couple_Ru inmon_cons_A_v0.
apply Derive1.
cut (dans (couple A (word u0)) R1 \/ dans (couple A (word u0)) R2). (**)
intro temp; elim temp; clear temp.
intro dans_R1.
absurd (inter (union X V2) V1 empty).
red in |- *.
unfold inter in |- *.
intros (H1, (H2, H3)).
(* Intuition. *)
(*Intros;*)
apply dans_empty_imp_P with A.
prolog [ inmonoid_cons_inv2 Regles_inv1 ] 3.
(*			Intros incl_empty_V1 imp incl_empty_X_V2.*)
(*			Apply dans_empty_imp_P with A. Apply imp. Apply inmonoid_cons_inv2 with v0;Assumption. Apply Regles_inv1 with X R1 (word u0); Assumption. *)
assumption.
trivial.
(**) auto.  prolog [ Derive2 inmonoid_cons_inv ] 10. (*	Intros u0 v0 x Der_Ru imp inmon_cons_x_u0. Apply Derive2. Apply imp. Apply inmonoid_cons_inv with x. Assumption.*)
Qed.

(* Specifications: *)
Lemma inmon_Der_imp_inmon_R2 :
forall u v : Word,
Regles X V2 R2 ->
Derive R2 u v -> inmonoid (union X V2) u -> inmonoid (union X V2) v.