Calculating sharp adaptation rules

Abstract Adaptation rules adapt the pre-post specification of a procedure to contexts where it is called. Such rules are important for practical reasons and necessary for completeness for languages with recursive procedures. A sharp rule is one that gives the weakest precondition with respect to a given postcondition. A number of rules have been proposed, most unsound or incomplete or non-sharp. Using refinement algebra, we clarify and extend the applicability of previously proposed sharp rules for total correctness and show how further rules may be found.

[1]  A classical mind: essays in honour of C. A. R. Hoare , 1994 .

[2]  C. A. R. Hoare,et al.  Procedures and parameters: An axiomatic approach , 1971, Symposium on Semantics of Algorithmic Languages.

[3]  Frank S. de Boer,et al.  Proving Total Correctness of Recursive Procedures , 1990, Inf. Comput..

[4]  David A. Naumann,et al.  A categorical model for higher order imperative programming , 1998, Mathematical Structures in Computer Science.

[5]  David Gries,et al.  Assignment and Procedure Call Proof Rules , 1980, TOPL.

[6]  Carroll Morgan The cuppest capjunctive capping, and Galois , 1994 .

[7]  A. Bijlsma Calculating with Procedure Calls , 1993, Inf. Process. Lett..

[8]  Krzysztof R. Apt,et al.  Ten Years of Hoare's Logic: A Survey—Part I , 1981, TOPL.

[9]  P.H.B. Gardiner Algebraic Proofs of Consistency and Completeness , 1995, Theor. Comput. Sci..

[10]  E. Engeler Symposium on Semantics of Algorithmic Languages , 1971, Symposium on Semantics of Algorithmic Languages.

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

[12]  Clare E. Martin,et al.  An Algebraic Construction of Predicate Transformers , 1994, Sci. Comput. Program..

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