Proving monitors revisited : a first step towards verifying object oriented systems

An axiomatic characterization of monitors, based on assumption-commitment style reasoning, is given that is sound and (relatively) complete. This characterization is based on the fundamental notions of cooperalion and in.terfere.nce. but does not use tbem as second order notions. The cooperation test was originally conceived to capture the proof theoretical analogue of distributed message passing between disjoint processes, as opposed to the interference freedom test, being tbe proof theoretical analogue of concurrency based on interference by jointly shared variables. Since then, the cooperation test bas been applied to characterize synchronous communication in Hoare's Communicating Sequential Processes. Ichbias Ada, and Wirth's Modula-2, supported by soundness and completeness proofs. An overview is given of the rationale underlying this characterization, culminating in the development of proof systems for a new monitor based programming language for concurrency (Communicating Modules. CM) which combines distributed message passing between processes with interference through local variables of a process which are shared between its sub-processes. As such this is a first step towards the formal verification of object oriented systems. In this context, we also show how the method, traditionally cauched in terms of proof outlines, can be rendered syntax directed in a precise and formal way. In a separate paper, the proof system has been shown to be sound and (relatively) complete.

[1]  Krzysztof Apt Ten years of Hoare s logic, part II: nondeterminism , 1983 .

[2]  K. R. Apt,et al.  Proving correctness of CSP programs, a tutorial , 1986 .

[3]  Professor Dr. Niklaus Wirth,et al.  Programming in Modula-2 , 1982, Springer Berlin Heidelberg.

[4]  S. J. Young,et al.  The programming language ADA reference manual: Springer-Verlag (1981) pp 243, $7.90, DM 16.50 , 1982, Microprocess. Microsystems.

[5]  Marly Roncken,et al.  A Proof System for Brinch Hansen's Distributed Processes , 1981, GI Jahrestagung.

[6]  John H. Howard Proving monitors , 1976, CACM.

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

[8]  P. Brinch-Hansen,et al.  The programming language Concurrent Pascal , 1975 .

[9]  Edward A. Ashcroft,et al.  Proving Assertions about Parallel Programs , 1975, J. Comput. Syst. Sci..

[10]  Willem P. de Roever,et al.  A Proof System for Communicating Sequential Processes , 1980, ACM Trans. Program. Lang. Syst..

[11]  K. Mani Chandy,et al.  Proofs of Networks of Processes , 1981, IEEE Transactions on Software Engineering.

[12]  Amir Pnueli,et al.  Rendezvous with ADA: a proof theoretical view , 1982, AdaTEC Conference on Ada.

[13]  Krzysztof R. Apt,et al.  Countable nondeterminism and random assignment , 1986, JACM.

[14]  Marly Roncken,et al.  Procedures and concurrency: A study in proof , 1982, Symposium on Programming.

[15]  Leslie Lamport,et al.  The ``Hoare Logic'' of CSP, and All That , 1984, TOPL.

[16]  Richard D. Schlichting,et al.  Using message passing for distributed programming: proof rules and disciplines , 1984, TOPL.

[17]  Gregory R. Andrews,et al.  Concepts and Notations for Concurrent Programming , 1983, CSUR.

[18]  Krzysztof R. Apt,et al.  Formal Justification of a Proof System for Communicating Sequential Processes , 1983, JACM.

[19]  Willem P. de Roever,et al.  Compositionality and Concurrent Networks: Soundness and Completeness of a Proofsystem , 1985, ICALP.

[20]  Rt Rob Gerth On the existence of sound and complete axiomatizations of the monitor concept , 1987 .

[21]  Nissim Francez,et al.  Extended naming conventions for communicating processes , 1982, POPL '82.

[22]  Andrew P. Black,et al.  On proof rules for monitors , 1982, OPSR.

[23]  Rob Gerth,et al.  A study in distributed systems and Dutch patriotism , 1982 .

[24]  Jozef Hooman,et al.  The Quest Goes on: A Survey of Proofsystems for Partial Correctness of CSP , 1986, Current Trends in Concurrency.

[25]  W-P de Roever,et al.  The quest for compositionality - a survey of assertion - based proof systems for concurrent programs. Part 1 ; concurrency based on shared variables , 1985 .

[26]  C. A. R. Hoare,et al.  Procedures and parameters: An axiomatic approach , 1971, Symposium on Semantics of Algorithmic Languages.

[27]  Per Brinch Hansen,et al.  Distributed processes: a concurrent programming concept , 1978, CACM.

[28]  Willem P. de Roever,et al.  A Proof System for Concurrent ADA Programs , 1984, Sci. Comput. Program..