Que eu saiba, interromper o problema pergunta se existe um programa que decide se um programa está sendo testado, dados alguns dados de entrada (não importa qual programa seja ou quais dados de entrada que fornecemos) serão encerrados ou não. A resposta para esse problema é 'não'. Em outras palavras, não há um programa 'único' que possa verificá-lo para todos os pares possíveis (algum algoritmo, alguns dados de entrada).
Mas isso não significa que não podemos decidir se determinado programa X será encerrado ou não.
Ainda não posso comentar outras respostas, mas uma delas me chamou a atenção:
Em termos práticos, é importante porque permite que você diga a seus chefes ignorantes "o que você está pedindo é matematicamente impossível".
Talvez você possa me dizer o que essa pessoa quis dizer? No meu cenário, meu chefe ignorante pode me pedir para verificar (na verdade, provar ou refutar) se meu programa (que é um programa específico) será encerrado ou não. E, é claro, existem pares (algoritmo, dados de entrada) que podem ser comprovados para terminar (ou nunca terminar).
A questão é: posso provar isso para cada par (programa, dados de entrada) separadamente? Mesmo que a resposta seja afirmativa, existe um problema - pode haver infinitos 'dados de entrada'. Portanto, é bastante natural perguntar - posso provar, para cada algoritmo, que esse algoritmo será encerrado (ou o contrário), independentemente dos dados de entrada que forneço?