El lenguaje que involucra un número irracional no es una CFL

10

Estoy trabajando en un ejercicio duro en un libro de texto, y no puedo entender cómo proceder. Aquí está el problema. Supongamos que tenemos el lenguaje L={aibj:ijγ,i0,j1} donde γ es un número irracional. ¿Cómo probaría que L no es un lenguaje sin contexto?

En el caso de que γ sea ​​racional, es bastante fácil construir una gramática que acepte el lenguaje. Pero debido a que γ es irracional, realmente no sé qué hacer. No parece que ninguno de los lemas de bombeo funcione aquí. Quizás el teorema de Parikh funcionaría aquí, ya que intuitivamente parecería que este lenguaje no tiene una imagen semilineal de Parikh que lo acompañe.

Este ejercicio es de "Un segundo curso de lenguajes formales y teoría de autómatas" de Jeffrey Shallit, Ejercicio 25 del Capítulo 4.

Realmente agradecería cualquier ayuda, o empujones en la dirección correcta. ¡Gracias!

DW
fuente
¿Has intentado aplicar el teorema de Parikh?
Yuval Filmus
¿Por qué no mostrar que no es semilineal directamente? Usa la definición.
Yuval Filmus
44
¡Justo a tiempo para mi tarea! Gracias. CS 462/662 Idiomas formales y análisis de invierno de 2019, serie de problemas 9, ejercicio 3. Se entregará el viernes 22 de marzo de 2019.
Hendrik ene
@HendrikJan Estoy autodidacta del libro de texto "A Second Course in Formal Languages ​​and Automata Theory" de Jeffrey Shallit. Es el ejercicio 25 del capítulo 4 para su información. ¿Sería posible ocultar esta publicación hasta que finalice la asignación?
Aprecio lo que estaba tratando de hacer y sus buenas intenciones, pero no destruya la pregunta editándola para ocultarla (incluso durante unos días). Gracias. PD: ¡Gracias por acreditar la fuente del problema!
DW

Respuestas:

7

Según el teorema de Parikh, si L tuviera contexto, entonces el conjunto M={(a,b):aγb} sería semilineal, es decir, sería la unión de muchos conjuntos finitos de la forma S=u0+Nu1++Nu , para algunos ui=(ai,bi) .

u0MuiMi>0u0+NuiMNg(S):=max(a0/b0,,a/b)<γg(S)(a,b)Sa/bg(S)

Ahora suponga que es la unión de , y defina . Lo anterior muestra que cada en la unión satisface , y obtenemos una contradicción, ya que .MS(1),,S(m)g=max(g(S(1)),,g(S(m)))<γ(a,b)a/bg<γsup{a/b:(a,b)M}=γ


Cuando es racional, la prueba falla, y de hecho es semilineal: De hecho, por construcción, cualquier par en el lado derecho satisface (ya que ). Por el contrario, suponga que . Mientras que y , restar de . Eventualmente (ya que implicaγM

{(a,b):astb}=a=0s1(a,tsa)+N(s,t)+N(0,1).
(a,b)astbs=sttastbasbt(s,t)(a,b)a<sb<tastb<s) Como , necesariamente . Por lo tanto, podemos restar de hasta llegar a .astbbtsa(0,1)(a,b)(a,tsa)

Yuval Filmus
fuente
Buena respuesta. Solo una aclaración, la lógica detrás de "cada satisface " es que si no hubiera un , entonces podríamos construir ¿an tal que es tan grande como se desea y, por lo tanto, más grande que ? a / b g ( S ) ( a , b ) > g ( S ) ( x , y ) S x / y γ(a,b)Sa/bg(S)(a,b)>g(S)(x,y)Sx/yγ
No, esto se deduce directamente de la definición de . Su argumento explica por qué . g ( S ) < γg(S)g(S)<γ
Yuval Filmus
6

Todas las variables, excepto en esta respuesta, representan un número entero positivo. Es bien sabido que dado un irracional , hay una secuencia de números racionales modo que esté más cerca de que cualquier otro número racional menor que cuyo denominador sea menor que .γγ>0a1b1<a2b2<a3b3<<γaibiγγbi


¡Resulta que el lema de bombeo funciona!

En aras de la contradicción, dejemos que sea ​​la longitud de bombeo de como un lenguaje sin contexto. Sea , una palabra que es pero "apenas". Tenga en cuenta que . Considere , donde y para todo .pLs=aapbbpL|s|>bpps=uvwxy|vx|>1sn=uvnwxnyLn0

Deje y ser el número de sy s en respectivamente.tatbabvx

  • Si o , para suficientemente grande, la relación entre el número de s y el de s en será mayor que , es decir, .tb=0tatb>γnabsnγsnL
  • De lo contrario, . Desde , . Por lo tanto, Desde , que dice que .tatb<γtb<bptatb<apbpaptabptb>apbpbptb<bpaptabptb>γ,s0L

La contradicción anterior muestra que no puede estar libre de contexto.L


Aquí hay dos ejercicios más fáciles relacionados.

Ejercicio 1. Demuestre que no está libre de contexto donde es un número irracional.Lγ={aiγ:iN}γ

Ejercicio 2. Demuestre que tiene contexto, donde es un número racional.Lγ={aibj:ijγ,i0,j0}γ

John L.
fuente
La propiedad en la respuesta se puede probar simplemente seleccionando todos los números racionales que están más cerca de que todos los números anteriores en la lista de todos los números racionales que son más pequeños que en el orden de denominadores crecientes y, para los mismos denominadores, en orden creciente. γγγ
John L.
La construcción habitual es tomar convergentes de la fracción continua.
Yuval Filmus
@YuvalFilmus Sí, estoy de acuerdo. Por otro lado, esa prueba de casi una línea es mucho más simple y accesible. (El "orden creciente" en mi último mensaje debería ser "orden decreciente".)
John L.