Transition predicate abstraction and fair termination

  • Authors:
  • Andreas Podelski;Andrey Rybalchenko

  • Affiliations:
  • Max-Planck-Institut für Informatik, Saarbrücken, Freiburg, Germany;Ecole Polytechnique Fédérale de Lausanne and Max-Planck-Institut für Informatik, Saarbrücken, Lausanne, Switzerland

  • Venue:
  • ACM Transactions on Programming Languages and Systems (TOPLAS) - Special issue on POPL 2005
  • Year:
  • 2007

Quantified Score

Hi-index 0.00

Visualization

Abstract

Predicate abstraction is the basis of many program verification tools. Until now, the only known way to overcome the inherent limitation of predicate abstraction to safety properties was to manually annotate the finite-state abstraction of a program. We extend predicate abstraction to transition predicate abstraction. Transition predicate abstraction goes beyond the idea of finite abstract-state programs (and checking the absence of loops). Instead, our abstraction algorithm transforms a program into a finite abstract-transition program. Then a second algorithm checks fair termination. The two algorithms together yield an automated method for the verification of liveness properties under full fairness assumptions (impartiality, justice, and compassion). In summary, we exhibit principles that extend the applicability of predicate abstraction-based program verification to the full set of temporal properties.