Tema 3 Propiedades de los lenguajes independientes de contexto 3.1. Lema de Bombeo 3.2. Propiedades de cierre de la clase de los lenguajes I.C. 3.2.1. Cierre bajo Unión. 3.2.2. Cierre bajo Concatenación. 3.2.3. Cierre bajo Clausura. 3.2.4. Cierre bajo Reverso. 3.3. Propiedades de decisión de los lenguajes I.C. Propiedades de los lenguajes independientes de contexto Lema de Bombeo Lema.- Sea G = (N, Σ, P, S ) en FNC. Si el árbol de derivación de x ∈ Σ* no contiene caminos de longitud mayor que i, | x | ≤ 2 i - 1. Demostración.- Inducción en i. Base: i = 1 S Hipótesis: Sup. resultado cierto para valor menor que i a Se cumple |a| = 1 ≤ 2 1 - 1 Paso: Sea un árbol con camino de longitud i. S A B La primera producción es de tipo S Ø AB T1 T2 x1 x2 La longitud máxima de los caminos de T1 y T2 es como máximo i - 1. Aplicando la hipótesis, |x| = | x1 | + | x2 | ≤ 2 i - 2 + 2 i - 2 = 2 i - 1. 3.1. Lema de Bombeo ∀ L de tipo 2, ∃ n > 0: ∀z ∈L con | z | ≥ n, ∃ u, v, w, x, y : z = uvwxy con | vx | ≥ 1, | vwx |≤ n y se cumple uviwxiy ∈ L, ∀i ≥ 0. Demostración. Sea G = (N, Σ, P, S ) en FNC con |N | = k, tal que L(G) = L. Sea n = 2k y sea z ∈ L con | z | ≥ n. Veamos que z puede ser factorizada: • Como | z | ≥ 2k existe un árbol con camino de longitud ≥ k + 1. • Como |N | = k algún no terminal (a altura menor que k + 1) en ese camino está repetido. A A x2 x3 x4 Se tiene A Ø x2 A x4 y A Ø x3 por lo que A Ø x2i x3 x4i además | x2 x4 | ≥ 1 y | x2 x3 x4 | ≤ 2k = n El árbol de derivación de x es: S A A x1 x2 x3 x4 x5 Haciendo x1= u x2 = v x3 = w x4 = x x5 = y se tiene lo propuesto • Si un lenguaje no cumple el lema de bombeo no es incontextual. Ejemplo: Demostrar que L = {0i1j2k : k ≥ 0 } no es incontextual. 3.2. Propiedades de cierre de la clase de los lenguajes I.C. • La clase de los lenguajes independientes de contexto es cerrada bajo la Unión (L1 , L2 son de tipo 2 ⇒ L1 ∪ L2 es de tipo 2) Sean G1 = (N1, Σ, P1, S1 ) tal que L(G1) = L1, G2 = (N2, Σ, P2, S2 ) tal que L(G2) = L2 con N1 ∩ N2 = ∅. Construimos G = (N, Σ, P, S ) con N = N1 ∪ N2 ∪ {S}, S ∉ N1 ∪ N2 . P = P1 ∪ P2 ∪ {S Ø S1 | S2}. L(G) = L1 ∪ L2 • La clase de los lenguajes indep. de contexto es cerrada bajo la Concatenación (L1 , L2 son de tipo 2 ⇒ L1⋅L2 es de tipo 2) Sean G1 = (N1, Σ, P1, S1 ) tal que L(G1) = L1, G2 = (N2, Σ, P2, S2 ) tal que L(G2) = L2 con N1 ∩ N2 = ∅. Construimos G = (N, Σ, P, S ) con N = N1 ∪ N2 ∪ {S}, S ∉ N1 ∪ N2 . P = P1 ∪ P2 ∪ {S Ø S1⋅S2}. L(G) = L1 ⋅ L2 • La clase de los lenguajes independ. de contexto es cerrada bajo Clausura (L es de tipo 2 ⇒ L* es de tipo 2) Sea G = (N1, Σ, P1, S1 ) tal que L(G1) = L, Construimos G = (N, Σ, P, S ) con N = N1 ∪ {S}, S ∉ N1. P = P1 ∪ {S Ø S1S | λ }. L(G) = L* • La clase de los lenguajes independ. de contexto es cerrada bajo Reverso (L es de tipo 2 ⇒ L r es de tipo 2) Sean G = (N1, Σ, P1, S1 ) tal que L(G1) = L, Construimos G = (N1, Σ, P, S1 ) con P = {A Øαr : A Øα ∈ P1 }, L(G) = L r • La clase de los lenguajes indep. de contexto NO es cerrada bajo la Intersección (L1 , L2 son de tipo 2 ⇒ L1 ∩ L2 es de tipo 2) Sea L1 = {0i 1i 2j : i, j ≥ 0} L1 = L(G1) con G1 : S Ø AB A Ø 0A1 | λ B Ø 2B | λ Sea L2 = {0i 1j 2j : i, j ≥ 0} L2 = L(G2) con G2 : S Ø AB A Ø 0A | λ B Ø 1B2 | λ L1 ∩ L2 = {0i 1i 2i : i ≥ 0} La intersección de un lenguaje independiente de contexto y un regular es I. C. • La clase de los lenguajes indep. de contexto NO es cerrada bajo Complementación (L1 es de tipo 2 ⇒ L1 es de tipo 2) Demostración. Supongamos que sí es cerrada. Como L1 ∩ L2 = L1 ∪ L2 la intersección sería cerrada, en contra de lo demostrado anteriormente. Ejercicio. Demostrar que la clase de los lenguajes indep. de contexto NO es cerrada bajo la diferencia. Ejercicio. ¿Es la clase de los lenguajes indep. de contexto cerrada bajo homomorfismo?. Ejercicio. ¿Es la clase de los lenguajes indep. de contexto cerrada bajo sustitución incontextual?. 3.3. Propiedades de decisión de los lenguajes I.C. Un problema es decidible si existe un algoritmo que, ante cualquier instancia del mismo, responde si o no. Los siguientes problemas (entre otros) no son decidibles: • Ambigüedad de las gramáticas independientes de contexto. • Equivalencia entre dos gramáticas independientes de contexto. • Averiguar si el complementario de un lenguaje independiente de contexto también lo es. Problemas que son decidibles Averiguar si el lenguaje generado por una gramática independiente de contexto es (no es) vacío es decidible. L(G) ≠ ∅ ⇔ S es generativo Averiguar si el lenguaje generado por una gramática independiente de contexto es (no es) finito es decidible. Algoritmo: A partir de G = (N, Σ, P, S ) en FNC, construimos grafo dirigido con: • Los auxiliares como nodos. • Si A Ø BC ∈ P hay un arco de A a B y otro de A a C. • L = L(G) es infinito si y solo si en el grafo anterior hay un ciclo. Ejemplo: ¿Son finitas las siguientes gramáticas? S Ø AB | 0 A Ø BB | BC | 1 B Ø CC | 0 C Ø AS | 1 S Ø AB | 0 A Ø BB | BC | 1 B Ø CC | 0 CØ1