At Mathematics Stack Exchange, I asked the question How do we know if two objects in a category are the same or not?

I received some very different answers. I am curious if anybody here might post a better answer before I choose one. I think the question I posed is helpful for learning about categories. Certainly, it is helpful for me.

I have been grappling with the realization that in category theory, a category like Grp, the category of groups, may have many objects that are the trivial group. So then I wonder, what are the limits, if any, on what such objects may be? One way to think about that is to ask, as I did, how do we know whether two objects in a category are the same or not.

The conclusion that I am drawing is that set theory and category theory are different ways of thinking. In set theory, we can appeal to the axiom of extensionality, which says that singletons {a} and {b} are the same iff a=b. But in the category Set, there is no concept of element. There are simply objects (sets) and arrows (set functions). There are no "singletons" as such, but we speak instead of the terminal objects. When are two objects the same? When they have the same identity morphism. Thus, in category theory, the identity morphism resolves the question of equality in the same way that, in set theory, the axiom of extensionality resolves it for sets.

Can I have a set Z that consists of a horse, cow and pig? In set theory, I cannot, because sets are built up from the empty set. We can't even have bijections with the set Z because it is not a mathematical object. Whereas in category theory, I believe that we can have such a set Z because the horse, cow and pig are irrelevant. What matters is that we have an object Z and we have the required arrows to all of the other objects.

There can be many set theories which may or may not lead to the same category Set. But the category Set doesn't have to be based on any set theory. It simply has objects and arrows which are related as we would expect sets to be related. So it is about formalizing and studying our expectations and not about any particular implementation. A set in the category Set doesn't actually have to have an element. That's not what makes it a set. What makes it a set is that it fulfills the expectations for a set as regards the composition of arrows. Which, in the case of a terminal object, means that there is a unique arrow to it from every set, and that to every set S it has a set of arrows whose cardinality matches that of S. And then those sets of arrows are also objects in Set and so on.

From my point of view, there are practically no limits on what might possibly be a set, and so in that sense, the category Set is not completely defined. But that seems by design.

So I'm inclined to select the answer that says to look at the identity morphism. But I may be in error. So I thought I would check here. Perhaps this is interesting. I had thought about related quandaries in my post here, Question: Internal structure vs. External relationships (the terminal objects of Cat and Set).