Skip to main content
Log in

Program refinement in fair transition systems

  • Published:
Acta Informatica Aims and scope Submit manuscript

Abstract

Refinement of programs is investigated in the context of fair transition systems. Two kinds of refinements, property preserving and fixed-point preserving, are defined. Conditions are developed under which common program transformations such as data refinement are property preserving and fixed-point preserving. These conditions and relevant program refinements are illustrated through a number of examples.

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

Access this article

Subscribe and save

Springer+ Basic
$34.99 /Month
  • Get 10 units per month
  • Download Article/Chapter or eBook
  • 1 Unit = 1 Article or 1 Chapter
  • Cancel anytime
Subscribe now

Buy Now

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. Abadi, M., Lamport, L.: The existence of refinement mappings. In: Proceedings of the 3rd IEEE Symposium on Logic in Computer Science, pp. 165–175, 1988

  2. Back, R.J.R.: Correctness preserving program refinements: proof theory and applications. Technical Report Mathematical Center Tracts, 131, Center for Mathematics and Computer Science (CWI), Amsterdam 1980

    Google Scholar 

  3. Back, R.J.R.: A method for refining atomicity in parallel algorithms. In: Odijk, E., Rein, M., Syre, J.C. (eds.) PARLE '89 — Parallel architectures and languages Europe, Vol. II (Lect. Notes Comput. Sci. 366, pp. 199–216) Berlin, Heidelberg, New York: Springer 1989

    Google Scholar 

  4. Back, R.J.R.: Refinement calculus, part II: parallel and reactive programs. In: Bakker, J.W. de, Roever, W.P. de, Rozenberg, G. (eds.) Stepwise refinement of distributed systems: models, formalisms, correctness (Lect. Notes Comput. Sci., Vol. 430, pp. 67–93) Berlin, Heidelberg, New York: Springer 1990

    Google Scholar 

  5. Back, R.J.R., Sere, K.: Stepwise refinement of parallel algorithms. Sci. Comput. Program.13, 133–180 (1989–90)

    Google Scholar 

  6. Back, R.J.R., von Wright, J.: Refinement calculus, part I: sequential nondeterministic processes. In: Bakker, J.W. de, Roever, W.P. de, Rozenberg, G. (eds.) Stepwise refinement of distributed systems: models, formalisms, correctness (Lect. Notes Comput. Sci., Vol. 430, pp. 42–66) Berlin, Heidelberg, New York: Springer 1990

    Google Scholar 

  7. Chandy, K.M., Misra, J.: Parallel program design: a foundation. Reading, MA: Addison Wesley 1988

    Google Scholar 

  8. Dijkstra, E.W.: A discipline of programming. Englewood Cliffs, NJ: Prentice Hall 1976

    Google Scholar 

  9. Gries, D.: The science of programming. Berlin, Heidelberg, New York: Springer 1981

    Google Scholar 

  10. Hoare, C.A.R.: Proofs of correctness of data representations. Acta Inf.4, 271–281 (1972)

    Google Scholar 

  11. Jones, C.B.: Systematic software development using VDM. Englewood Cliffs, NJ: Prentice Hall 1986

    Google Scholar 

  12. Lam, S.S., Shankar, A.U.: Protocol verification via projections. IEEE Trans. Software Eng.10(4), 325–342 (1984)

    Google Scholar 

  13. Lamport, L.: A simple approach to specifying concurrent systems. Commun. ACM32(1), 32–47 (1989)

    Google Scholar 

  14. Lamport, L., Schneider, F.: Pretending atomicity. Technical Report TR-89-1005, Dept. of Computer Science, Cornell University, May 1989

  15. Lipton, R.J.: Reduction: a method for proving properties of parallel programs. Commun. ACM14(12), 717–721 (1975)

    Google Scholar 

  16. Liu, Y., Singh, A.K., Bagrodia, R.: A decomposition based approach to design of efficient parallel programs. In: Etiemble, D., Syre, J.-C. (eds.) PARLE '92. Parallel architectures and languages Europe. (Lect. Notes Comput. Sci., Vol. 605, pp. 21–36) Berlin, Heidelberg, New York: Springer 1992

    Google Scholar 

  17. Lynch, N.A., Tuttle, M.: Hierarchical correctness proofs for distributed algorithms. In: Proceedings of the Sixth Annual ACM Symposium on Principles of Distributed Computing, pp. 137–151, 1987

  18. Manna, Z., Pnueli, A.: How to cook a temporal proof system for your pet language. In: Proceedings of the 9th ACM Symposium on Principles of Programming Languages, pp. 141–154, 1983

  19. Martin, A.J.: Compiling communicating processes into delay-insensitive VLSI circuits. Distrib. Comput1, 226–234 (1986)

    Google Scholar 

  20. Morgan, C., Gardiner, P.H.B.: Data refinement by calculation. Acta Inf.27, 481–503 (1990)

    Google Scholar 

  21. Morris, J.M.: Laws of data refinement. Acta Inf.26, 287–308 (1989)

    Google Scholar 

  22. Sanders, B.: Stepwise refinement of mixed specifications of concurrent programs. In: Proceedings of IFIP Conference on Programming Concepts and Methods, Israel. Amsterdam: Elsevier 1990

    Google Scholar 

  23. Sanders, B.: Eliminating the substitution axiom from Unity. Formal Aspects Comput.3, 189–205 (1991)

    Google Scholar 

  24. Seitz, C.: System timing. In: Mead, C., Conway, L. (eds.) Introduction to VLSI Systems. Reading, MA: Addison Wesley 1980

    Google Scholar 

  25. Singh, A.K.: Leads-to and program union. Notes on Unity: 06-89, The University of Texas at Austin, Texas, May 1989

    Google Scholar 

  26. Singh, A.K.: On strengthening the guard. Notes on Unity: 07-89. The University of Texas at Austin, Texas, June 1989

    Google Scholar 

  27. Singh, A.K.: Program refinement in fair transition systems. In: Aarts, E.H., Leeuwen, J. van, Rem, M. (eds.) PARLE '91. Parallel architectures and languages Europe (Lect. Notes Comput. Sci., Vol. 506, pp. 128–147) Berlin, Heidelberg, New York: Springer 1991

    Google Scholar 

  28. Singh, A.K., Overbeek, R.: Derivation of efficient parallel programs: an example from genetic sequence analysis. Int. J. Parallel Program.18(6), 446–484 (1989)

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Additional information

Work supported in part by NSF Grant CCR-9008628. A preliminary version of this paper appeared in [27]

Rights and permissions

Reprints and permissions

About this article

Cite this article

Singh, A.K. Program refinement in fair transition systems. Acta Informatica 30, 503–535 (1993). https://doi.org/10.1007/BF01209623

Download citation

  • Received:

  • Issue Date:

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

Keywords

Navigation