What is the domain of the successor function? Before defining the natural numbers, how do you define the successor function? $S(x)=x\cup\{x\}$ is a function on _ into _?
In two textbooks I've seen, the authors introduce the function (before the naturals) by saying "for every set $x$, we define the successor $S(x)$...". But doesn't that imply that the domain of $S$ contains all sets?
Kinda funny that "what is the domain of the successor function?" is a title that does not meet this website's standards. (I guess if you click submit enough times...)
 A: We can define the successor function on the class of all sets. In
fact, we may define $S \colon V \to V, x \mapsto x \cup \{x\}$, where
$V$ is the proper class of all sets. Note that this can be done within
ZFC: While $S$ does not exists as an object in ZFC, we have that $S =
\{ (x, x \cup \{x\}) \mid x \in V \}$ is a definable class and those
can be regarded as "virtual classes" in ZFC. Also note that for any
set $D$, the function $S \restriction D \colon D \to S"D, x \mapsto x
\cup \{x \}$ is a set and hence an object in ZFC.

edit: I should probably remark that, while virtual classes
are a handy way to deal with proper classes in ZFC, there are some
limitations to this approach. For example, statements of the form "For
every virtual class ..." can in general not be formalized within ZFC
and there may be classes that are not virtual, i.e. are not a
collection of sets that satisfy a given, fixed formula. For example,
the modeling relation $ \models := \{ (\phi, x) \mid \phi(x) \text{ is
true } \}$ is provably not a virtual class.
