Augmenting Types with Unbounded Demonic and Angelic Nondeterminacy

  • Joseph M. Morris
Conference paper
Part of the Lecture Notes in Computer Science book series (LNCS, volume 3125)

Abstract

We show how to introduce demonic and angelic nondeterminacy into the term language of each type in typical programming or specification language. For each type we introduce (binary infix) operators ⊓ and ⊔ on terms of the type, corresponding to demonic and angelic nondeterminacy, respectively. We generalise these operators to accommodate unbounded nondeterminacy. We axiomatise the operators and derive their important properties. We show that a suitable model for nondeterminacy is the free completely distributive complete lattice over a poset, and we use this to show that our axiomatisation is sound. In the process, we exhibit a strong relationship between nondeterminacy and free lattices that has not hitherto been evident. Although nondeterminacy arises naturally in specification and programming languages, we speculate that it combines fruitfully with function theory to the extent that it can play an important role in facilitating proofs of programs that have no apparent connection with nondeterminacy.

Keywords

angelic nondeterminacy demonic nondeterminacy free completely ditributive lattice 

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. 1.
    Back, R.-J., von Wright, J.: Refinement Calculus: a Systematic Introduction. Springer, Heidelberg (1998)MATHGoogle Scholar
  2. 2.
    Bartenschlager, G.: Free bounded distributive lattices over finite ordered sets and their skeletons. Acta Mathematica Universitatis Comenianae 64, 1–23 (1995)MATHMathSciNetGoogle Scholar
  3. 3.
    Birkhoff, G.: Lattice Theory. American Mathematical Society, vol. 25. Colloquium Publications (1995)Google Scholar
  4. 4.
    Davey, B.A., Priestley, H.A.: Introduction to Lattices and Order, 2nd edn. Cambridge University Press, Cambridge (2002)MATHGoogle Scholar
  5. 5.
    Dijkstra, E.W.: A Discipline of Programming. Prentice-Hall, Englewood Cliffs (1976)MATHGoogle Scholar
  6. 6.
    Freese, R., Jezek, J., Nation, J.B.: Free Lattices, American Mathematical Society. Mathematical Surveys and Monographs, vol. 42 (1995)Google Scholar
  7. 7.
    Ganter, B., Wille, R.: Formal Concept Analysis. Springer, Heidelberg (1999)MATHGoogle Scholar
  8. 8.
    Hehner, E.C.R.: A Practical Theory of Programming. Springer, New York (1993) ISBN 0387941061Google Scholar
  9. 9.
    Markowsky, G.: Free completely distributive lattices. Proceedings of the American Mathematical Society 74, 227–228 (1979)MATHMathSciNetCrossRefGoogle Scholar
  10. 10.
    Morris, J.M., Bunkenburg, A.: Specificational functions. ACM Transactions on Programming Languages and Systems 21, 677–701 (1999)CrossRefGoogle Scholar
  11. 11.
    Morris, J.M., Bunkenburg, A.: A Theory of Bunches. Acta Informatica 37, 541–561 (2001)MATHCrossRefMathSciNetGoogle Scholar
  12. 12.
    Norvell, T.S., Hehner, E.C.R.: Logical specifications for functional programs. In: Bird, R.S., Woodcock, J.C.P., Morgan, C.C. (eds.) MPC 1992. LNCS, vol. 669, pp. 269–290. Springer, Heidelberg (1993)Google Scholar
  13. 13.
    Spivey, J.M.: Understanding Z: A Specification Language and its Formal Semantics. Cambridge University Press, Cambridge (1988)MATHGoogle Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 2004

Authors and Affiliations

  • Joseph M. Morris
    • 1
  1. 1.School of ComputingDublin City UniversityIreland

Personalised recommendations