(************************************************************************)
(*									*)
(*          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_reg1 : forall (q qa d : Ensf) (l : wordset) (g0 : Elt) (w : Word), automate q (singleton g0) qa d -> (forall w : Word, chemin g0 g0 q d w -> w = nil :>Word) -> eqwordset (reconnait q (singleton g0) qa d) l -> reconnait_A q (singleton g0) (singleton g0) (fun_d_dstar g0 qa d) w -> lstar l w.