[proofplan]
We prove the intrinsic characterisation directly from the two algebraic identities defining an [orthogonal projection](/theorems/437): idempotence and self-adjointness. If $P$ is such an operator, we take $M=\operatorname{Range}(P)$, prove that $M$ is closed, and show that every $x\in H$ decomposes as $x=Px+(x-Px)$ with the two terms lying in $M$ and $M^\perp$. Conversely, if $P=P_M$ for a closed subspace $M$, the defining [orthogonal decomposition](/theorems/436) of $P_M$ immediately gives idempotence and self-adjointness. The range, kernel, and direct-sum identities are then read from the same decomposition.
[/proofplan]
[step:Show that the range of an orthogonal projection is a closed subspace]
Assume first that $P$ is an orthogonal projection operator, so $P^2=P$ and
\begin{align*}
(Px,y)_H=(x,Py)_H
\end{align*}
for all $x,y\in H$. Define
\begin{align*}
M:=\operatorname{Range}(P)=\{Px:x\in H\}.
\end{align*}
Since $P$ is linear, $M$ is a linear subspace of $H$.
We prove that $M$ is closed. Let $(m_k)_{k=1}^{\infty}$ be a sequence in $M$ such that $m_k\to m$ in the norm $\|\cdot\|_H$ for some $m\in H$. For each $k\in\mathbb{N}$, since $m_k\in M$, there exists $x_k\in H$ such that $m_k=Px_k$. Hence
\begin{align*}
Pm_k=P(Px_k)=P^2x_k=Px_k=m_k.
\end{align*}
Since $P\in\mathcal{L}(H)$ is continuous, passing to the limit gives
\begin{align*}
Pm=\lim_{k\to\infty}Pm_k=\lim_{k\to\infty}m_k=m.
\end{align*}
Thus $m=Pm\in \operatorname{Range}(P)=M$, so $M$ is closed.
[guided]
Assume that $P$ is an orthogonal projection operator. By the formal definition used here, this means two things: first,
\begin{align*}
P^2=P,
\end{align*}
and second, $P$ is self-adjoint:
\begin{align*}
(Px,y)_H=(x,Py)_H
\end{align*}
for all $x,y\in H$.
The natural candidate for the subspace onto which $P$ projects is its range. Define
\begin{align*}
M:=\operatorname{Range}(P)=\{Px:x\in H\}.
\end{align*}
Because $P$ is linear, if $m_1=Px_1$ and $m_2=Px_2$ lie in $M$, and if $a,b$ are scalars from the scalar field of $H$, then
\begin{align*}
am_1+bm_2=aPx_1+bPx_2=P(ax_1+bx_2)\in M.
\end{align*}
Thus $M$ is a linear subspace.
We must also prove that $M$ is closed. Let $(m_k)_{k=1}^{\infty}$ be a sequence in $M$ converging in $H$ to some $m\in H$. Since each $m_k$ lies in the range of $P$, for each $k\in\mathbb{N}$ there is an element $x_k\in H$ with
\begin{align*}
m_k=Px_k.
\end{align*}
Using idempotence, we get
\begin{align*}
Pm_k=P(Px_k)=P^2x_k=Px_k=m_k.
\end{align*}
Now use boundedness of $P$. Since $P\in\mathcal{L}(H)$, it is continuous with respect to the [Hilbert space](/page/Hilbert%20Space) norm. Therefore $m_k\to m$ implies $Pm_k\to Pm$. But $Pm_k=m_k$ for every $k$, so the same sequence also converges to $m$. [Uniqueness of limits](/theorems/625) in the normed space $H$ gives
\begin{align*}
Pm=m.
\end{align*}
Hence $m=Pm$ lies in $\operatorname{Range}(P)=M$. Therefore every norm limit of a sequence in $M$ belongs to $M$, so $M$ is closed.
[/guided]
[/step]
[step:Decompose every vector into a range part and an orthogonal kernel part]
Let $x\in H$. Define
\begin{align*}
m_x:=Px
\end{align*}
and
\begin{align*}
n_x:=x-Px.
\end{align*}
Then $m_x\in M$ by definition of $M$. Also
\begin{align*}
Pn_x=P(x-Px)=Px-P^2x=Px-Px=0,
\end{align*}
so $n_x\in\ker(P)$.
We now show that $\ker(P)=M^\perp$. First let $z\in\ker(P)$. For every $m\in M$, choose $y\in H$ such that $m=Py$. By self-adjointness,
\begin{align*}
(z,m)_H=(z,Py)_H=(Pz,y)_H=(0,y)_H=0.
\end{align*}
Thus $z\in M^\perp$, so $\ker(P)\subset M^\perp$.
Conversely, let $z\in M^\perp$. Since $Pz\in M$, orthogonality gives
\begin{align*}
(z,Pz)_H=0.
\end{align*}
Using self-adjointness and idempotence,
\begin{align*}
\|Pz\|_H^2=(Pz,Pz)_H=(z,P^2z)_H=(z,Pz)_H=0.
\end{align*}
Therefore $Pz=0$, so $z\in\ker(P)$. Hence
\begin{align*}
\ker(P)=M^\perp.
\end{align*}
For the chosen $x\in H$, the decomposition
\begin{align*}
x=m_x+n_x
\end{align*}
has $m_x\in M$ and $n_x\in M^\perp$. Thus
\begin{align*}
H=M+M^\perp.
\end{align*}
If $u\in M\cap M^\perp$, then $u\perp u$, so
\begin{align*}
\|u\|_H^2=(u,u)_H=0,
\end{align*}
and therefore $u=0$. Hence the sum is direct:
\begin{align*}
H=M\oplus M^\perp.
\end{align*}
[/step]
[step:Identify $P$ with the orthogonal projection onto its range]
From the preceding step, every $x\in H$ has the orthogonal decomposition
\begin{align*}
x=Px+(x-Px)
\end{align*}
with
\begin{align*}
Px\in M
\end{align*}
and
\begin{align*}
x-Px\in M^\perp.
\end{align*}
By the defining property of the orthogonal projection $P_M$ onto the closed subspace $M$, $P_Mx$ is the $M$-component in the decomposition of $x$ relative to
\begin{align*}
H=M\oplus M^\perp.
\end{align*}
Therefore
\begin{align*}
P_Mx=Px
\end{align*}
for every $x\in H$, and hence
\begin{align*}
P=P_M.
\end{align*}
[/step]
[step:Verify that every projection $P_M$ is self-adjoint and idempotent]
Conversely, let $M\subset H$ be a closed linear subspace and assume
\begin{align*}
P=P_M.
\end{align*}
For each $x\in H$, the definition of $P_M$ gives the orthogonal decomposition
\begin{align*}
x=P_Mx+(x-P_Mx),
\end{align*}
where
\begin{align*}
P_Mx\in M
\end{align*}
and
\begin{align*}
x-P_Mx\in M^\perp.
\end{align*}
Since $P_Mx\in M$, applying $P_M$ again leaves it fixed:
\begin{align*}
P_M(P_Mx)=P_Mx.
\end{align*}
Thus
\begin{align*}
P_M^2=P_M.
\end{align*}
To prove self-adjointness, let $x,y\in H$. Define
\begin{align*}
m_x:=P_Mx,\qquad n_x:=x-P_Mx,\qquad m_y:=P_My,\qquad n_y:=y-P_My.
\end{align*}
Then $m_x,m_y\in M$ and $n_x,n_y\in M^\perp$. Since $M$ is orthogonal to $M^\perp$,
\begin{align*}
(P_Mx,y)_H=(m_x,m_y+n_y)_H=(m_x,m_y)_H
\end{align*}
and
\begin{align*}
(x,P_My)_H=(m_x+n_x,m_y)_H=(m_x,m_y)_H.
\end{align*}
Therefore
\begin{align*}
(P_Mx,y)_H=(x,P_My)_H
\end{align*}
for all $x,y\in H$. Hence $P_M$ is an orthogonal projection operator, and so $P=P_M$ is an orthogonal projection operator.
[/step]
[step:Read off the range, kernel, and direct sum identities]
For the subspace $M$ above, $P=P_M$ implies that $P$ always takes values in $M$, so
\begin{align*}
\operatorname{Range}(P)\subset M.
\end{align*}
If $m\in M$, then the orthogonal decomposition of $m$ is
\begin{align*}
m=m+0
\end{align*}
with $m\in M$ and $0\in M^\perp$, so $P_Mm=m$. Hence $m\in\operatorname{Range}(P_M)=\operatorname{Range}(P)$, and therefore
\begin{align*}
\operatorname{Range}(P)=M.
\end{align*}
Also, by the defining decomposition,
\begin{align*}
P_Mx=0
\end{align*}
if and only if the $M$-component of $x$ is zero, which is equivalent to $x\in M^\perp$. Therefore
\begin{align*}
\ker(P)=\ker(P_M)=M^\perp.
\end{align*}
The same decomposition gives
\begin{align*}
H=M\oplus M^\perp.
\end{align*}
This proves all asserted identities and completes the characterisation.
[/step]