Verifying object-oriented programs with higher-order separation logic in Coq

  • Authors:
  • Jesper Bengtson;Jonas Braband Jensen;Filip Sieczkowski;Lars Birkedal

  • Affiliations:
  • IT University of Copenhagen;IT University of Copenhagen;IT University of Copenhagen;IT University of Copenhagen

  • Venue:
  • ITP'11 Proceedings of the Second international conference on Interactive theorem proving
  • Year:
  • 2011

Quantified Score

Hi-index 0.00

Visualization

Abstract

We present a shallow Coq embedding of a higher-order separation logic with nested triples for an object-oriented programming language. Moreover, we develop novel specification and proof patterns for reasoning in higher-order separation logic with nested triples about programs that use interfaces and interface inheritance. In particular, we show how to use the higher-order features of the Coq formalisation to specify and reason modularly about programs that (1) depend on some unknown code satisfying a specification or that (2) return objects conforming to a certain specification. All of our results have been formally verified in the interactive theorem prover Coq.