skip to main content
research-article
Free Access

Dually nondeterministic functions

Authors Info & Claims
Published:30 October 2008Publication History
Skip Abstract Section

Abstract

Nondeterminacy is a fundamental notion in computing. We show that it can be described by a general theory that accounts for it in the form in which it occurs in many programming contexts, among them specifications, competing agents, data refinement, abstract interpretation, imperative programming, process algebras, and recursion theory. Underpinning these applications is a theory of nondeterministic functions; we construct such a theory. The theory consists of an algebra with which practitioners can reason about nondeterministic functions, and a denotational model to establish the soundness of the theory. The model is based on the idea of free completely distributive lattices over partially ordered sets. We deduce the important properties of nondeterministic functions.

References

  1. Abramsky, S. and Jung, A. 1994. Domain theory. In Handbook of Logic in Computer Science, S. Abramsky, D. M. Gabbay, and T. S. E. Maibaum, Eds. Vol. 3. Clarendon Press, 1--168. Google ScholarGoogle ScholarDigital LibraryDigital Library
  2. Apt, K. R. and Plotkin, G. D. 1986. Countable nondeterminism and random assignment. J. ACM 33, 4, 724--767. Google ScholarGoogle ScholarDigital LibraryDigital Library
  3. Back, R.-J. R. 1980. Correctness preserving program refinements: Proof theory and applications. Tract 131, Mathematisch Centrum, Amsterdam.Google ScholarGoogle Scholar
  4. Back, R.-J. R. and von Wright, J. 1990. Duality in specification languages: a lattice-theoretical approach. Acta Inf. 27, 7, 583--625. Google ScholarGoogle ScholarDigital LibraryDigital Library
  5. Back, R.-J. and von Wright, J. 1998. Refinement Calculus: A Systematic Introduction. Springer-Verlag, New York. Google ScholarGoogle ScholarCross RefCross Ref
  6. Bartenschlager, G. 1995. Free bounded distributive lattices over finite ordered sets and their skeletons. Acta Math. Univ. Comen. 64, 1--23.Google ScholarGoogle Scholar
  7. Berry, G. 1978. Stable models of typed lambda-calculi. In Proceedings of the 5th Colloquium on Automata, Languages and Programming. Lecture Notes in Comput. Science, vol. 62. Springer-Verlag, New York, 72--89. Google ScholarGoogle ScholarDigital LibraryDigital Library
  8. Bird, R. and de Moor, O. 1997. Algebra of Programming. Prentice Hall, London. ISBN 0-13-507245-X. Google ScholarGoogle ScholarDigital LibraryDigital Library
  9. Birkhoff, G. 1967. Lattice Theory, 3rd ed. Colloquium Publications, vol. 25. American Mathematical Society.Google ScholarGoogle Scholar
  10. Bois, A. R. D., Pointon, R., Loidl, H.-W., and Trinder, P. 2002. Implementing declarative parallel bottom-avoiding choice. In Proceedings of the 14th Symposium on Computer Architecture and High Performance Computing, A. F. de Souza, Ed. IEEE Computer Society Press, Los Alamitos, CA. Google ScholarGoogle ScholarDigital LibraryDigital Library
  11. Bonsangue, M. 1998. Topological Duality in Semantics. Electronic Notes in Theoretical Computer Science, vol. 8. Elsevier, Amsterdam.Google ScholarGoogle Scholar
  12. Bonsangue, M. M. and Kok, J. N. 1994. The weakest precondition calculus: Recursion and duality. Formal Asp. Comput. 6, 788--800.Google ScholarGoogle ScholarCross RefCross Ref
  13. Boute, R. T. 2005. Functional declarative language design and predicate calculus: a practical approach. ACM Trans. Program. Lang. Syst. 27, 5, 988--1047. Google ScholarGoogle ScholarDigital LibraryDigital Library
  14. Broy, M. 1986. A theory for nondeterminism, parallelism, communication, and concurrency. Theoret. Comput. Sci. 45, 1, 1--61. Google ScholarGoogle ScholarDigital LibraryDigital Library
  15. Cattani, G. L. and Winskel, G. 1996. Presheaf models for concurrency. In Computer Science Logic, D. van Dalen and M. Bezem, Eds. Lecture Notes in Computer Science, vol. 1258. Springer, 58--75. Google ScholarGoogle ScholarDigital LibraryDigital Library
  16. Cousot, P. 1996. Abstract interpretation. ACM Comput. Surv. 28, 2, 324--328. Google ScholarGoogle ScholarDigital LibraryDigital Library
  17. Davey, B. and Priestley, H. 2002. Introduction to Lattices and Order, 2nd ed. Cambridge University Press.Google ScholarGoogle Scholar
  18. de Moor, O. and Gibbons, J. 2000. Invited talk: Pointwise relational programming. In Proceedings of the 8th International Conference on Algebraic Methodology and Software Technology. Lecture Notes in Computer Science. Vol. 1816. Springer-Verlag, New York, 371--390. Google ScholarGoogle ScholarDigital LibraryDigital Library
  19. DeRoever, W.-P. and Engelhardt, K. 1999. Data Refinement: Model-Oriented Proof Methods and Their Comparison. Cambridge University Press, New York, NY, USA. Google ScholarGoogle ScholarDigital LibraryDigital Library
  20. Dijkstra, E. W. 1976. A Discipline of Programming. Prentice-Hall, Englewood Cliffs, NJ. Google ScholarGoogle ScholarDigital LibraryDigital Library
  21. Dijkstra, E. W. 1982. The equivalence of bounded nondeterminacy and continuity. In Selected Writings on Computing: A Personal Perspective, Springer-Verlag, New York. Google ScholarGoogle ScholarDigital LibraryDigital Library
  22. Flannery, K. E. and Martin, J. J. 1990. The Hoare and Smith power domain constructors commute under composition. J. Comput. Syst. Sci. 40, 2, 125--135. Google ScholarGoogle ScholarDigital LibraryDigital Library
  23. Freese, R., Jezek, J., and Nation, J. 1995. Free Lattices. Mathematical Surveys and Monographs, vol. 42. American Mathematical Society.Google ScholarGoogle Scholar
  24. Gardiner, P. H. B., Martin, C. E., and de Moor, O. 1994. An algebraic construction of predicate transformers. Sci. Comput. Program. 22, 1-2, 21--44. Google ScholarGoogle ScholarDigital LibraryDigital Library
  25. Gardiner, P. H. B. and Morgan, C. C. 1991. Data refinement of predicate transformers. Theoret. Comput. Sci. 87, 143--162. Google ScholarGoogle ScholarDigital LibraryDigital Library
  26. Gries, D. and Schneider, F. B. 1993. A Logical Approach to Discrete Math. Springer-Verlag, New York. Google ScholarGoogle ScholarDigital LibraryDigital Library
  27. Harmer, R. and McCusker, G. 1999. A fully abstract game semantics for finite nondeterminism. In Proceedings of the 14th Annual Symposium on Logic in Computer Science. IEEE Computer Society Press, Los Alamitos, CA, 422--430. Google ScholarGoogle ScholarDigital LibraryDigital Library
  28. Heckmann, R. 1991a. Lower and upper power domain constructions commute on all cpos. Inf. Process. Lett. 40, 1, 7--11.Google ScholarGoogle ScholarDigital LibraryDigital Library
  29. Heckmann, R. 1991b. Power domain constructions. Sci. Comput. Program. 17, 1-3, 77--117. Google ScholarGoogle ScholarDigital LibraryDigital Library
  30. Heckmann, R. 1991c. An upper power domain construction in terms of strongly compact sets. In MFPS, S. D. Brookes, M. G. Main, A. Melton, M. W. Mislove, and D. A. Schmidt, Eds. Lecture Notes in Computer Science, vol. 598. Springer-Verlag, New York, 272--293. Google ScholarGoogle ScholarDigital LibraryDigital Library
  31. Hehner, E. C. R. 1993. A Practical Theory of Programming. Springer Verlag, New York, London. 2nd ed. 2004 at http://www.cs.toronto.edu/~hehner/aPToP/. Google ScholarGoogle ScholarDigital LibraryDigital Library
  32. Hennessy, M. and Plotkin, G. D. 1979. Full abstraction for a simple parallel programming language. In MFCS, J. Becvár, Ed. Lecture Notes in Computer Science, vol. 74. Springer, 108--120.Google ScholarGoogle Scholar
  33. Hesselink, W. H. 1990. Modalities of nondeterminacy. In Beauty is our Business: A Birthday Salute to E.W. Dijkstra, W. H. J. Feijen, A. J. M. van Gasteren, D. Gries, and J. Misra, Eds. Springer-Verlag, New York, 182--192. Google ScholarGoogle ScholarDigital LibraryDigital Library
  34. Hesselink, W. 2004. Multirelations are predicate transformers. Tech. rep., Dept. of Computing Science, University of Groningen, The Netherlands.Google ScholarGoogle Scholar
  35. Hoare, C. A. R. 1984. Communicating Sequential Processes. Prentice-Hall, Englewood Cliffs, NJ. Google ScholarGoogle ScholarDigital LibraryDigital Library
  36. Hoare, C. A. R., He, J., and Sanders, J. W. 1987. Prespecification in data refinement. Inf. Process. Lett. 25, 2, 71--76. Google ScholarGoogle ScholarDigital LibraryDigital Library
  37. Hoofman, R. 1987. Powerdomains. Tech. Rep. RUU-CS-87-23, Institute of Information and Computing Sciences, Utrecht University.Google ScholarGoogle Scholar
  38. Hoogerwoord, R. R. 1989. The design of functional programs: a calculational approach. Ph.D. thesis, Technische Universiteit Eindhoven.Google ScholarGoogle Scholar
  39. Hughes, J. and Moran, A. 1995. Making choices lazily. In Proceedings of the 7th International Conference on Functional Programming Languages and Computer Architecture. ACM, New York, 108--119. Google ScholarGoogle ScholarDigital LibraryDigital Library
  40. Hughes, J. and O'Donnell, J. 1991. Nondeterministic functional programming with sets. In Proceedings of the 4th Higher Order Workshop Banff 1990 (Sept. 10--14, 1990, Alberta, Bc, Canada). Springer-Verlag, New York.Google ScholarGoogle ScholarCross RefCross Ref
  41. Jacobs, D. and Gries, D. 1985. General correctness: A unification of partial and total correctness. Acta Inf. 22, 1, 67--83. Google ScholarGoogle ScholarDigital LibraryDigital Library
  42. Jones, S. P., Reid, A., Henderson, F., Hoare, T., and Marlow, S. 1999. A semantics for imprecise exceptions. In Proceedings of the ACM SIGPLAN 1999 Conference on Programming Language Design and Implementation. ACM, New York, 25--36. Google ScholarGoogle ScholarDigital LibraryDigital Library
  43. Laird, J. 2006. Bidomains and full abstraction for countable nondeterminism. In Proceedings of the Foundations of Software Science and Computation Structures 2006. Lecture Notes in Computer Science, vol. 3921. Springer-Verlag, New York. Google ScholarGoogle ScholarDigital LibraryDigital Library
  44. Larsen, P. G. and Hansen, B. S. 1996. Semantics of under-determined expressions. Form. Asp. Comput. 8, 1, 47--66.Google ScholarGoogle ScholarCross RefCross Ref
  45. Lassen, S. B. 1998. Relational reasoning about functions and nondeterminism. Ph.D. dissertation. Dept of Computer Science, University of Aarhus.Google ScholarGoogle Scholar
  46. Levy, P. B. 2005. Infinite trace equivalence. In Proceedings of the 21st Annual Conference on Mathematical Foundations of Programming Semantics. Electronic Notes in Theoretical Computer Science, vol. 155. Springer-Verlag, New York, 195--209. Google ScholarGoogle ScholarDigital LibraryDigital Library
  47. Main, M. G. 1985. Free constructions of powerdomains. In Mathematical Foundations of Programming Semantics, A. Melton, Ed. Lecture Notes in Computer Science, vol. 239. Springer-Verlag, New York, 162--183. Google ScholarGoogle ScholarDigital LibraryDigital Library
  48. Martin, C. E., Curtis, S. A., and Rewitzky, I. 2004. Modelling nondeterminism. In Proceedings of the 7th International Conference on Mathematics of Program Construction, D. Kozen and C. Shankland, Eds. Lecture Notes in Computer Science, vol. 3125. Springer-Verlag, New York, 228--251.Google ScholarGoogle Scholar
  49. Morgan, C. 1988. The specification statement. ACM Trans. Prog. Lang. Syst. 10, 403--419. Google ScholarGoogle ScholarDigital LibraryDigital Library
  50. Morgan, C. 1990. Programming from Specifications. Series in Computer Science. Prentice-Hall, Englewood Cliffs, NJ. Google ScholarGoogle ScholarDigital LibraryDigital Library
  51. Morgan, C. and Gardiner, P. H. B. 1991. Data refinement by calculation. Acta Informatica 27, 481--503. Google ScholarGoogle ScholarDigital LibraryDigital Library
  52. Morris, J. M. 1987. A theoretical basis for stepwise refinement and the programming calculus. Sci. Comput. Prog. 9, 287--306. Google ScholarGoogle ScholarDigital LibraryDigital Library
  53. Morris, J. M. 2004. Augmenting types with unbounded demonic and angelic nondeterminacy. In Proceedings of the 7th International Conference on Mathematics of Program Construction, D. Kozen and C. Shankland, Eds. Lecture Notes in Computer Science, vol. 3125. Springer-Verlag, New York, 274--288.Google ScholarGoogle ScholarCross RefCross Ref
  54. Morris, J. M. and Bunkenburg, A. 1999. Specificational functions. ACM Trans. Prog. Lang. Syst. 21, 677--701. Google ScholarGoogle ScholarDigital LibraryDigital Library
  55. Morris, J. M. and Bunkenburg, A. 2002. A source of inconsistency in theories of nondeterministic functions. Sci. Comput. Program. 43, 1, 77--89. Google ScholarGoogle ScholarDigital LibraryDigital Library
  56. Morris, J. M., Bunkenburg, A., and Tyrrell, M. 2008. Term transformers: A new approach to state. submitted.Google ScholarGoogle Scholar
  57. Morris, J. M. and Tyrrell, M. 2007. Dual unbounded nondeterminacy, recursion, and fixpoints. Acta Inf. 44, 5, 323--344. Google ScholarGoogle ScholarDigital LibraryDigital Library
  58. Naumann, D. A. 2001a. Ideal models for pointwise relational and state-free imperative programming. In Proceedings of the 3rd ACM SIGPLAN International Conference on Principles and Practice of Declarative Programming. ACM, New York, 4--15. Google ScholarGoogle ScholarDigital LibraryDigital Library
  59. Naumann, D. A. 2001b. Predicate transformer semantics of a higher-order imperative language with record subtyping. Sci. Comput. Prog. 41, 1, 1--51. Google ScholarGoogle ScholarDigital LibraryDigital Library
  60. Nelson, G. 1992. Some generalizations and applications of Dijkstra's guarded commands. In Programming and Mathematical Method, M. Broy, Ed. NATO ASI Series F: Computer and Systems Sciences, vol. 88. Springer-Verlag New York.Google ScholarGoogle Scholar
  61. Norvell, T. S. and Hehner, E. C. R. 1993. Logical specifications for functional programs. In Proceedings of the 2nd International Conference on Mathematics of Program Construction. Lecture Notes in Computer Science, vol. 669. Springer-Verlag, New York, 269--290. Google ScholarGoogle ScholarDigital LibraryDigital Library
  62. Nygaard, M. and Winskel, G. 2002. Linearity in process languages. In Proceedings of the 17th Annual IEEE Symposium on Logic in Computer Science. IEEE Computer Society, Press, Los Alamitos, CA, 433--441. Google ScholarGoogle ScholarDigital LibraryDigital Library
  63. Nygaard, M. and Winskel, G. 2004. Domain theory for concurrency. Theoret. Comput. Sci. 316, 1, 153--190. Google ScholarGoogle ScholarDigital LibraryDigital Library
  64. Partsch, H. A. 1990. Specification and Transformation of Programs. Springer-Verlag, New York. Google ScholarGoogle ScholarDigital LibraryDigital Library
  65. Plotkin, G. 1976. A powerdomain construction. SIAM J. Comput. 5, 3, 452--487.Google ScholarGoogle ScholarDigital LibraryDigital Library
  66. Plotkin, G. 1979. Dijkstra's predicate transformers and smyth's powerdomains. In Proceedings of the Copenhagen Winter School on Abstract Software Specifications, D. Bjorner, Ed. Lecture Notes in Computer Science, vol. 96. Springer-Verlag, New York, 527--553. Google ScholarGoogle ScholarDigital LibraryDigital Library
  67. Reynolds, J. C. 1998. Theories of Programming Languages. Cambridge University Press, Cambridge, UK. Google ScholarGoogle ScholarDigital LibraryDigital Library
  68. Roscoe, A. W. 1998. The Theory and Practice of Concurrency. Prentice-Hall, Englewood Cliffs, NJ. Google ScholarGoogle ScholarDigital LibraryDigital Library
  69. Smyth, M. B. 1978. Power domains. J. Comput. Syst. Sci. 16, 1, 23--26.Google ScholarGoogle ScholarCross RefCross Ref
  70. Smyth, M. B. 1983. Power domains and predicate transformers: A topological view. In Proceedings of the 10th Colloquium on Automata, Languages and Programming, J. Diaz, Ed. Lecture Notes in Computer Science, vol. 153. Springer-Verlag, London, UK, 662--675. Google ScholarGoogle ScholarDigital LibraryDigital Library
  71. Spivey, J. 1988. Understanding Z: A Specification Language and its Formal Semantics. Cambridge University Press, Cambridge, UK. Google ScholarGoogle ScholarDigital LibraryDigital Library
  72. Tunnicliffe, W. R. 1985. The free completely distributive lattice over a poset. Algebra Univ. 21, 133--135.Google ScholarGoogle ScholarCross RefCross Ref
  73. Tyrrell, M., Morris, J. M., Butterfield, A., and Hughes, A. 2006. A lattice-theoretic model for an algebra of communicating sequential processes. In Proceedings of the 3rd International Colloquium on Theoretical Aspects of Computing, K. Barkaoui, A. Cavalcanti, and A. Cerone, Eds. Lecture Notes in Computing Science, vol. 4281. Springer-Verlag, New York. Google ScholarGoogle ScholarDigital LibraryDigital Library
  74. von Wright, J. 1994. The lattice of data refinement. Acta Inf. 31, 105--135. Google ScholarGoogle ScholarDigital LibraryDigital Library
  75. Ward, N. 1994. A refinement calculus for nondeterministic expressions. Ph.D. dissertation, University of Queensland.Google ScholarGoogle Scholar
  76. Winskel, G. 1993. The Formal Semantics of Programming Languages: An Introduction. MIT Press, Cambridge, MA, USA. Google ScholarGoogle ScholarDigital LibraryDigital Library
  77. Woodcock, J. and Loomes, M. 1988. Software engineering mathematics. Addison-Wesley Longman Publishing Co., Inc., Boston, MA. Google ScholarGoogle ScholarDigital LibraryDigital Library

Index Terms

  1. Dually nondeterministic functions

                  Recommendations

                  Comments

                  Login options

                  Check if you have access through your login credentials or your institution to get full access on this article.

                  Sign in

                  Full Access

                  PDF Format

                  View or Download as a PDF file.

                  PDF

                  eReader

                  View online with eReader.

                  eReader
                  About Cookies On This Site

                  We use cookies to ensure that we give you the best experience on our website.

                  Learn more

                  Got it!