The Rely-Guarantee Method in Isabelle/HOL

We present the formalization of the rely-guarantee method in the theorem prover Isabelle/HOL. This method consists of a Hoarelike system of rules to verify concurrent imperative programs with shared variables in a compositional way. Syntax, semantics and proof rules are defined in higher-order logic. Soundness of the proof rules w.r.t. the semantics is proven mechanically. Also parameterized programs, where the number of parallel components is a parameter, are included in the programming language and thus can be verified directly in the system. We prove that the system is complete for parameterized programs. Finally, we show by an example how the formalization can be used for verifying concrete programs.

[1]  Lawrence C. Paulson,et al.  Program composition in Isabelle/UNITY , 2002, Proceedings 16th International Parallel and Distributed Processing Symposium.

[2]  L. Prensa-Nieto Completeness of the owicki-gries system for parameterized parallel programs , 2001, Proceedings 15th International Parallel and Distributed Processing Symposium. IPDPS 2001.

[3]  Cliff B. Jones,et al.  Tentative steps toward a development method for interfering programs , 1983, TOPL.

[4]  Willem P. de Roever,et al.  The rely-guarantee method for verifying shared variable concurrent programs , 1997, Formal Aspects of Computing.

[5]  Leonor Prensa Nieto Completeness of the Owicki-Gries System for Parameterized Parallel Programs , 2001, IPDPS.

[6]  Colin Stirling,et al.  A Generalization of Owicki-Gries's Hoare Logic for a Concurrent while Language , 1988, Theor. Comput. Sci..

[7]  Francesca Rossi,et al.  Semiring-based constraint logic programming: syntax and semantics , 2001, TOPL.

[8]  Richard Banach,et al.  Book Review: "Concurrency Verification: Introduction to Compositional and Non-compositional Methods" by Willem-Paul de Roever, Frank de Boer, Ulrich Hanneman, Jozef Hooman, Yassine Lakhnech, Mannes Poel and Job Zwiers (eds.) , 2003, J. Log. Comput..

[9]  Lawrence Charles Paulson,et al.  Isabelle/HOL: A Proof Assistant for Higher-Order Logic , 2002 .

[10]  Tobias Nipkow,et al.  Owicki/Gries in Isabelle/HOL , 1999, FASE.

[11]  Perdita Stevens,et al.  Modelling Recursive Calls with UML State Diagrams , 2003, FASE.

[12]  Leonor Prensa Nieto Verification of parallel programs with the Owicki-Gries and Rely-Guarantee methods in Isabelle, HOL , 2002 .

[13]  Lawrence C. Paulson Mechanizing a theory of program composition for UNITY , 2001, TOPL.

[14]  John Rushby Formal Verification of McMillan's Compositional Assume-Guarantee Rule , 2001 .

[15]  Kenneth L. McMillan,et al.  Circular Compositional Reasoning about Liveness , 1999, CHARME.

[16]  Stephen N. Freund,et al.  Thread-Modular Verification for Shared-Memory Programs , 2002, ESOP.