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:L1∪L2=L, L1∩L2=∅, 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={xynz∣n is even}L2={xymz∣m 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|:w∈L}. 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+kℓ∈S pour tous k≥0. 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={w∈L:|w|≡a(mod2ℓ)}a+2kℓk≥0L2=L∖L1a+(2k+1)ℓk≥0L1,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={w∈L∣q is visited an odd number of times}
L0={w∈L∣q 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 .L1L0L1L0L0∩L1=∅LL0∪L1=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.