Reasoning about real-time repetitions: terminating and nonterminating

It is common for a real-time system to contain a nonterminating process monitoring an input and controlling an output. Hence, a real-time program development method needs to support nonterminating repetitions. In this paper we develop a general proof rule for reasoning about possibly nonterminating repetitions. The rule makes use of a Floyd-Hoare-style loop invariant that is maintained by each iteration of the repetition, a Jones-style relation between the pre- and post-states on each iteration, and a deadline specifying an upper bound on the starting time of each iteration. The general rule is proved correct with respect to a predicative semantics. In the case of a terminating repetition the rule reduces to the standard rule extended to handle real time. Other special cases include repetitions whose bodies are guaranteed to terminate, nonterminating repetitions with the constant true as a guard, and repetitions whose termination is guaranteed by the inclusion of a fixed deadline. (C) 2002 Elsevier Science B.V. All rights reserved.

[1]  C. A. R. Hoare,et al.  An axiomatic basis for computer programming , 1969, CACM.

[2]  Colin J. Fidge,et al.  The deadline command , 1999, IEE Proc. Softw..

[3]  Ian J. Hayes Reasoning about Non-terminating Loops Using Deadline Commands , 2000, MPC.

[4]  G. Micheli,et al.  Timing Constraint Analysis for Embedded Systems , 1994 .

[5]  Ian J. Hayes,et al.  A sequential real-time refinement calculus , 2001, Acta Informatica.

[6]  Cliff B. Jones,et al.  Essays in computing science , 1989 .

[7]  Carroll Morgan,et al.  Programming from specifications (2nd ed.) , 1994 .

[8]  Jozef Hooman,et al.  Formal Design of Real-Time Systems in a Platform-Independent Way , 1998, Scalable Comput. Pract. Exp..

[9]  Mathai Joseph,et al.  Real-time systems - specification, verification and analysis , 1995, Prentice Hall International series in computer science.

[10]  Eric C. R. Hehner Termination is Timing , 1989, MPC.

[11]  Ian J. Hayes,et al.  Deadlines are termination , 1998, PROCOMET.

[12]  Ian J. Hayes Real-Time Program Refinement Using Auxiliary Variables , 2000, FTRTFT.

[13]  Jjm Jozef Hooman Assertional specification and verification , 1996 .

[14]  Colin J. Fidge,et al.  A real-time refinement calculus that changes only time , 1996 .

[15]  Robert W. Floyd,et al.  Assigning meaning to programs , 1967 .

[16]  Carroll Morgan,et al.  Programming from specifications , 1990, Prentice Hall International Series in computer science.

[17]  Ian J. Hayes A predicative semantics for real-time refinement , 2003 .

[18]  Cliff B. Jones,et al.  Program specification and verification in VDM , 1987 .

[19]  Ian J. Hayes Separating Timing and Calculation in Real-Time Refinement , 1998 .

[20]  Eric C. R. Hehner A Practical Theory of Programming , 1993, Texts and Monographs in Computer Science.

[21]  Ian J. Hayes,et al.  Coercing real-time refinement: a transmitter , 1996, FME 1996.