Mechanizing some advanced refinement concepts

We describe how the HOL theorem prover can be used to check and apply rules of program refinement. The rules are formulated in the refinement calculus, which is a theory of correctness preserving program transformations. We embed a general command notation with a predicate transformer semantics in the logic of the HOL system. Using this embedding, we express and prove rules for data refinement and superposition refinement of initialized loops. Applications of these proof rules to actual program refinements are checked using the HOL system, with the HOL system generating these conditions. We also indicate how the HOL system is used to prove the verification conditions. Thus, the HOL system can provide a complete mechanized environment for proving program refinements.

[1]  Kaisa Sere,et al.  Superposition Refinement of Parallel Algorithms , 1991, FORTE.

[2]  Ralph-Johan Back,et al.  Changing data representation in the refinement calculus , 1989, [1989] Proceedings of the Twenty-Second Annual Hawaii International Conference on System Sciences. Volume II: Software Track.

[3]  R. S. D'Ippolito,et al.  Software development using models , 1989, IWSSD '89.

[4]  Sten Agerholm Mechanizing Program Verification in HOL , 1991, 1991., International Workshop on the HOL Theorem Proving System and Its Applications.

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

[6]  Carroll Morgan Data Refinement by Miracles , 1988, Inf. Process. Lett..

[7]  Ralph-Johan Back,et al.  Combining Angles, Demons and Miracles in Program Specifications , 1992, Theor. Comput. Sci..

[8]  Nissim Francez,et al.  A compositional approach to superimposition , 1988, POPL '88.

[9]  M. Gordon HOL: A Proof Generating System for Higher-Order Logic , 1988 .

[10]  Ralph-Johan Back,et al.  Refinement Calculus, Part II: Parallel and Reactive Programs , 1989, REX Workshop.

[11]  Alonzo Church,et al.  A formulation of the simple theory of types , 1940, Journal of Symbolic Logic.

[12]  Kaisa Sere,et al.  Program Transformations And Refinements In HOL , 1991, 1991., International Workshop on the HOL Theorem Proving System and Its Applications.

[13]  Albert John Camilleri Mechanizing CSP Trace Theory in Higher Order Logic , 1990, IEEE Trans. Software Eng..

[14]  Bengt Jonsson,et al.  On Decomposing and Refining Specifications of Distributed Systems , 1989, REX Workshop.

[15]  Kaisa Sere,et al.  Stepwise Refinement of Action Systems , 1991, Struct. Program..

[16]  C. A. R. Hoare,et al.  Prespecification in Data Refinement , 1987, Inf. Process. Lett..

[17]  Joseph M. Morris,et al.  A Theoretical Basis for Stepwise Refinement and the Programming Calculus , 1987, Sci. Comput. Program..

[18]  Michael J. C. Gordon,et al.  Mechanizing programming logics in higher order logic , 1989 .

[19]  K. Mani Chandy Parallel program design , 1989 .

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

[21]  Leslie Lamport,et al.  Mechanical Verification of Concurrent Systems with TLA , 1992, Larch.

[22]  Ralph-Johan Back,et al.  Correctness preserving program refinements: Proof theory and applications , 1980 .

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

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

[25]  Carroll Morgan,et al.  Data Refinement of Predicate Transformers , 1991, Theor. Comput. Sci..