Title

Authors

Publication Date

April 2017

Advisor(s)

Dan Licata

Major

Computer Science

Language

English (United States)

Abstract

The goal of this project is to complete a formal verification of Courcelle’s Theorem in Agda. On a high level, Courcelle's theorem states that if you ask certain kinds of questions about certain kinds of graphs, you can get a certain kind of linear time answer. This theorem is important because it applies to many NP-hard problems, such as vertex cover and dominating set, and thus gives a quasi-linear algorithm for deciding certain questions (monadic second order logic questions) on a certain class of graphs (bounded treewidth graphs). Verification via proof assistants is a method of ensuring that either a mathematical proof or a program is correct, in a way that removes much of the possibility for human error. At this stage, we have completed our translation of the definitions given in Courcelle’s Theorem: A Game Theoretic Approach by Kneis et al. into Agda, which is the proof that we have chosen to verify. This involved reformulating several complex mathematical concepts into machine-checkable definitions. Specifically, we define symbols, signatures, structures, expansions of structures, restrictions of structures, tree decompositions, MSO formulas, isomorphisms of structures, model checking games, extended model checking games, equivalence between game positions and subgames, and finally a notion of a reduced game. The bulk of this thesis document is a detailed explanation of the fact that the mathematical definitions we formalize correspond to the way we encode them. This is in an effort to convince the reader that, once we do finish the complete proof, it will be correct since our definitions are correct, for the only way a proof assistant can be incorrect is by the author of the program unintentionally encoding the wrong statement of the theorem. Additionally, we have defined the types of the functions corresponding to the lemmas in the paper that prove Courcelle’s Theorem, however we have yet to implement them. We also have yet to prove the fact that the algorithm is fixed-parameter tractable linear; this is next on our agenda after completing the proof of the algorithm itself. After this work is complete, we hope to extend our verification of Courcelle’s Theorem to some of its applications.