Mientras realizaba la tarea actual para mis cursos formales de idiomas y autómatas, me quedé atascado en ejercicios que involucran idiomas unarios (espero que sea el término correcto), es decir, idiomas que se basan en una sola letra. Sin embargo, no quiero preguntar sobre los ejercicios específicos, sino sobre una conjetura mucho más general que se me ocurre:
Deje y L = { a f ( n ) ∈ Σ ∗ : n ∈ N 0 } . Mi conjetura es: L es regular ⇔ ∃ x , y ∈ N 0 : f ( n ) = x ⋅ n + y
¿Esta pregunta ha visto algún tratamiento científico antes? ¿Es "obviamente" verdadero / falso?
Respuestas:
Lineal está cerca, pero el término técnico que está buscando es semilineal: es decir, una unión finita de conjuntos lineales.
La mitad de la prueba de esto es un corolario del Teorema de Parikh , que dice que cualquier lenguaje sin contexto tiene un mapa Parikh semi-lineal (es decir, el conjunto de vectores que contienen las ocurrencias de cada letra en el alfabeto).
Para un idioma unario, el mapa parikh del idioma es el idioma en sí (es decir, cada palabra se identifica de forma única por la cantidad de letras que tiene), por lo que cada idioma regular unario es semi-lineal.
La otra mitad de la prueba muestra que puede construir un lenguaje regular que contenga cada conjunto semi-lineal unario. Esto requiere un poco de trabajo, pero no es demasiado difícil si usa expresiones regulares:
fuente
fuente