Reasoning algebraically about loops

Abstract. We show how to formalise different kinds of loop constructs within the refinement calculus, and how to use this formalisation to derive general transformation rules for loop constructs. The emphasis is on using algebraic methods for reasoning about equivalence and refinement of loop constructs, rather than operational ways of reasoning about loops in terms of their execution sequences. We apply the algebraic reasoning techniques to derive a collection of transformation rules for action systems and for guarded loops. These include transformation rules that have been found important in practical program derivations: data refinement and atomicity refinement of action systems; and merging, reordering, and data refinement of loops with stuttering transitions.

[1]  Richard J. Lipton,et al.  Reduction: a method of proving properties of parallel programs , 1975, CACM.

[2]  K. Mani Chandy,et al.  Parallel program design - a foundation , 1988 .

[3]  Carroll Morgan,et al.  The specification statement , 1988, TOPL.

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

[5]  J Von Wright The Lattice of Data Reenement , 1994 .

[6]  Jan L. A. Van de Snepscheut On Lattice Theory and Program Semantics , 1993 .

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

[8]  Egon Börger,et al.  Review: Edsger W. Dijkstra, Carel S. Scholten, Predicate Calculus and Program Semantics , 1994, Journal of Symbolic Logic.

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

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

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

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

[13]  Kaisa Sere,et al.  Stepwise Refinement of Parallel Algorithms , 1990, Sci. Comput. Program..

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

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

[16]  R. Backhouse,et al.  Regular Algebra Applied to Path-finding Problems , 1975 .

[17]  A. Tarski A LATTICE-THEORETICAL FIXPOINT THEOREM AND ITS APPLICATIONS , 1955 .