Imperative Functional Programming with Isabelle/HOL

  • Authors:
  • Lukas Bulwahn;Alexander Krauss;Florian Haftmann;Levent Erkök;John Matthews

  • Affiliations:
  • Institut für Informatik, Technische Universität München, Garching, Germany 85748;Institut für Informatik, Technische Universität München, Garching, Germany 85748;Institut für Informatik, Technische Universität München, Garching, Germany 85748;Galois Inc., Beaverton, USA OR 97005;Galois Inc., Beaverton, USA OR 97005

  • Venue:
  • TPHOLs '08 Proceedings of the 21st International Conference on Theorem Proving in Higher Order Logics
  • Year:
  • 2008

Quantified Score

Hi-index 0.00

Visualization

Abstract

We introduce a lightweight approach for reasoning about programs involving imperative data structures using the proof assistant Isabelle/HOL. It is based on shallow embedding of programs, a polymorphic heap model using enumeration encodings and type classes, and a state-exception monad similar to known counterparts from Haskell. Existing proof automation tools are easily adapted to provide a verification environment. The framework immediately allows for correct code generation to ML and Haskell. Two case studies demonstrate our approach: An array-based checker for resolution proofs, and a more efficient bytecode verifier.