An iterator construct for the refinement calculus

  • Authors:
  • Steve King;Carroll Morgan

  • Affiliations:
  • Department of Computer Science, University of York, York, UK;School of Computer Science and Engineering, University of New South Wales, Sydney, Australia

  • Venue:
  • IW-FM'00 Proceedings of the 4th Irish conference on Formal Methods
  • Year:
  • 2000

Quantified Score

Hi-index 0.00

Visualization

Abstract

This paper concerns the introduction of an iterator into the refinement calculus. The construct is based on concepts from functional programming, and the work gives an interesting example of cross-fertilisation between the functional and imperative programming worlds. Specifically, the iterator construct it..ti uses the idea of a catamorphism -- the unique homomorphism from an initial algebra. The datatype for which the iterator is to be defined is considered as an initial algebra of an appropriate functor. The it..ti construct is formally defined as a recursive procedure, and it is shown that, if the value to be obtained by an iteration can be expressed as a catamorphism, then the it..ti construct provides a very natural implementation. Examples are given to show typical uses of the new construct.