| | |
Summary: Proving Liveness by Backwards Reachability
Parosh Aziz Abdulla, Bengt Jonsson, Ahmed Rezine, and Mayank Saksena
Dept. of Information Technology, P.O. Box 337, S751 05 Uppsala, Sweden
{parosh,bengt,rahmed,mayanks}@it.uu.se
Abstract. We present a new method for proving liveness and termination prop
erties for fair concurrent programs, which does not rely on finding a ranking
function or on computing the transitive closure of the transition relation. The
set of states from which termination or some liveness property is guaranteed is
computed by a backwards reachability analysis. The role of ranking functions
is replaced by a check for a certain commutativity property. The method is not
complete. However, it can be seen as a complement to other methods for proving
termination, in that it transforms a termination problem into a simpler one with
a larger set of terminated states. We show the usefulness of our method by ap
plying it to existing programs from the literature. We have also implemented it
in the framework of Regular Model Checking, and used it to automatically verify
nonstarvation for parameterized algorithms.
1 Introduction
The last decade has witnessed impressive progress in the ability of tools to verify prop
erties of hardware and software systems (e.g., [8, 14, 22]). The success has to a large
extent concerned safety properties, e.g., absence of runtime errors, deadlocks, race
|