(Off-topic) Question about categories

Frank Atanassow franka at cs.uu.nl
Thu Sep 18 16:53:30 EDT 2003

On donderdag, sep 18, 2003, at 14:44 Europe/Amsterdam, Graham Klyne 
> My problem is this:  how does it make sense to define an equality of 
> morphisms without some well-defined concept of equality on the 
> underlying objects to which they apply?  That is, given object X and 
> an object Y, it is possible to examine them and determine whether or 
> not they are the same object.

Yes; there is an equality relation on the objects.

The collection of objects of a (small) category forms a set. You can 
only form sets of things which satisfy an equality relation, because 
the extensionality axiom, which defines when two sets are equal, is 
defined in terms of equality of members. By foundation, there has to be 
an equality relation on the individuals in any such universe of sets.

> And if the underlying objects have such a concept of equality, what 
> prevents them from being sets or members of sets?

I don't understand your confusion. The objects can certainly be sets; 
the category of sets and functions (which is not small, BTW) is the 
archetypal example. To determine if two sets are equal you use 
extensionality: sets A and B are equal iff they have equal members.

Nothing prevents forming a set of objects either.

>  But categories are presented as being more general than sets.

They're more general in the sense that:

   a) the collection of objects can form a proper class, so a large 
discrete (no non-identity arrows) category is "bigger" than any set;

   b) the definition of a category involves more data than the 
definition of a set. To define a set, you only need to specify its 
elements. To define a category you need to give a collection of 
objects, an indexed collection of homsets and a composition operator.

   c) the collection of all sets forms one particular category.

> Does anyone see the cause of my non-comprehension here?

AFAICT, the source of your confusion is that you erroneously believed 
that sets and/or members of sets couldn't (necessarily) be compared for 
equality, but the fact is they always can, by definition. If the 
category is large, there are additional issues, but there is still an 
equality relation on the objects.

Does that clear things up?


More information about the Haskell-Cafe mailing list