In recent time I came across categories more often and I observed that most books about it talk about the issues of size only very briefly. My question about this is extremely practical: Let $C$ be a proper class, i.e. a class but not a set (in some system of axioms?). Can I still do all the usual stuff that I can do with sets, namely:
- can I take an element with a certain property $P$: $\exists x \in C$ s.t. $P(x)$, or a subset/subclass with a certain property?
- are there unions/intersections of two proper classes, $C_1 \cup C_2$ or $C_1\cap C_2$, where $C_1,C_2$ are proper classes?
- More generally, can I take unions/intersections of objects indexed by a proper class? $\bigcup_{i \in I} X_i$, where $I$ is a proper class? Same for intersections?
- Is there a 'power class', $2^C$ that is again a class? More generally, does $C_1 ^{C_2}$ exists for proper classes $C_1,C_2$?
- Is there notion of cardinality for classes?
- Are there products of proper classes $C_1 \times C_2$? More generally, products of things indexed by a proper class?
I am convinced that many of these questions are dependent of each other. I would just like to know, if I must be worried about such stuff, when I work with a category. For example, I do not feel good saying that a group is just a category with one object and invertible arrows, because a group is defined to be a set, while the set of morphisms does not have to be a set. Does this just not matter? Does it make a practical difference at the level of, say algebraic topology, if I use NBG of ZF(C) as axioms? I have the feeling that it should not, but I would like to have someone confirm this thought. I am sorry, if this sort of question has been asked before - I could not find it. Thanks in advance!
As Kevin Carlson states, in practice when categorists want to seriously deal with these kinds of issues they typically use Grothendieck universes. Roughly speaking, this gives you something like "every set is an element of some set that can serve as a model of ZFC". These sets are the universes. We can then talk about $\mathbf{Set}_V$ for some universe $V$ which would then have a set of objects, namely $V$. Then, when we want a "category of $V$-small categories", $\mathbf{Cat}_V$, we can have some new universe $U$ such that $V\in U$ that can be used to define the set of objects of $\mathbf{Cat}_V$. With this approach, you can do all the normal things you want to and you never need to talk about proper classes practically speaking. (There are still proper classes though.)
In ZFC, classes aren't "objects" in any sense. Instead, I strongly recommend viewing them as (represented by) predicates in the first-order theory of ZFC. A predicate $P(x)$ determines a class. From this perspective, every set $S$ gives rise to a class $C_S(x):\equiv x\in S$, but the other way is definitely false, e.g. $C(x):\equiv\top$. Once you make this shift in perspective, most of the questions you ask have clear answers, though it may not be completely trivial to see them in all cases. Some depend only on the logical framework (e.g. classical first-order logic with equality), while others depend on the theory itself, e.g. ZFC set theory.
For example, the analogue to $\exists x\in C.P(x)$ is $\exists x.C(x)\land P(x)$. We can understand intersection/union by reduction to formulas, e.g. $x\in C_1\cap C_2$ is really $C_1(x)\land C_2(x)$. In general, any valid construction/operation on classes needs to reduce to making a new formula from old formula, e.g. how we took $C_1(x)$ and $C_2(x)$ and made a new formula $C_1(x)\land C_2(x)$. We could then make a shorthand for this new formula $(C_1\cap C_2)(x)$ if we wanted to. This makes it clear why there are "rules" like a class can't have a class as an element. In first-order logic, $P(Q)$ where $Q$ is a predicate symbol is ill-formed.
It's not clear what you want $2^C$ or $C_2^{C_1}$ to mean. Certainly, the "class of all subclasses" is ruled out since classes can't be elements of classes. You could, however, define the "class of all sets all of whose elements are in $C$". This would be $(2^C)(x) :\equiv \forall y.y\in x \to C(y)$. Similar reasoning applies to $C_2^{C_1}$. $C_1\times C_2$ just means "the class of ordered pairs of sets whose first component is in $C_1$ and whose second is in $C_2$", i.e. $(C_1\times C_2)(x):\equiv \exists y,z.x=(y,z)\land C_1(y)\land C_2(z)$.
It's not obvious to me what the notion of cardinality would mean for classes, and it seems unlikely that you could make something meaningful. The main issue is that while you can formulate a notion of "injective class function", for example, you can't say something like "there exists an injective class function".
Ultimately, any actual calculation involving classes will reduce manipulation of logical formulas. Having a separate notion of "class" isn't really necessary. Saying that $C$ is a proper class means $\neg\exists s.\forall x.x\in s\leftrightarrow C(x)$. There are some first-order theories that call the individuals they talk about "classes". These are a distinct thing. Such theories would still have classes in the sense I described above.