The Timed Predicative Calculus as a Framework for Comparative Semantics

Predicates are used in a variety of formal specification languages, though a predicate does not always mean the same thing in each approach. For example, the predicate false in Z means the same thing as true in the predicative calculus of Hehner. In this paper, we compare the specification languages Z, Morgan’s Refinement Calculus, and Parnas’s Limited Domain relations, using the timed predicative calculus (TP) of Hehner as an underlying framework. In particular, we show that TP is more expressive than the other languages. We also show that refinement in TP is strictly weaker than the refinement relations associated with the other languages. As a result, refinement laws from the other languages can be reused in TP. We conject that the simplicity of TP makes it a good candidate as a specification language and program development method for the refinement of procedural specifications, as well as real-time object oriented specifications. ∗Email: {jonathan, paige}@cs.yorku.ca. Supported by a grant from NSERC.

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

[2]  Colin J. Fidge Proof Obligations for Real-Time Refinement , 1994, Refine.

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

[4]  Jean-Raymond Abrial,et al.  The B-book - assigning programs to meanings , 1996 .

[5]  Eric C. R. Hehner,et al.  Specifications, Programs, and Total Correctness , 1999, Sci. Comput. Program..

[6]  David Lorge Parnas,et al.  Mathematical Description and Specification of Software , 1994, IFIP Congress.

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

[8]  Eric C. R. Hehner,et al.  Predicative programming Part I , 1984, CACM.

[9]  Andrew J. Malton,et al.  Termination conventions and comparative semantics , 1988 .

[10]  Jim Grundy,et al.  Predicative Programming - A Survey , 1993, Formal Methods in Programming and Their Applications.

[11]  Nigel Ward,et al.  Adding Specification Constructors to the Refinement Calculus , 1993, FME.

[12]  Martin C. Henson,et al.  Revising Z: Part II – logical development , 1999, Formal Aspects of Computing.

[13]  Edsger W. Dijkstra,et al.  A Discipline of Programming , 1976 .

[14]  Kai Engelhardt,et al.  Data Refinement: Model-Oriented Proof Methods and their Comparison , 1998 .

[15]  Ian J. Hayes Expressive Power of Specification Languages , 1998, Formal Aspects of Computing.

[16]  Steve King ‘The Standard Logic for Z’: A Clarification , 1999, Formal Aspects of Computing.

[17]  Martin C. Henson,et al.  Revising Z: Part I – logic and semantics , 1999, Formal Aspects of Computing.

[18]  Richard F. Paige,et al.  Developing BON as an Industrial-Strength Formal Method , 1999, World Congress on Formal Methods.

[19]  Ralph-Johan Back,et al.  Refinement Calculus , 1998, Graduate Texts in Computer Science.

[20]  Richard F. Paige,et al.  An Object-Oriented Refinement Calculus , 2000 .

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

[22]  J. Michael Spivey,et al.  The Z notation - a reference manual , 1992, Prentice Hall International Series in Computer Science.

[23]  Fred B. Schneider,et al.  A Logical Approach to Discrete Math , 1993, Texts and Monographs in Computer Science.

[24]  簡聰富,et al.  物件導向軟體之架構(Object-Oriented Software Construction)探討 , 1989 .

[25]  J. B. Wordsworth,et al.  Software development with Z , 1992 .