intros X V1 R1 u v Regles_R1 Der_R1.
elim Der_R1;
prolog
[ Regles_inv2 inmonoid_cons_inv inmonoid_cons_inv2 inmonoid_cons
inmonoid_Append ] 10.
(*Intros u0 v0 A dans_R1 inmonoid_cons_A_v0. Apply inmonoid_Append. Apply Regles_inv2 with R1 A;Assumption. Apply inmonoid_cons_inv with A; Assumption.  Intros u0 v0 x Der_R1_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.
(*  (Derivestar R u v) signifie "u se recrit en v par zero ou plusieurs productions de R" *)
Definition Derivestar (R : Ensf) := Rstar Word (Derive R).
Hint Unfold Derivestar.

(* Specifications: *)
Lemma Derivestar_refl : forall (R : Ensf) (u : Word), Derivestar R u u.
auto.