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.
Similar content being viewed by others
References
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
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
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
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
Back, R.J.R., Sere, K.: Stepwise refinement of parallel algorithms. Sci. Comput. Program.13, 133–180 (1989–90)
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
Chandy, K.M., Misra, J.: Parallel program design: a foundation. Reading, MA: Addison Wesley 1988
Dijkstra, E.W.: A discipline of programming. Englewood Cliffs, NJ: Prentice Hall 1976
Gries, D.: The science of programming. Berlin, Heidelberg, New York: Springer 1981
Hoare, C.A.R.: Proofs of correctness of data representations. Acta Inf.4, 271–281 (1972)
Jones, C.B.: Systematic software development using VDM. Englewood Cliffs, NJ: Prentice Hall 1986
Lam, S.S., Shankar, A.U.: Protocol verification via projections. IEEE Trans. Software Eng.10(4), 325–342 (1984)
Lamport, L.: A simple approach to specifying concurrent systems. Commun. ACM32(1), 32–47 (1989)
Lamport, L., Schneider, F.: Pretending atomicity. Technical Report TR-89-1005, Dept. of Computer Science, Cornell University, May 1989
Lipton, R.J.: Reduction: a method for proving properties of parallel programs. Commun. ACM14(12), 717–721 (1975)
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
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
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
Martin, A.J.: Compiling communicating processes into delay-insensitive VLSI circuits. Distrib. Comput1, 226–234 (1986)
Morgan, C., Gardiner, P.H.B.: Data refinement by calculation. Acta Inf.27, 481–503 (1990)
Morris, J.M.: Laws of data refinement. Acta Inf.26, 287–308 (1989)
Sanders, B.: Stepwise refinement of mixed specifications of concurrent programs. In: Proceedings of IFIP Conference on Programming Concepts and Methods, Israel. Amsterdam: Elsevier 1990
Sanders, B.: Eliminating the substitution axiom from Unity. Formal Aspects Comput.3, 189–205 (1991)
Seitz, C.: System timing. In: Mead, C., Conway, L. (eds.) Introduction to VLSI Systems. Reading, MA: Addison Wesley 1980
Singh, A.K.: Leads-to and program union. Notes on Unity: 06-89, The University of Texas at Austin, Texas, May 1989
Singh, A.K.: On strengthening the guard. Notes on Unity: 07-89. The University of Texas at Austin, Texas, June 1989
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
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)
Author information
Authors and Affiliations
Additional information
Work supported in part by NSF Grant CCR-9008628. A preliminary version of this paper appeared in [27]
Rights 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
Received:
Issue Date:
DOI: https://doi.org/10.1007/BF01209623