unfold eqwordset in |- *.
intros.
elim (H0 w); clear H0; intros.
elim (H w); clear H; intros.
auto.
Qed.
(*									*)
(*  Le predicat islangage, defini sur les wordset, dit simplement	*)
(*  que les mots du wordset sont sur l'alphabet alph.			*)
(*									*)
Definition islanguage (X : Ensf) (L : wordset) : Prop :=
forall w : Word, L w -> inmonoid X w.
(*									*)
(*  Extension aux mots d'une fonction definie sur les elements		*)
(*									*)
(* Fixpoint Word_ext [f : Elt -> Elt; w:Word] : Word := (<Word>Case w of (* nil  *) nil (* cons *) [a:Elt][w':Word](cons (f a) (Word_ext f w')) end ). *)
Fixpoint Word_ext (f : Elt -> Elt) (w : Word) {struct w} : Word :=
match w with
| nil => nil
| cons a w' => cons (f a) (Word_ext f w')
end.

Lemma inmonoid_map :
forall (f : Elt -> Elt) (a : Ensf) (w : Word),
inmonoid a w -> inmonoid (map f a) (Word_ext f w).