4. Lenguajes y gram´ aticas independientes del contexto 81
4.13. Lema de bombeo para LIC
Demostraci´on. La siguiente tabla muestra las relaciones obtenidas entre k= n´umero de nodos de la trayectoria m´as larga de S=∗⇒w y la longitud de w, en los casosk= 2, k= 3, k= 4 y k= 5. En la tabla se muestran los casos extremos, es decir, los ´arboles con el mayor n´umero posible de nodos.
Se observa que |w|≤2k−2. Una demostraci´on rigurosa del caso general se hace por inducci´on sobrek.
k= n´umero de nodos de Arbol de derivaci´´ on Longitud dew la trayectoria m´as larga
k= 2
S
|w|= 1 = 20= 2k−2
k= 3
S
|w|≤2 = 21= 2k−2
k= 4
S
|w|≤4 = 22= 2k−2
k= 5
S
|w|≤8 = 23= 2k−2
4.13.2 Corolario. Sea G= (V,Σ, S, P) una gram´atica en FNC yw∈Σ∗. (1) Si la longitud de la trayectoria m´as larga en un ´arbol de derivaci´on de S=∗⇒w tiene k+ 2(o menos) nodos, entonces |w|≤2k. Aqu´ık≥0.
4.13. LEMA DE BOMBEO PARA LIC 127 (2) Si|w|>2k (conk≥0) entonces la longitud de la trayectoria m´as larga
en un ´arbol de derivaci´on de S=∗⇒w tiene m´as de k+ 2nodos.
Demostraci´on.
(1) Se sigue inmediatamente del Teorema 4.13.1.
(2) Es la afirmaci´on contra-rec´ıproca de la parte (1).
4.13.3. Lema de bombeo para LIC. Dado un LIC L, existe una cons- tante n(llamada constante de bombeo deL) tal que toda z∈L con|z|> n se puede descomponer en la forma z=uvwxy donde:
(1) |vwx|≤n.
(2) uviwxiy ∈L para todo i≥0.
(3) v̸=λ ´o x̸=λ.
Demostraci´on. SeaG = (V,Σ, S, P) una gram´atica en FNC, con variable inicial no recursiva, tal que L(G) =L. Tal gram´atica existe por los Teore- mas 4.11.1 y 4.11.2. Seak=|V|= n´umero de variables deGyn= 2k. Sea z∈L con|z|> n= 2k. Por la parte (2) del Corolario 4.13.2, la trayectoria m´as larga en el ´arbol de una derivaci´onS =∗⇒ztiene m´as de k+ 2 nodos.
Consideremos los ´ultimosk+ 2 nodos de tal trayectoria (siguiendo el orden que va desde la ra´ız S hasta las hojas del ´arbol). El ´ultimo nodo de esa trayectoria es un terminala∈Σy los restantes k+ 1 nodos son variables.
Como hay s´olokvariables en la gram´atica, entonces hay por lo menos una variable A ̸= S repetida en la trayectoria. Por lo tanto, existen cadenas u, v, w, x, y∈Σ∗ tales que
S =∗⇒uAy, A=∗⇒vAx, A=∗⇒w.
As´ı que
S=∗⇒uAy=∗⇒uvAxy=∗⇒uvwxy =z.
La siguiente gr´afica ilustra la situaci´on:
A
A S
! "# $ ! "# $ ! "# $ ! "# $ ! "# $
u v w x y
Puesto que la trayectoria m´as larga en el ´arbol de derivaci´on de A =∗⇒ vAx=∗⇒vwxtienek+2 nodos o menos, por la parte (1) del Corolario 4.13.2, podemos concluir que |vwx|≤2k=n. Adem´as:
S=∗⇒uAy=∗⇒uvAxy=∗⇒uviAxiy=∗⇒uviwxiy, para todoi≥0.
Obs´ervese que el caso i = 0 corresponde a la derivaci´on S =∗⇒ uAy =∗⇒ uwy.
Finalmente, la derivaci´onA=∗⇒vAx se puede escribir como A=⇒BC=∗⇒vAx
utilizando una producci´on de la forma A → BC como primer paso. Se deduce que u y x no pueden ser ambas λ porque se tendr´ıa BC =∗⇒ A, lo cual es imposible en una gram´atica en FNC (recu´erdese que la ´unica producci´on λ en la gram´atica es, posiblemente,S →λ; peroS no aparece en el cuerpo de ninguna producci´on de G ya que S no es recursiva). Se deduce entonces que v ̸= λ ´o x ̸= λ. Esto demuestra las propiedades (1), (2) y (3) del lema de bombeo.
4.13. LEMA DE BOMBEO PARA LIC 129
✞
✝
☎
Ejemplo✆Demostrar que el lenguaje L = {aibici : i ≥ 0} sobre Σ = {a, b, c} no es un LIC.
Soluci´on. Argumento por contradicci´on. Si L fuera LIC, por el lema de bombeo, existir´ıa una constante de bombeon. Seaz=anbncn; se tiene que z∈L y|z|> n. Por lo tanto, z se puede descomponer comoz=anbncn= uvwxy con las propiedades (1), (2) y (3) del lema de bombeo. Puesto que
|vwx|≤n, en la cadenavwxno pueden aparecer los tres terminalesa,byc simult´aneamente (para que aparezcan los tres terminales simult´aneamente, una subcadena deanbncndebe tener longitud≥n+2). Comov̸=λ´ox̸=λ, se distinguen dos casos:
Caso 1. Alguna de las cadenasv´oxcontiene dos tipos de terminales.
Entonces enuv2wx2y aparecen algunasbes seguidas deaes o algunas ces seguidas de bes. En cualquier caso,uv2wx2y /∈L.
Caso 2. Las cadenasvyxcontienen un s´olo tipo de terminal cada una (o s´olo aes o s´olobes o s´oloces). Como en vwx no aparecen los tres terminalesa,bycsimult´aneamente, en la cadena bombeadauv2wx2y se altera el n´umero de dos de los terminalesa, b, c, a lo sumo, pero no de los tres. Por lo tanto, uv2wx2y /∈L.
Pero el lema de bombeo afirma queuv2wx2y∈L. Esta contradicci´on mues- tra que Lno es un LIC.
✞
✝
☎
Ejemplo✆Demostrar que el lenguajeL={ai:ies primo}sobreΣ={a}
no es un LIC.
Soluci´on. Argumento por contradicci´on. Si L fuera LIC, por el lema de bombeo, existir´ıa una constante de bombeo n. Sea z = am con m primo m > n y m > 2 (m existe porque el conjunto de los n´umeros primos es infinito). Entonces z∈ L y|z|> n. Por lo tanto, z se puede descomponer como z = am = uvwxy con las propiedades (1), (2) y (3) del lema de bombeo.
Sea |u|+|w|+|y|=k; entonces |v|+|x|=m−k ≥1. Por el lema de bombeo, uviwxiy ∈ L para todo i ≥ 0; es decir, |uviwxiy| es primo para todo i≥0. Pero
|uviwxiy|=k+|vi|+|xi|=k+i|v|+i|x|=k+i(|v|+|x|) =k+i(m−k).
(i) Sik= 0, tomandoi=mse obtiene quek+i(m−k) = 0 +i(m−0) = im=mmque no es primo, pues m >2.
(ii) Sik= 1, tomandoi= 0 se obtiene quek+i(m−k) = 1 +i(m−1) = 1 + 0(m−1) = 1 que no es un n´umero primo.
(iii) Si k >1, tomandoi=kse obtiene que
|uvkwxky|=k+k(m−k) =k(1 +m−k),
el cual no es un n´umero primo puesk >1 y comom−k≥1, entonces 1 +m−k≥2.
Por (i), (ii) y (iii) se puede escogeride tal manera que|uviwxiy|no sea un n´umero primo, lo cual contradice que uviwxiy ∈L para todo i≥ 0. Esta contradicci´on muestra queL no es un LIC.
✞
✝
☎ Ejercicios de la secci´on 4.13✆
Utilizar el lema de bombeo para demostrar que los siguientes lenguajes no son LIC:
➀ L={aibicj :j≥i}, sobre Σ={a, b, c}.
➁ L={aibjck : 1≤i≤j≤k}, sobre Σ={a, b, c}.
➂ L={0i12i0i :i≥1}, sobreΣ={0,1}.
➃ L={aibicidi:i≥0}, sobre Σ={a, b, c, d}.
➄ L={aibjcidj :i, j≥0}, sobre Σ={a, b, c, d}.
➅ L=5
ww:w∈{0,1}∗6 .
!➆ L={ai:i es un cuadrado perfecto}.