Program loops have a very simple categorical interpretation, as loop diagrams, i.e. as diagrams with one object C and one morphism f, necessarily an endomorphism of C. -- / \ | | | \/ | f | C | | | \ / -- Of course, the limit of the loop is its fixpoints. The colimit, however, is even more interesting. A cocone for the diagram is a morphism g:C-->Q such that f;g = g. That is, an *invariant* for the loop. Thus the colimit is the universal invariant of the loop. Definition A loop *converges* if it has an object of invariants Inv(f) which is also an object of fixpoints such that the canonical composite Inv(f) --> C --> Inv(f) is the identity. This property captures the desirable property of a loop that its iteration approaches a fixpoint. The simplest way to achieve this is if the loop always terminates after a finite number of steps. While such *termination* is equivalent to convergence in the category of Sets, the topological nature of domain theory allows convergence without termination. There are two technical reports available which exploit such loops. Fixpoint and loop constructions as colimits and Tail recursion via universal invariants The first shows how to interpret while-loops in domains, and give termination conditions. The second gives a categorical account of tail recursion, and establishes conditions under which a tail recursive characterisation of finite lists is equivalent to the usual intial algera construction. Copies of the latex code for either paper can be obtained by e-mail request (sorry - no ftp here yet!). Please specify if you need a copy of Paul Taylor's diagrams package: diagrams3. Barry Jay