La estrella de Kleene de un lenguaje unario infinito siempre produce un lenguaje regular

8

Deje , donde y para todo .L={ann0}a0=ϵan=an1an1

Por lo tanto, consiste en secuencias de de todas las longitudes, incluida una secuencia de longitud . Deje ser cualquier subconjunto infinito de . Necesito mostrar que siempre existe un DFA para reconocer .La0L2LL2

Si es un subconjunto finito, es muy obvio ya que sería un DFA y, por lo tanto, al cierre de Kleene, sería reconocido por un DFA. Pero no puedo obtenerlo para un subconjunto infinito ya que puede no expresarse como DFA cuando, por ejemplo, las longitudes de cadena son primas.L2L2L2L2

Aditya Nambiar
fuente

Respuestas:

8

Supongamos que hay dos palabras en el idioma cuyas longitudes son relativamente primas. Deje que estas longitudes sean e . Sabemos (vea esto ) que al sumar estos números entre sí repetidamente, podemos obtener cualquier número mayor que . Entonces, si e son y , podemos escribir cualquier número mayor que como una combinación lineal de y . Lo que esto significa para nosotros: consiste en un lenguaje finito arbitrario (regular, como todos los idiomas finitos), en unión con el idiomaxy(x1)(y1)1xy13772713L2{wa|a|>(x1)(y1)1}. Este idioma es regular ya que es el idioma de todas las palabras con un conjunto finito de palabras eliminado. Como es una unión de lenguajes regulares, también debe ser regular.L2

Si todas las palabras en tienen longitudes que comparten un máximo factor común (llame a este factor común ), entonces repita el argumento anterior, pero en lugar de usar longitudes de cadena, use longitudes de cadena divididas por . En este caso, será la concatenación de un lenguaje finito arbitrario (regular) y el idioma , también regular (ya que $ (a ^ m) ^ * es regular y estamos eliminando finitamente muchas palabras de él).L2mmL2{w(am)|w|>m2[(x/m1)(y/m1)1]}

Por ejemplo, suponga que todas las palabras en tienen un MCD de 2, y el lenguaje contiene las palabras y . Tenemos , e , que son relativamente primos. Por lo tanto, sabemos que podemos obtener cualquier palabra cuya longitud sea múltiplo de si la longitud es mayor que concatenando y .La4a10m=2x/m=4/2=2y/m=10/2=5mm2[(x/m1)(y/m1)1]=22[(21)(51)1]=(4)(3)=12a4a10

Patrick87
fuente