Countable nondeterminism and random assignment
Journal of the ACM (JACM)
General correctness: a unification of partial and total correctness
Acta Informatica
A generalization of Dijkstra's calculus
ACM Transactions on Programming Languages and Systems (TOPLAS)
Predicate calculus and program semantics
Predicate calculus and program semantics
On Kleene algebras and closed semirings
MFCS '90 Proceedings on Mathematical foundations of computer science 1990
Systematic software development using VDM (2nd ed.)
Systematic software development using VDM (2nd ed.)
Programming from specifications (2nd ed.)
Programming from specifications (2nd ed.)
A completeness theorem for Kleene algebras and the algebra of regular events
Papers presented at the IEEE symposium on Logic in computer science
The B-book: assigning programs to meanings
The B-book: assigning programs to meanings
ACM Transactions on Programming Languages and Systems (TOPLAS)
An axiomatic basis for computer programming
Communications of the ACM
Refinement Calculus: A Systematic Introduction
Refinement Calculus: A Systematic Introduction
MPC '00 Proceedings of the 5th International Conference on Mathematics of Program Construction
From Kleene Algebra to Refinement Algebra
MPC '02 Proceedings of the 6th International Conference on Mathematics of Program Construction
Science of Computer Programming - Special issue on mathematics of program construction (MPC 2002)
Algebraic reasoning for probabilistic action systems and while-loops
Acta Informatica
A relational investigation of UTP designs and prescriptions
UTP'06 Proceedings of the First international conference on Unifying Theories of Programming
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
Specification and refinement in general correctness
3FACS'98 Proceedings of the 3rd BCS-FACS conference on Northern Formal Methods
RelMiCS '09/AKA '09 Proceedings of the 11th International Conference on Relational Methods in Computer Science and 6th International Conference on Applications of Kleene Algebra: Relations and Kleene Algebra in Computer Science
Invariants and well-foundedness in program algebra
ICTAC'10 Proceedings of the 7th International colloquium conference on Theoretical aspects of computing
Partial, total and general correctness
MPC'10 Proceedings of the 10th international conference on Mathematics of program construction
Unifying recursion in partial, total and general correctness
UTP'10 Proceedings of the Third international conference on Unifying theories of programming
Unifying correctness statements
MPC'12 Proceedings of the 11th international conference on Mathematics of Program Construction
Extended designs algebraically
Science of Computer Programming
Hi-index | 0.00 |
We introduce a calculus for reasoning about programs in total correctness which blends UTP designs with von Wright's notion of a demonic refinement algebra. We demonstrate its utility in verifying the familiar loop-invariant rule for refining a total-correctness specification by a while loop. Total correctness equates non-termination with completely chaotic behaviour, with the consequence that any situation which admits non-termination must also admit arbitrary terminating behaviour. General correctness is more discriminating in allowing nontermination to be specified together with more particular terminating behaviour. We therefore introduce an analogous calculus for reasoning about programs in general correctness which blends UTP prescriptions with a demonic refinement algebra. We formulate a loop-invariant rule for refining a general-correctness specification by a while loop, and we use our general-correctness calculus to verify the new rule.