unfold Derivestar in |- *.
intros N_dans_X N_dans_V1 N_dans_V2 G_1 G_2 inter_V1_V2_empty u v
Derivestar_Ru.
pattern u, v in |- *.
apply Derivestar_Ru.
auto.
intros u0 v0 w Der_Ru inmon_v0_imp_Rstar_R1_v0 inmon_u0.
apply Rstar_R with v0;
prolog
[ isGram2 inter_union isGram4 inmon_Der_imp_Der_d inmon_Der_imp_inmon_d ]
4.
(*Apply Rstar_R with v0 inmon_v0_imp_Rstar_R1_v0 inmon_Der_imp_inmon_d. Apply inmon_Der_imp_Der_d. Assumption. Assumption. Assumption. Apply isGram4 with S1;Assumption. Apply isGram4 with S2;Assumption. Apply inter_union. Apply isGram2 with R2 S2; Assumption. Assumption. Assumption. Assumption.  Apply inmon_v0_imp_Rstar_R1_v0. Apply inmon_Der_imp_inmon_d with u0;Assumption.*)
Qed.

Lemma inmon_Der_imp_Der_d2 :
~ dans S X ->
~ dans S V1 ->
~ dans S V2 ->
Regles X V1 R1 ->
Regles X V2 R2 ->
inter (union X V2) V1 empty ->
forall u v : Word, Derive Ru u v -> inmonoid (union X V2) u -> Derive R2 u v.