Abstract
Verifications of parallel programs are frequently based on automated state-space exploration techniques known as model checking. To avoid state-space explosion problems, theorem proving techniques can be used, for example by manually annotating programs with suitable assertions and using these assertions to prove their correctness (e.g. using the Owicki/Gries theory). We propose a method to support assertion-based methods with theorem provers like PVS. Emphasis is on the typical incremental character of assertion-based methods, and on automated strategies for proving correctness of the proof outlines.
This research is supported by the NWO under project 016.023.015: “Improving the Quality of Protocol Standards”.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Preview
Unable to display preview. Download preview PDF.
Similar content being viewed by others
References
Ábrahám, E.: An Assertional Proof System for Multithreaded Java - Theory and Tool Support. PhD thesis, Universiteit Leiden (2005)
Dijkstra, E.W.: A Discipline of Programming. Prentice-Hall, Englewood Cliffs (1976)
Franssen, M.: Cocktail: A tool for deriving correct programs. In: Workshop on Automated Reasoning (April 1999)
Feijen, W.H.J., van Gasteren, A.J.M.: On a method of multiprogramming. Springer, Heidelberg (1999)
Gao, H., Groote, J.F., Hesselink, W.H.: Lock-free dynamic hash tables with open addressing. Distributed Computing 17, 21–42 (2005)
Griffioen, D., Huisman, M.: A comparison of PVS and Isabelle/HOL. In: Grundy, J., Newey, M. (eds.) TPHOLs 1998. LNCS, vol. 1479, pp. 123–142. Springer, Heidelberg (1998)
Hesselink, W.H.: Invariants for the construction of a handshake register. Information Processing Letters 68, 173–177 (1998)
Hoare, C.A.R.: An axiomatic basis for computer programming. Communications of the ACM 12(10), 576–580 (1969)
Hooman, J.: Developing proof rules for distributed real-time systems with PVS. In: Workshop on Tool Support for System Development and Verification. BISS Monographs, vol. 1, pp. 120–139. Shaker, Aachen (1998)
Jacobs, B., Poll, E.: Java program verification at Nijmegen: Developments and perspective. Report NIII-R0318, University of Nijmegen (2003)
Mooij, A.J.: Formal derivations of non-blocking multiprograms. Computer Science Report 02-13, Technische Universiteit Eindhoven (October 2002)
Mooij, A.J., Wesselink, W.: A formal analysis of a dynamic distributed spanning tree algorithm. Computer Science Report 03-16, Technische Universiteit Eindhoven (December 2003)
Nipkow, T., Nieto, L.P.: Owicki/Gries in Isabelle/HOL. In: Finance, J.-P. (ed.) FASE 1999. LNCS, vol. 1577, pp. 188–203. Springer, Heidelberg (1999)
Owicki, S., Gries, D.: An axiomatic proof technique for parallel programs I. Acta Informatica 6, 319–340 (1976)
Owre, S., Rushby, J., Shankar, N.: PVS: A prototype verification system. In: Kapur, D. (ed.) CADE 1992. LNCS, vol. 607, pp. 748–752. Springer, Heidelberg (1992)
Paulson, L.C.: Isabelle: A Generic Theorem Prover. In: Isabelle. LNCS, vol. 828. Springer, Heidelberg (1994)
Nieto, L.P.: Verification of Parallel Programs with the Owicki-Gries and Rely-Guarantee Methods in Isabelle/HOL. PhD thesis, Technische Universität München (2002)
Xu, Q., de Roever, W.-P., He, J.: The rely-guarantee method for verifying shared variable concurrent programs. Formal Aspects of Computing, 149–174 (1997)
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2005 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Mooij, A.J., Wesselink, W. (2005). Incremental Verification of Owicki/Gries Proof Outlines Using PVS. In: Lau, KK., Banach, R. (eds) Formal Methods and Software Engineering. ICFEM 2005. Lecture Notes in Computer Science, vol 3785. Springer, Berlin, Heidelberg. https://doi.org/10.1007/11576280_27
Download citation
DOI: https://doi.org/10.1007/11576280_27
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-29797-0
Online ISBN: 978-3-540-32250-4
eBook Packages: Computer ScienceComputer Science (R0)