Lema de bombeo

18
Lema de Bombeo Bayron Rubén De León Pérez 12-0542 Josué Augusto Puntiel Mena 13-0972 Profesora Rina Familia Lenguajes Formales y Teoría de Autómatas Universidad Iberoamericana (UNIBE) Santo Domingo, República Dominicana 25 de Febrero del 2014|

Transcript of Lema de bombeo

Page 1: Lema de bombeo

Lema de Bombeo

Bayron Rubén De León Pérez 12-0542

Josué Augusto Puntiel Mena 13-0972

Profesora Rina Familia

Lenguajes Formales y Teoría de Autómatas

Universidad Iberoamericana (UNIBE)

Santo Domingo, República Dominicana

25 de Febrero del 2014|

Page 2: Lema de bombeo

Índice

Introducción …………………………………………………………………………………..…...…… 3

Lenguaje Regular ………………………………………………………………………………..……… 4

Importancia de los Lenguajes Regulares ……………………………………………………………… 5

Cómo Demostrar que un Lenguaje no es Regular …………………………………………………… 5

El lema de bombeo para los lenguajes regulares ………………………………………………..…… 5

Teorema……………………………………………………………………………………………...…… 6

Demostración de que un lenguaje no es regular ……………………………………………………… 7

Ejemplo de demostración de que un lenguaje no es regular …………………………………...…… 8

El Lema de Bombeo para los Lenguajes Regulares ……………………………………….………… 9

Demostración…………………………………………………………………………………...…...…… 9

El Lema de Bombeo como un juego entre adversarios ……………………………………..……… 11

Aplicaciones del Lema de Bombeo ……………………………………………………………..…… 11

Definición de las Gramáticas Independientes del Contexto………………………………..………. 12

El Lema de Bombeo para lenguajes independientes del contexto ………………………………… 13

El Tamaño de los Árboles de Derivación……………………………………………………….…… 14

Enunciado del Lema de Bombeo ………………………………………………………………..…… 15

Demostración……………………………………………………….……………………………...…… 15

Conclusión……………………………………………………..…………………………………..…… 17

Referencias………………………………………………………………………..………………..…… 18

Page 3: Lema de bombeo

Introducción

La teoría de autómatas es el estudio de dispositivos de cálculo abstractos, es decir, de las

“máquinas”. En las décadas de los años cuarenta y cincuenta, una serie de investigadores

estudiaron las máquinas más simples, las cuales todavía hoy denominamos “autómatas finitos”.

Originalmente, estos autómatas se propusieron para modelar el funcionamiento del cerebro y,

posteriormente, resultaron extremadamente útiles para muchos otros propósitos.

Todos estos desarrollos teóricos afectan directamente a lo que los expertos en

computadoras hacen. Algunos de los conceptos, como el de autómata finito y determinados tipos

de gramáticas formales, se emplean en el diseño y la construcción de importantes clases de

software.

El lema de bombeo para lenguajes regulares enuncia una propiedad que cumplen todos

los lenguajes regulares infinitos (y también algunos lenguajes que no son regulares). Gracias a

este lema podremos demostrar que ciertos lenguajes infinitos no son regulares. Es importante

hacer notar que el lema de bombeo es una herramienta adecuada para demostrar que un lenguaje

no es regular, pero no lo será para demostrar que un lenguaje si es regular (por el hecho de que

existen algunos lenguajes no regulares que la cumplen). Por tanto, si un lenguaje no cumple el

lema de bombeo no es regular, pero si lo cumple no podremos decir si es o no regular.

Page 4: Lema de bombeo

Lenguaje Regular

Se dice que un lenguaje es regular si y sólo si se cumple cualquiera de las

siguientes proposiciones:

Tiene al menos una gramática regular G que lo produce.

Puede ser reconocido por un autómata finito A.

Existe una expresión regular Er que representa a todas las cadenas de L.

Lenguaje regular. En Lingüística, Matemáticas e Informática y en la jerarquía de

Chomsky se refiere a los lenguajes de tipo 3, aquellos que pueden representarse

mediante gramáticas regulares, autómatas finitos o expresiones regulares.

Son los lenguajes formales más simples, con los mecanismos de representación y

reconocimiento más estudiados. Su aplicación práctica en la teoría y construcción

de intérpretes y compiladores de lenguajes de programación o

de especificación o formato de información, especialmente como microcomponentes

