Skip to main content
Log in

A methodology for designing proof rules for fair parallel programs

  • Published:
Formal Aspects of Computing

Abstract

We propose a methodology for designing sound and complete proof systems for proving progress properties of parallel programs under various fairness assumptions. Our methodology begins with a branching time temporal logic formula (CTL*) formula that expresses progress under a fairness assumption. The next step obtains an equivalent fixpoint characterization of this CTL* formula in theμ-calculus. The final step uses the fixpoint characterizations to extract proof systems for proving progress under the fairness constraint. The methodology guarantees that the proof rules so obtained are sound and relatively complete in the sense of Cook.

This is a preview of subscription content, log in via an institution to check access.

Access this article

Price excludes VAT (USA)
Tax calculation will be finalised during checkout.

Instant access to the full article PDF.

Similar content being viewed by others

References

  1. Apt, K. and Plotkin G.: Countable nondeterminism and random assignment.Journal of the ACM, 33(4):724–767, 1986.

    Google Scholar 

  2. Apt, K., Pnueli, A. and Stavi J.: Fair termination revisited with delay.Theoretical Computer Science, 33:65–84, 1984.

    Google Scholar 

  3. Apt, K.: Ten years of Hoare logic — part 1.ACM Transactions on Programming Languages and Systems, 3(4):431–483, 1981.

    Google Scholar 

  4. Alpern, B. and Schneider, F.: Defining liveness.Inf. Process. Lett., 24(4):181–185, October 1985.

    Google Scholar 

  5. Mani Chandy, K. and Misra, J.:Parallel Program Design: A Foundation. AddisonWesley, Reading, Massachusetts, 1988.

    Google Scholar 

  6. Cook, S.: Soundness and completeness of an axiom system for program verification.SIAM Journal of Computing, 7(1):70–90, 1978.

    Google Scholar 

  7. Dijkstra, E. W.: Guarded commands, nondeterminacy and the formal derivation of programs.Commun. of the ACM, 18(8):453–457, August 1975.

    Google Scholar 

  8. Dijkstra, E. W. and Scholten, C. S.:Predicate Calculus and Program Semantics. SpringerVerlag, New York, 1990.

    Google Scholar 

  9. Allen Emerson, E. and Clarke, E.: Characterizing correctness properties of parallel programs using fixpoints. In Jaco de Bakker and Jan van Leeuwen, editors,Lecture Notes in Computer Science 85: Proceedings of the Seventh ICALP. Springer-Verlag, New York, 1981.

    Google Scholar 

  10. Allen Emerson, E. and Lei, D. L.: Modalities for model checking: Branching time strikes back. InProceedings of the 12th Annual ACM Symposium on the Principles of Programming Languages, New Orleans, LA, January 1985.

  11. Allen Emerson, E. and Lei, D. L.: Model-checking in the propositionalμ-calculus. InProceedings of the Fist Annual IEEE Symposium on Logic in Computer Science, 1986.

  12. Floyd, R. W.: Assigning meanings to programs. InProceedings of the American Mathematical Society's Symposia in Applied Mathematics, volume 19, pages 19–31, 1967.

    Google Scholar 

  13. Francez, N.:Fairness. Springer-Verlag, New York, 1986.

    Google Scholar 

  14. Grumberg, O., Francez, N., Makowsky, J. A. and De Roever, W-P.: A proof rule for the fair termination of guarded commands. InProceedings of the International Symposium on Algorithmic Languages, Amsterdam, The Netherlands, October 1981.

  15. Gabbay, D., Pnueli, A., Shelah, S. and Stavi, J.: On the temporal analysis of fairness. InProceedings of the Seventh Annual ACM Symposium on the Principles of Programming Languages, Las Vegas, Nevada, January 1980.

  16. Hoare, C. A. R.: An axiomatic basis for computer programming.Communications of the ACM, 12(10):576–580,583, 1969.

    Google Scholar 

  17. Hopcroft, J. E. and Ullman, J. D.:Intoduction to Automata Theory, Languages and Computation. Addison-Wesley, 1979.

  18. Jutla, C. S., Knapp, E. and Rao, J. R.: A predicate transformer approach to the semantics of parallel programs. InProceedings of the Eighth Annual ACM Symposium on the Principles of Distributed Computing, pages 249–263, 1989.

  19. Jutla, C. S. and Rao, J. R.: On a fixpoint semantics and the design of proof rules for fair parallel programs. Technical Report TR-92-23, The University of Texas at Austin, Department of Computer Sciences, 1992.

    Google Scholar 

  20. Keller, R. M.: Formal verification of parallel programs.Communications of the ACM, 19(7):371–384, 1976.

    Google Scholar 

  21. Knapp, E.: A comparison of theled-from andleads-to. Technical Report TR-88-35, The University of Texas at Austin, Department of Computer Sciences, 1988.

    Google Scholar 

  22. Kozen, D.: Results on the propositional mu-calculus. InLecture Notes in Computer Science 140: Proceedings of the Ninth ICALP, pages 348–359. Springer-Verlag, New York, 1982.

    Google Scholar 

  23. Lamport, L.: Proving the correctness of multiprocess programs.IEEE Transactions on Software Engineering, 3(2):125–143, 1977.

    Google Scholar 

  24. Lehmann D., Pnueli, A. and Stavi, J.: Impartiality, justice and fairness: The ethics of concurrent termination. In O. Kariv and S. Even, editors,Lecture Notes in Computer Science 115: Proceedings of the Eighth ICALP. Springer-Verlag, New York, 1981.

    Google Scholar 

  25. Manna, Z. and Pnueli, A.: How to cook a temporal proof system for your pet language. InProceedings of the Tenth Annual ACM Symposium on the Principles of Programming Languages, pages 141–154, 1983.

  26. Manna, Z. and Pnueli, A.: Adequate proof principles for invariance and liveness properties of concurrent programs.Science of Computer Programming, 4:257–289, 1984.

    Google Scholar 

  27. Niwinski, D.: Fixed points versus infinite generation. InProceedings of the Third Annual IEEE Symposium on Logic in Computer Science, pages 402–409, 1988.

  28. Owicki, S. and Gries, D.: An axiomatic proof technique for parallel programs.Acta Informatica, 5:319–339, 1976.

    Google Scholar 

  29. Owicki, S. and Gries, D.: Verifying properties of parallel programs: An axiomatic approach.Communications of the ACM, 19(5):279–286, 1976.

    Google Scholar 

  30. Owicki, S. and Lamport, L.: Proving liveness properties of concurrent programs.ACM Transactions on Programming Languages and Systems, 4(3):455–495, July 1982.

    Google Scholar 

  31. Pachl, J.: Three definitions ofleads-to for unity. Notes on UNITY 23-90, 1990.

  32. Park, D.: On the semantics of fair parallelism. In D. Biorner, editor,Lecture Notes in Computer Science 86: Proceedings of the Winter School on Formal Software Specification. Springer-Verlag, 1980.

  33. Park, D.: A predicate transformer for weak fair iteration. InProceedings of the Sixth IBM Symposium on Mathematical Foundations of Computer Science (Hakone), IBM, New York, 1981.

    Google Scholar 

  34. Pnueli, A.: On the extremely fair treatment of probabilistic algorithms. InProceedings of the 15th Annual ACM Symposium on the Theory of Computing, Boston, Mass., 1983, pages 278–290. ACM, New York, 1983.

    Google Scholar 

  35. Queille, J. P. and Sifakis, J.: Fairness and related properties in transition systems — a temporal logic to deal with fairness.Acta Informatica, 19:195–220, 1983.

    Google Scholar 

  36. Rao, J. R.:Extensions of the UNITY Methodology: Compositionality, Fairness And Probability In Parallelism, volume 908 ofLecture Notes in Computer Science. Springer-Verlag, 1995.

  37. Rosenstein, J. G.:Linear Orderings. Academic Press, 1982.

  38. Stomp, F. A., de Roever, W-P. and Gerth, R. T.: Theμ-calculus as an assertion language for fairness arguments.Information and Computation, 82(3):278–322, September 1989.

    Google Scholar 

  39. Walukiewicz, I.: On completeness of theμ-calculus. InProceedings of the Eighth Annual IEEE Symposium on Logic in Computer Science, 1993.

  40. Wand, M.: A new incompleteness result for Hoare's system.Journal of the ACM, 25(1):168–175, 1978.

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Rights and permissions

Reprints and permissions

About this article

Cite this article

Jutla, C.S., Rao, J.R. A methodology for designing proof rules for fair parallel programs. Formal Aspects of Computing 9, 359–378 (1997). https://doi.org/10.1007/BF01211296

Download citation

  • Received:

  • Accepted:

  • Issue Date:

  • DOI: https://doi.org/10.1007/BF01211296

Keywords

Navigation