Whale: an interpolation-based algorithm for inter-procedural verification

  • Authors:
  • Aws Albarghouthi;Arie Gurfinkel;Marsha Chechik

  • Affiliations:
  • Department of Computer Science, University of Toronto, Canada;Software Engineering Institute, Carnegie Mellon University;Department of Computer Science, University of Toronto, Canada

  • Venue:
  • VMCAI'12 Proceedings of the 13th international conference on Verification, Model Checking, and Abstract Interpretation
  • Year:
  • 2012

Quantified Score

Hi-index 0.00

Visualization

Abstract

In software verification, Craig interpolation has proven to be a powerful technique for computing and refining abstractions. In this paper, we propose an interpolation-based software verification algorithm for checking safety properties of (possibly recursive) sequential programs. Our algorithm, called Whale, produces inter-procedural proofs of safety by exploiting interpolation for guessing function summaries by generalizing under-approximations (i.e., finite traces) of functions. We implemented our algorithm in LLVM and applied it to verifying properties of low-level code written for the pacemaker challenge. We show that our prototype implementation outperforms existing state-of-the-art tools.