del analizador lexicográfico que detecta los tókenes como constantes numéricas, cadenas

de texto, operadores, palabras reservadas (keywords), separadores, etc. Pero también se

puede apreciar su uso en máquinas expendedoras, teléfonos públicos, calculadoras y otros

artefactos electromecánicos.

También puede realizarse una definición recursiva-constructiva de los lenguajes

regulares mediante el álgebra de lenguajes formales.

Un lenguaje regular sobre un alfabeto T ó LR(T) es:

El lenguaje vacío {}.

El lenguaje conformado por la cadena vacía o lenguaje trivial.

Un lenguaje {x} conformado por un único símbolo x de T.

Si A y B son lenguajes regulares sobre T, entonces AB (Concatenación de

lenguajes), Archivo: A unión B.gif (Unión de lenguajes), A* (Clausura de

lenguaje o Estrella de Kleene) son también lenguajes regulares sobre T.

Cualquier otro lenguaje que pueda obtenerse a partir de 1 a 4.

Page 5: Lema de bombeo

Importancia de los Lenguajes Regulares

La existencia y formalización de los lenguajes regulares (LR) y su vinculación con otros

artefactos lingüísticos-matemáticos ya bien formalizados, estudiados e incluso llevados a la

práctica ha sido de vital importancia en el ulterior desarrollo de los mecanismos de

procesamiento de lenguajes de computadora, fundamentalmente en los analizadores

lexicográficos gracias a la posibilidad de derivar el reconocimiento de los LR mediante

autómatas finitos que son fáciles de implementar computacionalmente con mecanismos simples

y rápidos, óptimos en la obtención de parsers veloces y robustos que a su vez le ofrecen a los

desarrolladores información detallada de los errores léxicos, sintácticos e incluso advierten sobre

errores semánticos.

Lo mismo sucede por ejemplo con las expresiones regulares implementadas ya en

muchos Lenguaje de programación de propósito general modernos que permiten a los

desarrolladores de lenguajes mecanismos muy eficientes para la obtención intuitiva de partes de

compiladores que reconocen los tókenes o partículas lexicales del código fuente como fase del

proceso completo de interpretación o compilado, según sea el caso

Cómo Demostrar que un Lenguaje no es Regular

No todo lenguaje es un lenguaje regular. El lema de bombeo permite demostrar que

determinados lenguajes no son regulares.

El lema de bombeo para los lenguajes regulares

El lema de bombeo para lenguajes regulares enuncia una propiedad que cumplen todos

los lenguajes regulares infinitos (y también algunos lenguajes que no son regulares). Gracias a

este lema podremos demostrar que ciertos lenguaje infinitos no son regulares. Es importante

hacer notar que el lema de bombeo es una herramienta adecuada para demostrar que un lenguaje

no es regular, pero no lo será para demostrar que un lenguaje si es regular (por el hecho de que

existen algunos lenguajes no regulares que la cumplen). Por tanto, si un lenguaje no cumple el

lema de bombeo no es regular, pero si lo cumple no podremos decir si es o no regular.

Considerando el lenguaje L01 = {0n1n | n≥1}. Este lenguaje contiene las cadenas 01,

0011, 000111, etc., que constan de uno o más ceros seguidos de un número igual de unos.

Page 6: Lema de bombeo

Establecemos que L01 no es un lenguaje regular. El argumento intuitivo es que si L01

fuera regular, entonces L01 sería el lenguaje de algún AFD A, que tendría un

determinado número de estados, digamos k estados. Imagine que este autómata recibe k

ceros como entrada. Después de recibir los k+1 prefijos de la entrada: ε,0,00,...,0k se

encontrará en un cierto estado. Dado que sólo existen k estados distintos, el principio del

juego de las sillas nos dice que después de leer dos prefijos diferentes, por ejemplo, 0i y

0j, A tiene que encontrarse en el mismo estado, por ejemplo q.

Sin embargo, en lugar de esto, suponemos que después de leer i o j ceros, el

autómata A comienza a recibir unos como entrada. Después de recibir i unos, debe

aceptar si previamente ha recibido i ceros, pero no si ha recibido j ceros. Puesto que

estaba en el estado q cuando comenzaron a llegar unos, no puede “recordar” si había

recibido i o j ceros, por lo que podemos “engañar” a A y hacerle cometer un error: aceptar

