(************************************************************************)
(*									*)
(*          Si l est regulier alors l* est aussi regulier.      	*)
(*									*)
(************************************************************************)

Definition transition_back (g0 x : Elt) : Elt := couple x (couple epsilon g0).Definition delta (g0 : Elt) (qa : Ensf) : Ensf := map (transition_back g0) qa.Definition fun_d_dstar (g0 : Elt) (qa d : Ensf) : Ensf :=
  union d (delta g0 qa).

Lemma lstar_is_reg2_bis : forall (q qa d : Ensf) (g0 e1 e2 : Elt) (w : Word) (l : wordset), automate q (singleton g0) qa d -> eqwordset (reconnait q (singleton g0) qa d) l -> (forall w : Word, chemin g0 g0 q d w -> w = nil :>Word) -> chemin_A q (fun_d_dstar g0 qa d) e1 e2 w -> e2 = g0 :>Elt -> chemin e1 e2 q d w \/ (exists e : Elt, (exists w1 : Word, (exists w2 : Word, chemin e1 e q d w1 /\ dans e qa /\ lstar l w2 /\ w = Append w1 w2 :>Word))).