Invariants, Well-Founded Statements and Real-Time Program Algebra
Program algebras based on Kleene algebra abstract the essential properties of programming languages in the form of algebraic laws. The proof of a refinement law may be expressed in terms of the algebraic properties of programs required for the law to hold, rather than directly in terms of the semantics of a language. This has the advantage that the law is then valid for any programming language that satisfies the axioms of the algebra.
In this paper we explore the notion of well-founded statements and their relationship to well-founded relations and iterations. The laws about well-founded statements and relations are combined with invariants to derive a simpler proof of a while-loop introduction law. The algebra is then applied to a real-time programming language. The main difference is that tests within conditions and loops take time to evaluate and during that time the values of program inputs may change. This requires new definitions for conditionals and while loops but the proofs of the introduction laws for these constructs can still make use of the more basic algebraic properties of iterations.
KeywordsIteration Operator Operational Semantic Algebraic Property Sequential Composition Idle Statement
Unable to display preview. Download preview PDF.
- 2.Abrial, J.-R.: The B-Book: Assigning programs to meanings. Cambridge University Press (1996)Google Scholar
- 10.Conway, J.H.: Regular Algebra and Finite Machines. Chapman Hall (1971)Google Scholar
- 11.Hayes, I.J. (ed.): Specification Case Studies, 2nd edn. Prentice Hall (1993)Google Scholar
- 12.Hayes, I.J.: Reasoning about real-time programs using idle-invariant assertions. In: Dong, J.S., He, J., Purvis, M. (eds.) Proceedings of 7th Asia-Pacific Software Engineering Conference (APSEC 2000), pp. 16–23. IEEE Computer Society (2000)Google Scholar
- 15.Hayes, I.J.: Towards platform-independent real-time systems. In: Strooper, P.A. (ed.) ASWEC, pp. 192–200. IEEE Computer Society (2004)Google Scholar
- 22.Hayes, I.J., Jones, C.B., Colvin, R.J.: Reasoning about concurrent programs: Refining rely-guarantee thinking. Technical Report CS-TR-1395, School of Computing Science, Newcastle University, 66 pages (September 2013)Google Scholar
- 24.Hehner, E.C.R.: Abstractions of time. In: Roscoe, A.W. (ed.) A Classical Mind, ch. 12, pp. 191–210. Prentice Hall (1994)Google Scholar
- 25.Hoare, C.A.R., He, J.: Unifying Theories of Programming. Prentice Hall (1998)Google Scholar
- 27.Jones, C.B.: Systematic Software Development Using VDM, 2nd edn. Prentice-Hall (1990)Google Scholar
- 30.Morgan, C.C.: Programming from Specifications, 2nd edn. Prentice Hall (1994)Google Scholar
- 34.Spivey, J.M.: The Z Notation: A Reference Manual, 2nd edn. Prentice Hall International (1992)Google Scholar
- 35.Utting, M., Fidge, C.J.: A real-time refinement calculus that changes only time. In: Jifeng, H. (ed.) Proc. 7th BCS/FACS Refinement Workshop, Electronic Workshops in Computing. Springer (July 1996)Google Scholar