Combining partial order reductions with on-the-fly model-checking

Partial order model-checking is an approach to reduce time and memory in model-checking concurrent programs. On-the-fly model-checking is a technique to eliminate part of the search by intersecting an automaton representing the (negation of the) checked property with the state during its generation. We prove conditions under which these two methods can be combined in order to gain reduction from both. An extension of the model-checker SPIN, which implements this combination, is studied, showing substantial reduction over traditional search, not only in the number of reachable states, but directly in the amount of memory and time used. We also describe how to apply partial-order model-checking under given fairness assumptions.

[1]  Pierre Wolper,et al.  Reasoning about infinite computation paths , 1983, 24th Annual Symposium on Foundations of Computer Science (sfcs 1983).

[2]  Patrice Godefroid,et al.  Refining Dependencies Improves Partial-Order Verification Methods (Extended Abstract) , 1993, CAV.

[3]  Gerard J. Holzmann,et al.  Coverage Preserving Reduction Strategies for Reachability Analysis , 1992, PSTV.

[4]  Patrice Godefroid Using Partial Orders to Improve Automatic Verification Methods , 1990, CAV.

[5]  Leslie Lamport,et al.  What Good is Temporal Logic? , 1983, IFIP Congress.

[6]  Antoni W. Mazurkiewicz,et al.  Trace Theory , 1986, Advances in Petri Nets.

[7]  Robert S. Streett,et al.  Propositional Dynamic Logic of Looping and Converse Is Elementarily Decidable , 1982, Inf. Control..

[8]  Pierre Wolper,et al.  A partial approach to model checking , 1991, [1991] Proceedings Sixth Annual IEEE Symposium on Logic in Computer Science.

[9]  Amir Pnueli,et al.  Proving Partial Order Properties , 1994, Theor. Comput. Sci..

[10]  Antti Valmari,et al.  A stubborn attack on state explosion , 1990, Formal Methods Syst. Des..

[11]  Gerard J. Holzmann,et al.  An improvement in formal verification , 1994, FORTE.

[12]  Gerard J. Holzmann,et al.  Design and validation of computer protocols , 1991 .

[13]  Thierry Jéron,et al.  On-the-fly verification of finite transition systems , 1992, Formal Methods Syst. Des..

[14]  Pierre Wolper,et al.  Memory-efficient algorithms for the verification of temporal properties , 1990, Formal Methods Syst. Des..

[15]  Doron A. Peled,et al.  Defining Conditional Independence Using Collapses , 1992, Theor. Comput. Sci..

[16]  Robert S. Streett Propositional Dynamic Logic of looping and converse , 1981, STOC '81.

[17]  Zohar Manna,et al.  How to cook a temporal proof system for your pet language , 1983, POPL '83.

[18]  Antti Valmari,et al.  On-the-Fly Verification with Stubborn Sets , 1993, CAV.

[19]  J. R. Büchi On a Decision Method in Restricted Second Order Arithmetic , 1990 .

[20]  Pierre Wolper,et al.  Adding liveness properties to coupled finite-state machines , 1990, TOPL.

[21]  Antti Valmari,et al.  Stubborn sets for reduced state space generation , 1991, Applications and Theory of Petri Nets.

[22]  Doron A. Peled,et al.  An efficient verification method for parallel and distributed programs , 1988, REX Workshop.

[23]  R. P. Kurshan,et al.  Reducibility in analysis of coordination , 1988 .

[24]  Amir Pnueli,et al.  Checking that finite state concurrent programs satisfy their linear specification , 1985, POPL.

[25]  Doron A. Peled,et al.  All from One, One for All: on Model Checking Using Representatives , 1993, CAV.