General correctness: a unification of partial and total correctness
Acta Informatica
Systematic software development using VDM
Systematic software development using VDM
ACM Transactions on Programming Languages and Systems (TOPLAS)
Essays in computing science
A generalization of Dijkstra's calculus
ACM Transactions on Programming Languages and Systems (TOPLAS)
Predicate calculus and program semantics
Predicate calculus and program semantics
The Z notation: a reference manual
The Z notation: a reference manual
Programming from specifications (2nd ed.)
Programming from specifications (2nd ed.)
An old-fashioned recipe for real time
ACM Transactions on Programming Languages and Systems (TOPLAS)
A classical mind
Object-Z: a specification language advocated for the description of standards
Computer Standards & Interfaces - Special issue on formal description techniques
The B-book: assigning programs to meanings
The B-book: assigning programs to meanings
The Object-Z specification language
The Object-Z specification language
A generalized control structure and its formal definition
Communications of the ACM
Refinement Calculus: A Systematic Introduction
Refinement Calculus: A Systematic Introduction
Duration Calculus of Weakly Monotonic Time
FTRTFT '98 Proceedings of the 5th International Symposium on Formal Techniques in Real-Time and Fault-Tolerant Systems
Proceedings of the International Conference on Mathematics of Program Construction, 375th Anniversary of the Groningen University
A predicative semantics for real-time refinement
Programming methodology
Unifying theories of programming that distinguish nontermination and abort
MPC'10 Proceedings of the 10th international conference on Mathematics of program construction
Retrospective and prospective for unifying theories of programming
UTP'06 Proceedings of the First international conference on Unifying Theories of Programming
Termination of real-time programs: definitely, definitely not, or maybe
UTP'06 Proceedings of the First international conference on Unifying Theories of Programming
MPC'06 Proceedings of the 8th international conference on Mathematics of Program Construction
Recasting hoare and he's unifying theory of programs in the context of general correctness
IW-FM'01 Proceedings of the 5th Irish conference on Formal Methods
Coercing real-time refinement: a transmitter
1FACS'96 Proceedings of the 1st BCS-FACS conference on Northern Formal Methods
Extended designs algebraically
Science of Computer Programming
Hi-index | 0.00 |
In this paper we consider three theories of programs and specifications at different levels of abstraction. The theories we focus on are: the basic Unifying Theories of Programming (UTP) model, which corresponds to the theories of VDM, B, and the refinement calculus; an extended theory that distinguishes abort from nontermination; and a further extension that introduces (abstract) time. We define UTP-style designs (or specifications) in each theory and show how program constructors, such as nondeterministic choice and sequential composition, can be expressed as single designs in each theory. To examine the relationships between the theories, we construct mappings in both directions between pairs of theories and show that the pairs of mappings form Galois connections. This shows that the simpler (more abstract) models are sub-theories of the more complex extensions. The mappings preserve the program structure and hence are homomorphisms. An important property of a Galois connection is that both mappings preserve refinement. The Galois connections between the models can be exploited to translate properties, including refinement laws, between theories. In addition, we show how to define an iteration in the extended model in terms of an iteration in the timed model.