Avoiding exponential explosion: generating compact verification conditions

  • Authors:
  • Cormac Flanagan;James B. Saxe

  • Affiliations:
  • Compaq Systems Research Center, 130 Lytton Ave., Palo Alto, CA;Compaq Systems Research Center, 130 Lytton Ave., Palo Alto, CA

  • Venue:
  • POPL '01 Proceedings of the 28th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
  • Year:
  • 2001

Quantified Score

Hi-index 0.02

Visualization

Abstract

Current verification condition (VC) generation algorithms, such as weakest preconditions, yield a VC whose size may be exponential in the size of the code fragment being checked. This paper describes a two-stage VC generation algorithm that generates compact VCs whose size is worst-case quadratic in the size of the source fragment, and is close to linear in practice.This two-stage VC generation algorithm has been implemented as part of the Extended Static Checker for Java. It has allowed us to check large and complex methods that would otherwise be impossible to check due to time and space constraints.