intros X V R a u R_R dans_a_V inmonoid_u_X_V_u.
red in |- *.
intros x dans_x_R'.
cut (couple a (word u) = x :>Elt \/ dans x R). (**)
intuition.
(*	Intro egal_x_couple.*)
exists a.
assumption.
exists u; auto.
(**)apply dans_add; assumption. Qed.  Lemma Regles_add2 : forall (X V R : Ensf) (a : Elt), Regles X V R -> Regles X (add a V) R. intros. apply Regles_V with V; auto. Qed.   Lemma Regles_union : forall X V R R' : Ensf, Regles X V R -> Regles X V R' -> Regles X V (union R R').  unfold Regles in |- *. intros X V R R' R_R R_R' x dans_x_union. cut (dans x R \/ dans x R'); auto. intros [HR| HR']; auto. Qed.  Lemma isGram_inclus2 : forall (X V R R' : Ensf) (S : Elt), inclus R' R -> isGram X V R S -> isGram X V R' S. prolog [ isGram4 Regles_R isGram3 isGram2 isGram1 isGram5 ] 11.  (*Intros X V R R' S incl isGram_X_V_R_S. Apply isGram5 . Apply isGram1 with V R S; Assumption. Apply isGram2 with R S; Assumption. Apply isGram3 with X R; Assumption. Apply Regles_R with R. Assumption. Apply isGram4 with S; Assumption.*)
Qed.

Lemma isGram_inclus3 :
forall (X V R : Ensf) (S a : Elt), isGram X V (add a R) S -> isGram X V R S.