Within ZFC, the [von Neumann hierarchy](https://en.wikipedia.org/wiki/Von_Neumann_universe) consists of sets $V\_\alpha$ indexed by ordinals, subject to the following conditions:

* $V\_0=\varnothing$.
* $V\_{\alpha+1}=\mathcal P(V\_\alpha)$.
* $V\_\lambda=\bigcup\_{\beta<\lambda}V\_\beta$ for limit $\lambda$.

My question is: **what is the formal justification for the last step?**

The [axiom of union](https://en.wikipedia.org/wiki/Axiom_of_union) would allow us to construct $V\_\lambda$ if we already had a set $\{V\_\beta:\beta<\lambda \}$. However, the existence of $V\_\beta$ for $\beta<\lambda$ does not obviously guarantee the existence of this set: $V\_{\omega\cdot 2}$ in ZF famously models itself minus the [axiom of replacement](https://en.wikipedia.org/wiki/Axiom_schema_of_replacement). This of course suggests that with replacement, this set could be constructed as the image of $\lambda$ (which under the von Neumann ordinal construction is the set of all lower ordinals) under the class function $V$.

But then $V$ would have to be a class function somehow defined through transfinite induction. Since predicates can't refer to themselves, and since we can't just assert the existence and uniqueness of a class function as a theorem the way we can with normal functions, the way this works eludes me.