Abstract
Abstract
Compositional proof systems for shared variable concurrent programs can be devised by including the interference information in the specifications. The formalism falls into a category calledrely-guarantee (orassumption-commitment), in which a specification is explicitly (syntactically) split into two corresponding parts. This paper summarises existing work on the rely-guarantee method and gives a systematic presentation. A proof system for partial correctness is given first, thereafter it is demonstrated how the relevant rules can be adapted to verify deadlock freedom and convergence. Soundness and completeness, of which the completeness proof is new, are studied with respect to an operational model. We observe that the rely-guarantee method is in a sense a reformulation of the classical non-compositional Owicki & Gries method, and we discuss throughout the paper the connection between these two methods.
- [Apt81] Apt, K. R.: Recursive assertions and parallel programs.Acta Informatica, Springer-Verlag, 1981.Google Scholar
- [AbL95] Conjoining specificationsACM Trans. on Program. Lang. Syst.1995173507534Google ScholarDigital Library
- [Bac81] Back, R. J. R.: Proving total correctness of nondeterministic programs in infinitary logic.Acta Informatica, Springer-Verlag, 1981.Google Scholar
- [Bro93] Brookes, S. D.: Full abstraction for a shared variable parallel language. InProc. 8th IEEE Int. Symp. on Logic in Computer Science, 1993.Google Scholar
- [Col93] Collette, P.: Application of the composition principle to Unity-like specifications. In M.-C. Gaudel and J.-P. Jouannaud eds.,Proc, of TAPSOFT 93, LNCS 668, Springer-Verlag, 1993.Google Scholar
- [Coo78] Soundness and completeness of an axiom system for program verificationSIAM Journal on Computing197877090Google ScholarCross Ref
- [deRo85] de Roever, W. P.: The quest for compositionality. inProc:IFIP Working Conf. The Role of Abstract Models in Computer Science. North-Holland, 1985.Google Scholar
- [Jon81] Jones, C. B.:Development methods for computer programs including a notion of interference. DPhil. Thesis, Oxford University Computing Laboratory, 1981.Google Scholar
- [Jon96] Accommodating interference in the formal design of concurrent objectbased programsFormal Methods in System Design199682105121Google ScholarDigital Library
- [JoT95] Jonsson, B. and Tsay, Y.-K.: Reasoning about assumption/guarantee specifications in linear-time temporal logic. InProc, of TAPSOFT 95, LNCS, Springer-Verlag, 1995.Google Scholar
- [Lam95] The temporal logic of actionsACM Trans, on Program. Lang. Syst.1995163872923Google Scholar
- [MiC81] Proofs of networks of processesIEEE SE198174417426Google ScholarDigital Library
- [Mos94] Moszkowski, B.: Some very compositional temporal properties, InProgramming Concepts, Methods and Calculi (A-56), E.-R. Olderog (Editor), Elsevier Science B.V. (North-Holland), pp. 307–326, 1994.Google Scholar
- [OwG76] Owicki, S. and Gries, D.: An axiomatic proof technique for parallel programs.Acta Inform. 6, pp. 319–340, Springer-Verlag, 1976.Google Scholar
- [Plo81] Plotkin, G. D.: A structural approach to operational semantics. Computer Science Department, Aarhus University, Technical Report, DAIMI FN-19,1981.Google Scholar
- [Sti88] A generalization of Owicki-Gries's Hoare logic for a concurrent while languageTheoretical Computer Science198858347359Google ScholarDigital Library
- [Stø90] Stølen, K.:Development of Parallel Programs on Shared Data-structures. Ph.D Thesis, Computer Science Department, Manchester University, 1990.Google Scholar
- [Stø91a] Stølen, K.: An attempt to reason about shared-state concurrency in the style of VDM. in S. Prehn and W. J. Toetenel, editors,Proceedings of VDM 91, LNCS 551, Springer-Verlag, 1991.Google Scholar
- [Stø91b] Stø1en, K.: A method for the development of totally correct shared-state parallel programs. In J.C.M. Baeten and J.F. Groote, editors,Proceedings of CONCUR 91, LNCS 527, Springer-Verlag, 1991.Google Scholar
- [Stø92a] Proving total correctness with respect to a fair (share-state) parallel languageProceedings of BCS FACS 5th Refinement Workshop1992LondonSpringer-VerlagGoogle Scholar
- [Stø92b] Shared-state design modulo weak and strong process fairnessProceedings of 5th International Conference on Formal Description Techniques1992FrancePerros-GuirecGoogle Scholar
- [WoD88] Using VDM with Rely and Guarantee-conditions, experiences from a real project2nd VDM-Europe Symposium1988Dublin, IrelandSpringer-VerlagGoogle Scholar
- [XdR95] Rely-guarantee method for verifying shared variable concurrent programs, report 95021995GermanyChristian-Albrechts-Universität zu KielGoogle Scholar
- [XuH91] A theory of state-based parallel programming: Part 1Proceedings of BCS FACS 4th Refinement Workshop1991CambridgeSpringer-VerlagGoogle Scholar
- [Xu92] Xu, Q.-W.:A theory of state-based parallel programming. DPhil. Thesis, Oxford University Computing Laboratory, 1992.Google Scholar
- [XCC94] Xu, Q.-W., Cau, A. and Collette, P.: On unifying assumption-commitment style proof rules for concurrency. In B. Jonsson and J. Parrow editors,Proceedings of CONCUR 94, LNCS 836, Springer-Verlag, 1994.Google Scholar
Index Terms
- The rely-guarantee method for verifying shared variable concurrent programs
Recommendations
Mechanically Verifying Concurrent Programs with the Boyer-Moore Prove
A proof system suitable for the mechanical verification of concurrent programs is described. This proof system is based on Unity, and may be used to specify and verify both safety and liveness properties. However, it is defined with respect to an ...
Interleaved Programs and Rely-Guarantee Reasoning with ITL
TIME '11: Proceedings of the 2011 Eighteenth International Symposium on Temporal Representation and ReasoningThis paper presents a logic that extends basicITL with explicit, interleaved programs. The calculus is based on symbolic execution, as previously described. We extend this former work here, by integrating the logic with higher-order logic, adding ...
Verifying a Concurrent Garbage Collector with a Rely-Guarantee Methodology
Concurrent garbage collection algorithms are a challenge for program verification. In this paper, we address this problem by proposing a mechanized proof methodology based on the Rely-Guarantee proof technique. We design a compiler intermediate ...
Comments