Lifting General Correctness into Partial Correctness is ok

Commands interpreted in general correctness are usually characterised by their wp and wlp predicate transformer effects. We describe a way to ascribe to such commands a single predicate transformer semantics which embodies both their wp and wlp characteristics. The new single predicate transformer describes an everywhere-terminating "lifted" computation in an ok-enriched variable space, where ok is inspired by Hoare and He's UTP but has the novelty here that it enjoys the same status as the other state variables, so that it can be manipulated directly in the lifted computation itself. The relational model of this lifted computation is not, however, simply the canonical UTP relation of the original underlying computation, since this turns out to yield too cumbersome a lifted computation to permit reasoning about efficiently with the mechanised tools available. Instead we adopt a slightly less constrained model, which we are able to show is nevertheless still effective for our purpose, and yet admits a much more efficient form of mechanised reasoning with the tools available.

[1]  Robin Milner,et al.  Computing is Interaction , 1994, IFIP Congress.

[2]  Wim H. Hesselink Programs, Recursion and Unbounded Choice , 1992 .

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

[4]  Michael J. Butler,et al.  ProB: A Model Checker for B , 2003, FME.

[5]  Edsger W. Dijkstra,et al.  Predicate Calculus and Program Semantics , 1989, Texts and Monographs in Computer Science.

[6]  D. Denton The Royal Society of London , 1965, Nature.

[7]  S. Anderson,et al.  Secure Synthesis of Code: A Process Improvement Experiment , 1999, World Congress on Formal Methods.

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

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

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

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

[12]  Moshe Deutsch,et al.  A Relational Investigation of UTP Designs and Prescriptions , 2006, UTP.

[13]  Yifeng Chen A fixpoint theory for non-monotonic parallelism , 2003 .

[14]  Stefania Gnesi,et al.  FME 2003: Formal Methods: International Symposium of Formal Methods Europe, Pisa, Italy, September 8-14, 2003. Proceedings , 2003, Lecture Notes in Computer Science.

[15]  David Gries,et al.  General correctness: A unification of partial and total correctness , 2004, Acta Informatica.

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

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

[18]  Steve Dunne Abstract Commands: a Uniform Notation for Specification and Implementation , 2001, Electron. Notes Theor. Comput. Sci..

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

[20]  Jeremy E. Dawson Formalising General Correctness , 2004, Electron. Notes Theor. Comput. Sci..

[21]  Annabelle McIver,et al.  Unifying wp and wlp , 1996, Inf. Process. Lett..

[22]  Greg Nelson,et al.  A generalization of Dijkstra's calculus , 1989, ACM Trans. Program. Lang. Syst..

[23]  Andrew M. Gravell,et al.  Refinement Semantics and Loop Rules , 1999, World Congress on Formal Methods.

[24]  Steve Dunne,et al.  Specification and refinement in general correctness , 1998, FM-Trends 1998.

[25]  Alan Bundy,et al.  Constructing Induction Rules for Deductive Synthesis Proofs , 2006, CLASE.

[26]  Steve Dunne Recasting Hoare and He's Unifying Theory of Programs in the Context of General Correctness , 2001, IWFM.

[27]  Bernhard Möller,et al.  Modal Design Algebra , 2006, UTP.