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)
The Z notation: a reference manual
The Z notation: a reference manual
A generalization of Dijkstra's calculus
ACM Transactions on Programming Languages and Systems (TOPLAS)
Predicate calculus and program semantics
Predicate calculus and program semantics
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
Functional documents for computer systems
Science of Computer Programming
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
Guarded commands, nondeterminacy and formal derivation of programs
Communications of the ACM
Refinement Calculus: A Systematic Introduction
Refinement Calculus: A Systematic Introduction
Specifying Systems: The TLA+ Language and Tools for Hardware and Software Engineers
Specifying Systems: The TLA+ Language and Tools for Hardware and Software Engineers
Trace Refinement of Action Systems
CONCUR '94 Proceedings of the Concurrency Theory
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
Procedures and parameters in the real-time program refinement calculus
Science of Computer Programming
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
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
Specification and refinement in general correctness
3FACS'98 Proceedings of the 3rd BCS-FACS conference on Northern Formal Methods
Invariants and well-foundedness in program algebra
ICTAC'10 Proceedings of the 7th International colloquium conference on Theoretical aspects of computing
RAMICS'11 Proceedings of the 12th international conference on Relational and algebraic methods in computer science
Unifying correctness statements
MPC'12 Proceedings of the 11th international conference on Mathematics of Program Construction
Unifying lazy and strict computations
RAMiCS'12 Proceedings of the 13th international conference on Relational and Algebraic Methods in Computer Science
Extended designs algebraically
Science of Computer Programming
Linking Unifying Theories of Program refinement
Science of Computer Programming
Hi-index | 0.00 |
In this paper we focus on the relationship between a number of specification models. The models are formulated in the Unifying Theories of Programming of Hoare and He, but correspond to widely used specification models. We cover issues such as partial correctness, total correctness, and general correctness. The properties we use to distinguish the models are these: - whether they allow the specification of assumptions about the initial state outside of which no guarantees are given about the behaviour of the program, i.e., the program may "abort"; - whether a specification may allow or even require nontermination as a valid (non-aborting) outcome; and - whether they allow the expression of tests or enabling conditions, outside of which the program has no possible behaviour. When considering termination, we consider both an abstract model, which only distinguishes whether a program terminates or not, as well as models that include a notion of time: either abstract time representing a notion of progress or real-time.