[step:Solve the one-dimensional soft-thresholding problem]
Fix $t \in \mathbb{R}$ and define $\phi_t: \mathbb{R} \to \mathbb{R}$ by
\begin{align*}
\phi_t(u) := \frac{1}{2}(u-t)^2+\lambda|u|.
\end{align*}
We claim that $\phi_t$ has the unique minimiser $S_\lambda(t)$.
If $u>0$, then
\begin{align*}
\phi_t(u)=\frac{1}{2}(u-t)^2+\lambda u,
\qquad
\phi_t'(u)=u-t+\lambda.
\end{align*}
The critical point in $(0,\infty)$ is $u=t-\lambda$, which lies in $(0,\infty)$ exactly when $t>\lambda$.
If $u<0$, then
\begin{align*}
\phi_t(u)=\frac{1}{2}(u-t)^2-\lambda u,
\qquad
\phi_t'(u)=u-t-\lambda.
\end{align*}
The critical point in $(-\infty,0)$ is $u=t+\lambda$, which lies in $(-\infty,0)$ exactly when $t<-\lambda$.
It remains to handle $u=0$. For $u>0$,
\begin{align*}
\phi_t'(u)=u-t+\lambda,
\end{align*}
so the right derivative at $0$ is $\lambda-t$. For $u<0$,
\begin{align*}
\phi_t'(u)=u-t-\lambda,
\end{align*}
so the left derivative at $0$ is $-\lambda-t$.
We verify the minimisation condition at $0$ directly. If $u>0$, then
\begin{align*}
\phi_t(u)-\phi_t(0)
=
\frac{1}{2}u^2+u(\lambda-t).
\end{align*}
If $u<0$, then
\begin{align*}
\phi_t(u)-\phi_t(0)
=
\frac{1}{2}u^2-u(\lambda+t).
\end{align*}
Therefore $\phi_t(u) \geq \phi_t(0)$ for every $u \in \mathbb{R}$ exactly when $\lambda-t \geq 0$ and $\lambda+t \geq 0$, equivalently when
\begin{align*}
-\lambda \leq t \leq \lambda.
\end{align*}
Thus $0$ minimises $\phi_t$ exactly when $|t|\leq \lambda$.
Combining the three cases, the only candidate selected by the derivative computations is $t-\lambda$ when $t>\lambda$, is $0$ when $|t|\leq \lambda$, and is $t+\lambda$ when $t<-\lambda$. This is exactly the soft-thresholding value
\begin{align*}
S_\lambda(t)=\operatorname{sgn}(t)(|t|-\lambda)_+.
\end{align*}
It remains only to justify that these candidates are global and unique minimisers; we do this directly rather than citing a convex-analysis theorem. Since $u \mapsto \frac{1}{2}(u-t)^2$ is strictly convex and coercive on $\mathbb{R}$, and since $u \mapsto \lambda|u|$ is convex, the function $\phi_t$ is strictly convex and coercive. The one-sided derivative computations show that, in the case $t>\lambda$, the derivative is negative on $(-\infty,t-\lambda)$ and positive on $(t-\lambda,\infty)$, so $t-\lambda$ is the global minimiser. In the case $t<-\lambda$, the derivative is negative on $(-\infty,t+\lambda)$ and positive on $(t+\lambda,\infty)$, so $t+\lambda$ is the global minimiser. In the case $|t|\leq \lambda$, the direct difference estimates above show $\phi_t(u)\geq \phi_t(0)$ for every $u\in\mathbb{R}$. Strict convexity then makes the global minimiser unique in all three cases. Hence
\begin{align*}
\operatorname*{arg\,min}_{u \in \mathbb{R}} \phi_t(u)=S_\lambda(t).
\end{align*}
[/step]