Jana Hofmann: Bachelor's Thesis

Verified Algorithms for Context-Free Grammars in Coq

Advisor: Prof. Dr. Gert Smolka

Abstract:

We give a basic formalization of context-free grammars and the languages they describe in the proof assistant Coq. We show the decidability of the word and the emptiness problem of context-free languages by giving and verifying decision procedures. Furthermore, we describe four grammar transformations: The elimination of empty rules, the elimination of unit rules, the separation of characters from the rest of the grammar and the binarization of a grammar. For each transformation, we show that it preserves the language of the grammar. Together, they yield a grammar which is in Chomsky normal form. We aim for algorithms that are easy to understand and verify. Many of our results are obtained with finite iteration on lists. By using abstractions of fixed point and closure iterations, the correctness of the algorithms is intuitive and formally obtained with short proofs.

References

A formalisation of the theory of context-free languages in higher order logic (2010)

Aditi Barthwal

(2010) Aditi Barthwal Three models for the description of language (1956)

Noam Chomsky

(1956) Noam Chomsky Certified CYK parsing of context-free languages (2014)

Denis Firsov and Tarmo Uustalu

(2014) Denis Firsov and Tarmo Uustalu Certified normalization of context-free grammars (2015)

Denis Firsov and Tarmo Uustalu

(2015) Denis Firsov and Tarmo Uustalu Introduction to Automata Theory, Languages and Computation (1979)

John E. Hopcroft and Jeffrey D. Ullman

(1979) John E. Hopcroft and Jeffrey D. Ullman Validating LR (1) parsers (2012)

Jacques-Henri Jourdan, François Pottier, and Xavier Leroy

(2012) Jacques-Henri Jourdan, François Pottier, and Xavier Leroy Trx: A formally verified parser interpreter (2010)

Adam Koprowski and Henri Binsztok

(2010) Adam Koprowski and Henri Binsztok Automata and Computability (1997)

Dexter C. Kozen

(1997) Dexter C. Kozen Formalization of context-free language theory (2016)

Marcus V. M. Ramos

(2016) Marcus V. M. Ramos Introduction to computational logic. Lecture Notes [PDF] (2014)

Gert Smolka and Chad E. Brown

(2014) Gert Smolka and Chad E. Brown The coq reference manual, version 8.5 (July 2016)

The Coq Development Team

Dowloads

Initial Seminar Talk: Slides (29th Mai, 2015)

Slides (29th Mai, 2015) Second Seminar Talk: Slides (29th April, 2016)

Slides (29th April, 2016) Final Talk: Slides (29th August, 2016)

Slides (29th August, 2016) Submitted Thesis: Thesis (10th August, 2016)

Thesis (10th August, 2016) Coq Development: HTML documentation, download



