2025-11-23T10:13:16.980830

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

Información Básica

  • ID del Artículo: 2302.06420
  • Título: Closure Properties of General Grammars -- Formally Verified
  • Autores: Martin Dvorak (Institute of Science and Technology Austria), Jasmin Blanchette (Ludwig-Maximilians-Universität München)
  • Clasificación: cs.FL (Teoría de Lenguajes Formales y Autómatas)
  • Conferencia de Publicación: 14th International Conference on Interactive Theorem Proving (ITP 2023)
  • Enlace del Artículo: https://arxiv.org/abs/2302.06420

Resumen

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.

Antecedentes de Investigación y Motivación

Contexto del Problema

  1. 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
  2. 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
  3. 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

Motivación de la Investigación

  1. 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
  2. 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
  3. Necesidad de verificación formal: Se requieren pruebas verificadas por máquina para garantizar la corrección de estos resultados fundamentales

Contribuciones Principales

  1. Primera formalización de gramáticas generales: Definición completa en Lean 3 de conceptos y operaciones fundamentales de gramáticas de tipo-0
  2. Pruebas formalizadas de cuatro propiedades de clausura:
    • Clausura bajo unión
    • Clausura bajo inversión
    • Clausura bajo concatenación
    • Clausura bajo estrella de Kleene
  3. 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
  4. Marco abstracto reutilizable: Desarrollo de la estructura lifted_grammar para reducir código duplicado y proporcionar patrones de prueba genéricos
  5. 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

Explicación Detallada de Métodos

Estructura de Definiciones Fundamentales

Sistema de Símbolos

inductive symbol (T : Type) (N : Type)
| terminal : T → symbol  
| nonterminal : N → symbol

Representación de Reglas Gramaticales

structure grule (T : Type) (N : Type) :=
( input_L : list (symbol T N))
( input_N : N)  
( input_R : list (symbol T N))
( output_string : list (symbol T N))

Definición de Gramática

structure grammar (T : Type) :=
(nt : Type)
(initial : nt)
(rules : list (grule T nt))

Definición de Operaciones Principales

Relación de Transformación Gramatical

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

Relación de Derivación

def grammar_derives (g : grammar T) : 
  list (symbol T g.nt) → list (symbol T g.nt) → Prop :=
relation.refl_trans_gen (grammar_transforms g)

Puntos de Innovación Técnica

1. Marco Abstracto lifted_grammar

Para reducir código duplicado, los autores desarrollaron una estructura abstracta:

  • Contiene una gramática más pequeña g0 y una gramática más grande g
  • Proporciona funciones lift_nt y sink_nt para convertir entre diferentes tipos de no-terminales
  • Garantiza inyectividad y corrección de reglas correspondientes

2. Tratamiento Innovador de la Concatenación

La construcción tradicional de concatenación para gramáticas libres de contexto falla en gramáticas generales. La solución de los autores:

  • Crear no-terminales proxy para cada terminal
  • Garantizar que los no-terminales utilizados por g1 y g2 estén completamente separados
  • Evitar problemas de coincidencia de cadenas a través de límites de concatenación

3. Construcción Original de la Estrella de Kleene

