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
Propriétés de Fermeture des Grammaires Générales -- Formellement Vérifiées
Cet article formalise les grammaires générales (c'est-à-dire les grammaires de type 0) en utilisant l'assistant de preuve Lean 3. Les auteurs définissent les concepts fondamentaux des règles de réécriture et des mots dérivés par une grammaire, et prouvent que la classe des langages de type 0 est fermée sous quatre opérations : l'union, l'inversion, la concaténation et l'étoile de Kleene. La littérature se concentre principalement sur les arguments basés sur les machines de Turing, qui pourraient être plus difficiles à formaliser. Pour l'étoile de Kleene, les auteurs n'ont pas pu suivre la littérature et ont proposé leur propre construction basée sur les grammaires.
Importance de la théorie des langages formels: Les concepts de langages formels sont au cœur de l'informatique et peuvent être reconnus par plusieurs formalismes, notamment les machines de Turing et les grammaires formelles
Équivalence entre les grammaires de type 0 et les machines de Turing: Les machines de Turing et les grammaires générales caractérisent la même classe de langages énumérables récursivement ou langages de type 0
Limitations des travaux de formalisation existants: Bien qu'il existe de nombreux travaux sur la formalisation des machines de Turing dans les assistants de preuve, les travaux de formalisation des grammaires générales sont relativement rares
Avantages des grammaires: Les grammaires générales sont plus faciles à définir que les machines de Turing, et certaines preuves concernant les grammaires générales sont beaucoup plus simples que les preuves analogues pour les machines de Turing
Importance des propriétés de fermeture: Les propriétés de fermeture des langages de type 0 sont des résultats fondamentaux de la théorie des langages formels
Besoin de vérification formelle: Il est nécessaire de disposer de preuves vérifiées par machine pour assurer l'exactitude de ces résultats fondamentaux
Première formalisation complète des grammaires générales: Définition complète des concepts fondamentaux et des opérations des grammaires de type 0 en Lean 3
Preuves formalisées de quatre propriétés de fermeture:
Fermeture sous l'union
Fermeture sous l'inversion
Fermeture sous la concaténation
Fermeture sous l'étoile de Kleene
Construction innovante de l'étoile de Kleene: Faute de construction basée sur les grammaires dans la littérature, les auteurs ont inventé leur propre méthode de construction fondée sur les grammaires
Cadre d'abstraction réutilisable: Développement de la structure lifted_grammar pour réduire la duplication de code et fournir des modèles de preuve génériques
Base de code Lean open-source d'environ 12 500 lignes: Fourniture d'une implémentation formelle complète pour la communauté
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
Les grammaires surpassent les machines de Turing: Pour les preuves de propriétés de fermeture, les grammaires peuvent être plus pratiques que les machines de Turing
Faisabilité de la formalisation: Les résultats complexes de la théorie des langages peuvent être formalisés avec succès dans les assistants de preuve modernes
Importance de l'abstraction: Les bonnes abstractions (comme lifted_grammar) sont cruciales pour la formalisation à grande échelle
Classes de complexité: Les grammaires ne peuvent pas définir les classes de complexité importantes (comme la classe P), nécessitant toujours des modèles comme les machines de Turing
Constructivité: Les auteurs n'ont pas tenté de rendre le développement constructif
Fermeture sous l'intersection: La fermeture sous l'intersection n'a pas été formalisée, car aucune construction élégante basée uniquement sur les grammaires n'est connue
Travail novateur: Première formalisation complète des grammaires générales, comblant une lacune importante
Innovation technique: La construction originale de l'étoile de Kleene démontre une profonde maîtrise théorique
Qualité d'ingénierie: 12 500 lignes de code de haute qualité avec une conception d'abstraction excellente
Contribution théorique: Preuve que les méthodes basées sur les grammaires sont supérieures aux méthodes basées sur les machines de Turing dans certains cas
Réutilisabilité: Les abstractions comme lifted_grammar fournissent une base pour les travaux futurs
Manuels classiques : Théorie de l'analyse d'Aho & Ullman, Théorie des automates de Hopcroft et al.
Travaux de formalisation : Implémentations de modèles de calcul dans divers assistants de preuve
Documentation des outils : Documentation pertinente de Lean 3 et mathlib
Résumé: Cet article est un travail de haute qualité en informatique théorique qui apporte non seulement des contributions techniques importantes, mais fournit également une expérience précieuse en méthodologie de formalisation. Le travail des auteurs pose les fondations solides pour la construction d'une hiérarchie de Chomsky formalisée complète et possède une valeur importante pour la théorie des langages formels et la communauté des assistants de preuve.