The problem of determining, for a given input and a program, whether the program will halt or run forever.