Prove that the Language is Recognizable
sPaz, your answer in the comment is on the right track.

I'll give you some more hints.


Since $L$ is RE, as you said, we have a TM that accepts it. Let's call it $R$.
Now, we can run $M_i$ on $x$ for any $M_i$ that is being accepted by $R$.
The question is, what happens if $M_i$ is not accepted by $R$ (and in fact, $R$ goes into a loop)? Also, what happens if $M_1$ is accepted by $R$, but $M_1$ goes on an infinite loop on input $x$?


The standard technique of "running in parallel" (dovetailing) should help you to complete your proof. In more details:


   We have a counter $i$. We run $i$ steps of $R$ on any machine $M_j$ such that $\langle M_j \rangle &lt; i$. We keep a list of all the machines that were accepted by $R$. For each such machine, we run $i$ steps of that machine on $x$. If any of them accepts, we accept. Otherwise, we set $i\leftarrow i+1$ and continue.