cuando no debe hacerlo o no aceptar cuando debería hacerlo.

El argumento anterior es de carácter informal, pero puede precisarse. Sin

embargo, puede llegarse a la misma conclusión, que el lenguaje L01 no es un lenguaje

regular, utilizando un resultado general de la forma siguiente.

Teorema

El lema de bombeo para lenguajes regulares) Sea L un lenguaje regular. Existe entonces

una constante n (que depende de L) tal que para toda cadena w perteneciente a L con |w| ≥n,

podemos descomponer w en tres cadenas,

W = xyz, tales que:

y ≠ ε (o dicho de otro modo, que |y| ≥ 1),

|xy| <= n

Para cualquier k ≥ 0, la cadena xyk

z pertenece a L.

Page 7: Lema de bombeo

Más formalmente:

∀ lenguaje regular infinito L sobre un alfabeto Σ

∃ n ∈ N /

∀ w ∈ L / |w| ≥ n

∃ x, y ,z ∈ Σ* / w = xyz, y ≠ ε, |xy| <= n,

∀ k ≥ 0, xyk

z ∈ L

O sea que para cualquier cadena de L lo bastante larga, siempre podremos encontrar una

partición en tres subcadenas, con una no vacía en el medio (la y) que no está demasiado lejos del

comienzo de la palabra, que podremos “bombear”; es decir, que si se repite la subcadena y

cualquier número de veces, la cadena resultante también pertenecerá a L.

Demostración de que un lenguaje no es regular

Dado que para todo lenguaje regular infinito se cumple el lema de bombeo, si se da un

lenguaje infinito y se demuestra que para él no se cumple, se habra demostrado que no es un

lenguaje regular. Como el lema de bombeo es una propiedad que se cumple para todas las

cadenas de longitud mayor o igual a cierta n, bastará encontrar una cadena de ese lenguaje, de

longitud mayor o igual a esa n, que no se pueda “bombear” para demostrar que el lenguaje no es

regular. Con esta idea en mente, los pasos a dar para demostrar que un lenguaje dado no es

regular son los siguientes:

1. Elegir una palabra w que pertenezca al lenguaje dado. Podemos elegir cualquier palabra

del lenguaje, pero debe ser una cuya longitud sea mayor o igual que una constante n que

desconocemos (la constante del lema de bombeo). Como desconocemos n, lo habitual será elegir

una palabra en función de un n cualquiera y cuya longitud sea mayor o igual que n.

Page 8: Lema de bombeo

2. El lema de bombeo dice que si el lenguaje fuera regular, podríamos encontrar una forma

de partir esa palabra w en tres, cumpliendo ciertas restricciones, y que esa partición sería

bombeable. Como queremos demostrar que el lenguaje no es regular, tendremos que demostrar

que no hay ninguna forma de partir la palabra en tres cumpliendo las restricciones del lema, y

que después se pueda bombear siempre.

3. Finalmente bastará con encontrar una constante k ≥ 0 que haga que ninguna de las

particiones posibles de w sea bombeable.

Más formalmente, para demostrar que un lenguaje L sobre un alfabeto Σ no es regular

habrá que demostrar que:

∀ n ∈ N

∃ w ∈ L / |w| ≥ n,

∀ x, y ,z ∈ Σ* / w = xyz, y ≠ ε, |xy| <= n,

∃ k ≥ 0 / xyk

z ∉ L

Es importante hacer notar que en esta demostración, por reducción al absurdo, de que un

lenguaje no es regular, los cuantificadores existenciales “para todo” y “existe” están alternados al

revés que en el enunciado del lema. Esto es, intuitivamente, porque se esta demostrando lo

contrario que el lema de bombeo: éste enuncia una propiedad que cumplen todos los lenguajes

regulares y la demostración precedente demuestra que un lenguaje no es regular, o sea que no

cumple esa propiedad.

Ejemplo de demostración de que un lenguaje no es regular

Sea el lenguaje L = {a2nbn | n ≥ 0}. Demostrar que L no es regular.

Suponiendo que el lenguaje es regular. Si lo es, y como es infinito, para él se cumplirá el

lema de bombeo. Sea por tanto n ∈ N la constante del lema de bombeo para L (constante que no

se conoce).

Page 9: Lema de bombeo

Eligiendo una palabra que pertenezca a L y de longitud mayor o igual a n:

w = a2n

bn

