Modelling Nondeterminism

  • Clare E. Martin
  • Sharon A. Curtis
  • Ingrid Rewitzky
Part of the Lecture Notes in Computer Science book series (LNCS, volume 3125)


For many years the realm of total functions was considered to be the natural domain in which to reason about functional programs [B90]. The limitation of this domain is that it can only be used to describe deterministic programs: those that deliver only one output for each input. More recently, the development of the relational calculus for program derivation [BdM97] has allowed programmers to reason about programs together with their speci.cations, which may be nondeterministic: they may a choice of outputs for each input. Speci.cations expressed in this calculus can be manipulated and re.ned into functions that can be translated into an appropriate functional programming language. We now propose to go one step further, since the domain of relations can be used to describe only angelic or demonic nondeterminism, but not both.


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. [BvW98]
    Back, R.J.R., von Wright, J.: Refinement Calculus: A Systematic Introduction. Graduate Texts in Computer Science. Springer, New York (1998)zbMATHGoogle Scholar
  2. [BaH93]
    Backhouse, R., Hoogendijk, P.: Elements of a relational theory of datatypes. In: Möller, B., Schuman, S., Partsch, H. (eds.) Formal Program Development. LNCS, vol. 755, pp. 7–42. Springer, Heidelberg (1993)Google Scholar
  3. [BCG01]
    Berlekamp, E.R., Conway, J.H., Guy, R.K.: Winning Ways For Your Mathematical Plays, 2nd edn. A.K. Peters Ltd (2001)Google Scholar
  4. [B90]
    Bird, R.S.: A calculus of functions for program derivation. In: Turner, D.A. (ed.) Research Topics in Functional Programming. University of Texas at Austin Year of Programming series, pp. 287–308. Addison-Wesley, Reading (1990)Google Scholar
  5. [BdM97]
    Bird, R.S., de Moor, O.: Algebra of Programming. Prentice Hall, Englewood Cliffs (1997)zbMATHGoogle Scholar
  6. [DaP02]
    Davey, B.A., Priestley, H.A.: Introduction to Lattices and Order, 2nd edn. Cambridge University Press, Cambridge (2002)zbMATHGoogle Scholar
  7. [Daw97]
    Bryan Dawson, C.: A better draft: Fair division of the talent pool. College Mathematics Journal 28(2), 82–88 (1997)zbMATHCrossRefMathSciNetGoogle Scholar
  8. [DiS90]
    Dijkstra, E.W., Scholten, C.S.: Predicate Calculus and Program Semantics. Springer, Heidelberg (1990)zbMATHGoogle Scholar
  9. [LyV92]
    Lynch, N., Vaandrager, F.: In: Huizing, C., de Bakker, J.W., Rozenberg, G., de Roever, W.-P. (eds.) REX 1991. LNCS, vol. 600, pp. 397–446. Springer, Heidelberg (1992)CrossRefGoogle Scholar
  10. [Moo92]
    de Moor, O.: Inductive Data Types for Predicate Transformers. Information Processing Letters 43(3), 113–117 (1992)zbMATHCrossRefMathSciNetGoogle Scholar
  11. [Mor98]
    Morgan, C.C.: Programming from Specifications. Prentice-Hall, Englewood Cliffs (1998)Google Scholar
  12. [P03]
    Pauly, M.: Programming and verifying Subgame Perfect Mechanisms (2002),
  13. [R03]
    Rewitzky, I.: Binary Multirelations. In: de Swart, H., Orłowska, E., Schmidt, G., Roubens, M. (eds.) Theory and Applications of Relational Structures as Knowledge Instruments. LNCS, vol. 2929, pp. 259–274. Springer, Heidelberg (2003)CrossRefGoogle Scholar
  14. [ScS88]
    Schmidt, G., Ströhlein, T.: Relationen und Grafen. Springer, Heidelberg (1988)Google Scholar
  15. [W94]
    Ward, N.T.E.: A Refinement Calculus for Nondeterministic Expressions (1994),

Copyright information

© Springer-Verlag Berlin Heidelberg 2004

Authors and Affiliations

  • Clare E. Martin
    • 1
  • Sharon A. Curtis
    • 1
  • Ingrid Rewitzky
    • 2
  1. 1.Department of ComputingOxford Brookes UniversityUK
  2. 2.Department of Mathematics and Applied MathematicsUniversity of Cape TownSouth Africa

Personalised recommendations