Results 1 
2 of
2
Generalized Coiteration Schemata
, 2003
"... Coiterative functions can be explained categorically as final coalgebraic morphisms, once coinductive types are viewed as final coalgebras. However, the coiteration schema which arises in this way is too rigid to accommodate directly many interesting classes of circular specifications. In this paper ..."
Abstract

Cited by 8 (0 self)
 Add to MetaCart
Coiterative functions can be explained categorically as final coalgebraic morphisms, once coinductive types are viewed as final coalgebras. However, the coiteration schema which arises in this way is too rigid to accommodate directly many interesting classes of circular specifications. In this paper, building on the notion of T coiteration introduced by the third author and capitalizing on recent work on bialgebras by TuriPlotkin and Bartels, we introduce and illustrate various generalized coiteration patterns. First we show that, by choosing the appropriate monad T , T coiteration captures naturally a wide range of coiteration schemata, such as the duals of primitive recursion and courseofvalue iteration, and mutual coiteration. Then we show that, in the more structured categorical setting of bialgebras, T coiteration captures guarded coiterations schemata, i.e. specifications where recursive calls appear guarded by predefined algebraic operations.
Acknowledgments
"... The natural numbers are the most famous instance of an initial algebra and constitute the typical example for the explanation of induction. Similarly and dually, streams are the best known example of a final coalgebra and offer a perfect playground for the use of coinduction, both for definitions an ..."
Abstract
 Add to MetaCart
The natural numbers are the most famous instance of an initial algebra and constitute the typical example for the explanation of induction. Similarly and dually, streams are the best known example of a final coalgebra and offer a perfect playground for the use of coinduction, both for definitions and for proofs. In these notes, we explain the basics of streams over an arbitrary alphabet in Chapter 1. Next we study the special case of streams over the reals in Chapter 2, and show how the (field) structure of the reals induces an equally rich structure on the set of streams. This leads to a calculus of streams, in close analogy to classical calculus in analysis, which is similar but more general than the calculus of generating functions. We apply the calculus of streams to the problem of solving differential equations in Chapter 3 and to various counting problems from enumerative combinatorics in Chapter 4. In Chapter 5, we apply streams and coinduction to a problem stemming from the world of computer science, more specifically, software engineering, by constructing a model for (software) component connectors. In Chapter A, the definitions of the most important operations on streams are summarized. Chapter 1 is the basis for all subsequent chapters. Chapter 2 is needed for both