This post is a bit of a rant.
One subgoal of the stacks project is to work through the beginnings of etale cohomology and algebraic stacks without making use of universes. Most of this is completely straightforward (and already done), and there is only one point at which you have to make an argument.
First I would like to point out that there is a completely well established (axiomatic) theory of sets, and that is ZFC (Zermelo-Fraenkel set theory with the axiom of choice). Thus, virtually any mathematician who uses a set means the type of object that is described by the axioms of ZFC. Paradoxically it is the set theorists themselves who enjoy thinking about other kinds of sets. They like to add and substract axioms from ZFC and see what happens. It is probably for that reason that you cannot find a book that simply takes the axioms of ZFC and develops the theory of sets (if you do know such a book or lecture notes, please email me or leave a comment). So whenever you take up a book on set theory to learn something about the sets you work with every day, you have to be very careful to see whether the author has added some bizarre additional hypotheses to the theory, or works with a different axiom system. To me it seems a bit of a crime that some of the undergraduate level books do not use ZFC.
Of course, some of the most interesting results in set theory (that I know) are those having to do with consistency, etc. As an example I want to mention the result that if ZFC is consistent, then you cannot prove the existence of a strongly inaccessible cardinal in ZFC.
What is a universe? Roughly, a universe is a set X such that all the axioms of ZFC hold for the elements of X. It turns out that the existence of a universe is equivalent to the existence of a strongly inaccessible cardinal, hence cannot be proved inside ZFC (and neither can the nonexistence, actually). Thus I argue that most mathematicians use a set theory which does not have universes.
Grothendieck added the existence of universes U as an axiom so he could say “let (Sch) = the category of schemes which are elements of U”. This is somewhat convenient. For example it means that if I is an element of U and X_i is an element of U which is a scheme for all i, then \coprod X_i (suitably constructed) is an element of U. On the other hand (Sch) is not an element of U and considering it takes you outside of U. Moreover, since U is just some set, (Sch) is just some set of schemes, and there are schemes not in U. Furthermore, the topos of sheaves on (Sch) is of course a proper class and not a set at all. Finally, changing the universe gives you a different topos.
The axioms of ZFC provide many techniques for constructing large sets. How close can we come to constructing a universe U inside of ZFC? I don’t know; I’ve looked around, but I haven’t found somebody addressing this directly (likely because for a set theorist this is utterly trivial). But here is what is true; I’ll formulate this in terms of (Sch) = the category of schemes which are elements of U, because if you are reading this then you probably do not care about “large sets”. Given any set of schemes (Sch_0) you can construct a U such that
- (Sch_0) is contained in (sch),
- (Sch) has fibre products, and fibre products agree with fibre products in the category of all schemes,
- more generally you can construct U such that limits and colimits over at most countable diagrams in (Sch) exist whenever they exist in the category of all schemes and are the same,
- you can make (Sch) be closed under immersions, morphisms of finite type, morphisms which are locally of finite type such that the inverse image of an affine can be covered by countably many affines, and
- if X is in (Sch) and Y is a scheme whose “size” is at most the 2^(size of X), then Y is isomorphic to an element of (Sch).
The key is to construct U such that (3) and (5) hold; the size of a scheme X is defined in terms of the cardinality of the set of sections of O_X over affine opens and the cardinality of the set of affine opens. But now you cannot _also_ require that (Sch) is closed under disjoint unions of objects of (Sch) indexed by elements I of U, and, if you think about it for a bit, you will see that this is the only difference from the case of a universe. So, although it is clear that properties 1 — 4 imply that in many cases the disjoint union does exist in (Sch), it is just not always true!
This is the approach we chose in the stacks project. Another one might have been to construct U’s such that the disjoint unions always exist, but then you need to weaken condition (5) by quite a bit; I’m not exactly sure how much.