Closure Properties of General Grammars -- Formally Verified
Dvorak, Blanchette
We formalized general (i.e., type-0) grammars using the Lean 3 proof assistant. We defined basic notions of rewrite rules and of words derived by a grammar, and used grammars to show closure of the class of type-0 languages under four operations: union, reversal, concatenation, and the Kleene star. The literature mostly focuses on Turing machine arguments, which are possibly more difficult to formalize. For the Kleene star, we could not follow the literature and came up with our own grammar-based construction.
academic
Propiedades de Clausura de Gramáticas Generales -- Formalmente Verificadas
Este artículo formaliza las gramáticas generales (es decir, gramáticas de tipo-0) utilizando el asistente de pruebas Lean 3. Los autores definen conceptos fundamentales de reglas de reescritura y palabras derivadas por gramáticas, y demuestran mediante gramáticas que la clase de lenguajes de tipo-0 es cerrada bajo cuatro operaciones: unión, inversión, concatenación y estrella de Kleene. La literatura se enfoca principalmente en argumentos con máquinas de Turing, que pueden ser más difíciles de formalizar. Para la estrella de Kleene, los autores no pudieron seguir la literatura y propusieron su propia construcción basada en gramáticas.
Importancia de la teoría de lenguajes formales: Los conceptos de lenguajes formales son fundamentales en la informática y pueden ser reconocidos mediante múltiples formalismos, incluyendo máquinas de Turing y gramáticas formales
Equivalencia entre gramáticas de tipo-0 y máquinas de Turing: Las máquinas de Turing y las gramáticas generales caracterizan la misma clase de lenguajes recursivamente enumerables o lenguajes de tipo-0
Limitaciones del trabajo de formalización existente: Existe abundante trabajo sobre la formalización de máquinas de Turing en asistentes de pruebas, pero el trabajo de formalización de gramáticas generales es relativamente escaso
Ventajas de las gramáticas: Las gramáticas generales son más fáciles de definir que las máquinas de Turing, y ciertas pruebas sobre gramáticas generales son mucho más simples que las pruebas de propiedades análogas para máquinas de Turing
Importancia de las propiedades de clausura: Las propiedades de clausura de los lenguajes de tipo-0 son resultados fundamentales en la teoría de lenguajes formales
Necesidad de verificación formal: Se requieren pruebas verificadas por máquina para garantizar la corrección de estos resultados fundamentales
Primera formalización de gramáticas generales: Definición completa en Lean 3 de conceptos y operaciones fundamentales de gramáticas de tipo-0
Pruebas formalizadas de cuatro propiedades de clausura:
Clausura bajo unión
Clausura bajo inversión
Clausura bajo concatenación
Clausura bajo estrella de Kleene
Construcción innovadora de la estrella de Kleene: Debido a la falta de construcción basada en gramáticas en la literatura, los autores inventaron su propio método de construcción fundamentado en gramáticas
Marco abstracto reutilizable: Desarrollo de la estructura lifted_grammar para reducir código duplicado y proporcionar patrones de prueba genéricos
Base de código Lean de código abierto de aproximadamente 12,500 líneas: Proporciona una implementación formal completa para uso de la comunidad
def grammar_transforms (g : grammar T) (w1 w2 : list (symbol T g.nt)) : Prop :=
∃ r : grule T g.nt,
r ∈ g.rules ∧
∃ u v : list (symbol T g.nt),
w1 = u ++ r.input_L ++ [symbol.nonterminal r.input_N] ++ r.input_R ++ v ∧
w2 = u ++ r.output_string ++ v
Las gramáticas superan a las máquinas de Turing: Para pruebas de propiedades de clausura, las gramáticas pueden ser más convenientes que las máquinas de Turing
Viabilidad de la formalización: Resultados complejos de la teoría de lenguajes pueden formalizarse exitosamente en asistentes de pruebas modernos
Importancia de la abstracción: Las abstracciones bien diseñadas (como lifted_grammar) son cruciales para la formalización a gran escala
Clases de Complejidad: Las gramáticas no pueden definir clases de complejidad importantes (como la clase P), aún se requieren modelos como máquinas de Turing
Constructividad: Los autores no intentaron hacer el desarrollo constructivo
Clausura bajo Intersección: No se formalizó la clausura bajo intersección porque se desconoce una construcción elegante basada únicamente en gramáticas
El artículo cita 26 referencias importantes, que abarcan:
Libros de texto clásicos: Teoría de análisis de Aho & Ullman, Teoría de autómatas de Hopcroft et al.
Trabajo de formalización: Implementaciones de modelos computacionales en varios asistentes de pruebas
Documentación de herramientas: Materiales relevantes de Lean 3 y mathlib
Resumen: Este es un artículo de alta calidad en informática teórica que no solo hace contribuciones técnicas importantes, sino que también proporciona experiencia valiosa en metodología de formalización. El trabajo de los autores sienta una base sólida para construir una jerarquía de Chomsky completamente formalizada, con valor significativo tanto para la teoría de lenguajes formales como para la comunidad de asistentes de pruebas.