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
Proprietà di Chiusura delle Grammatiche Generali -- Formalmente Verificate
Questo articolo formalizza le grammatiche generali (ossia grammatiche di tipo 0) utilizzando l'assistente di prova Lean 3. Gli autori definiscono i concetti fondamentali di regole di riscrittura e di parole derivate da una grammatica, e provano mediante grammatiche la chiusura della classe di linguaggi di tipo 0 rispetto a quattro operazioni: unione, inversione, concatenazione e stella di Kleene. La letteratura si concentra principalmente su argomentazioni basate su macchine di Turing, che potrebbero essere più difficili da formalizzare. Per l'operazione di stella di Kleene, gli autori non hanno potuto seguire la letteratura e hanno proposto una loro costruzione basata su grammatiche.
Importanza della teoria dei linguaggi formali: Il concetto di linguaggi formali è centrale nell'informatica e può essere riconosciuto attraverso molteplici formalismi, incluse le macchine di Turing e le grammatiche formali
Equivalenza tra grammatiche di tipo 0 e macchine di Turing: Sia le macchine di Turing che le grammatiche generali caratterizzano la stessa classe di linguaggi ricorsivamente enumerabili o linguaggi di tipo 0
Limitazioni del lavoro di formalizzazione esistente: Esiste una vasta letteratura sulla formalizzazione delle macchine di Turing negli assistenti di prova, ma il lavoro di formalizzazione delle grammatiche generali è relativamente scarso
Vantaggi delle grammatiche: Le grammatiche generali sono più facili da definire rispetto alle macchine di Turing, e alcune prove riguardanti le grammatiche generali sono notevolmente più semplici rispetto alle prove di proprietà analoghe per le macchine di Turing
Importanza delle proprietà di chiusura: Le proprietà di chiusura dei linguaggi di tipo 0 sono risultati fondamentali della teoria dei linguaggi formali
Necessità della verifica formale: È necessaria una prova rigorosamente controllata da macchina per garantire la correttezza di questi risultati fondamentali
Prima formalizzazione completa delle grammatiche generali: Definizione completa in Lean 3 dei concetti e delle operazioni fondamentali delle grammatiche di tipo 0
Prove formali di quattro proprietà di chiusura:
Chiusura rispetto all'unione
Chiusura rispetto all'inversione
Chiusura rispetto alla concatenazione
Chiusura rispetto alla stella di Kleene
Costruzione innovativa della stella di Kleene: Poiché la letteratura manca di una costruzione basata su grammatiche, gli autori hanno inventato il loro metodo di costruzione basato su grammatiche
Struttura astratta riutilizzabile: Sviluppo della struttura lifted_grammar per ridurre il codice duplicato e fornire modelli di prova generici
Libreria Lean open source di circa 12.500 righe: Implementazione formale completa disponibile per la comunità
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
Le grammatiche sono superiori alle macchine di Turing: Per le prove di proprietà di chiusura, le grammatiche potrebbero essere più convenienti rispetto alle macchine di Turing
Fattibilità della formalizzazione: Risultati complessi della teoria dei linguaggi possono essere con successo formalizzati negli assistenti di prova moderni
Importanza dell'astrazione: Buone astrazioni (come lifted_grammar) sono cruciali per la formalizzazione su larga scala
Classi di complessità: Le grammatiche non possono definire importanti classi di complessità (come la classe P), richiedendo ancora modelli come le macchine di Turing
Costruttività: Gli autori non hanno tentato di rendere lo sviluppo costruttivo
Chiusura rispetto all'intersezione: La chiusura rispetto all'intersezione non è stata formalizzata, poiché non è nota una costruzione elegante basata solo su grammatiche
L'articolo cita 26 importanti riferimenti, che coprono:
Testi classici: Teoria dell'analisi di Aho & Ullman, Teoria degli automi di Hopcroft et al.
Lavori di formalizzazione: Implementazioni di modelli computazionali in vari assistenti di prova
Documentazione di strumenti: Materiali rilevanti su Lean 3 e mathlib
Sintesi: Questo è un articolo di alta qualità nell'informatica teorica che non solo fornisce importanti contributi tecnici, ma offre anche preziose esperienze nella metodologia della formalizzazione. Il lavoro degli autori pone solide fondamenta per la costruzione di una gerarchia di Chomsky completamente formalizzata, possedendo un valore significativo sia per la teoria dei linguaggi formali che per la comunità degli assistenti di prova.