[proofplan]
The argument proceeds in three stages. First, we use the [Orthogonal Decomposition](/theorems/436) to show that the orthogonal complement of the $(n-1)$-dimensional tangent space $T_x(\partial U)$ in $\mathbb{R}^n$ is one-dimensional, so both $\nu_1(x)$ and $\nu_2(x)$ lie on a single line through the origin. Second, we intersect this line with the unit sphere $S^{n-1}$ to reduce to exactly two candidates: $\hat{v}$ and $-\hat{v}$. Third, we show that the outward-pointing condition eliminates the sign ambiguity by deriving a contradiction: if $\nu_2(x) = -\nu_1(x)$, then $\nu_2(x)$ points into $U$, violating Condition 3.
[/proofplan]
[step:Show the orthogonal complement of $T_x(\partial U)$ is one-dimensional]
Fix $x \in \partial U$. The tangent space $T_x(\partial U)$ is an $(n-1)$-dimensional subspace of $\mathbb{R}^n$. By the [Orthogonal Decomposition](/theorems/436), we have the direct sum
\begin{align*}
\mathbb{R}^n = T_x(\partial U) \oplus T_x(\partial U)^\perp,
\end{align*}
where $T_x(\partial U)^\perp$ denotes the orthogonal complement. Since $\dim T_x(\partial U) = n - 1$, the dimension formula gives
\begin{align*}
\dim T_x(\partial U)^\perp = n - (n - 1) = 1.
\end{align*}
Conditions 1 and 2 require $\nu_j(x) \in T_x(\partial U)^\perp$ with $|\nu_j(x)| = 1$. In particular, both $\nu_1(x)$ and $\nu_2(x)$ are unit vectors in the one-dimensional subspace $T_x(\partial U)^\perp$.
[guided]
Why does the tangent space have dimension $n - 1$? Because $\partial U$ is a $C^1$ [boundary](/pages/1024), it is locally the graph of a $C^1$ function by the [Local Graph Representation](/theorems/6). At each point $x \in \partial U$, the tangent space $T_x(\partial U)$ is the image of the differential of this local parametrisation, which maps $\mathbb{R}^{n-1}$ into $\mathbb{R}^n$ with injective derivative. This produces an $(n-1)$-dimensional subspace of $\mathbb{R}^n$.
Now we apply the [Orthogonal Decomposition](/theorems/436). The theorem requires a finite-dimensional inner product space and a subspace. We verify: $\mathbb{R}^n$ is a finite-dimensional inner product space (with the standard Euclidean inner product $v \cdot w = \sum_{i=1}^n v_i w_i$), and $T_x(\partial U)$ is a linear subspace. The theorem then guarantees the direct sum decomposition
\begin{align*}
\mathbb{R}^n = T_x(\partial U) \oplus T_x(\partial U)^\perp.
\end{align*}
The dimension formula $\dim V = \dim W + \dim W^\perp$, valid in any finite-dimensional inner product space, gives
\begin{align*}
\dim T_x(\partial U)^\perp = n - (n - 1) = 1.
\end{align*}
What does Condition 1 say in terms of this decomposition? Condition 1 states $\nu_j(x) \cdot w = 0$ for all $w \in T_x(\partial U)$, which is exactly the membership condition $\nu_j(x) \in T_x(\partial U)^\perp$. So both candidate normals $\nu_1(x)$ and $\nu_2(x)$ live in a one-dimensional subspace — a line through the origin in $\mathbb{R}^n$. This is the key geometric reduction: two unit vectors on a line can only be $\hat{v}$ or $-\hat{v}$.
[/guided]
[/step]
[step:Reduce to two candidates using the unit length condition]
Since $T_x(\partial U)^\perp$ is one-dimensional, fix any nonzero vector $v \in T_x(\partial U)^\perp$. Every element of $T_x(\partial U)^\perp$ has the form $\lambda v$ for some $\lambda \in \mathbb{R}$. The unit length condition $|\nu_j(x)| = 1$ forces
\begin{align*}
|\lambda v| = |\lambda| \cdot |v| = 1,
\end{align*}
so $\lambda = \pm 1/|v|$. The two unit vectors in $T_x(\partial U)^\perp$ are therefore $v/|v|$ and $-v/|v|$, and no others exist. Define $\hat{v} := v/|v|$. We conclude
\begin{align*}
\nu_1(x),\, \nu_2(x) \in \{\hat{v},\, -\hat{v}\}.
\end{align*}
In particular, $\nu_2(x) = \pm\, \nu_1(x)$.
[/step]
[step:Eliminate the sign ambiguity using the outward-pointing condition]
Suppose, toward a contradiction, that $\nu_2(x) = -\nu_1(x)$. By Condition 3 applied to $\nu_1$, there exists $\varepsilon_1 > 0$ such that
\begin{align*}
x + \varepsilon\, \nu_1(x) \notin \overline{U} \quad \text{for all } \varepsilon \in (0, \varepsilon_1].
\end{align*}
Now consider $\nu_2$. For any $\varepsilon > 0$:
\begin{align*}
x + \varepsilon\, \nu_2(x) = x + \varepsilon\, (-\nu_1(x)) = x - \varepsilon\, \nu_1(x).
\end{align*}
The point $x - \varepsilon\, \nu_1(x)$ lies on the opposite side of $\partial U$ from $x + \varepsilon\, \nu_1(x)$. Since $\partial U$ is a $C^1$ hypersurface and $\nu_1(x)$ points out of $U$, the reverse direction $-\nu_1(x)$ points into $U$. More precisely, by the [Local Graph Representation](/theorems/6), in a neighbourhood of $x$ the boundary $\partial U$ separates $\mathbb{R}^n$ into two open half-spaces relative to $T_x(\partial U)$: one contained in $U$ and one contained in $\mathbb{R}^n \setminus \overline{U}$. Since $\nu_1(x)$ points into the exterior half-space (by Condition 3 for $\nu_1$), $-\nu_1(x)$ points into the interior half-space. Therefore, there exists $\varepsilon_2 > 0$ such that for all $\varepsilon \in (0, \varepsilon_2]$:
\begin{align*}
x + \varepsilon\, \nu_2(x) = x - \varepsilon\, \nu_1(x) \in U \subset \overline{U}.
\end{align*}
This contradicts Condition 3 for $\nu_2$, which requires $x + \varepsilon\, \nu_2(x) \notin \overline{U}$ for all sufficiently small $\varepsilon > 0$.
[guided]
The geometric picture is as follows. At the boundary point $x$, the tangent hyperplane $T_x(\partial U)$ divides a small neighbourhood into two open half-spaces: the "inside" (intersecting $U$) and the "outside" (intersecting $\mathbb{R}^n \setminus \overline{U}$). Any nonzero vector in $T_x(\partial U)^\perp$ points toward one of these two sides, since it is not tangent to $\partial U$.
To make this precise, we invoke the [Local Graph Representation](/theorems/6). Since $\partial U$ is $C^1$, there exists a neighbourhood $V$ of $x$, a $C^1$ function $\gamma : \mathbb{R}^{n-1} \to \mathbb{R}$, and a rotation of coordinates such that
\begin{align*}
V \cap \partial U = \{(y', y_n) \in V : y_n = \gamma(y')\},
\end{align*}
with $V \cap U$ lying on one side (say $y_n < \gamma(y')$) and $V \cap (\mathbb{R}^n \setminus \overline{U})$ on the other side ($y_n > \gamma(y')$). In these coordinates, the outward normal at $x$ has a positive $y_n$-component, pointing into $\{y_n > \gamma(y')\}$.
Suppose for contradiction that $\nu_2(x) = -\nu_1(x)$. By Condition 3 applied to $\nu_1$, there exists $\varepsilon_1 > 0$ such that
\begin{align*}
x + \varepsilon\, \nu_1(x) \notin \overline{U} \quad \text{for all } \varepsilon \in (0, \varepsilon_1].
\end{align*}
This confirms that $\nu_1(x)$ points into the exterior half-space. Now for $\nu_2(x) = -\nu_1(x)$, any $\varepsilon > 0$ gives
\begin{align*}
x + \varepsilon\, \nu_2(x) = x - \varepsilon\, \nu_1(x).
\end{align*}
Since $\nu_1(x)$ points into the exterior half-space, $-\nu_1(x)$ points into the interior half-space. In the local graph coordinates, the $y_n$-component of $-\nu_1(x)$ is negative, so the point $x - \varepsilon\, \nu_1(x)$ satisfies $y_n < \gamma(y')$ for small $\varepsilon > 0$. This means $x - \varepsilon\, \nu_1(x) \in V \cap U$, and in particular
\begin{align*}
x + \varepsilon\, \nu_2(x) = x - \varepsilon\, \nu_1(x) \in U \subset \overline{U}
\end{align*}
for all $\varepsilon \in (0, \varepsilon_2]$ for some $\varepsilon_2 > 0$ small enough that $x - \varepsilon\, \nu_1(x) \in V$.
This directly contradicts Condition 3 for $\nu_2$, which requires $x + \varepsilon\, \nu_2(x) \notin \overline{U}$ for all sufficiently small $\varepsilon > 0$. What went wrong with the assumption? The vector $-\nu_1(x)$ points inward, so it cannot simultaneously satisfy the outward-pointing condition. The two directions $\hat{v}$ and $-\hat{v}$ point to opposite sides of the boundary, and Condition 3 selects exactly one of them.
[/guided]
Therefore $\nu_2(x) = -\nu_1(x)$ is impossible, and we must have $\nu_2(x) = \nu_1(x)$.
[/step]
[step:Conclude uniqueness on all of $\partial U$]
The argument in the preceding steps uses only the local geometry at a single point $x \in \partial U$ and the three conditions evaluated at that point. Since the hypotheses hold for every $x \in \partial U$, the conclusion $\nu_1(x) = \nu_2(x)$ holds at every boundary point. Therefore the two vector fields are identical:
\begin{align*}
\nu_1 \equiv \nu_2 \quad \text{on } \partial U. \qquad \blacksquare
\end{align*}
[/step]