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.
Similar content being viewed by others
Author information
Authors and Affiliations
Additional information
Received: 11 February 1998 / 18 March 1999
Rights and permissions
About this article
Cite this article
Back, R., von Wright, J. Reasoning algebraically about loops. Acta Informatica 36, 295–334 (1999). https://doi.org/10.1007/s002360050163
Issue Date:
DOI: https://doi.org/10.1007/s002360050163