Implementing the Decomposition of Soundness Proofs of Abstract Interpreters in Coq

Master Thesis (2021)
Author(s)

J.C. de Waard (TU Delft - Electrical Engineering, Mathematics and Computer Science)

Contributor(s)

Eelco Visser – Mentor (TU Delft - Programming Languages)

Georgios Gousios – Graduation committee member (TU Delft - Software Engineering)

R.J. Krebbers – Graduation committee member (TU Delft - Programming Languages)

Sven Keidel – Graduation committee member

Faculty
Electrical Engineering, Mathematics and Computer Science
Copyright
© 2021 Jens de Waard
More Info
expand_more
Publication Year
2021
Language
English
Copyright
© 2021 Jens de Waard
Graduation Date
03-02-2021
Awarding Institution
Delft University of Technology
Programme
Computer Science
Faculty
Electrical Engineering, Mathematics and Computer Science
Reuse Rights

Other than for strictly personal use, it is not permitted to download, forward or distribute the text or part of it, without the consent of the author(s) and/or copyright holder(s), unless the work is under an open content license such as Creative Commons.

Abstract

Abstract interpretation is a way of approximating the semantics of a computer program, in which we derive properties of those programs without actually performing the necessary computations for running the program, through the use of an abstract interpreter. To be able to trust the result of the abstract interpretation, we would to able to prove the soundness of the approximations of the interpreter. Previous work by Keidel et al. has shown that the soundness proofs of an entire abstract interpreter can be simplified by decomposing the interpreter by implementing concrete and abstract interpreters as instantiations of a generic interpreter. The goal of this thesis is to explore and implement mechanical proofs of soundness of such interpreters. To this end, we have used the interactive proof assistant Coq to implement a generic interpeter for a simple imperative language and instantiate it both concrete and abstract versions. The abstract interpreter is automatically proven sound via the use of Coq's automatic proof capabilities and typeclass system. Both the interpreted language and the used abstractions can be expanded to allow for more features. Soundness proofs can then be written for just the new components, those proofs will then be automatically resolved by Coq.

Files

Master_thesis_jens.pdf
(pdf | 0.211 Mb)
License info not available