The University of New South Wales

Applications of interactive proof to data flow analysis and security


Gerwin Klein and Tobias Nipkow



TU Munich


We show how to formalise a small imperative programming language in the theorem prover Isabelle/HOL, how to define its semantics, and how to prove properties about the language, its type systems, and a number of data flow analyses.

The emphasis is not on formalising a complex language deeply, but to teach a number of formalisation techniques and proof strategies using simple examples. For this purpose, we cover a basic type system with type safety proof, more complex security type systems, also with soundness proofs, and different kinds of data flow analyses, in particular definite initialisation analysis and constant propagation, again with correctness proofs.

BibTeX Entry

    publisher        = {IOS Press BV},
    booktitle        = {Software Systems Safety},
    month            = may,
    series           = {NATO Science for Peace and Security Series },
    paperurl         = {},
    year             = {2014},
    issn             = {1874-6268},
    editor           = {{Grumberg, O., Seidl, H., Irlbeck, M.}},
    keywords         = {isabelle, semantics, marktoberdorf},
    volume           = {36},
    title            = {Applications of Interactive Proof to Data Flow Analysis and Security},
    pages            = {77--134},
    author           = {Klein, Gerwin and Nipkow, Tobias}