Trustworthy Systems

Applications of interactive proof to data flow analysis and security

Authors

Gerwin Klein and Tobias Nipkow

NICTA

UNSW

TU Munich

Abstract

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

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

Download