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 o.er 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.
- [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
- [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
- [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
- [Mor98]Morgan, C.C.: Programming from Specifications. Prentice-Hall, Englewood Cliffs (1998)Google Scholar
- [P03]Pauly, M.: Programming and verifying Subgame Perfect Mechanisms (2002), http://www.csc.liv.ac.uk/pauly/
- [ScS88]Schmidt, G., Ströhlein, T.: Relationen und Grafen. Springer, Heidelberg (1988)Google Scholar
- [W94]Ward, N.T.E.: A Refinement Calculus for Nondeterministic Expressions (1994), www.dstc.monash.edu.au/staff/nigel-ward/nwthesis.pdf