Que yo sepa, el problema de detención pregunta si existe un programa que decida si un programa que se está probando, dados algunos datos de entrada (no importa qué programa sea, o qué datos de entrada proporcionamos) terminará o no. La respuesta a este problema es 'no'. En otras palabras, no existe un programa 'único' que pueda verificarlo para todos los pares posibles (algún algoritmo, algunos datos de entrada).
Pero eso no significa que no podamos decidir si un programa en particular X terminará o no.
Todavía no puedo comentar otras respuestas, pero una de ellas me llamó la atención:
En términos prácticos, es importante porque le permite decirles a sus jefes ignorantes que "lo que están pidiendo es matemáticamente imposible".
¿Quizás puedas decirme qué quería decir esa persona? En mi caso, mi jefe ignorante puede pedirme que verifique (en realidad, pruebe o refute) si mi programa (que es un programa en particular) terminará o no. Y, por supuesto, hay pares (algoritmo, datos de entrada) que se puede probar que terminan (o nunca terminan).
La pregunta es: ¿puedo probarlo para cada par (programa, datos de entrada) por separado? Incluso si la respuesta es sí, entonces hay un problema: puede haber infinitos 'datos de entrada'. Por lo tanto, es bastante natural preguntar: ¿puedo demostrar, para cada algoritmo, que este algoritmo terminará (o lo contrario), sin importar qué datos de entrada proporcione?