(Off-topic) Question about categories
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