It's the prover's fault: there is no way to decide whether an arbitrary TM will halt or run forever, and so there is no certificate to prove that an arbitrary TM will run forever. If $L$ is not recursively enumerable, then no machine can simultaneously: 1. Halt on every input $\langle w, c\rangle$ (a word and a proof that the word is in the language). 2. Always answer correctly whether $w\in L$. If a convincing certificate $c(w)$ really did exist for every word $w$ in the language, and a verifier with these two properties existed, then the language would be recursively enumerable and here is the Turing machine to prove it: > M(x): on input x, iterate over every possible word $c$ in increasing order of length and run the verifier on $\langle x,c\rangle$. Halt and respond YES if the verifier ever accepts, otherwise keep iterating forever. <!---- It's not the verifier's fault. If there really is no certificate $c$, then it must either (1) halt without proof, in which case it gives up on answering correctly in every case, or (2) ignore the certificate and just simulate the TM, in which case it gives up the