ACM Transactions on Programming Languages and Systems (TOPLAS)
A Discipline of Programming
Real-Time Program Refinement Using Auxiliary Variables
FTRTFT '00 Proceedings of the 6th 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
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
Invariants and well-foundedness in program algebra
ICTAC'10 Proceedings of the 7th International colloquium conference on Theoretical aspects of computing
Unifying theories of programming that distinguish nontermination and abort
MPC'10 Proceedings of the 10th international conference on Mathematics of program construction
Linking Unifying Theories of Program refinement
Science of Computer Programming
Hi-index | 0.00 |
Real-time control programs are often used in contexts where (conceptually) they run forever. Repetitions within such programs (or their specifications) may either (i) be guaranteed to terminate, (ii) be guaranteed to never terminate (loop forever), or (iii) may possibly terminate. In dealing with real-time programs and their specifications, we need to be able to represent these possibilities, and define suitable refinement orderings. A refinement ordering based on Dijkstra’s weakest precondition only copes with the first alternative. Weakest liberal preconditions allow one to constrain behaviour provided the program terminates, which copes with the third alternative to some extent. However, neither of these handles the case when a program does not terminate. To handle this case a refinement ordering based on relational semantics can be used. In this paper we explore these issues and the definition of loops for real-time programs as well as corresponding refinement laws.