Demostrar que L(M) = L(G) usando equivalencia entre derivacion y configuraciones del PDA
Fuente: Parcial 2 — SI2002-1 7309 (2025-1)
Enunciado
Para cualquier z,y∈Σ∗, γ∈N∗, y A∈N:
AnGzγ
a traves de la derivacion por la izquierda, si y solo si:
(q,zy,A)nL(q,y,γ)
Demostrar que L(M)=L(G).
La intuicion: cada paso de derivacion es un paso del PDA y viceversa
Nos dan un lema que dice que derivar en la gramatica es lo mismo que computar en el PDA: cada paso de derivacion izquierda A⇒zγ corresponde exactamente a un paso de computacion (q,zy,A)⊢(q,y,γ). La demostracion de L(M)=L(G) es usar ese lema en ambas direcciones.
Para ver que L(G)⊆L(M): si una cadena w esta en el lenguaje de la gramatica, hay una derivacion S⇒∗w. El lema traduce esa derivacion en una computacion del PDA que arranca con w en la entrada y S en la pila, y termina con entrada y pila vacias. Eso es exactamente aceptar por pila vacia.
Para ver que L(M)⊆L(G): si el PDA acepta w, hay una computacion que vacia la pila. El lema en la direccion inversa traduce esa computacion en una derivacion S⇒∗w en la gramatica. Ambas inclusiones juntas dan la igualdad L(M)=L(G).
Lema (dado)
∀z,y∈Σ∗,γ∈N∗,A∈N:AnGzγ(izq.)⟺(q,zy,A)nM(q,y,γ)
Parte 1: L(G)⊆L(M)
Sea w∈L(G). Entonces ∃n:
SnGw(derivacion izquierda)
con w∈Σ∗. Tomando A=S, z=w, γ=ε, y=ε en el lema (⇒):
SnGwε⟹(q,w,S)nM(q,ε,ε)
M acepta w por pila vacia. ∴w∈L(M).
Parte 2: L(M)⊆L(G)
Sea w∈L(M). Entonces ∃n:
(q,w,S)nM(q,ε,ε)
Tomando A=S, z=w, γ=ε, y=ε en el lema (⇐):
(q,w,S)nM(q,ε,ε)⟹SnGw
∴w∈L(G).
Conclusion
L(G)⊆L(M)∧L(M)⊆L(G)⟹L(M)=L(G)■
Automata
Solucion
Contexto
Dada una gramatica libre de contexto G=(N,Σ,P,S), el NPDA M construido a partir de G (conversion estandar) tiene un solo estado q, acepta por pila vacia, y usa Γ=N∪Σ como alfabeto de pila con S como simbolo inicial.
La gramatica G
El NPDA M construido a partir de G
Se nos da el siguiente lema (sin demostracion):
Lema: Para cualquier z,y∈Σ∗, γ∈N∗, y A∈N:
AnGzγ (por derivacion izquierda)⟺(q,zy,A)nM(q,y,γ)
Demostracion de L(M)=L(G)
Debemos mostrar dos inclusiones.
Parte 1: L(G)⊆L(M)
Sea w∈L(G). Entonces existe una derivacion:
S∗Gw
Toda derivacion en una CFG puede reordenarse como una derivacion por la izquierda (propiedad fundamental de las CFG). Por lo tanto existe n tal que:
SnGw(derivacion por la izquierda)
Aqui w∈Σ∗ es una cadena de terminales, asi que podemos escribir w=zγ donde z=w y γ=ε (cadena vacia de no terminales, ya que w no contiene no terminales).
Aplicando el lema con A=S, z=w, γ=ε, y eligiendo y=ε:
SnGwε=w⟹(q,wε,S)nM(q,ε,ε)
Es decir:
(q,w,S)nM(q,ε,ε)
El PDA M empieza con la entrada w, el simbolo de pila S, y llega a una configuracion con entrada consumida y pila vacia. Por lo tanto, M acepta w por pila vacia.
Luego w∈L(M). ✓
Parte 2: L(M)⊆L(G)
Sea w∈L(M). Entonces el PDA M acepta w por pila vacia, es decir:
(q,w,S)∗M(q,ε,ε)
Esto significa que existe n tal que:
(q,w,S)nM(q,ε,ε)
Aplicando el lema en la direccion inversa (⇐) con A=S, y=ε, γ=ε, y z=w:
(q,wε,S)nM(q,ε,ε)⟹SnGwε=w(derivacion izquierda)
Por lo tanto, S∗Gw, lo que significa que w∈L(G). ✓
Conclusion
L(G)⊆L(M) y L(M)⊆L(G)⟹L(M)=L(G)
■
Verificacion interactiva
Para ilustrar la correspondencia, veamos como M procesa la cadena 01:
Observacion
La clave de esta demostracion es el lema que establece una correspondencia biyectiva entre los pasos de derivacion izquierda en G y los pasos de computacion en M. Esto refleja la construccion del NPDA: cada transicion del PDA simula exactamente un paso de derivacion izquierda de la gramatica.