, tenemos que w ∈ L y |w| = 3n y por tanto |w| ≥ n, sea cual sea n.

El Lema de Bombeo para los Lenguajes Regulares

Considerando el lenguaje L01 = {0n1n | n ≥ 1}. Este lenguaje contiene las cadenas 01,

0011, 000111, etc., que constan de uno o más ceros seguidos de un número igual de unos.

Establecemos que L01 no es un lenguaje regular. El argumento intuitivo es que si L01 fuera

regular, entonces L01 sería el lenguaje de algún AFD A, que tendría un determinado número de

estados, digamos k estados. Imaginar que este autómata recibe k ceros como entrada. Después de

recibir los k+1 prefijos de la entrada: ε ,0,00, . . . ,0k se encontrará en un cierto estado.

Dado que sólo existen k estados distintos, el principio del juego de las sillas nos dice que

después de leer dos prefijos diferentes, por ejemplo, 0i y 0j, A tiene que encontrarse en el mismo

estado, por ejemplo q.

Sin embargo, en lugar de esto, se supone que después de leer i o j ceros, el autómata A

comienza a recibir unos como entrada. Después de recibir i unos, debe aceptar si previamente ha

recibido i ceros, pero no si ha recibido j ceros. Puesto que estaba en el estado q cuando

comenzaron a llegar unos, no puede “recordar” si había recibido i o j ceros, por lo que podemos

“engañar” a A y hacerle cometer un error: aceptar cuando no debe hacerlo o no aceptar cuando

debería hacerlo.

El argumento anterior es de carácter informal, pero puede precisarse. Sin embargo, puede

llegarse a la misma conclusión, que el lenguaje L01 no es un lenguaje regular, utilizando un

resultado general de la forma siguiente.

Demostración

Supongamos que L es regular. Entonces L =L(A) para algún AFD A. Supongamos que A

tiene n estados. Consideremos ahora cualquier cadena w de longitud n o mayor, por ejemplo w =

a1a2 · · ·am, donde m ≥ n y cada ai es un símbolo de entrada. Para i = 0,1, . . . ,n definimos el

estado pi como _ δ (q0,a1a2 · · ·ai), donde δ es la función de transición de A y q0 es el estado

Page 10: Lema de bombeo

inicial de A. Es decir, pi es el estado en que se encuentra A después de leer los primeros i

símbolos de w. Observe que p0 = q0.

Por el principio del juego de las sillas, no es posible que los n+1 pi para i = 0,1, . . . ,n

sean diferentes, ya que sólo existen n estados distintos. Por tanto, podemos determinar dos

enteros distintos i y j, con 0 ≤ i< j ≤ n, tales que pi = pj . Ahora podemos descomponer w = xyz

como sigue:

1. x = a1a2 · · ·ai.

2. y = ai+1ai+2 · · ·aj .

3. z = aj+1aj+2 · · ·am.

Es decir, x lleva a pi una vez; y lleva desde pi a pi de nuevo (ya que pi también es pj) y z

es el resto de w.

Considerando ahora lo que ocurre si el autómata A recibe la entrada xykz para cualquier k

≥ 0. Si k = 0, entonces el autómata va desde el estado inicial q0 (que también es p0) hasta pi para

la entrada x. Puesto que pi también es pj , al leer la entrada z. Por tanto, A acepta xz.

Si k > 0, entonces A va desde q0 hasta pi para la entrada x, va en círculo desde pi hasta pi

k veces para la entrada yk, y luego pasa al estado de aceptación para la entrada z. Por tanto, para

cualquier k ≥ 0, A también acepta xykz; es decir, xykz pertenece a L.

Page 11: Lema de bombeo

El Lema de Bombeo como un juego entre adversarios

Un teorema cuya proposición implica varias alternativas de cuantificadores “para todo” y

“existe” puede interpretarse como un juego entre dos personas. El lema de bombeo es un ejemplo

importante de este tipo de teorema, ya que implica cuatro identificadores diferentes:

“para todos los lenguajes L existe n tal que para toda w perteneciente a L con |w| ≥ n

existe xyz igual a w tal que · · · ”. Podemos interpretar la aplicación del lema de bombeo como un

juego en el que:

1. El jugador 1 selecciona el lenguaje L para demostrar que no es regular.

2. El jugador 2 selecciona n, pero no revela al jugador 1 lo que vale n; el jugador 1 debe

