General correctness: a unification of partial and total correctness
Acta Informatica
A theory for nondeterminism, parallelism, communication, and concurrency
Theoretical Computer Science
A theoretical basis for stepwise refinement and the programming calculus
Science of Computer Programming
Understanding Z: a specification language and its formal semantics
Understanding Z: a specification language and its formal semantics
Duality in specification languages: a lattice-theoretical approach
Acta Informatica
A practical theory of programming
A practical theory of programming
Algebra of programming
ACM Transactions on Programming Languages and Systems (TOPLAS)
Acta Informatica
A Discipline of Programming
Refinement Calculus: A Systematic Introduction
Refinement Calculus: A Systematic Introduction
Logical Specifications for Functional Programs
Proceedings of the Second International Conference on Mathematics of Program Construction
Ideal models for pointwise relational and state-free imperative programming
Proceedings of the 3rd ACM SIGPLAN international conference on Principles and practice of declarative programming
Dually nondeterministic functions
ACM Transactions on Programming Languages and Systems (TOPLAS)
Asynchronous Exceptions as an Effect
MPC '08 Proceedings of the 9th international conference on Mathematics of Program Construction
Alternating states for dual nondeterminism in imperative programming
Theoretical Computer Science
B'07 Proceedings of the 7th international conference on Formal Specification and Development in B
Hi-index | 0.00 |
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.