unfold Derivestar in |- *.
intros G_1 G_2 inter_V1_V2_empty u v Derivestar_Ru.
pattern u, v in |- *.
apply Derivestar_Ru.
auto. (*Intros.
Apply Rstar_reflexive.*)
intros u0 v0 w Der_Ru inmon_v0_imp_Rstar_R2_v0 inmon_u0.
apply Rstar_R with v0.
prolog [ sym_inter isGram2 inter_union isGram4 inmon_Der_imp_Der2 ] 4.
(*Apply inmon_Der_imp_Der2. Apply isGram4 with S1;Assumption. Apply isGram4 with S2;Assumption. Apply inter_union. Apply isGram2 with R1 S1; Assumption. Apply sym_inter;Assumption. Assumption. Assumption.*)
prolog [ inmon_Der_imp_inmon_2 ] 3.
(*Apply inmon_v0_imp_Rstar_R2_v0. Apply inmon_Der_imp_inmon_2 with u0;Assumption.*)
Qed.

Lemma Gunion_isGram :
forall S : Elt,
isGram X V1 R1 S1 -> isGram X V2 R2 S2 -> dans S Vu -> isGram X Vu Ru S.