Efficient coverability analysis by proof minimization

  • Authors:
  • Alexander Kaiser;Daniel Kroening;Thomas Wahl

  • Affiliations:
  • University of Oxford, United Kingdom;University of Oxford, United Kingdom;Northeastern University, Boston, United States

  • Venue:
  • CONCUR'12 Proceedings of the 23rd international conference on Concurrency Theory
  • Year:
  • 2012

Quantified Score

Hi-index 0.00

Visualization

Abstract

We consider multi-threaded programs with an unbounded number of threads executing a finite-state, non-recursive procedure. Safety properties of such programs can be checked via reduction to the coverability problem for well-structured transition systems (WSTS). In this paper, we present a novel, sound and complete yet empirically much improved solution to this problem. The key idea to achieve a compact search structure is to track uncoverability only for minimal uncoverable elements, even if these elements are not part of the original coverability query. To this end, our algorithm examines elements in the downward closure of elements backward-reachable from the initial queries. A downside is that the algorithm may unnecessarily explore elements that turn out coverable and thus fail to contribute to the proof minimization. We counter this effect using a forward search engine that simultaneously generates (a subset of all) coverable elements, e.g., a generalized Karp-Miller procedure. We demonstrate in extensive experiments on $\mathcal{C}$ programs that our approach targeting minimal uncoverability proofs outperforms existing techniques by orders of magnitude.