Particionar um idioma regular infinito em 2 idiomas regulares infinitos separados


9

Dada qualquer linguagem regular infinita eu, como posso provar que eu pode ser particionado em 2 idiomas regulares infinitos separados eu1,eu2? Isso é:eu1eu2=eu, eu1eu2=e eu1 e eu2 são infinitos e regulares.

Até agora, pensei em:

  1. usando o lema de bombeamento tal que

    eu1={xynzn é par}eu2={xymzm é estranho}
    mas não conseguiu provar que eles são unidos ou cobrem eu completamente.
  2. Usando as partições de idioma regulares Σ em classes de equivalência conjuntas, mas ainda não descobri como determinar se uma classe de equivalência é regular ou infinita.

Respostas:


4

Deixei S={|W|:Weu}. O teorema de Parikh mostra queSé um conjunto eventualmente periódico. Seja o período final. Desde aeu é infinito, há algum deslocamento uma de tal modo que uma+kS para todos k0 0. Assim a linguagemeu1={Weu:|W|uma(mod2)}é infinito (contém todas as palavras de comprimento por alguns ), e o idioma também é infinito (contém todas as palavras de comprimento para alguns , bem como possivelmente outras palavras). Vou deixar você mostrar que são regulares.uma+2kk0 0eu2=eueu1a+(2k+1)k0L1,L2


Isso funciona mesmo para linguagens sem contexto.
Yuval Filmus

8

Todo idioma comum é aceito por algum DFA mínimo. Para um idioma regular infinito , vamos chamar de DFA . Considere qualquer estado que podem ser visitados mais de uma vez durante o processamento de uma string em . Se puder ser visitado mais de uma vez, segue-se que ele pode ser visitado inúmeras vezes. Defina e Este é um DFA, portanto, há apenas um caminho. Qualquer string emeuMLqLq

L1={wLq is visited an odd number of times}
L0={wLq is visited an even number of times}
Lé aceito pelo DFA e deve visitar o estado várias vezes (talvez zero). O estado pode ser visitado um número ilimitado de vezes; portanto, sabemos que existem infinitas sequências de caracteres em (já que existem palavras que fazem com que o estado seja visitado 1 vez, 3 vezes etc.) e que existem infinitas sequências de caracteres em (pois existem palavras que causam o estado a ser visitado 0 vezes, 2 vezes, etc.). Qualquer sequência especificada está em ou e não pode estar em ambas, portanto . No entanto, qualquer palavra em é garantido para ser em um destes dois conjuntos, de modo .L1L0L1L0L0L1=LL0L1=eu

Ainda precisamos convencer o OP de que as sub-linguagens são regulares ...
vonbrand 09/02
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.