En la clase de esta semana hemos estado aprendiendo sobre las CFL y sus propiedades de cierre. He visto pruebas de unión, intersección y cumplido, pero para la reversión, mi profesor acaba de decir que está cerrado. Quería ver la prueba, así que he estado buscando durante los últimos días, pero todo lo que he encontrado es que la mayoría de la gente dice que revertir las producciones es suficiente para demostrarlo. Aquellos que se vuelven un poco más formales solo afirman que hay una prueba inductiva fácil que pueden dar. ¿Alguien puede proporcionarme más información / sugerencias sobre la prueba inductiva? Por más que lo intente, no se me ocurre.
fuente
Hay otra forma de ver este problema.
Considere que la Lengua es una CFL. Esto significa que hay una gramática que satisface la CFL. Podemos suponer que esto está en forma normal de Chomsky.L G={N,∑,P,S}
Si es parte del lenguaje, trivialmente también es parte del lenguaje. Ahora, para cada producción de la forma , reemplácela con, y para las producciones de la forma , donde , déjelo igual.ϵ ϵR P1⟶AB P1⟶BA P1⟶a a∈∑
Desde el árbol de análisis de la cadena derivada, es fácil ver que el lenguaje derivado será exactamente el reverso del idioma inicial, ya que la construcción refleja el árbol de análisis original.
fuente
Antes que nada. Las CFL no están cerradas bajo intersección o complemento (o diferencia para el caso). Están cerrados bajo Unión, Concatenación, cierre de estrella de Kleene, sustitución, homomorfismo, homomorfismo inverso e inversión. NOTA: Los dos homomorfismos generalmente no están cubiertos en un curso de introducción a la teoría de computadoras.
Para probar la inversión, Sea L un CFL, con gramática G = (V, T, P, S). Sea L R el reverso de L, de modo que la gramática sea G R = (V, T, P R , S). Es decir, revertir cada producción.
Ex. P -> AB se convertiría en P -> BA
Como G R es un CFG, entonces L (G R ) es un CFL.
fuente