Prouver que la langue est régulière ou non régulière

8

Laisser Lêtre une langue régulière. Prouve-le:

  1. L+={w:u|u|=2|w|wuL}

  2. L++={w:u2|u|=|w|wuL}

  3. L+={w:u,v|u|=|w|=|v|uwvL}

sont réguliers et:

  1. L++={uv:w|u|=|w|=|v|uwvL}

n'est pas régulier.

Cela me semble très difficile. Je suppose que 1-3 sont similaires (mais je peux me tromper), mais je ne sais pas comment aborder. L'idée générale est généralement de modifier la machine à états finis pourLd'accepter une autre langue. Mais ces constructions sont souvent très sophistiquées et je ne peux toujours pas les imaginer seules.

xan
la source
doublon possible de Comment prouver qu'une langue n'est pas régulière?
Bartosz Przybylski
Je ne suis pas sûr que vos affirmations soient correctes car il semble d'après le théorème de Myhill-Nerode que les trois premières langues ont une infinité de classes d'équivalence! pour le premier: prendrewi être le i-ème L+ et wi+1 être le (i + 1) -ème mot, puis pour tout ce que je peux choisir ui pour montrer qu'il existe un mot qui sépare les classes de wi et wi+1
Fayez Abdlrazaq Deab
@Fayez Et si, par exemple, L=Σ? alorsL+=Σn'a qu'une seule classe d'équivalence. Passez en revue votre preuve et voyez ce qui ne va pas.
Yuval Filmus
@Bartek et tout autre votant pour clore: la moitié de la question est en fait de prouver que certaines opérations sur les langues conservent la propriété d'être régulières.
Yuval Filmus

Réponses:

5

Voici une preuve que la langue L0={w:u|u|=|w|uwL}est régulier. Il peut être modifié pour montrer que les trois premiers de votre liste sont réguliers. (Notez que j'ai changéwu à uw.) Étant donné un DFA pour L, nous construisons un NFA pour L0. La première chose que fait la NFA est de deviner (prendre unϵ déplacer) un état q, dont la sémantique est l'état selon lequel le DFA pour L finit après avoir lu u. Il exécute ensuite simultanément deux copies du DFA pourL, l'un commençant à l'état de départ et l'autre commençant à q. En lisant un symbolea, il se déplace selon un symbole arbitraire sur le premier, et se déplace selon asur le second. Un état accepte si la première copie est à l'étatq et le second est dans un état acceptant.

Pour le dernier, considérez la langue L=a+b+c+et se croisent L++ avec a+c+.

Yuval Filmus
la source
Je ne vois pas ça. L=a+b+c+L++a+c+={ancm:n+m20}, qui est clairement une langue régulière. Mais je suppose que je me trompe :) Pouvez-vous me montrer la bonne direction?
xan
J'ai réussi à modifier votre construction de L0 et même retirer εse déplace pour devenir plus élégant (à mon avis). Donc les trois premiers problèmes résolus et merci pour ça! :) Mais la seule chose que je vous demande est de clarifier la dernière et mes préoccupations dans le commentaire ci-dessus. Je serais très reconnaissant.
xan
Quand je calcule L++a+c+Je reçois autre chose. Notez que chaque motL doit contenir un b.
Yuval Filmus
Désolé, mais je ne sais pas comment calculer L++a+c+. Je suppose que le résultat est{ancn:nN}ce qui nous donne ce que nous voulons, mais je ne sais tout simplement pas comment le justifier.
xan
Ok, je peux voir maintenant :-)
xan