red in |- *.
simple induction x.
intros.
apply sym_equal.
apply wef_nil with f.
auto.
intros x0 w0. intros.
cut
(exists x : Elt,
(exists2 w : Word, cons x w = y & f x = f x0 /\ wef w = wef w0)).
intro temp; elim temp; clear temp.
intro e.
intro temp; elim temp; clear temp.
intro r.
intros y_egal temp.
elim temp; clear temp.
intros.
rewrite <- y_egal.
apply cons_cons.
apply Hyp. (*; Auto.*)
apply inmonoid_cons_inv2 with w0; assumption.
apply inmonoid_cons_inv2 with r; rewrite y_egal; assumption.
auto.
apply H.
apply (inmonoid_cons_inv E w0 x0); assumption.
apply (inmonoid_cons_inv E r e); rewrite y_egal; assumption.
auto.
(*Resolution du Cut*)
unfold wef in |- *.
(*	Apply wef_cons.*)
auto.
Qed.
Hint Resolve is_mono_f_imp_is_mono_words.

Lemma is_epi_f_imp_is_epi_words : is_epi E F f -> is_epi_words E F wef.
intro temp; elim temp; clear temp.