A Structural Proof of the Soundness of Rely/guarantee Rules

Various forms of rely/guarantee conditions have been used to record and reason about interference in ways that provide compositional development methods for concurrent programs. This paper illustrates such a set of rules and proves their soundness. The underlying concurrent language allows fine-grained interleaving and nested concurrency; it is defined by an operational semantics; the proof that the rely/guarantee rules are consistent with that semantics (including termination) is by a structural induction. A key lemma which relates the states which can arise from the extra interference that results from taking a portion of the program out of context makes it possible to do the proofs without having to perform induction over the computation history. This lemma also offers a way to think about expressibility issues around auxiliary variables in rely/guarantee conditions. © 2007 University of Newcastle upon Tyne. Printed and published by the University of Newcastle upon Tyne, Computing Science, Claremont Tower, Claremont Road, Newcastle upon Tyne, NE1 7RU, England. Bibliographical details COLEMAN, J. W., JONES, C. B. A structural proof of the soundness of rely/guarantee rules (revised) [By] J. W. Coleman, C. B. Jones. Newcastle upon Tyne: University of Newcastle upon Tyne: Computing Science, 2007. (University of Newcastle upon Tyne, Computing Science, Technical Report Series, No. CS-TR-1029)

[1]  Xu Qiwen,et al.  A theory of state-based parallel programming , 1992 .

[2]  Cliff B. Jones Formal development of correct algorithms: An example based on earley's recogniser , 1972 .

[3]  Cliff B. Jones,et al.  Enhancing the tractability of rely/guarantee specifications in the development of interfering operations , 2000, Proof, Language, and Interaction.

[4]  Gordon D. Plotkin,et al.  A structural approach to operational semantics , 2004, J. Log. Algebraic Methods Program..

[5]  Cliff B. Jones,et al.  Guaranteeing the soundness of rely/guarantee rules , 2006 .

[6]  Rod M. Burstall,et al.  A Natural Deduction treatment of Operational Semantics , 1988, FSTTCS.

[7]  Cliff B. Jones,et al.  Accommodating interference in the formal design of concurrent object-based programs , 1996, Formal Methods Syst. Des..

[8]  Cliff B. Jones,et al.  Operational semantics: Concepts and their expression , 2003, Inf. Process. Lett..

[9]  Peter A. Lindsay,et al.  mural: A Formal Development Support System , 1991, Springer London.

[10]  Stephen D. Brookes,et al.  Retracing the Semantics of CSP , 2004, 25 Years Communicating Sequential Processes.

[11]  Cliff B. Jones,et al.  Program specification and verification in VDM , 1987 .

[12]  Jozef Hooman,et al.  Concurrency Verification: Introduction to Compositional and Noncompositional Methods , 2001, Cambridge Tracts in Theoretical Computer Science.

[13]  Cliff B. Jones,et al.  A logic covering undefinedness in program proofs , 1984, Acta Informatica.

[14]  Cliff B. Jones,et al.  Deriving Specifications for Systems That Are Connected to the Physical World , 2007, Formal Methods and Hybrid Real-Time Systems.

[15]  G. Gentzen Untersuchungen über das logische Schließen. I , 1935 .

[16]  Cliff B. Jones,et al.  Software development - a rigorous approach , 1980, Prentice Hall international series in computer science.

[17]  Cliff B. Jones,et al.  Developing methods for computer programs including a notion of interference , 1981 .

[18]  Tobias Nipkow,et al.  Java Source and Bytecode Formalizations in Isabelle: Java , 2002 .

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

[20]  Roger Goodman,et al.  Oxford University , 1910, The Hospital.

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

[22]  Eveline T. Feteris The Logical Approach , 1999 .

[23]  J. van Leeuwen,et al.  Theoretical Computer Science , 2003, Lecture Notes in Computer Science.

[24]  Susan S. Owicki,et al.  Axiomatic Proof Techniques for Parallel Programs , 1975, Outstanding Dissertations in the Computer Sciences.

[25]  Cliff B. Jones,et al.  Determining the Specification of a Control System from That of Its Environment , 2003, FME.

[26]  James E. Donahue,et al.  Complementary Definitions of Programming Language Semantics , 1976, Lecture Notes in Computer Science.

[27]  G. Gentzen Untersuchungen über das logische Schließen. II , 1935 .

[28]  Tom Melham,et al.  Reasoning with Inductively Defined Relations in the HOL Theorem Prover , 1992 .

[29]  Fred B. Schneider On Concurrent Programming , 1997, Graduate Texts in Computer Science.

[30]  Peter E. Lauer,et al.  Consistent formal theories of the semantics of programming languages , 1971 .

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

[32]  Edsger W. Dijkstra,et al.  Predicate Calculus and Program Semantics , 1989, Texts and Monographs in Computer Science.

[33]  Peter W. O'Hearn,et al.  Resources, concurrency, and local reasoning , 2007 .

[34]  Richard C. Holt,et al.  The Turing programming language , 1988, CACM.

[35]  Leonor Prensa Nieto The Rely-Guarantee Method in Isabelle/HOL , 2003, ESOP.

[36]  Cliff B. Jones,et al.  Systematic software development using VDM , 1986, Prentice Hall International Series in Computer Science.

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

[38]  Colin Stirling A Compositional Reformulation of Owicki-Gries's Partial Correctness Logic for a Concurrent While Language , 1986, ICALP.

[39]  Juergen Dingel Systematic Parallel Programming , 2000 .

[40]  Cliff B. Jones,et al.  Splitting atoms safely , 2007, Theor. Comput. Sci..

[41]  Krzysztof R. Apt,et al.  Ten Years of Hoare's Logic: A Survey—Part I , 1981, TOPL.

[42]  Fred B. Schneider,et al.  A Logical Approach to Discrete Math , 1993, Texts and Monographs in Computer Science.

[43]  Cliff B. Jones,et al.  An Approach to Splitting Atoms Safely: Extended Abstract , 2006, MFPS.

[44]  D. Prawitz Natural Deduction: A Proof-Theoretical Study , 1965 .

[45]  J. Meigs,et al.  WHO Technical Report , 1954, The Yale Journal of Biology and Medicine.

[46]  Ian J. Hayes,et al.  Specifying systems that connect to the physical world , 2006 .

[47]  Susan Owicki,et al.  An axiomatic proof technique for parallel programs I , 1976, Acta Informatica.

[48]  Xu Qiwen,et al.  A Theory of State-based Parallel Programming: Part 1 , 1991 .

[49]  C Sterling,et al.  A compositional reformulation of Owicki-Grier's partial correctness logic for a concurrent while language , 1986 .

[50]  David Gries,et al.  The Science of Programming , 1981, Text and Monographs in Computer Science.

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

[52]  Gordon D. Plotkin,et al.  The origins of structural operational semantics , 2004, J. Log. Algebraic Methods Program..

[53]  R. Lathe Phd by thesis , 1988, Nature.

[54]  Edsger W. Dijkstra,et al.  A Discipline of Programming , 1976 .

[55]  Cliff B. Jones,et al.  Wanted: a compositional approach to concurrency , 2003 .

[56]  Peter Gorm Larsen,et al.  Modelling Systems: Practical Tools and Techniques in Software Development , 1998 .

[57]  P Lucas,et al.  On the formal description of PL/I , 1969 .