[proofplan]
A subspace $U \leq V$ is $G$-invariant when $gu \in U$ for every $g \in G$ and $u \in U$. We must show: for any $g \in G$ and $v \in W^\perp$, the vector $gv$ is again in $W^\perp$ — i.e. orthogonal to every $w' \in W$. The trick is to write the test vector $w'$ as $gw$ for some $w \in W$ — possible because $W$ is $G$-invariant and $G$ acts by bijections, so $g$ restricts to a bijection $W \to W$. Then $G$-invariance of the inner product converts $\langle gv, gw \rangle$ to $\langle v, w \rangle$, which vanishes since $v \in W^\perp$.
[/proofplan]
[step:Show that the action of $g$ restricts to a bijection $W \to W$]
Let $g \in G$. Since $W$ is $G$-invariant, the map $\rho(g): V \to V$ satisfies $\rho(g)(W) \subseteq W$. The same applies to $\rho(g^{-1})$, giving $\rho(g^{-1})(W) \subseteq W$.
Consider the restriction
\begin{align*}
\rho(g)|_W: W &\to W \\
w &\mapsto gw.
\end{align*}
This is well-defined by the inclusion $\rho(g)(W) \subseteq W$ above. It is invertible: $\rho(g^{-1})|_W$ is its two-sided inverse, since for any $w \in W$,
\begin{align*}
\rho(g^{-1})(\rho(g)w) = \rho(g^{-1}g)w = \rho(1)w = w,
\end{align*}
and similarly $\rho(g)(\rho(g^{-1})w) = w$, both using the homomorphism property of $\rho$. In particular, $\rho(g)|_W: W \to W$ is **surjective**.
[guided]
A small but technically necessary observation. To prove $gv \in W^\perp$, we must check $\langle gv, w'\rangle = 0$ for every $w' \in W$. The strategy will be to write $w' = gw$ for some $w \in W$ and then exploit the $G$-invariance of the inner product. For this strategy to work, **every** $w' \in W$ must be expressible as $gw$ for some $w \in W$ — that is, the map $w \mapsto gw$ must be surjective from $W$ to itself.
Let us verify this. The hypothesis "$W$ is $G$-invariant" gives $\rho(g)(W) \subseteq W$ for every $g \in G$. Applied to $g^{-1}$, this also gives $\rho(g^{-1})(W) \subseteq W$. So the restriction
\begin{align*}
\rho(g)|_W: W &\to W \\
w &\mapsto gw
\end{align*}
is well-defined as a map $W \to W$. We claim it is bijective; the candidate inverse is $\rho(g^{-1})|_W$. For any $w \in W$,
\begin{align*}
\rho(g^{-1})(\rho(g)w) = \rho(g^{-1}g)w = \rho(1)w = w,
\end{align*}
where the first equality uses the homomorphism property $\rho(ab) = \rho(a)\rho(b)$ and the second uses $\rho(1) = \mathrm{id}_V$. The reverse composition is similar. So $\rho(g)|_W$ is a bijection $W \to W$ with inverse $\rho(g^{-1})|_W$.
In particular, **every** $w' \in W$ has a unique preimage $w := \rho(g^{-1})w' \in W$ satisfying $\rho(g)w = w'$. This is the bijectivity we will use in the next step.
[/guided]
[/step]
[step:Verify $gv \perp w'$ for an arbitrary $w' \in W$]
Fix $v \in W^\perp$ and $g \in G$. Let $w' \in W$ be arbitrary. By the previous step, there exists $w \in W$ such that $\rho(g)w = w'$; explicitly, $w = \rho(g^{-1})w' \in W$. Then:
\begin{align*}
\langle gv, w' \rangle = \langle gv, gw \rangle = \langle v, w \rangle = 0,
\end{align*}
where:
- the first equality substitutes $w' = gw$;
- the second equality uses the **$G$-invariance of the inner product**, which says $\langle gx, gy\rangle = \langle x, y\rangle$ for all $x, y \in V$ and $g \in G$;
- the third equality uses $v \in W^\perp$ and $w \in W$, so the inner product vanishes by definition of the orthogonal complement.
[guided]
Now we are ready to prove that $gv \in W^\perp$. By definition,
\begin{align*}
W^\perp = \{u \in V : \langle u, w'\rangle = 0 \text{ for all } w' \in W\},
\end{align*}
so we must show $\langle gv, w'\rangle = 0$ for **every** $w' \in W$.
Let $w' \in W$ be arbitrary. Here is where the previous step pays off: since $\rho(g)|_W$ is bijective, we can write $w'$ as $gw$ for some $w \in W$. Explicitly, take $w := g^{-1}w'$; this belongs to $W$ because $W$ is $G$-invariant (which gives $g^{-1}w' \in W$). Then $gw = g(g^{-1}w') = w'$.
Now compute:
\begin{align*}
\langle gv, w'\rangle &= \langle gv, gw\rangle && \text{(rewrote } w' \text{ as } gw\text{)} \\
&= \langle v, w\rangle && \text{(} G\text{-invariance of the inner product)} \\
&= 0 && \text{(} v \in W^\perp \text{ and } w \in W\text{).}
\end{align*}
The middle step is the heart of the proof. The hypothesis "$V$ carries a $G$-invariant inner product" means precisely $\langle gx, gy\rangle = \langle x, y\rangle$ for every $g \in G$ and $x, y \in V$ — and this is exactly what we just used.
Why did we need to introduce $w = g^{-1}w'$? Because the $G$-invariance of the inner product compares $\langle gx, gy\rangle$ with $\langle x, y\rangle$ — both factors must be hit by $g$. We have $gv$ on the left, but $w'$ on the right is "naked." The substitution $w' = gw$ brings the right side into the "$g$ acts on both" form, after which $G$-invariance applies and removes the $g$ from both sides simultaneously.
[/guided]
[/step]
[step:Conclude that $W^\perp$ is $G$-invariant]
Since $w' \in W$ was arbitrary in the previous step, $\langle gv, w'\rangle = 0$ for **every** $w' \in W$. By the definition of orthogonal complement, $gv \in W^\perp$. Since $v \in W^\perp$ and $g \in G$ were arbitrary, this shows $\rho(g)(W^\perp) \subseteq W^\perp$ for every $g \in G$. Therefore $W^\perp$ is $G$-invariant, completing the proof.
[/step]