A theoretical basis for stepwise refinement and the programming calculus
Science of Computer Programming
A calculus of refinements for program derivations
Acta Informatica
Formal development programs and proofs
Programming from specifications
Programming from specifications
Non-determinism in functional languages
The Computer Journal - Special issue on formal methods: part 1
Partial functions and logics: a warning
Information Processing Letters
An Introduction to Formal Specification and Z
An Introduction to Formal Specification and Z
Logical Specifications for Functional Programs
Proceedings of the Second International Conference on Mathematics of Program Construction
MPC '95 Mathematics of Program Construction
Hi-index | 0.00 |
In order to use expressions as the basis of a specification language, we admit undefinedness, and introduce nondeterminism through the use of a choice operator. We extend expressiveness of the language by allowing choice from a set of values. Such a set could be infinite, giving unbounded non-determinism, or it could be empty, producing miracles. In this paper we treat the miraculous specification, examining its uses and highlighting related problems. In particular, we find that miracles promote the possibility of specification in parts, and piecewise refinement. However, their undesirable properties mean that we must limit their use. A biased choice operator is introduced as a method of totalising miraculous expressions. Finally, the formation of miraculous functions is considered with reference to their use and manipulation.