Proving pointer programs in higher-order logic

Farhad Mehta, Tobias Nipkow

Research output: Contribution to journalConference articlepeer-review

49 Scopus citations

Abstract

Building on the work of Burstall, this paper develops sound modelling and reasoning methods for imperative programs with pointers: heaps are modelled as mappings from addresses to values, and pointer structures are mapped to higher-level data types for verification. The programming language is embedded in higher-order logic. Its Hoare logic is derived. The whole development is purely definitional and thus sound. Apart from some smaller examples, the viability of this approach is demonstrated with a non-trivial case study. We show the correctness of the Schorr-Waite graph marking algorithm and present part of its readable proof in Isabelle/HOL.

Original languageEnglish
Pages (from-to)200-227
Number of pages28
JournalInformation and Computation
Volume199
Issue number1-2
DOIs
StatePublished - 25 May 2005
Event19th International Conference on Automated Deduction (CADE-19) -
Duration: 28 Jul 200328 Jul 2003

Keywords

  • Higher-order logic
  • Hoare logic
  • Pointer programs
  • Schorr-Waite algorithm
  • Verification

Fingerprint

Dive into the research topics of 'Proving pointer programs in higher-order logic'. Together they form a unique fingerprint.

Cite this