plantear el juego para todos los n posibles.

3. El jugador 1 selecciona w, que puede depender de n y cuya longitud tiene que ser al

menos igual a n.

4. El jugador 2 divide w en x, y y z, teniendo en cuenta las restricciones que se estipulan

en el lema de bombeo; y _=ε y |xy| ≤ n. De nuevo, el jugador 2 no dice al jugador 1 qué valores

tienen x, y y z, aunque debe respetar las restricciones.

5. El jugador 1 “gana” eligiendo un valor de k, que puede ser una función de n, x,y y z, tal

que xykz no pertenezca a L.

Aplicaciones del Lema de Bombeo

Demostrar que el lenguaje Leq que consta de todas las cadenas con un número igual de

ceros que de unos (en ningún orden en particular) no es un lenguaje regular. Siendo el jugador 1

y se debe enfrentar con cualquier elección que haga el jugador 2. Suponiendo que n es la

constante que existiría si Leq fuera regular, de acuerdo con el lema de bombeo; es decir, el

“jugador 2” elige n. El jugador 1 selecciona w = 0n1n, es decir, n ceros seguidos de n unos, una

cadena que seguramente pertenece a Leq.

Page 12: Lema de bombeo

Ahora el “jugador 2” divide w en xyz. Todo lo que sabemos es que y _= ε y |xy| ≤ n. Sin

embargo, dicha información es muy útil y “gana” de la forma siguiente. Dado que |xy| ≤ n y que

xy procede del principio de w, se sabe que x e y constan sólo de ceros. El lema de bombeo nos

dice que xz pertenece a Leq, si Leq es regular.

Esta conclusión corresponde al caso en que k = 0 en el lema de bombeo. Sin embargo, xz

tiene n unos, ya que todos los unos de w están en z. Pero xz también tiene menos de n ceros,

porque hemos perdido los ceros de y.

Puesto que y _= ε , se sabe que no puede haber más de n−1 ceros entre x y z. Por tanto,

después de suponer que Leq es un lenguaje regular, se ha demostrado un hecho que se sabe que

es falso, que xz pertenece a Leq.

Se Tiene una demostración por reducción al absurdo del hecho de que Leq no es regular.

Definición de las Gramáticas Independientes del Contexto

Existen cuatro componentes importantes en una descripción gramatical de un lenguaje:

1. Un conjunto finito de símbolos que forma las cadenas del lenguaje que se está

definiendo. Este conjunto era {0,1} en el ejemplo de los palíndromos que acabamos de ver.

Denominamos a este conjunto alfabeto terminal o alfabeto de símbolos terminales.

2. Un conjunto finito de variables, denominado también en ocasiones símbolos no

terminales o categorías sintácticas. Cada variable representa un lenguaje; es decir, un conjunto

de cadenas. En el ejemplo anterior, sólo había una variable, P, que hemos empleado para

representar la clase de palíndromos del alfabeto {0,1}.

3. Una de las variables representa el lenguaje que se está definiendo; se denomina

símbolo inicial. Otras variables representan las clases auxiliares de cadenas que se emplean para

definir el lenguaje del símbolo inicial. En el ejemplo anterior, la única variable, P, también es el

símbolo inicial.

4. Un conjunto finito de producciones o reglas que representan la definición recursiva de

un lenguaje. Cada producción consta de:

Page 13: Lema de bombeo

a) Una variable a la que define (parcialmente) la producción. Esta variable a menudo se

denomina cabeza de la producción.

b) El símbolo de producción→.

c) Una cadena formada por cero o más símbolos terminales y variables. Esta cadena,

denominada cuerpo de la producción, representa una manera de formar cadenas pertenecientes al

lenguaje de la variable de la cabeza. De este modo, dejamos los símbolos terminales invariables

y sustituimos cada una de las variables del cuerpo por una cadena que sabemos que pertenece al

lenguaje de dicha variable.

Los cuatro componentes que acabamos de describir definen una gramática independiente

del contexto, (GIC), o simplemente una gramática, o en inglés CFG, context-free grammar. Se

representa una GIC G mediante sus cuatro componentes, es decir, G = (V,T,P,S), donde V es el

conjunto de variables, T son los símbolos terminales, P es el conjunto de producciones y S es el

símbolo inicial.

El Lema de Bombeo para lenguajes independientes del contexto

