Recursion is a very powerful problem-solving technique that is used widely in computing science. It is used, for example, in the definition of programming languages, as a fundamental programming structure in functional and logic programming, and in the definition of data structures. A complete understanding of recursion can only be achieved by studying its algebraic properties.
This tutorial has been used as the literature for the course of Programming Algebra
at the School of Computer Science and Information Technology
, University of Nottingham
. This course introduces the fundamental algebraic structures in the mathematics of program construction with a focus on the algebraic properties of recursion and how these are applied to the generic solution of programming problems.
This tutorial covers fixed point calculus, which is about the solution of recursive equations defined by a monotonic endofunction on a partially ordered set. It presents the basic theory of fixed point calculus together with a number of applications of direct relevance to the construction of computer programs. The tutorial also presents the theory and application of Galois connections
between partially ordered sets. In particular, the intimate relation between Galois connections and fixed point equations is amply demonstrated.
The course assumes that the student has completed both courses on functional programming and the mathematics of program construction.