I do mathematics as a hobby very recently got into set theory. I quickly decided to approach the topic from the lens of mathematical logic. Here is the book that I am using.
I tried to give a very detailed proof of the following simple proposition that there a exists a unique empty set. The reason why I wrote out so much in my proof is because I wanted to make sure I grasped all concepts correctly. However, I am not sure whether that is the case.
Specifically, I am not sure whether my idea that a set is the interpretation of a variable in an $\mathcal{M}-$structure is correct.
Below the proposition and my proof:
$\textbf{Proposition 9.1.2.}$ There exists a unique set with no elements.
$\textit{Proof.}$ Let $\mathcal{L}$ be the language of set theory, and let $\mathcal{M}$ be an $\mathcal{L}-$structure that satisfies $Axioms_{ZFC}.$ If no such $\mathcal{M}-$structure exists, we are done vacuously.
[Before we continue with our proof, we want want to explain why we did not explicitly define a variable assignment $s: Var \longrightarrow M$ (where $M$ is the universe of $\mathcal{M}$) for our $\mathcal{M}-$structure. Note that all axioms in ZFC are sentences, and therefore have no free variables. This implies that all variables are either bound or do not occur in our sentence. Hence, if an $\mathcal{M}-$structure can fulfill the ZFC axioms it is independent of a truth assignment $s.$
However, we technically still have to show that $s: Var \longrightarrow M$ exists. We know that $Var$ is infinite, and because $M \not= \emptyset$ by definition, there must exist such function. With these insights at hand, we can continue with our proof.]
Because we assume that $\mathcal{M}$ satisfies $Ax_{ZFC},$ we can use the Axiom of Schema Separation that states that \begin{align*} \forall \vec{p} \ \forall y \ \exists z \ \forall x(x \in z \Longleftrightarrow (x \in y \land \varphi(x, y, \vec{p})). \end{align*} For our intentions, we define the formula $\varphi(x, y, \vec{p})$ to be $x \not= x.$ Using the Axiom of Schema Separation, the expression then simplifies to \begin{align*} \forall y \ \exists z \ \forall x(x \in z \Longleftrightarrow (x \in y \land x \not= x)) \end{align*} where we replaced $\varphi(x, y, \vec{p})$ with $x \not= x$ and removed $\forall \vec{p}$ from the beginning of the formula. We are allowed to do the latter because $\vec{p}$ do not occur in our formula.
Now, let $y$ be an arbitrary interpretation in $\mathcal{M},$ then there exists an interpretation of $z$ in $\mathcal{M}$ such that that interpretation is a set which is empty. This is because for any $\mathcal{M}-$structure, the evaluation of the formula $x \not= x$ is true if and only if $s(x) \not= s(x).$ However, this is never true for the binary relation $=.$
Together, we have that there exists an interpretation of $z$ in $\mathcal{M}$ that is a set and empty.
To show uniqueness, we will use the Axiom of Extensionality which says that \begin{align*} \forall x \ \forall y (\forall w(w \in x \Longleftrightarrow w \in y) \longrightarrow x = y). \end{align*} For our intentions, let $x, y \in Var$ be such that their interpretation in $\mathcal{M}$ is a set that is empty. We showed that such set(s) must exist above. Further, let $w \in Var,$ then the Axiom of Extensionality says that \begin{align*} \forall w(w \in x \Longleftrightarrow w \in y) \longrightarrow x = y. \end{align*} Because no $w \in Var$ with $w \in x$ or $w \in y$ can exist ($x, y$ are empty), we have that $x = y$ vacuously.
Hence, the empty set is unique.
I would greatly appreciate any tips that would breakdown where I went wrong.
EDIT: As mentioned in the comments, I now do realise that the part "Because no $w \in Var$ with $w \in x$ or $w \in y$ ..." does not make sense because $w$ is a syntactic variable whereas $w \in x$ is a semantic expression. Could this not simply be fixed by replacing it with "Because there exists no interpretation of the variable $w$ in $\mathcal{M}$ such that $w \in x$ or $w \in y$ ...."?