In formal set theory (ZFC to be specific) there are some types of definitions: predicate definitions, for instance $A \subset B$ is an abbreviation of $\forall x(x \in A \Rightarrow x \in B)$, comprehension definitions, for instance $A \cap B$ is an abreviation of $\{x \in A: x \in B\}$
The predicate definitions are abbreviations of formulas and comprehension definitions are abbreviations of sets (terms or objects in ZFC).
The problem is with existential uniqueness definitions where we put a name to an object which existential uniqueness is given by a theorem of existential uniqueness. Let be the theorem of existential uniqueness $\forall x \exists! y (\forall z (z \in y \Longleftrightarrow z \subset x))$. It is a direct consequence of the Power Set Axiom.
In this case given a set A, the Power Set Pow(A) is not an abbreviation, you can not substitute Pow(A) by $\forall x \exists! y (\forall z (z \in y \Longleftrightarrow z \subset x))$ because one is a Set (a term or object) and the other is a formula. How can this type of definitions be expressed in a formal way?
Even worse, in many books the Power Set Axiom $\forall x \exists y (\forall z (z \in y \Longleftrightarrow z \subset x))$ is used directly to name Pow(A) without mention that the uniqueness must be proved in order to be able to define Pow(A).
I used Pow(A) as an example but my question is about existential definitions (Is this the right name for this type of definitions?) in general for ZFC. Where a can I find a proper treatment of this topic?
Briefly "existential definitions" are essentially different to definitions such that:
$A \subset B \equiv_{def} \forall x(x \in A \Rightarrow x \in B)$
$A \cap B \equiv_{def} \{x \in A: x \in B\}$
How a existential definition can be written? It is unavoidable the use of metalanguage?
How to name an object that exists thanks to an existential uniqueness theorem?
Once you specify a condition, uniqueness follows by extensionality. And since that we can prove that, there is little point in using $\exists!y$ in the statement of the axiom, because $\exists!$ is not a standard quantifier, but rather a shorthand statement for a much more complicated formula.
Now, you want to talk about class-functions like $\mathcal P(\cdot)$ or constants like $\varnothing$ or $\omega$. And that is a valid concern, since the language of set theory only has the $\in$ symbol.
Enter the notion of a conservative extension. In logic, if you have a language $\cal L$ and a theory $T$, and you have a formula $\varphi(x)$ such that $T$ proves that $\varphi(x)$ defines a unique set, then we can extend the language to $\cal L^+$ by adding a constant symbol $c_\varphi$ and the axiom $\varphi(c_\varphi)$.
We can now prove that any model of $T$ can be interpreted naturally as a model for $T+\varphi(c_\varphi)$ as an interpretation for the language $\cal L^+$. Similarly we can do that with definable functions or relations. And moreover, every proof from $T+\varphi(c_\varphi)$ in $\cal L^+$ can be translated to a proof from $T$ in the language $\cal L$.
And that is what actually going on. In effect we extend the language of set theory to include many "convenient symbols", and we know that we can recursively translate all the statements and proofs from the extended language back to the original language of set theory with just $\in$.