stringtranslate.com

Lema de bombeo para lenguajes libres de contexto

En informática , en particular en teoría del lenguaje formal , el lema de bombeo para lenguajes libres de contexto , también conocido como lema de Bar-Hillel , [1] es un lema que otorga una propiedad compartida por todos los lenguajes libres de contexto y generaliza el lema de bombeo para los lenguajes regulares .

El lema de bombeo puede utilizarse para construir una refutación por contradicción de que un lenguaje específico no es libre de contexto. Por el contrario, el lema de bombeo no es suficiente para garantizar que un lenguaje sea libre de contexto; existen otras condiciones necesarias, como el lema de Ogden o el lema de intercambio .

Declaración formal

Idea de prueba: Si es suficientemente largo, su árbol de derivación con respecto a una gramática de la forma normal de Chomsky debe contener algún no terminal dos veces en algún camino del árbol (imagen superior). Al repetir la parte de derivación ⇒...⇒ se obtiene una derivación para (imagen inferior izquierda y derecha para y , respectivamente).

Si un lenguaje es libre de contexto, entonces existe algún entero (llamado "longitud de bombeo") [2] tal que cada cadena en que tenga una longitud de o más símbolos (es decir, con ) se puede escribir como

con subcadenas y , tales que

1. ,
2. , y
3. para todos .

A continuación se muestra una expresión formal del Lema de Bombeo.

Declaración informal y explicación

El lema de bombeo para lenguajes libres de contexto (llamado simplemente "el lema de bombeo" en el resto de este artículo) describe una propiedad que se garantiza que tienen todos los lenguajes libres de contexto.

La propiedad es una propiedad de todas las cadenas en el lenguaje que tienen una longitud de al menos , donde es una constante, llamada longitud de bombeo , que varía entre lenguajes independientes del contexto.

Say es una cadena de longitud al menos la que está en el lenguaje.

El lema de bombeo establece que se puede dividir en cinco subcadenas, , donde no está vacío y la longitud de es como máximo , de modo que repetir y la misma cantidad de veces ( ) en produce una cadena que todavía está en el lenguaje. A menudo es útil repetir cero veces, lo que elimina y de la cadena. Este proceso de "bombeo" con copias adicionales de y es lo que le da al lema de bombeo su nombre.

Los lenguajes finitos (que son regulares y, por lo tanto, independientes del contexto) obedecen el lema de bombeo de manera trivial al tener igual a la longitud máxima de la cadena en más uno. Como no hay cadenas de esta longitud, no se viola el lema de bombeo.

Uso del lema

El lema de bombeo se utiliza a menudo para demostrar que un lenguaje dado L no es libre de contexto, mostrando que existen cadenas arbitrariamente largas s en L que no se pueden "bombear" sin producir cadenas fuera de L.

Por ejemplo, si es infinito pero no contiene una progresión aritmética (infinita) , entonces no es independiente del contexto. En particular, ni los números primos ni los números cuadrados son independientes del contexto.

Por ejemplo, se puede demostrar que el lenguaje no es libre de contexto utilizando el lema de bombeo en una prueba por contradicción . Primero, supongamos que L es libre de contexto. Por el lema de bombeo, existe un entero p que es la longitud de bombeo del lenguaje L. Consideremos la cadena en L. El lema de bombeo nos dice que s se puede escribir en la forma , donde u, v, w, x e y son subcadenas, tales que , , y para cada entero . Por la elección de s y el hecho de que , se ve fácilmente que la subcadena vwx no puede contener más de dos símbolos distintos. Es decir, tenemos una de cinco posibilidades para vwx :

  1. Para algunos .
  2. para un poco de j y k con
  3. Para algunos .
  4. para algunos j y k con .
  5. Para algunos .

En cada caso, se verifica fácilmente que no contiene cantidades iguales de cada letra para ningún . Por lo tanto, no tiene la forma . Esto contradice la definición de L . Por lo tanto, nuestra suposición inicial de que L es independiente del contexto debe ser falsa.

En 1960, Scheinberg demostró que no es libre de contexto utilizando un precursor del lema de bombeo. [3]

Si bien el lema de bombeo es a menudo una herramienta útil para demostrar que un lenguaje dado no es libre de contexto, no proporciona una caracterización completa de los lenguajes libres de contexto. Si un lenguaje no satisface la condición dada por el lema de bombeo, hemos establecido que no es libre de contexto. Por otro lado, hay lenguajes que no son libres de contexto, pero que aún así satisfacen la condición dada por el lema de bombeo, por ejemplo

para s = b j c k d l con p. ej. j ≥1 elija vwx para que consista solo en b ' s, para s = a i b j c j d j elija vwx para que consista solo en a ' s; en ambos casos todas las cadenas bombeadas todavía están en L . [4]

Referencias

  1. ^ Kreowski, Hans-Jörg (1979). "Un lema de bombeo para lenguajes de grafos libres de contexto". En Claus, Volker; Ehrig, Hartmut ; Rozenberg, Grzegorz (eds.). Gramáticas de grafos y su aplicación a la informática y la biología. Apuntes de clase en informática. Vol. 73. Berlín, Heidelberg: Springer. págs. 270–283. doi :10.1007/BFb0025726. ISBN 978-3-540-35091-0.
  2. ^ Berstel, Jean; Lauve, Aaron; Reutenauer, Christophe; Saliola, Franco V. (2009). Combinatoria de palabras. Palabras de Christoffel y repeticiones en palabras (PDF) . Serie de monografías CRM. Vol. 27. Providence, RI: American Mathematical Society . pág. 90. ISBN. 978-0-8218-4480-9.Zbl 1161.68043  .(Ver también [www-igm.univ-mlv.fr/~berstel/ sitio web de Aaron Berstel)
  3. ^ Stephen Scheinberg (1960). "Nota sobre las propiedades booleanas de los lenguajes libres de contexto" (PDF) . Información y control . 3 (4): 372–375. doi : 10.1016/s0019-9958(60)90965-7 .Aquí: Lema 3, y su uso en las páginas 374-375.
  4. ^ John E. Hopcroft, Jeffrey D. Ullman (1979). Introducción a la teoría de autómatas, lenguajes y computación. Addison-Wesley. ISBN 0-201-02988-X.Aquí: secc.6.1, p.129