unfold Regles in |- *.
intros X V R V' inclus_V_V' Regles_X_V_R x dans_x_R.
elim (Regles_X_V_R x dans_x_R).
intros A dans_A_V temp; elim temp; clear temp.
intros B egal_B inmonoid_B.
exists A.
auto.
exists B.
assumption.
apply inmonoid_inclus with (union X V); auto.
Qed.

(* Specifications: *)
Lemma Regles_add :
forall (X V R : Ensf) (a : Elt) (u : Word),
Regles X V R ->
dans a V -> inmonoid (union X V) u -> Regles X V (add (couple a (word u)) R).