The Variety of Variables in Automated Real-Time Refinement

The refinement calculus is a well-established theory for deriving program code from specifications. Recent research has extended the theory to handle timing requirements, as well as functional ones, and we have developed an interactive programming tool based on these extensions. Through a number of case studies completed using the tool, this paper explains how the tool helps the programmer by supporting the many forms of variables needed in the theory. These include simple state variables as in the untimed calculus, trace variables that model the evolution of properties over time, auxiliary variables that exist only to support formal reasoning, subroutine parameters, and variables shared between parallel processes.

[1]  R. Nickson,et al.  A Tactic Language for Ergo , 1997 .

[2]  Luke Wildman,et al.  Supporting Contexts in the Sequential Real-Time Refinement Calculus , 1998 .

[3]  Brendan P. Mahony Networks of Predicate Transformers , 1995 .

[4]  David A. Naumann,et al.  Predicate transformer semantics of a higher-order imperative language with record subtyping , 2001, Sci. Comput. Program..

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

[6]  Wim H. Hesselink Predicate Transformers for Recursive Procedures with Local Variables , 1999, Formal Aspects of Computing.

[7]  Augusto Sampaio An Algebraic Approach to Compiler Design , 1993, AMAST Series in Computing.

[8]  Lindsay Groves,et al.  A Tactic Driven Refinement Tool , 1992, Refine.

[9]  Jim Grundy,et al.  A Window Inference Tool for Refinement , 1992, Refine.

[10]  Linas Laibinis,et al.  Mechanised Formal Reasoning About Modular Programs , 2000 .

[11]  Ralph-Johan Back,et al.  Refinement Calculus: A Systematic Introduction , 1998 .

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

[13]  G.C.N. Yeung,et al.  Principles of programming languages: Design, evaluation, and implementation , 1985, Proceedings of the IEEE.

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

[15]  Ian J. Hayes,et al.  Towards a Refinement Calculus for Concurrent Real-Time Programs , 2002, ICFEM.

[16]  Bruce J. MacLennan,et al.  Principles of Programming Languages , 1983 .

[17]  Jim Grundy,et al.  The Refinement Calculator: Proof Support for Program Refinement , 1997 .

[18]  Mark Utting,et al.  A New Face for Ergo: Adding a User Interface to a Programmable Theorem Prover , 1995 .

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

[20]  Augusto Sampaio,et al.  An Inconsistency in Procedures, Parameters, and Substitution in the Refinement Calculus , 1999, Sci. Comput. Program..

[21]  Ian J. Hayes,et al.  A Case-Study in Timed Refinement: A Mine Pump , 1992, IEEE Trans. Software Eng..

[22]  Brendan P. Mahony The Specification and Refinement of Timed Processes , 1992 .

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

[24]  John A. McDermid,et al.  CADi: An architecture for Z tools and its implementation , 1995, Softw. Pract. Exp..

[25]  Jan L. A. van de Snepscheut,et al.  Mechanized Support for Stepwise Refinement , 1994, Programming Languages and System Architectures.

[27]  Graeme Smith Introducing parallel composition to the timed refinement calculus , 2001 .

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

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

[30]  Ian J. Hayes Reasoning about real-time repetitions: terminating and nonterminating , 2002, Sci. Comput. Program..

[31]  David A. Carrington,et al.  A Program Refinement Tool , 1998, Formal Aspects of Computing.

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

[33]  Carroll Morgan,et al.  Programming from specifications, 2nd Edition , 1994, Prentice Hall International series in computer science.

[34]  John A. McDermid,et al.  Literate Formal Development Of Ada From Z For Safety Critical Applications , 1994 .

[35]  Ian J. Hayes,et al.  Supporting Contexts in Program Refinement , 1997, Sci. Comput. Program..

[36]  T Vickers An Overview of a Refinement Editor , 1990 .

[37]  Gene F. Franklin,et al.  Digital control of dynamic systems , 1980 .

[38]  Colin J. Fidge,et al.  Computer-aided development of a real-time program , 2000, Softw. Concepts Tools.

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

[40]  Colin J. Fidge,et al.  The variety of variables in computer-aided real-time programming , 2002, Electron. Notes Theor. Comput. Sci..

[41]  Andrew P. Martin,et al.  Lifting in Z , 2001, Electron. Notes Theor. Comput. Sci..

[42]  Lindsay Groves Procedures in the refinement calculus: a new approach? , 1996 .