Software Model Checking with Abstraction Refinement

  • Authors:
  • Andreas Podelski

  • Affiliations:
  • -

  • Venue:
  • VMCAI 2003 Proceedings of the 4th International Conference on Verification, Model Checking, and Abstract Interpretation
  • Year:
  • 2002

Quantified Score

Hi-index 0.00

Visualization

Abstract

Automated verification of programs is a topic of increasing interest [1,2,3,4,5,6, 7,8,9,10,11,12,13]. In a recent approach known as software model checking, one tries to prove a safety property of a program by iterating three steps: (1) the construction of an abstract system for an abstraction given by predicates over sets of states, (2) the model checking (in fact, a reachability analysis) of the abstract system, and (3) the refinement of the abstraction. The third step is done by generating additional predicates from the spurious counterexamples of the abstract system, if there are any; if not, the program property is either proven or disproven, and the method terminates.We will investigate the theory behind the approach and try to identify its potential interest. In principle, finding an abstraction is as hard as finding the proof itself [3]. However, using abstraction refinement (in the third step) for the search of an abstraction buys a triple-exponential saving over the direct search of a proof.