intros u v Regles_R2 Der_R2.
elim Der_R2.
intros; prolog [ inmonoid_cons_inv Regles_inv2 inmonoid_Append ] 3.
(*	Intros u0 v0 A dans_R2 inmonoid_cons_A_v0. Apply inmonoid_Append. Apply Regles_inv2 with R2 A;Assumption. Apply inmonoid_cons_inv with A; Assumption.*)
intros; prolog [ inmonoid_cons_inv2 inmonoid_cons_inv inmonoid_cons ] 4.
(*Intros u0 v0 x Der_R2_u0 imp inmon_cons_x_u0. Apply inmonoid_cons. Apply imp. Apply inmonoid_cons_inv with x;Assumption.  Apply inmonoid_cons_inv2 with u0;Assumption.*)
Qed.

(* Specifications: *)
Lemma inmon_Der_imp_inmon_2 :
forall u v : Word,
isGram X V1 R1 S1 ->
isGram X V2 R2 S2 ->
inter V1 V2 empty ->
inmonoid (union X V2) u -> Derive Ru u v -> inmonoid (union X V2) v.