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

Jesper Bengtson, Jonas Braband Jensen, Filip Sieczkowski, Lars Birkedal

Publikation: Artikel i tidsskrift og konference artikel i tidsskriftKonferenceartikelForskningpeer review

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.
OriginalsprogEngelsk
BogserieLecture Notes in Computer Science
Vol/bind6898
Sider (fra-til)22-38
ISSN0302-9743
DOI
StatusUdgivet - 2011

Emneord

  • Higher-order separation logic
  • Nested triples
  • Object-oriented programming
  • Modular reasoning
  • Coq formalisation

Citationsformater