Download PDFOpen PDF in browser

Program Verification via Craig Interpolation for Presburger Arithmetic with Arrays

16 pagesPublished: May 15, 2012

Abstract

Craig interpolation has become a versatile tool in formal verification, in particular for generating intermediate assertions in safety analysis and model checking. In this paper, we present a novel interpolation procedure for the theory of arrays, extending an interpolating calculus for the full theory of quantifier-free Presburger arithmetic, which will be presented at IJCAR this year. We investigate the use of this procedure in a software model checker for C programs. A distinguishing feature of the model checker is its ability to faithfully model machine arithmetic with an encoding into Presburger arithmetic with uninterpreted predicates. The interpolation procedure allows the synthesis of quantified invariants about arrays. This paper presents work in progress; we include initial experiments to demonstrate the potential of our method.

Keyphrases: craig interpolation, presburger arithmetic, software model checking, theory of arrays

In: Markus Aderhold, Serge Autexier and Heiko Mantel (editors). VERIFY-2010. 6th International Verification Workshop, vol 3, pages 31-46.

BibTeX entry
@inproceedings{VERIFY-2010:Program_Verification_via_Craig,
  author    = {Angelo Brillout and Daniel Kroening and Philipp Rümmer and Thomas Wahl},
  title     = {Program Verification via Craig Interpolation for Presburger Arithmetic with Arrays},
  booktitle = {VERIFY-2010. 6th International Verification Workshop},
  editor    = {Markus Aderhold and Serge Autexier and Heiko Mantel},
  series    = {EPiC Series in Computing},
  volume    = {3},
  publisher = {EasyChair},
  bibsource = {EasyChair, https://easychair.org},
  issn      = {2398-7340},
  url       = {/publications/paper/x7wp},
  doi       = {10.29007/zfkw},
  pages     = {31-46},
  year      = {2012}}
Download PDFOpen PDF in browser