Si se considera el lenguaje de los palíndromos. Un palíndromo es una cadena que se lee

igual de izquierda a derecha que de derecha a izquierda, como por ejemplo, otto o

dabalearrozalazorraelabad (“Dábale arroz a la zorra el abad”). Dicho de otra manera, la cadena w

es un palíndromo si y sólo si w = wR. Para hacer las cosas sencillas, consideremos únicamente

los palíndromos descritos con el alfabeto {0,1}. Este lenguaje incluye cadenas del tipo 0110,

11011 y ε , pero no cadenas como 011 o 0101.

Es fácil verificar que el lenguaje Lpal de los palíndromos formados por ceros y unos no

es un lenguaje regular. Para ello, utilizamos el lema de bombeo. Si Lpal es un lenguaje regular,

sea n la constante asociada y consideremos el palíndromo w = 0n10n. Si Lpal es regular,

entonces podemos dividir w en w = xyz, tal que y consta de uno o más ceros del primer grupo.

Por tanto, xz, que también tendría que pertenecer a Lpal si Lpal fuera regular, tendría menos

ceros a la izquierda del único 1 que los que tendría a la derecha del mismo. Por tanto, xz no

puede ser un palíndromo. Luego hemos llegado a una contradicción de la hipótesis establecida,

que Lpal es un lenguaje regular.

Page 14: Lema de bombeo

Existe una definición recursiva y natural que nos dice cuándo una cadena de ceros y unos

pertenece a Lpal . Se parte de un caso básico estableciendo que unas cuantas cadenas obvias

pertenecen a Lpal , y luego se aplica la idea de que si una cadena es un palíndromo, tiene que

comenzar y terminar con el mismo símbolo. Además, cuando el primer y último símbolos se

eliminan, la cadena resultante también tiene que ser un palíndromo. Es decir,

Base. ε , 0 y 1 son palíndromos.

Paso Inductivo. Si w es un palíndromo, también lo son 0w0 y 1w1. Ninguna cadena es

un palíndromo de ceros y unos, a menos que cumpla el caso base y esta regla de inducción.

Una gramática independiente del contexto es una notación formal que sirve para expresar

las definiciones recursivas de los lenguajes. Una gramática consta de una o más variables que

representan las clases de cadenas, es decir, los lenguajes. En este ejemplo sólo necesitamos una

variable P, que representa el conjunto de palíndromos; ésta es la clase de cadenas que forman el

lenguaje Lpal . Existen reglas que establecen cómo se construyen las cadenas de cada clase. La

construcción puede emplear símbolos del alfabeto, cadenas que se sabe que pertenecen a una de

las clases, o ambos elementos.

El teorema, conocido como “lema de bombeo para lenguajes independientes del

contexto”, establece que en cualquier cadena lo suficientemente larga de un LIC, es posible

encontrar a los sumo dos subcadenas cortas y muy próximas que pueden “bombearse” en

tándem. Es decir, se puede repetir ambas cadenas i veces, para cualquier entero i, y la cadena

resultante pertenecerá al lenguaje.

El Tamaño de los Árboles de Derivación

El primer paso para obtener un lema de bombeo para los LIC consiste en examinar la

forma y el tamaño de los árboles de derivación. Una de las aplicaciones de la FNC es transformar

los árboles de derivación en árboles binarios. Estos árboles tienen propiedades interesantes y

aquí vamos a aprovechar una de ellas.

Page 15: Lema de bombeo

Enunciado del Lema de Bombeo

El lema de bombeo para los LIC es bastante similar al lema de bombeo para los lenguajes

regulares, pero se descomponen cada cadena z del LIC L en cinco partes y bombeamos en

tándem la segunda y la cuarta partes.

Lema de bombeo para los lenguajes independientes del contexto. Sea L un LIC. Entonces

existe una constante n tal que si z es cualquier cadena de L tal que |z| es al menos n, entonces

podemos escribir z = uvwxy, sujeta a las siguientes condiciones:

1. |vwx| ≤ n. Es decir, la parte central no es demasiado larga.

2. vx _= ε . Puesto que v y x son las partes que se van a “bombear”, esta condición

establece que al menos una de las cadenas que se van a bombear no tiene que ser vacía.

3. Para todo i ≥ 0, uviwxiy pertenece a L. Es decir, las dos cadenas v y x pueden

