nLab
corecursion

Corecursion

Idea

Corecursion exploits the existence of a morphism from a coalgebra for an endofunctor to a terminal coalgebra for the same endofunctor to define an operation. It is dual to recursion. See also coinduction.

Examples

  1. For the endofunctor H(X)=1+X on Set, the terminal coalgebra is ¯, the extended natural number system. Define a function add:¯×¯1+¯×¯:

    add(n,m)={(pred(n),m) ifn>0; (0,pred(m)) ifn=0,m>0; * ifm=n=0,add(n, m) = \begin{cases} (pred(n), m) & if\; n \gt 0; \\ (0, pred(m)) & if\; n = 0,\; m \gt 0; \\ * & if\; m = n = 0, \end{cases}

    where pred(x) is as defined at extended natural number.

    Then (¯×¯,add) is an H-coalgebra. The unique coalgebra morphism +:¯×¯¯ (to the terminal coalgebra ¯) is addition on the extended natural numbers.

Reference