Debido a la falta de construcción basada en gramáticas en la literatura, los autores inventaron un nuevo método:

  • Introducir un separador # para construir "compartimentos" que aíslen palabras
  • Utilizar un limpiador R que recorre de principio a fin y elimina separadores
  • Conjunto de nuevas reglas: P* = P ∪ {Z → ZS#, Z → R#, R# → R, R# → ε} ∪ {Rt → tR | t ∈ T}

Configuración Experimental

Entorno de Formalización

  • Asistente de Pruebas: Lean 3
  • Biblioteca Matemática: mathlib
  • Escala de Código: Aproximadamente 12,500 líneas de código Lean bien formateado
  • Metaprogramación: Uso del marco de metaprogramación de Lean para desarrollar automatización a pequeña escala

Métodos de Verificación

  • Inducción Estructural: Pruebas por inducción estructural sobre relaciones de derivación
  • Análisis de Casos: Análisis exhaustivo de casos para diferentes aplicaciones de reglas
  • Mantenimiento de Invariantes: Mantenimiento de invariantes clave en pruebas complejas

Resultados Experimentales

Teoremas Principales

  1. Clausura bajo Unión: theorem T0_of_T0_u_T0 (L1 L2 : language T) : is_T0 L1 ∧ is_T0 L2 → is_T0 (L1 + L2)
  2. Clausura bajo Inversión: theorem T0_of_reverse_T0 (L : language T) : is_T0 L → is_T0 (reverse_lang L)
  3. Clausura bajo Concatenación: theorem T0_of_T0_c_T0 (L1 L2 : language T) : is_T0 L1 ∧ is_T0 L2 → is_T0 (L1 * L2)
  4. Clausura bajo Estrella de Kleene: theorem T0_of_star_T0 (L : language T) : is_T0 L → is_T0 L.star

Análisis de Complejidad de Pruebas

  • Unión e Inversión: Relativamente simples, utilizan principalmente construcciones estándar
  • Concatenación: Complejidad media, requiere manejo de problemas de coincidencia de límites
  • Estrella de Kleene: La más compleja, solo el lema star_induction supera 3000 líneas de código

Productos Secundarios

  • Gramáticas Libres de Contexto: Las pruebas pueden reutilizarse para establecer clausura de lenguajes libres de contexto
  • Lemas de Concatenación: theorem CF_of_CF_u_CF y similares pueden aplicarse directamente a lenguajes libres de contexto

Trabajo Relacionado

Formalización de Gramáticas

  • Gramáticas Libres de Contexto: Carlson et al. (Mizar), Minamide (Isabelle/HOL), Barthwal y Norrish (HOL4), Firsov y Uustalu (Agda), Ramos (Coq)
  • Gramáticas Generales: Este artículo es la primera formalización completa

Otros Modelos Computacionales

  • Autómatas Finitos: Thompson y Dillies (Lean), formalización de expresiones regulares
  • Máquinas de Turing: Implementaciones en múltiples asistentes de pruebas, trabajo reciente de Balbach incluso prueba el teorema de Cook-Levin
  • Cálculo λ: Norrish (HOL4), Forster et al. (Coq)
  • Funciones Recursivas Parciales: Norrish (HOL4), Carneiro (Lean)

Conclusiones y Discusión

Conclusiones Principales

  1. 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
  2. Viabilidad de la formalización: Resultados complejos de la teoría de lenguajes pueden formalizarse exitosamente en asistentes de pruebas modernos
  3. Importancia de la abstracción: Las abstracciones bien diseñadas (como lifted_grammar) son cruciales para la formalización a gran escala

Limitaciones

  1. 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
  2. Constructividad: Los autores no intentaron hacer el desarrollo constructivo
  3. Clausura bajo Intersección: No se formalizó la clausura bajo intersección porque se desconoce una construcción elegante basada únicamente en gramáticas

Direcciones Futuras

  1. Jerarquía de Chomsky Completa: Incorporar gramáticas sensibles al contexto, libres de contexto y regulares en la biblioteca
  2. Pruebas de Equivalencia: Intentar probar la equivalencia entre gramáticas generales y máquinas de Turing
  3. Conexión con mathlib: Conectar resultados de mathlib sobre lenguajes regulares con esta biblioteca

Evaluación Profunda

Fortalezas

  1. Trabajo Pionero: Primera formalización completa de gramáticas generales, llenando un vacío importante
  2. Innovación Técnica: La construcción original de la estrella de Kleene demuestra profunda competencia teórica
  3. Calidad de Ingeniería: 12,500 líneas de código de alta calidad con diseño de abstracción excelente
  4. Contribución Teórica: Demuestra que el enfoque basado en gramáticas es superior al enfoque con máquinas de Turing en ciertos casos
  5. Reutilizabilidad: Abstracciones como lifted_grammar proporcionan base para trabajo futuro

Deficiencias

  1. Limitaciones de Expresividad: No puede manejar conceptos importantes en teoría de complejidad
  2. Ausencia de Constructividad: No considera requisitos de matemática constructiva
  3. Incompletitud: Falta tratamiento de operaciones importantes como la intersección
  4. Documentación: La explicación de ciertos detalles técnicos podría ser más detallada

Impacto

  1. Significado Teórico: Sienta las bases para verificación mecánica de la teoría de lenguajes formales
  2. Valor Metodológico: Demuestra mejores prácticas para proyectos de formalización a gran escala
  3. Contribución Comunitaria: La base de código de código abierto promoverá investigación relacionada
  4. Valor Educativo: Puede servir como caso de estudio excelente para aprender métodos de formalización

Escenarios de Aplicación

  1. Informática Teórica: Investigación en teoría de lenguajes y teoría de autómatas
  2. Matemática Formalizada: Investigación matemática que requiere pruebas rigurosas
  3. Verificación de Compiladores: Garantías de corrección para análisis sintáctico y procesamiento de lenguajes
  4. Enseñanza: Material de apoyo para cursos de lenguajes formales

Referencias

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.