Partitionner une langue régulière infinie en 2 langues régulières infinies disjointes


9

Étant donné une langue régulière infinie L, comment puis-je prouver que L peut être partitionné en 2 langages réguliers infinis disjoints L1,L2? C'est:L1L2=L, L1L2=, et L1 et L2 sont à la fois infinies et régulières.

Jusqu'à présent, j'ai pensé à:

  1. en utilisant le lemme de pompage de telle sorte que

    L1={xynzn is even}L2={xymzm is odd}
    mais n'a pas pu prouver qu'ils sont dijoints ou couvrants L complètement.
  2. Utilisation des partitions de langue standard Σ en classes d'équivalence dijointes, mais je n'ai pas compris comment déterminer si une classe d'équivalence est régulière ou infinie.

Réponses:


4

Laisser S={|w|:wL}. Le théorème de Parikh montre queSest un ensemble éventuellement périodique. Que l'éventuelle période soit. DepuisL est infini, il y a un certain décalage a tel que a+kS pour tous k0. Ainsi la langue est infini (il contient tous les mots de longueur pour certains ), et le langage est également infini (il contient tous mots de longueur pour certains , ainsi que éventuellement d'autres mots). Je vous laisse montrer que sont tous deux réguliers.L1={wL:|w|a(mod2)}a+2kk0L2=LL1a+(2k+1)k0L1,L2


Cela fonctionne même pour les langues sans contexte.
Yuval Filmus

8

Chaque langue régulière est acceptée par un DFA minimal. Pour un langage régulier infini , appelons un tel DFA . Considérons tout état qui peut être visité plus d'une fois lors du traitement de la ficelle dans . Si peut être visité plusieurs fois, il s'ensuit qu'il peut être visité un certain nombre de fois. Définir et Il s'agit d'un DFA, il n'y a donc qu'un seul chemin. Toute chaîne enLMLqLq

L1={wLq is visited an odd number of times}
L0={wLq is visited an even number of times}
Lest accepté par le DFA et doit visiter l'État un certain nombre de fois (peut-être zéro). L'État peut être visité un nombre illimité de fois; par conséquent, nous savons qu'il existe une infinité de chaînes dans (car il y a des mots qui provoquent la visite de l'état 1 fois, 3 fois, etc.) et qu'il existe une infinité de chaînes dans (car il y a des mots qui provoquent la à visiter 0 fois, 2 fois, etc.). Une chaîne donnée est soit dans ou , et ne peut pas être dans les deux, donc . Cependant, tout mot dans est assuré d'être dans l' un de ces deux ensembles, de sorte .L1L0L1L0L0L1=LL0L1=L

Encore faut-il convaincre OP que les sous-langues sont régulières ...
vonbrand
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.