Towards Automatic Stability Analysis for Rely-Guarantee Proofs

The Rely-Guarantee approach is a well-known compositional method for proving Hoare logic properties of concurrent programs. In this approach, predicates in the proof must be proved invariant (or stable) under interference from the environment. We describe a framework, and a prototype implementation, for automatically detecting and repairing instability in such proofs. The method uses a combination of model checking, abstract interpretation, SMT and flow-control refinement.

[1]  Sanjit A. Seshia,et al.  Modular verification of multithreaded programs , 2005, Theor. Comput. Sci..

[2]  Martín Abadi,et al.  Conjoining specifications , 1995, TOPL.

[3]  Thomas A. Henzinger,et al.  The software model checker Blast , 2007, International Journal on Software Tools for Technology Transfer.

[4]  Peter W. O'Hearn,et al.  A Local Shape Analysis Based on Separation Logic , 2006, TACAS.

[5]  Hassen Saïdi,et al.  Construction of Abstract State Graphs with PVS , 1997, CAV.

[6]  Cliff B. Jones,et al.  Specification and Design of (Parallel) Programs , 1983, IFIP Congress.

[7]  C. A. Petri,et al.  Concurrency Theory , 1986, Advances in Petri Nets.

[8]  永田 守男,et al.  Verifying Properties of Parallel Programs : An Axiomatic Approach , 1976 .

[9]  C. A. R. HOARE,et al.  An axiomatic basis for computer programming , 1969, CACM.

[10]  Thomas A. Henzinger,et al.  The software model checker B last : Applications to software engineering , 2007 .

[11]  Viktor Vafeiadis,et al.  Proving that non-blocking algorithms don't block , 2009, POPL '09.

[12]  Edmund M. Clarke,et al.  Counterexample-Guided Abstraction Refinement , 2000, CAV.

[13]  Rajeev Alur,et al.  A Temporal Logic of Nested Calls and Returns , 2004, TACAS.

[14]  Stephan Merz,et al.  Model Checking , 2000 .

[15]  Kim G. Larsen,et al.  On Modal Refinement and Consistency , 2007, CONCUR.

[16]  C. A. R. Hoare,et al.  An axiomatic basis for computer programming , 1969, CACM.

[17]  Viktor Vafeiadis,et al.  Modular Safety Checking for Fine-Grained Concurrency , 2007, SAS.

[18]  Maged M. Michael,et al.  Simple, fast, and practical non-blocking and blocking concurrent queue algorithms , 1996, PODC '96.

[19]  Thomas A. Henzinger,et al.  Automating Modular Verification , 1999, CONCUR.

[20]  Hassen Saïdi,et al.  Model Checking Guided Abstraction and Analysis , 2000, SAS.

[21]  Xinyu Feng,et al.  Deny-Guarantee Reasoning , 2009, ESOP.

[22]  H. R. Simpson Four-slot fully asynchronous communication mechanism , 1990 .

[23]  Viktor Vafeiadis,et al.  Modular fine-grained concurrency verification , 2008 .

[24]  Viktor Vafeiadis,et al.  A Marriage of Rely/Guarantee and Separation Logic , 2007, CONCUR.