[proofplan]
We use the tail-supremum definition of the limit superior. For each $n \in \mathbb{N}$, define the tail set $T_n = \{a_k : k \in \mathbb{N}, k \ge n\}$ and its supremum $s_n = \sup T_n$. Convergence of $(a_n)$ to $L$ forces every sufficiently late tail to lie inside an arbitrary interval around $L$, so the corresponding tail supremum is squeezed between $L-\varepsilon$ and $L+\varepsilon$. This proves $s_n \to L$, and therefore $\limsup_{n \to \infty} a_n = L$.
[/proofplan]
[step:Define the tail suprema used in the limit superior]
For each $n \in \mathbb{N}$, define
\begin{align*}
T_n := \{a_k : k \in \mathbb{N}, k \ge n\} \subset \mathbb{R}.
\end{align*}
Since $a_n \in T_n$, the set $T_n$ is nonempty.
We first note that each $T_n$ is bounded above. Since $a_n \to L$, there exists $N_0 \in \mathbb{N}$ such that, for every $k \ge N_0$,
\begin{align*}
|a_k - L| < 1.
\end{align*}
Hence $a_k < L+1$ for every $k \ge N_0$. For a fixed $n \in \mathbb{N}$, the finite set
\begin{align*}
F_n := \{a_k : n \le k < N_0\}
\end{align*}
is bounded above, with the convention that $F_n = \varnothing$ if $n \ge N_0$. Thus $T_n$ is bounded above by any real number larger than both $L+1$ and all elements of $F_n$. Therefore the supremum
\begin{align*}
s_n := \sup T_n
\end{align*}
exists as a real number for every $n \in \mathbb{N}$.
By the tail-supremum definition of limit superior,
\begin{align*}
\limsup_{n \to \infty} a_n = \lim_{n \to \infty} s_n
\end{align*}
whenever the limit on the right exists.
[/step]
[step:Squeeze every sufficiently late tail supremum near $L$]
Let $\varepsilon > 0$ be arbitrary. Since $a_n \to L$, there exists $N \in \mathbb{N}$ such that, for every $k \ge N$,
\begin{align*}
L - \varepsilon < a_k < L + \varepsilon.
\end{align*}
Fix $n \ge N$. If $x \in T_n$, then by definition of $T_n$ there exists $k \in \mathbb{N}$ with $k \ge n$ and $x = a_k$. Since $n \ge N$, we have $k \ge N$, and therefore
\begin{align*}
x = a_k < L + \varepsilon.
\end{align*}
Thus $L+\varepsilon$ is an upper bound for $T_n$, and since $s_n = \sup T_n$ is the least upper bound of $T_n$,
\begin{align*}
s_n \le L + \varepsilon.
\end{align*}
Also, $a_n \in T_n$, so the defining property of the supremum gives
\begin{align*}
a_n \le s_n.
\end{align*}
Because $n \ge N$, the convergence estimate gives $L-\varepsilon < a_n$. Hence
\begin{align*}
L - \varepsilon < s_n.
\end{align*}
Combining the two bounds, for every $n \ge N$,
\begin{align*}
L - \varepsilon < s_n \le L + \varepsilon.
\end{align*}
[guided]
The goal is to prove that the sequence of tail suprema $(s_n)_{n=1}^{\infty}$ converges to $L$. To do that, we must show that for every tolerance $\varepsilon > 0$, all sufficiently late values $s_n$ lie inside the corresponding interval around $L$.
Let $\varepsilon > 0$ be fixed. Since $a_n \to L$, the definition of convergence gives an index $N \in \mathbb{N}$ such that, for every $k \ge N$,
\begin{align*}
L - \varepsilon < a_k < L + \varepsilon.
\end{align*}
Now take any $n \ge N$. The tail set is
\begin{align*}
T_n = \{a_k : k \in \mathbb{N}, k \ge n\}.
\end{align*}
Every element of $T_n$ is one of the terms $a_k$ with $k \ge n$. Since $n \ge N$, every such $k$ also satisfies $k \ge N$. Therefore every element of $T_n$ is strictly less than $L+\varepsilon$. This means that $L+\varepsilon$ is an upper bound for $T_n$. Because $s_n$ is defined as the least upper bound of $T_n$, it follows that
\begin{align*}
s_n \le L + \varepsilon.
\end{align*}
For the lower bound, we use the fact that the tail $T_n$ contains its first term $a_n$. Since $a_n \in T_n$ and $s_n$ is an upper bound for $T_n$, we have
\begin{align*}
a_n \le s_n.
\end{align*}
Because $n \ge N$, the convergence estimate also gives
\begin{align*}
L - \varepsilon < a_n.
\end{align*}
Combining these two inequalities yields
\begin{align*}
L - \varepsilon < s_n.
\end{align*}
Thus for every $n \ge N$,
\begin{align*}
L - \varepsilon < s_n \le L + \varepsilon.
\end{align*}
This is exactly the squeeze needed to show that the tail suprema approach $L$.
[/guided]
[/step]
[step:Conclude that the limit superior equals the ordinary limit]
Let $\eta > 0$ be arbitrary. Apply the preceding step with $\varepsilon = \eta$. There exists $N \in \mathbb{N}$ such that, for every $n \ge N$,
\begin{align*}
L - \eta < s_n \le L + \eta.
\end{align*}
Therefore, for every $n \ge N$,
\begin{align*}
|s_n - L| \le \eta.
\end{align*}
Since $\eta > 0$ was arbitrary, this proves
\begin{align*}
\lim_{n \to \infty} s_n = L.
\end{align*}
Using the definition
\begin{align*}
\limsup_{n \to \infty} a_n = \lim_{n \to \infty} s_n,
\end{align*}
we obtain
\begin{align*}
\limsup_{n \to \infty} a_n = L.
\end{align*}
[/step]