“bombearse” cualquier número de veces, incluyendo cero, y la cadena resultante pertenecerá a L.

Demostración

El primer paso consiste en determinar una gramática G en la forma normal de Chomsky

para L. Técnicamente, no se puede determinar tal gramática si L es el LIC /0 o {ε }. Sin embargo,

si L = /0 entonces el enunciado del teorema, que establece que una cadena z de L no puede

violarse, ya que no existe dicha cadena z en / 0. Además la gramática en la FNC G generará L−{ε

}, pero de nuevo esto no es importante, ya que sin dudas se seleccionara n > 0, en cuyo caso z no

puede ser ε de ninguna manera.

Page 16: Lema de bombeo

Se parte de una gramática en la FNC G = (V,T,P,S) tal que L(G) = L−{ε } y suponiendo

que G tiene m variables. Se Elige n = 2m. A continuación, se supone que z de L tiene una

longitud al menos igual a n. Un árbol de derivación así no puede tener un resultado z, porque z es

demasiado larga. Por tanto, cualquier árbol de derivación con resultado z tiene un camino de

longitud al menos igual a m+1.

La cadena w es el resultado del subárbol con raíz en Aj . Las cadenas v y x son las

cadenas a la izquierda y a la derecha, respectivamente, de w en el resultado del subárbol más

largo con raíz en Ai. Observe que, dado que no existen producciones unitarias, v y x no pueden

ser ambas ε , aunque una sí podría serlo. Por último, u e y son aquellas partes de z que están a la

izquierda y a la derecha, respectivamente, del subárbol con raíz en Ai.

Si Ai = Aj = A, entonces se puede construir nuevos árboles de derivación a partir del árbol

original. Primero se puede reemplazar el subárbol con raíz en Ai, lo que da como resultado vwx,

por el subárbol con raíz en Aj , que tiene como resultado w. La razón de poder hacer esto es que

ambos árboles tienen A como raíz.

El detalle que queda es la condición (1), que establece que |vwx| ≤ n. Sin embargo,

elegimos Ai cerca de la parte inferior del árbol; es decir, k−i ≤ m. Por tanto, el camino más largo

en el subárbol con raíz en Ai no es mayor que m+1. De acuerdo con el Teorema 7.17, el subárbol

con raíz en Ai tiene un resultado cuya longitud no es mayor que 2m = n.

Page 17: Lema de bombeo

Conclusión

El lema de bombeo para las expresiones regulares es una simplificación de un resultado

de los lenguajes independientes del contexto obtenido por Bar- Hillel, Perles y Shamir

Si un lenguaje es regular, entonces toda cadena lo suficientemente larga del lenguaje tiene

una subcadena no vacía que puede ser “bombeada”, es decir, repetida cualquier número de veces

siempre y cuando las cadenas resultantes pertenezcan también al lenguaje. Este hecho puede

utilizarse para demostrar que muchos lenguajes no son regulares.

El lema de bombeo. En cualquier LIC, es posible encontrar, dentro de cualquier cadena lo

suficientemente larga del lenguaje, una subcadena corta tal que los dos extremos de dicha

subcadena puedan ser “bombeados” en tándem; es decir, cada uno de ellos puede repetirse el

número de veces que se desee. Las dos cadenas que van a bombearse no pueden ser ambas ε .

Este lema, y su versión más potente, conocida como el lema de Ogden permiten demostrar que

muchos lenguajes no son independientes del contexto.

Page 18: Lema de bombeo

Referencias

Conocimiento con todos y para todos (S.F). Lenguaje Regular. Recuperado el 20 de Febrero del

2014 de: http://www.ecured.cu/index.php/Lenguaje_regular

Elena Jurado Málaga (2008). Teoría de Automatas. Recuperado el 22 de Febrero del 2014 de:

http://campusvirtual.unex.es/ebooks/files/file/TeoriaAutomatas.pdf

Rubén Béjar Hernández (S.F). El lema de bombeo para lenguajes regulares. Recuperado el 21 de

Febrero del 2014 de: http://webdiis.unizar.es/asignaturas/LGA

John E. Hopcroft (S.F). Teoría de autómatas, lenguajes y computación. Recuperado el 20 de

Febrero del 2014 de:

http://computacion.cs.cinvestav.mx/~efranco/docencia/teoriacomputacional/files/books/T

eoriaDeAutomatas,lenguajesYComputacion-Hopcroft.pdf