Para cada gramática libre de contexto existe un autómata finito con pila no-determinista que acepta el mismo lenguaje, es decir, .
La comprobación es constructiva.
Sea una gramática libre de contexto.
Podemos convertir la gramática en su forma normal de Greibach (FNG), es decir todas las producciones son del tipo: con y o la producción es si .
Construimos un AFPND
,
(es decir, con un sólo estado) que acepta con pila vacía, donde
Entonces, el autómata simula en un cálculo la aplicación de las reglas de la gramática siempre siguiendo la derivación más a la izquierda para la palabra en cuestión.
Ejemplo:
Para cada autómata finito con pila no-determinista existe una gramática libre de contexto que genera el mismo lenguaje, es decir, .
La comprobación es constructiva.
Sea un AFPND.
Si podemos convertir el autómata en un AFPND que acepte con pila vacía.
Luego podemos asumir que todas las transiciones del autómata como mucho apilan dos símbolos a la pila, porque podemos introducir estados intermedios que apilan poco a poco todos los símbolos necesarios sin leer más de la entrada, en concreto,
Entonces, asumimos que tengamos un AFPND que acepta con pila vacía y que apile en una transición como mucho dos símbolos a la vez.
Construimos una gramática libre de contexto , es decir, con los mismos símbolos de entrada, y donde
Entonces, la gramática simula un cálculo del autómata con una derivación más a la izquierda para la palabra en cuestión.
Formalmente hay que comprobar la equivalencia
La comprobación del lado izquierdo al lado derecho se realice mediante una inducción sobre la longitud de una derivación más a la izquierda y la otra dirección mediante una inducción sobre la longitud del cálculo. El caso inicial, es decir, se aplica solamente una regla o se calcula solamente una configuración siguiente, se verifica directamente a partir de la construcción.