Verification of Concurrent Programs Using Trace Abstraction Refinement. Cassez, F. & Ziegler, F. In Davis, M., Fehnker, A., McIver, A., & Voronkov, A., editors, Logic for Programming, Artificial Intelligence, and Reasoning - 20th International Conference, LPAR-20 2015, Suva, Fiji, November 24-28, 2015, Proceedings, volume 9450, of Lecture Notes in Computer Science, pages 233–248, 2015. Springer. LPAR Best paper award
Verification of Concurrent Programs Using Trace Abstraction Refinement [pdf]Paper  Verification of Concurrent Programs Using Trace Abstraction Refinement [pdf]Slides  doi  abstract   bibtex   1 download  
Verifying concurrent programs is notoriously hard due to the state explosion problem: (1) the data state space can be very large as the variables can range over very large sets, and (2) the control state space is the Cartesian product of the control state space of the concurrent com- ponents and thus grows exponentially in the number of components. On the one hand, the most successful approaches to address the control state explosion problem are based on assume-guarantee reasoning or model-checking coupled with partial order reduction. On the other hand, the most successful techniques to address the data space explosion problem for sequential programs verification are based on the abstraction/refine- ment paradigm which consists in refining an abstract over-approximation of a program via predicate refinement. In this paper, we show that we can combine partial order reduction techniques with trace abstraction refinement. We apply our approach to standard benchmarks and show that it matches current state-of-the-art analysis techniques.

Downloads: 1