[step:Prove the recursive procedure decides bounded reachability]
We prove by induction on $\ell\in\{0,1,\dots,N-1\}$ that, for all $x,y\in V$,
\begin{align*}
R_G(x,y,\ell)=\mathrm{true}\quad\Longleftrightarrow\quad \operatorname{Reach}_G(x,y,\ell).
\end{align*}
For $\ell=0$, a directed path of length at most $0$ from $x$ to $y$ exists exactly when $x=y$, which is exactly the condition tested by $R_G$.
For $\ell=1$, a directed path of length at most $1$ from $x$ to $y$ exists exactly when either $x=y$ or $(x,y)\in E$. This is exactly the condition tested by $R_G$ using the adjacency procedure.
Assume now that $\ell\ge 2$ and that the equivalence holds for all smaller length bounds. First suppose that $R_G(x,y,\ell)=\mathrm{true}$. Then there exists $u\in V$ such that
\begin{align*}
R_G(x,u,\lceil \ell/2\rceil)=\mathrm{true}
\end{align*}
and
\begin{align*}
R_G(u,y,\lfloor \ell/2\rfloor)=\mathrm{true}.
\end{align*}
Because $\lceil \ell/2\rceil<\ell$ and $\lfloor \ell/2\rfloor<\ell$, the induction hypothesis gives a path from $x$ to $u$ of length at most $\lceil \ell/2\rceil$ and a path from $u$ to $y$ of length at most $\lfloor \ell/2\rfloor$. Concatenating these two directed paths gives a directed path from $x$ to $y$ of length at most
\begin{align*}
\lceil \ell/2\rceil+\lfloor \ell/2\rfloor=\ell.
\end{align*}
Thus $\operatorname{Reach}_G(x,y,\ell)$ holds.
Conversely, suppose $\operatorname{Reach}_G(x,y,\ell)$ holds. Choose a directed path
\begin{align*}
x=v_0,\ v_1,\ \dots,\ v_m=y
\end{align*}
with $0\le m\le \ell$. Define
\begin{align*}
r=\min\{m,\lceil \ell/2\rceil\}
\end{align*}
and set $u=v_r$. The initial segment from $x$ to $u$ has length $r\le \lceil \ell/2\rceil$. If $m\le \lceil \ell/2\rceil$, then the terminal segment from $u=y$ to $y$ has length $0\le \lfloor \ell/2\rfloor$. If $m>\lceil \ell/2\rceil$, then $r=\lceil \ell/2\rceil$, and the terminal segment has length
\begin{align*}
m-r\le \ell-\lceil \ell/2\rceil=\lfloor \ell/2\rfloor.
\end{align*}
In either case,
\begin{align*}
\operatorname{Reach}_G(x,u,\lceil \ell/2\rceil)
\end{align*}
and
\begin{align*}
\operatorname{Reach}_G(u,y,\lfloor \ell/2\rfloor)
\end{align*}
hold. By the induction hypothesis, both corresponding recursive calls return $\mathrm{true}$. Since $R_G$ enumerates every vertex of $V$, it eventually tests this midpoint $u$ and returns $\mathrm{true}$. This proves the induction.
[/step]