Trace Semantics for the Owicki-Gries Theory Integrated with the Progress Logic from UNITY

The theory of Owicki and Gries has been used as a platform for safety-based verifcation and derivation of concurrent programs. It has also been integrated with the progress logic of UNITY which has allowed newer techniques of progress-based verifcation and derivation to be developed. However, a theoretical basis for the integrated theory has thus far been missing. In this paper, we provide a theoretical background for the logic of Owicki and Gries integrated with the logic of progress from UNITY. An operational semantics for the new framework is provided which is used to prove soundness of the progress logic.

[1]  K. Mani Chandy,et al.  Parallel program design - a foundation , 1988 .

[2]  Sol J. Greenspan,et al.  Proceedings of the 5th international workshop on Software specification and design , 1989 .

[3]  Leslie Lamport,et al.  Proving Liveness Properties of Concurrent Programs , 1982, TOPL.

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

[5]  Brijesh Dongol,et al.  Concurrent Program Design in the Extended Theory of Owicki and Gries , 2005, CATS.

[6]  A. J. M. van Gasteren,et al.  On a Method of Multiprogramming , 2010, Monographs in Computer Science.

[7]  Brijesh Dongol,et al.  Extending the theory of Owicki and Gries with a logic of progress , 2005, Log. Methods Comput. Sci..

[8]  Arjan J. Mooij,et al.  Progress in Deriving Concurrent Programs: Emphasizing the Role of Stable Guards , 2006, MPC.

[9]  Charanjit S. Jutla,et al.  A predicate transformer approach to semantics of parallel programs , 1989, PODC '89.

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

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

[12]  Brijesh Dongol Derivation of Java monitors , 2006, Australian Software Engineering Conference (ASWEC'06).

[13]  Greg Nelson,et al.  A generalization of Dijkstra's calculus , 1989, ACM Trans. Program. Lang. Syst..

[14]  Joseph Y. Halpern,et al.  “Sometimes” and “not never” revisited: on branching versus linear time temporal logic , 1986, JACM.

[15]  Leslie Lamport,et al.  Specifying Systems: The TLA+ Language and Tools for Hardware and Software Engineers [Book Review] , 2002, Computer.

[16]  Jan K. Pachl A Simple Proof of a Completeness Result for leads-to in the UNITY Logic , 1992, Inf. Process. Lett..

[17]  R. Gerth,et al.  Rooting UNITY , 1989, IWSSD '89.

[18]  Arjan J. Mooij,et al.  Streamlining progress-based derivations of concurrent programs , 2008, Formal Aspects of Computing.