I recently began reading, “The Foundations of Mathematics” by Kenneth Kunen and am having some difficulty understanding the rationale behind one of the very early proofs. The proof is about demonstrating the uniqueness of the empty set using the following 3 Axioms that Kunen establishes early in the book:

A. **Set Existence**: $exists x (x=x)$ …which Kunen will refer to as Axiom $0$

B. **Extensionality**: $forall x,y big( forall z (z in x leftrightarrow z in y) rightarrow x=ybig )$

C. **Comprehension Schema**: $forall z big ( exists y forall x (x in y leftrightarrow xin z land varphi(x) big)$

I’ve seen the proof referenced many times so I am conceptually familiar with it…but I am having some confusion regarding the formal implementation of it. Kunen’s proof is as follows:

(1) $text{emp}(x):=forall z (znotin x)$

(2) By Extensionality, $text{emp}(x) land text{emp}(y) rightarrow x=y$

(3) To prove that $exists y (text{emp}(y))$, start with any set $z$ (there is one by Axiom $0$) and apply comprehension with $varphi (x)$ a statement that is always false (for example, $x neq x$) to get a such that $forall x (x in y leftrightarrow text{FALSE})$ – i.e. $forall x (x notin y)$.

Combining (2) with (3) demonstrates that the empty set $emptyset$ is unique.

I have several questions:

Firstly, how can we claim that $x neq x$ is **always false**. By Set Existence, we claim that there is at least one set with the property that it is equal to itself…i.e. the relation “$=(x,x)$” holds true. In order to claim that $x neq x$ is always false for any object $x$, shouldn’t our Set Existence axiom be of the form $forall x (x=x)$?

Secondly, given that Set Existence is presumably written correctly, what exactly is its purpose? Kunen’s remark in (3), “…there is one by Axiom $0$…” seems to suggest that this axiom asserts that our domain of discourse is non-empty. But what exactly does that mean? My interpretation of a statement like that is, “Ok…so we know that **we have at least one object** in our domain of discourse, but **no comment is made regarding whether have more than one**“. Assuming that interpretation is correct, how is it that I can even generate multiple empty sets (say $emptyset^*$ and $emptyset ‘$) in (3) when the claim of the Comprehension Schema is that, “For any given set $z$ I can construct at least one set $y$ such that…”?

Said differently, if I only know *for sure* that one object $z$ exists (namely the $z$ that would be guaranteed to exist by Set Existence), shouldn’t I only be able to generate a single empty set from it…i.e. because the Comprehension Schema states that I can construct at least one subset…but makes no comment about whether or not a can construct more than one ($emptyset^*$ would be the first instance of an empty set construction but how could I also be guaranteed to construct the other $emptyset’$?). The only thing I could think to do is use a *different* $varphi$ (call it $psi$) that also always evaluates the FALSE but I am unsure if that is the correct route.

Hopefully this rambling was expressed in a comprehensible manner. Any insight is greatly appreciated!