Fixpoint computations and coiteration (original) (raw)


1. Least xpoints as meanings of recursive de nitions. Recursive de nitions of procedures, data structures and other computational entities abound in programming languages. Indeed, recursion is the basic e ective mechanism for describing in nite computational behaviour in nite terms. Given a recursive de nition:

There are a number of approaches for eliminating intermediate data structures in functional programs—this elimination is commonly known as fusion. Existing fusion strategies are built upon various, but related, recursion schemes, such as folds and unfolds. We use the concept of recursive coalgebras as a unifying theoretical and notational framework to explore the foundations of these fusion techniques.

Abstract. Say you want to prove something about an infinite data-structure, such as a stream or an infinite tree, but you would rather not subject yourself to coinduction. The unique fixed-point principle is an easy-to-use, calculational alternative. The proof technique rests on the fact that certain recursion equations have unique solutions; if two elements of a coinductive type satisfy the same equation of this kind, then they are equal. In this paper we precisely characterize the conditions that guarantee a unique solution.