Progress in Deriving Concurrent Programs: Emphasizing the Role of Stable Guards

  • Brijesh Dongol
  • Arjan J. Mooij
Part of the Lecture Notes in Computer Science book series (LNCS, volume 4014)


We present some techniques to obtain smooth derivations of concurrent programs that address both safety and progress in a formal manner. Our techniques form an extension to the calculational method of Feijen and van Gasteren using a UNITY style progress logic. We stress the role of stable guards, and we illustrate the derivation techniques on some examples in which progress plays an essential role.


Control Point Atomic Statement Concurrent Program Proof Obligation Program Counter 
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. 1.
    Feijen, W., van Gasteren, A.: On a Method of Multiprogramming. Springer, Heidelberg (1999)MATHGoogle Scholar
  2. 2.
    Dijkstra, E.: A Discipline of Programming. Prentice Hall, Englewood Cliffs (1976)MATHGoogle Scholar
  3. 3.
    Owicki, S., Gries, D.: An axiomatic proof technique for parallel programs I. Acta Inform. 6, 319–340 (1976)MATHCrossRefMathSciNetGoogle Scholar
  4. 4.
    Dongol, B., Goldson, D.: Extending the theory of Owicki and Gries with a logic of progress. Logical Methods in Comput. Sci. 2(1), 1–25 (2006)MathSciNetGoogle Scholar
  5. 5.
    Chandy, K., Misra, J.: Parallel Program Design: A Foundation. Addison-Wesley Longman Publ. Co., Amsterdam (1988)MATHGoogle Scholar
  6. 6.
    Goldson, D., Dongol, B.: Concurrent program design in the extended theory of Owicki and Gries. In: Proc. of 11th Computing, Australasian Theory Symp., CATS 2005. Confs. in Research and Practice in Inform. Techn., vol. 41, pp. 41–50. Australian Comput. Soc. (2005)Google Scholar
  7. 7.
    Manna, Z., Pnueli, P.: Temporal Verification of Reactive and Concurrent Systems: Specification. Springer, Heidelberg (1992)Google Scholar
  8. 8.
    Feijen, W.: A method for avoiding total deadlock, courtesy Diethard Michaelis. Personal note WF284 (2005)Google Scholar
  9. 9.
    Mooij, A.: Formal derivations of non-blocking multiprograms. Computer Science Report 02-13, Techn. Univ. Eindhoven, Master’s Thesis under supervision of W.H.J. Feijen (2002)Google Scholar
  10. 10.
    Jutla, C., Knapp, E., Rao, J.: A predicate transformer approach to semantics of parallel programs. In: Proc. of 8th Ann. ACM Symp. on Principles of Distributed Computing, PODC 1989, pp. 249–263. ACM Press, New York (1989)CrossRefGoogle Scholar
  11. 11.
    Misra, J.: Phase synchronization. Inform. Process. Lett. 38(2), 101–105 (1991)MATHCrossRefGoogle Scholar
  12. 12.
    Peterson, G.: Myths about the mutual exclusion problem. Inform. Process. Lett. 12, 115–116 (1981)MATHCrossRefGoogle Scholar
  13. 13.
    van der Sommen, F., Feijen, W., van Gasteren, A.: Peterson’s mutual exclusion algorithm revisited. Sci. of Comput. Program 29(3), 327–334 (1997)MATHCrossRefGoogle Scholar
  14. 14.
    van der Sommen, F.: When mutual exclusion rules out overtaking. Personal note FvdS39 (2003)Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 2006

Authors and Affiliations

  • Brijesh Dongol
    • 1
  • Arjan J. Mooij
    • 2
  1. 1.School of Information Technology and Electrical EngineeringThe University of QueenslandBrisbaneAustralia
  2. 2.Dept. of Mathematics and Computer ScienceTechnische Universiteit EindhovenEindhovenThe Netherlands

Personalised recommendations