# Halting problem

## Problem of determining whether a given program will finish running or continue forever / From Wikipedia, the free encyclopedia

#### Dear Wikiwand AI, let's keep it short by simply answering these key questions:

Can you list the top facts and stats about Halting problem?

Summarize this article for a 10 years old

In computability theory, the **halting problem** is the problem of determining, from a description of an arbitrary computer program and an input, whether the program will finish running, or continue to run forever. Alan Turing proved in 1936 that a general algorithm to solve the halting problem for all possible program–input pairs cannot exist.

For any program `f` that might determine whether programs halt, a "pathological" program `g`, called with some input, can pass its own source and its input to *f* and then specifically do the opposite of what *f* predicts *g* will do. No *f* can exist that handles this case. A key part of the proof is a mathematical definition of a computer and program, which is known as a Turing machine; the halting problem is *undecidable* over Turing machines. It is one of the first cases of decision problems proven to be unsolvable. This proof is significant to practical computing efforts, defining a class of applications which no programming invention can possibly perform perfectly.