[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

categories: Re: "catamorphism"



> In the calculational school of programming, I think people agree that:
> 
>   For every F-algebra A, the unique F-homomorphism from an initial F-algebra to
>   A is a catamorphism.
> 
> but:
> 
>   Is the converse true also, or is `catamorphism' more general: "a
>   catamorphism is the unique arrow from an initial _object_ (in any category,
>   not just categories of algebras)." I think the answer to that question is
>   no, but is there a snappy name for such arrows?

Erik Meijer coined the name "catamorphism". According to
him, the name was chosen because the Greek prefix "cata"
means "downwards"; a catamorphism destructs a data structure
like a list. (For example, "sum" destructs a list of
numbers, yielding a number.)

So I would agree with you. For example, in Set, the unique
arrow from the initial object (the empty set) to any other
object does not "destruct", so should not be called a
catamorphism.

>   In the case of initial F-algebras, for F an endofunctor on category C, is the
>   catamorphism the arrow in the category of F-algebras, or the corresponding
>   one in C? In other words, is `catamorphism' a property of the arrow or the
>   arrow + the category? If you compare with `monomorphism', since we speak of
>   being `monic _in_ C', I presume the latter, and thus only one arrow would be
>   `catamorphic', but which? Judging from the literature, I am inclined to
>   say that the arrow in C is the catamorphism, but I would like a second
>   opinion.

It is the arrow in C. In programming terms, it is the
program itself (eg "sum") that destructs; the arrow in the
category of F-algebras is merely an artifact of the
categorical way of modelling such programs.

IMHO.

Jeremy

-- 
Jeremy.Gibbons@comlab.ox.ac.uk
  Oxford University Computing Laboratory,    TEL: +44 1865 283508
  Wolfson Building, Parks Road,              FAX: +44 1865 273839
  Oxford OX1 3QD, UK.  
  URL: http://www.comlab.ox.ac.uk/oucl/people/jeremy.gibbons.html