[proofplan]
Choose a standard one-sided-error randomized polynomial-time decider for $L$ with rejection probability at most $1/2$ on yes-instances. Since $t$ is polynomially bounded, choose a polynomial-time computable integer-valued polynomial upper bound that dominates $t$ at every input length, including length $0$. On input $x$, the amplified machine independently repeats the original decider that many times and accepts as soon as one run accepts. No-instances remain rejected with probability one, while on yes-instances the only way to reject is for every independent run to reject, giving the desired exponentially small error bound.
[/proofplan]
[step:Choose a one-sided-error machine for $L$]
Since $L \in RP$, there exists a probabilistic Turing machine
$M: \{0,1\}^* \to \{\mathrm{accept}, \mathrm{reject}\}$
and a polynomial $p: \mathbb{N} \to \mathbb{N}$ such that $M$ halts within $p(|x|)$ steps on every input $x \in \{0,1\}^*$, and
\begin{align*}
x \notin L \implies \mathbb{P}[M(x) \text{ accepts}] = 0.
\end{align*}
Also,
\begin{align*}
x \in L \implies \mathbb{P}[M(x) \text{ accepts}] \geq \frac{1}{2}.
\end{align*}
Equivalently, for $x \in L$,
\begin{align*}
\mathbb{P}[M(x) \text{ rejects}] \leq \frac{1}{2}.
\end{align*}
[/step]
[step:Construct the amplified machine by repeating up to a computable polynomial upper bound]
Since $t$ is polynomially bounded, choose constants $c \in \mathbb{N}$ and $d \in \mathbb{N}$ such that $c \geq 1$ and
\begin{align*}
t(n) \leq c(n+1)^d
\end{align*}
for every $n \in \mathbb{N}$, including $n = 0$. Define the integer-valued polynomial upper bound $q: \mathbb{N} \to \mathbb{N}$ by
\begin{align*}
q(n) := c(n+1)^d.
\end{align*}
The function $q$ is hardwired into the construction of $M_t$, so the machine does not need to compute $t$.
Define the probabilistic machine
$M_t: \{0,1\}^* \to \{\mathrm{accept}, \mathrm{reject}\}$
as follows. On input $x \in \{0,1\}^*$, compute the integer $k := q(|x|)$. Then run $M(x)$ independently $k$ times, using fresh random choices for each run. If at least one run accepts, $M_t$ accepts; otherwise $M_t$ rejects.
The polynomial $q$ is computable in polynomial time from the unary input length $|x|$, and the total simulation time is at most $q(|x|)p(|x|)$ plus polynomial bookkeeping overhead for the repetition counter and random choices. Therefore $M_t$ is a probabilistic polynomial-time Turing machine.
[/step]
[step:Verify that no-instance inputs still have zero acceptance probability]
Let $x \in \{0,1\}^*$ satisfy $x \notin L$, and set $k := q(|x|)$. For each repetition index $i \in \{1,\dots,k\}$, define the event
$A_i := \{\text{the } i\text{-th run of }M(x)\text{ accepts}\}$.
By the one-sided-error property of $M$,
\begin{align*}
\mathbb{P}[A_i] = 0
\end{align*}
for every $i \in \{1,\dots,k\}$.
The machine $M_t$ accepts exactly on the event $\bigcup_{i=1}^{k} A_i$. By finite subadditivity of probability,
\begin{align*}
\mathbb{P}[M_t(x) \text{ accepts}] = \mathbb{P}\left[\bigcup_{i=1}^{k} A_i\right] \leq \sum_{i=1}^{k} \mathbb{P}[A_i] = 0.
\end{align*}
Since probabilities are nonnegative, this gives
\begin{align*}
\mathbb{P}[M_t(x) \text{ accepts}] = 0.
\end{align*}
[/step]
[step:Bound the rejection probability on yes-instance inputs by independence]
Let $x \in \{0,1\}^*$ satisfy $x \in L$, and set $k := q(|x|)$. For each $i \in \{1,\dots,k\}$, define the event
$R_i := \{\text{the } i\text{-th run of }M(x)\text{ rejects}\}$.
Since the $k$ runs use independent random choices, the events $R_1,\dots,R_k$ are independent. The machine $M_t$ rejects exactly when every run rejects, so
\begin{align*}
\mathbb{P}[M_t(x) \text{ rejects}] = \mathbb{P}\left[\bigcap_{i=1}^{k} R_i\right].
\end{align*}
By independence,
\begin{align*}
\mathbb{P}\left[\bigcap_{i=1}^{k} R_i\right] = \prod_{i=1}^{k} \mathbb{P}[R_i].
\end{align*}
For every $i$, the $i$-th run has the same distribution as $M(x)$, and because $x \in L$,
\begin{align*}
\mathbb{P}[R_i] \leq \frac{1}{2}.
\end{align*}
Therefore
\begin{align*}
\mathbb{P}[M_t(x) \text{ rejects}] \leq \prod_{i=1}^{k} \frac{1}{2} = 2^{-k} = 2^{-q(|x|)} \leq 2^{-t(|x|)},
\end{align*}
because $q(|x|) \geq t(|x|)$ and the map $a \mapsto 2^{-a}$ is decreasing on $[0,\infty)$.
[guided]
The amplified machine rejects a yes-instance only if the original $RP$ machine fails in every repetition. We formalize that failure event. Let $x \in \{0,1\}^*$ satisfy $x \in L$, and define $k := q(|x|)$. For each repetition index $i \in \{1,\dots,k\}$, let
$R_i := \{\text{the } i\text{-th run of }M(x)\text{ rejects}\}$.
This notation isolates the only bad outcome for the amplified machine.
Because each run uses fresh random choices, the events $R_1,\dots,R_k$ are independent. The machine $M_t$ rejects precisely when no repetition accepts, which is the same as saying that all rejection events occur:
\begin{align*}
\{M_t(x) \text{ rejects}\} = \bigcap_{i=1}^{k} R_i.
\end{align*}
Thus,
\begin{align*}
\mathbb{P}[M_t(x) \text{ rejects}] = \mathbb{P}\left[\bigcap_{i=1}^{k} R_i\right].
\end{align*}
Independence turns this probability of an intersection into a product:
\begin{align*}
\mathbb{P}\left[\bigcap_{i=1}^{k} R_i\right] = \prod_{i=1}^{k} \mathbb{P}[R_i].
\end{align*}
For each $i$, the $i$-th run is distributed exactly like a fresh execution of $M(x)$. Since $x \in L$ and $M$ is an $RP$ machine for $L$, the original rejection probability is at most $1/2$, so
\begin{align*}
\mathbb{P}[R_i] \leq \frac{1}{2}
\end{align*}
for every $i \in \{1,\dots,k\}$. Substituting this bound into the product gives
\begin{align*}
\mathbb{P}[M_t(x) \text{ rejects}] \leq \prod_{i=1}^{k} \frac{1}{2} = 2^{-k}.
\end{align*}
Finally, $k$ was defined to be $q(|x|)$, so
\begin{align*}
\mathbb{P}[M_t(x) \text{ rejects}] \leq 2^{-q(|x|)}.
\end{align*}
Since $q(|x|) \geq t(|x|)$ and the function $a \mapsto 2^{-a}$ decreases on $[0,\infty)$, we obtain
\begin{align*}
\mathbb{P}[M_t(x) \text{ rejects}] \leq 2^{-t(|x|)}.
\end{align*}
[/guided]
[/step]
[step:Conclude that the amplified machine has the required RP guarantees]
The construction gives a probabilistic polynomial-time Turing machine $M_t$. The no-instance estimate proves
\begin{align*}
x \notin L \implies \mathbb{P}[M_t(x) \text{ accepts}] = 0,
\end{align*}
and the yes-instance estimate proves
\begin{align*}
x \in L \implies \mathbb{P}[M_t(x) \text{ rejects}] \leq 2^{-t(|x|)}.
\end{align*}
Thus $M_t$ is an $RP$ machine for $L$ with error reduced to $2^{-t(|x|)}$.
[/step]