All Topics  
Halting problem

 

   Email Print
   Bookmark   Link






 

Halting problem



 
 
In computability theory
Computability theory (computer science)

In computer science, computability theory is the branch of the theory of computation that studies which problems are computationally solvable using different Model of computation....
, the halting problem is a decision problem
Decision problem

In computability theory and computational complexity theory, a decision problem is a question in some formal system with a yes-or-no answer, depending on the values of some input parameters....
 which can be stated as follows: given a description of a program
Computer program

Computer programs are Instruction for a computer. A computer requires programs to function. Moreover, a computer program does not run unless its instructions are executed by a Central processing unit; however, a program may communicate an Algorithm#Formalization of algorithms to people without running....
 and a finite input, decide whether the program finishes running or will run forever, given that input.

Alan Turing
Alan Turing

Alan Mathison Turing, Order of the British Empire, Fellow of the Royal Society was a British mathematician, logician and Cryptanalysis....
 proved in 1936 that a general algorithm
Algorithm

In mathematics, computing, linguistics and related subjects, an algorithm is a sequence of finite instructions, often used for calculation and data processing....
 to solve the halting problem for all possible program-input pairs cannot exist. We say that the halting problem is undecidable
Undecidable problem

In computability theory and computational complexity theory, an undecidable problem is a decision problem for which it is impossible to construct a single algorithm that always leads to a correct yes-or-no answer ? the problem is not Decidability ....
 over Turing machine
Turing machine

Turing machines are basic abstract symbol-manipulating devices which, despite their simplicity, can be adapted to simulate the logic of any computer algorithm....
s. Copeland (2004) attributes the actual term halting problem to Martin Davis
Martin Davis

Martin Davis, is an Jewish-United States mathematician, known for his work on Hilbert's tenth problem . He received his Ph.D. from Princeton University in 1950, where his adviser was Alonzo Church ....
.

halting problem is a decision problem
Decision problem

In computability theory and computational complexity theory, a decision problem is a question in some formal system with a yes-or-no answer, depending on the values of some input parameters....
 about properties of computer programs on a fixed Turing-complete model of computation.






Discussion
Ask a question about 'Halting problem'
Start a new discussion about 'Halting problem'
Answer questions from other users
Full Discussion Forum



Encyclopedia


In computability theory
Computability theory (computer science)

In computer science, computability theory is the branch of the theory of computation that studies which problems are computationally solvable using different Model of computation....
, the halting problem is a decision problem
Decision problem

In computability theory and computational complexity theory, a decision problem is a question in some formal system with a yes-or-no answer, depending on the values of some input parameters....
 which can be stated as follows: given a description of a program
Computer program

Computer programs are Instruction for a computer. A computer requires programs to function. Moreover, a computer program does not run unless its instructions are executed by a Central processing unit; however, a program may communicate an Algorithm#Formalization of algorithms to people without running....
 and a finite input, decide whether the program finishes running or will run forever, given that input.

Alan Turing
Alan Turing

Alan Mathison Turing, Order of the British Empire, Fellow of the Royal Society was a British mathematician, logician and Cryptanalysis....
 proved in 1936 that a general algorithm
Algorithm

In mathematics, computing, linguistics and related subjects, an algorithm is a sequence of finite instructions, often used for calculation and data processing....
 to solve the halting problem for all possible program-input pairs cannot exist. We say that the halting problem is undecidable
Undecidable problem

In computability theory and computational complexity theory, an undecidable problem is a decision problem for which it is impossible to construct a single algorithm that always leads to a correct yes-or-no answer ? the problem is not Decidability ....
 over Turing machine
Turing machine

Turing machines are basic abstract symbol-manipulating devices which, despite their simplicity, can be adapted to simulate the logic of any computer algorithm....
s. Copeland (2004) attributes the actual term halting problem to Martin Davis
Martin Davis

Martin Davis, is an Jewish-United States mathematician, known for his work on Hilbert's tenth problem . He received his Ph.D. from Princeton University in 1950, where his adviser was Alonzo Church ....
.

Formal statement

The halting problem is a decision problem
Decision problem

In computability theory and computational complexity theory, a decision problem is a question in some formal system with a yes-or-no answer, depending on the values of some input parameters....
 about properties of computer programs on a fixed Turing-complete model of computation. The problem is to determine, given a program and an input to the program, whether the program will eventually halt when run with that input. In this abstract framework, there are no resource limitations of memory or time on the program's execution; it can take arbitrarily long, and use arbitrarily much storage space, before halting. The question is simply whether the given program will ever halt on a particular input.

For example, in pseudocode
Pseudocode

Pseudocode is a compact and informal high-level description of a computer programming algorithm that uses the structural conventions of some programming language, but is intended for human reading rather than machine reading....
, the program

while True: continue


does not halt; rather, it goes on forever in an infinite loop
Infinite loop

An infinite loop is a sequence of instructions in a computer program which control flow#Loops endlessly, either due to the loop having no terminating condition or having one that can never be met....
. On the other hand, the program

print "Hello World!"


halts very quickly.

The halting problem is famous because it was one of the first problems proven algorithmically undecidable
Undecidable problem

In computability theory and computational complexity theory, an undecidable problem is a decision problem for which it is impossible to construct a single algorithm that always leads to a correct yes-or-no answer ? the problem is not Decidability ....
. This means there is no algorithm which can be applied to any arbitrary program and input to decide whether the program stops when run with that input.

Representing the halting problem as a set

The conventional representation of decision problems is the set of objects possessing the property in question. The halting set
K :=
represents the halting problem.

This set is recursively enumerable, which means there is a computable function that lists all of the pairs (i,x) it contains.

There are many equivalent formulations of the halting problem; any set whose Turing degree
Turing degree

In computer science and mathematical logic the Alan Turing degree or degree of unsolvability of a set of natural numbers measures the level of algorithmic unsolvability of the set....
 equals that of the halting problem is such a formulation. Examples of such sets include:*

Importance and consequences

The historical importance of the halting problem lies in the fact that it was one of the first problems to be proved undecidable. (Turing's proof went to press in May 1936, whereas Church
Alonzo Church

Alonzo Church was an United States mathematician and list of logicians who made major contributions to mathematical logic and the foundations of theoretical computer science....
's proof of the undecidability of a problem in the lambda calculus
Lambda calculus

In mathematical logic and computer science, lambda calculus, also written as ?-calculus, is a formal system designed to investigate function definition, function application and recursion....
 had already been published in April 1936.) Subsequently, many other such problems have been described; the typical method of proving a problem to be undecidable is with the technique of reduction
Reduction (complexity)

In computability theory and computational complexity theory, a reduction is a transformation of one computational problem into another problem....
. To do this, the computer scientist shows that if a solution to the new problem were found, it could be used to decide an undecidable problem (by transforming instances of the undecidable problem into instances of the new problem). Since we already know that no method can decide the old problem, no method can decide the new problem either.

One such consequence of the halting problem's undecidability is that there cannot be a general algorithm
Algorithm

In mathematics, computing, linguistics and related subjects, an algorithm is a sequence of finite instructions, often used for calculation and data processing....
 that decides whether a given statement about natural number
Natural number

In mathematics, a natural number can mean either an element of the Set = *n = = ? = ? ...
s is true or not. The reason for this is that the proposition
Proposition

This article is about the term proposition in logic and philosophy; for other uses see PropositionIn logic and philosophy, proposition refers to either the "content" or Meaning of a meaningful declarative sentence or the pattern of symbols, marks, or sounds that make up a meaningful declarative sentence....
 stating that a certain algorithm will halt given a certain input can be converted into an equivalent statement about natural numbers. If we had an algorithm that could solve every statement about natural numbers, it could certainly solve this one; but that would determine whether the original program halts, which is impossible, since the halting problem is undecidable.

Yet another consequence of the undecidability of the halting problem is Rice's theorem
Rice's theorem

In computability theory, Rice's theorem states that, for any non-trivial property of partial functions, there is no general and effective method to decision problem whether an algorithm computes a partial function with that property....
 which states that the truth of any non-trivial statement about the function that is defined by an algorithm is undecidable. So, for example, the decision problem "will this algorithm halt for the input 0" is already undecidable. Note that this theorem holds for the function defined by the algorithm and not the algorithm itself. It is, for example, quite possible to decide if an algorithm will halt within 100 steps, but this is not a statement about the function that is defined by the algorithm.

Gregory Chaitin
Gregory Chaitin

Gregory John Chaitin is an Argentina-United States mathematician and computer scientist.Beginning in the late 1960s, Chaitin made contributions to algorithmic information theory and metamathematics, in particular a new incompleteness theorem in reaction to G?del's incompleteness theorem....
 has defined a halting probability, represented by the symbol O, a type of real number that informally is said to represent the probability
Probability

Probability, or wikt:chance, is a way of expressing knowledge or belief that an Event will occur or has occurred. In mathematics the concept has been given an exact meaning in probability theory, that is used extensively in such areas of study as mathematics, statistics, finance, gambling, science, and philosophy to draw conclusions about t...
 that a randomly produced program halts. These numbers have the same Turing degree
Turing degree

In computer science and mathematical logic the Alan Turing degree or degree of unsolvability of a set of natural numbers measures the level of algorithmic unsolvability of the set....
 as the halting problem. It is a normal
Normal number

In mathematics, a normal number is a real number whose digits in every radix show a uniform distribution , with all digits being equally likely, all pairs of digits equally likely, all triplets of digits equally likely, etc....
 and transcendental number
Transcendental number

In mathematics, a transcendental number is a number that is not algebraic number, that is, not a solution of a non-zero polynomial equation with rational number coefficients....
 which can be defined
Definable number

A real number a is first-order definable in the language of set theory, without parameters, if there is a formula f in the language of set theory, with one free variable, such that a is the unique real number such that f holds ....
 but cannot be completely computed
Computable number

In mathematics, theoretical computer science and mathematical logic, the computable numbers, also known as the recursive numbers or the computable reals, are the real numbers that can be computed to within any desired precision by a finite, terminating algorithm....
. This means one can prove that there is no algorithm
Algorithm

In mathematics, computing, linguistics and related subjects, an algorithm is a sequence of finite instructions, often used for calculation and data processing....
 which produces the digits of O, although its first few digits can be calculated in simple cases.

While Turing's proof shows that there can be no general method or algorithm to determine whether algorithms halt, individual instances of that problem may very well be susceptible to attack. Given a specific algorithm, one can often show that it must halt for any input, and in fact computer scientist
Computer scientist

A computer scientist is a person who has acquired knowledge of computer science, the study of the theoretical foundations of information and computation and their application in computer systems....
s often do just that as part of a correctness proof. But each proof has to be developed specifically for the algorithm at hand; there is no mechanical, general way to determine whether algorithms on a Turing machine halt. However, there are some heuristics
Heuristic (computer science)

In computer science, a heuristic algorithm, or simply a heuristic, is an algorithm that is able to produce an acceptable solution to a problem in many practical scenarios, but for which there is no formal proof of its correctness....
 that can be used in an automated fashion to attempt to construct a proof, which succeed frequently on typical programs. This field of research is known as automated termination analysis
Termination analysis

In computer science, termination analysis attempts to determine whether the evaluation of a given Computer program will definitely terminate. It is a form of program analysis that is related to the halting problem....
.

Turing's introduction of the machine model that has become known as the Turing machine
Turing machine

Turing machines are basic abstract symbol-manipulating devices which, despite their simplicity, can be adapted to simulate the logic of any computer algorithm....
, introduced in the paper, has proven a convenient model for much theoretical computer science
Theoretical computer science

Theoretical computer science is the collection of topics of computer science that focuses on the more abstract, logical and mathematical aspects of computing, such as the theory of computation, analysis of algorithms, and semantics of programming languages....
 since.

Sketch of proof

The proof shows there is no total computable function
Computable function

Computable functions are the basic objects of study in recursion theory. The set of computable functions is equivalent to the set of Turing-computable functions and partial recursive functions....
 that decides whether an arbitrary program i halts on arbitrary input x; that is, the following function h is not computable:

Here program i refers to the i th program in an enumeration
Enumeration

In mathematics and theoretical computer science, the broadest and most abstract definition of an enumeration of a Set is an exact listing of all of its element s ....
 of all the programs of a fixed Turing-complete model of computation.

The proof proceeds by directly establishing that every total computable function with two arguments differs from the required function h. To this end, given any total computable binary function f, the following partial function
Partial function

In mathematics, a partial function is a binary relation that associates each element of a Set , sometimes called its domain , with at most one element of another set, called its codomain....
 g is also computable:

The following pseudocode
Pseudocode

Pseudocode is a compact and informal high-level description of a computer programming algorithm that uses the structural conventions of some programming language, but is intended for human reading rather than machine reading....
 illustrates a straightforward way to compute g:

procedure compute_g(i): if f(i,i)

0 then return 0 else loop forever

Because g is partial computable, there must be a program that computes g by the assumption that the model is Turing-complete. This program is one of all the programs on which the halting function h is defined, so let its enumeration index be denoted e.

It follows from the definition of g that exactly one of the following two cases must hold:
  • g(e) = f(e,e) = 0. In this case h(e,e) = 1, because program e halts on input e.
  • g(e) is undefined and f(e,e) ? 0. In this case h(e,e) = 0, because program e does not halt on input e.
In either case, f cannot be the same function as h. Because f was an arbitrary total computable function with two arguments, all such functions must differ from h.

The verification that g is computable relies on the following constructs (or their equivalents):
  • computable subprograms (the program that computes f is a subprogram in program e),
  • duplication of values (program e computes the inputs i,i for f from the input i for g),
  • conditional branching (program e selects between two results depending on the value it computes for f(i,i)),
  • not producing a defined result (for example, by looping forever),
  • returning a value of 0.


This proof is typically referred to as a diagonalization proof. One may visualize a two-dimensional array with one column and one row for each natural number. The value of f(i,j) is placed at column i, row j. Because f is assumed to be a total computable function, any element of the array can be calculated using f. The construction of the function g can be visualized using the main diagonal of this array. If the array has a 0 at position (i,i), then g(i) is 0. Otherwise, g(i) is undefined. The contradiction comes from the fact that there is some column e of the array corresponding to g itself. If f were the halting function h, there would be a 1 at position (e,e) if and only if g(e) is defined. But g is constructed so that g(e) is defined if and only if there is a 0 in position (e,e).

Common pitfalls

The difficulty in the halting problem lies in the requirement that the decision procedure must work for all programs and inputs. Every particular program either halts on a given input or does not halt. Consider one algorithm that always answers "halts" and another that always answers "doesn't halt." For any specific program and input, one of these two algorithms answers correctly, even though nobody may know which one.

There are programs (interpreters
Interpreter (computing)

In computer science, an interpreter normally means a computer program that execution , i.e. performs, instructions written in a programming language....
) that simulate the execution of whatever source code they are given. Such programs can demonstrate that a program does halt if this is the case: the interpreter itself will eventually halt its simulation, which shows that the original program halted. However, an interpreter will not halt if its input program does not halt, so this approach cannot solve the halting problem as stated. It does not successfully answer "doesn't halt" for programs that do not halt.

The halting problem is, in theory if not in practice, decidable for linear bounded automata
Linear bounded automaton

A linear bounded automaton is a restricted form of a non-deterministic Turing machine. It possesses a tape made up of cells that can contain symbols from a finite set alphabet, a head that can read from or write to one cell on the tape at a time and can be moved, and a finite number of states....
 (LBAs), or deterministic machines with finite memory. A machine with finite memory has a finite number of states, and thus any deterministic program on it must eventually either halt or repeat a previous state:
"...any finite-state machine, if left completely to itself, will fall eventually into a perfectly periodic repetitive pattern. The duration of this repeating pattern cannot exceed the number of internal states of the machine..."(italics in original, Minsky 1967, p. 24)


Minsky warns us, however, that machines such as computers with e.g. a million small parts, each with two states, will have on the order of 21,000,000 possible states:
"This is a 1 followed by about three hundred thousand zeroes ... Even if such a machine were to operate at the frequencies of cosmic rays, the aeons of galactic evolution would be as nothing compared to the time of a journey through such a cycle" (Minsky p. 25)


Minsky exhorts the reader to be suspicious -- although a machine may be finite, and finite automata "have a number of theoretical limitations":
"...the magnitudes involved should lead one to suspect that theorems and arguments based chiefly on the mere finiteness [of] the state diagram may not carry a great deal of significance" (ibid).


For more on this issue of "intractability" see the article Busy beaver
Busy beaver

In Computability theory , a busy beaver is a Turing machine which, when started on an empty tape, runs as long as possible, but eventually halting problem....
.

It can also be decided automatically whether a nondeterministic machine with finite memory halts on no, some, or all possible sequences of nondeterministic decisions, by enumerating states after each possible decision.

Formalization of the halting problem

In his original proof Turing formalized the concept of algorithm
Algorithm

In mathematics, computing, linguistics and related subjects, an algorithm is a sequence of finite instructions, often used for calculation and data processing....
 by introducing Turing machine
Turing machine

Turing machines are basic abstract symbol-manipulating devices which, despite their simplicity, can be adapted to simulate the logic of any computer algorithm....
s. However, the result is in no way specific to them; it applies equally to any other model of computation
Computation

Computation is a general term for any type of information processing. This includes phenomena ranging from human thinking to calculations with a more narrow meaning....
 that is equivalent in its computational power to Turing machines, such as Markov algorithm
Markov algorithm

A Andrey Markov algorithm is a string rewriting system that uses grammar-like rules to operate on string of symbols. Markov algorithms have been shown to be Turing-complete, which means that they are suitable as a general model of computation and can represent any mathematical expression from its simple notation....
s, Lambda calculus
Lambda calculus

In mathematical logic and computer science, lambda calculus, also written as ?-calculus, is a formal system designed to investigate function definition, function application and recursion....
, Post systems, register machine
Register machine

In mathematical logic and theoretical computer science a register machine is a generic class of abstract machines used in a manner similar to a Turing machine....
s, or tag systems
Tag system

A tag system is a deterministic computation published by Emil Leon Post in 1943 as a simple form of Post canonical system. A tag system may also be viewed as an abstract machine, called a Post tag machine ?briefly, a finite state machine whose only tape is a FIFO Queue of unbounded length, such that in each transition the machine...
.

What is important is that the formalization allows a straightforward mapping
Mapping

Mapping may refer to:*The making of maps, as in cartography, surveying, and photogrammetry;In biology and neuroscience:*Gene mapping, the assignment of DNA fragments to chromosomes...
 of algorithms to some data type
Data type

A data type in programming languages is an attribute of a data which tells the computer something about the kind of data it is. This involves setting constraints on the datum, such as what values it can take and what operations may be performed upon it....
 that the algorithm
Algorithm

In mathematics, computing, linguistics and related subjects, an algorithm is a sequence of finite instructions, often used for calculation and data processing....
 can operate upon. For example, if the formalism
Formalism

The term formalism describes an emphasis on form over content or meaning in the arts, literature, or philosophy. A practitioner of formalism is called a formalist....
 lets algorithms define functions over strings (such as Turing machines) then there should be a mapping of these algorithms to strings, and if the formalism lets algorithms define functions over natural numbers (such as computable function
Computable function

Computable functions are the basic objects of study in recursion theory. The set of computable functions is equivalent to the set of Turing-computable functions and partial recursive functions....
s) then there should be a mapping of algorithms to natural numbers. The mapping to strings is usually the most straightforward, but strings over an alphabet
Alphabet

An alphabet is a standardized set of letter basic written symbols each of which roughly represents a phoneme, a spoken language, either as it exists now or as it was in the past....
 with n characters
Character (computing)

In computer and machine-based telecommunications terminology, a character is a unit of information that roughly corresponds to a grapheme, grapheme-like unit, or symbol, such as in an alphabet or syllabary in the written language form of a natural language....
 can also be mapped to numbers by interpreting them as numbers in an n-ary numeral system
Numeral system

A numeral system is a writing system for expressing numerals , and a mathematical notation for representing numbers of a given set, using graphemes or symbols in a consistent manner....
.

Relationship with Gödel's incompleteness theorem

The concept
Concept

A concept is a cognition unit of meaning— an abstraction idea or a mental symbol sometimes defined as a "unit of knowledge," built from other units which act as a concept's characteristics....
s raised by Gödel's incompleteness theorems are very similar to those raised by the halting problem, and the proofs are quite similar. In fact, a weaker form of the First Incompleteness Theorem is an easy consequence of the undecidability of the halting problem. This weaker form differs from the standard statement of the incompleteness theorem by asserting that a complete, consistent
Consistency proof

In logic, a consistent theory is one that does not contain a contradiction. The lack of contradiction can be defined in either semantic or syntactic terms....
 and sound
Soundness

In mathematical logic, a logical system has the soundness property if and only if its inference rules prove only formula that are valid with respect to its semantics....
 axiomatization of all statements about natural numbers is unachievable. The "sound" part is the weakening: it means that we require the axiomatic system in question to prove only true statements about natural numbers (it's very important to observe that the statement of the standard form of Gödel's First Incompleteness Theorem is completely unconcerned with the question of truth, but only concerns the issue of whether it can be proven
Mathematical proof

In mathematics, a proof is a convincing demonstration that some mathematical statement is necessarily true. Proofs are obtained from deductive reasoning, rather than from inductive reasoning or empirical arguments....
).

The weaker form of the theorem can be proved from the undecidability of the halting problem as follows. Assume that we have a consistent and complete axiomatization of all true first-order logic
First-order logic

First-order logic is a formal deductive system used in mathematics, philosophy, linguistics, and computer science. It goes by many names, including: first-order predicate calculus , the lower predicate calculus, the language of first-order logic or predicate logic....
 statements about natural number
Natural number

In mathematics, a natural number can mean either an element of the Set = *n = = ? = ? ...
s. Then we can build an algorithm that enumerates all these statements. This means that there is an algorithm N(n) that, given a natural number n, computes a true first-order logic statement about natural numbers such that, for all the true statements, there is at least one n such that N(n) yields that statement. Now suppose we want to decide if the algorithm with representation a halts on input i. We know that this statement can be expressed with a first-order logic statement, say H(a, i). Since the axiomatization is complete it follows that either there is an n such that N(n) = H(a, i) or there is an n' such that N(n') = ¬ H(a, i). So if we iterate over all n until we either find H(a, i) or its negation, we will always halt. This means that this gives us an algorithm to decide the halting problem. Since we know that there cannot be such an algorithm, it follows that the assumption that there is a consistent and complete axiomatization of all true first-order logic statements about natural numbers must be false.

Recognizing partial solutions

There are many programs that either return a correct answer to the halting problem or do not return an answer at all. If it were possible to decide whether a program gives only correct answers, one might hope to collect a large number of such programs and run them in parallel, in the hope of being able to determine whether any programs halt. However, recognizing such partial halting solvers (PHS) is just as hard as the halting problem itself.

Suppose someone claims that program PHSR is a partial halting solver recognizer. Construct a program H: input a program P X := "input Q. if Q = P output 'halts' else loop forever" run PHSR with X as input

If PHSR recognizes the constructed program X as a partial halting solver, that means that P, the only input for which X produces a result, halts. If PHSR fails to recognize X, then it must be because P does not halt. Therefore H can decide whether an arbitrary program P halts; it solves the halting problem. Since this is impossible, the program PHSR could not have been a partial halting solver recognizer as claimed. Therefore no program can be a partial halting solver recognizer.

Another example, HT, of a Turing machine
Turing machine

Turing machines are basic abstract symbol-manipulating devices which, despite their simplicity, can be adapted to simulate the logic of any computer algorithm....
 which gives correct answers only for some instances of the halting problem can be described by the requirements that, if HT is started scanning a field which carries the first of a finite string of a consecutive "1"s, followed by one field with symbol "0" (i. e. a blank field), and followed in turn by a finite string of i consecutive "1"s, on an otherwise blank tape, then
  • HT halts for any such starting state, i. e. for any input of finite positive integers a and i;
  • HT halts on a completely blank tape if and only if the Turing machine represented by a does not halt when given the starting state and input represented by i; and
  • HT halts on a nonblank tape, scanning an appropriate field (which however does not necessarily carry the symbol "1") if and only if the Turing machine represented by a does halt when given the starting state and input represented by i. In this case, the final state in which HT halted (contents of the tape, and field being scanned) shall be equal to some particular intermediate state which the Turing machine represented by a attains when given the starting state and input represented by i; or, if all those intermediate states (including the starting state represented by i) leave the tape blank, then the final state in which HT halted shall be scanning a "1" on an otherwise blank tape.
While its existence has not been refuted (essentially: because there's no Turing machine which would halt only if started on a blank tape), such a Turing machine HT would solve the halting problem only partially either (because it doesn't necessarily scan the symbol "1" in the final state, if the Turing machine represented by a does halt when given the starting state and input represented by i, as explicit statements of the halting problem for Turing machines may require).

History of the halting problem



In the following: U refers to the source Davis, 1965.
  • 1900 -- David Hilbert
    David Hilbert

    David Hilbert was a Germany mathematician, recognized as one of the most influential and universal mathematicians of the 19th and early 20th centuries....
     poses his "23 questions" cf Hilbert problems at the Second International Congress of Mathematicians
    International Congress of Mathematicians

    The International Congress of Mathematicians is the largest congress in the mathematics community. It is held once every four years under the auspices of the International Mathematical Union ....
     in Paris, "Of these, the second was that of proving the consistency of the 'Peano axioms
    Peano axioms

    In mathematical logic, the Peano axioms, also known as the Dedekind?Peano axioms or the Peano postulates, are a set of axioms for the natural numbers presented by the 19th century Italian people mathematician Giuseppe Peano....
    ' on which, as he had shown, the rigour of mathematics depended" (Hodges p. 83, Davis' commentary in U p. 108).
  • 1920-1921 -- Emil Post explores the halting problem for tag systems, regarding it as a candidate for unsolvability. (Source: Absolutely unsolvable problems and relatively undecidable propositions - account of an anticipation, in U, pp. 340–433.) Its unsolvability was not established until much later, by Marvin Minsky
    Marvin Minsky

    Marvin Lee Minsky is an United States Cognitive Science in the field of artificial intelligence , co-founder of Massachusetts Institute of Technology's AI laboratory, and author of several texts on AI and philosophy....
    [1961].
  • 1928 -- Hilbert recasts his 'Second Problem' at the Bologna International Congress (cf Reid pp. 188-189). Hodges claims he posed three questions: i.e. #1: Was mathematics complete? #2: Was mathematics consistent? #3: Was mathematics decidable? (Hodges p. 91). The third question is known as the Entscheidungsproblem
    Entscheidungsproblem

    In mathematics, the Entscheidungsproblem is a challenge posed by David Hilbert in 1928. The Entscheidungsproblem asks for an algorithm that will take as input a description of a formal language and a mathematical statement in the language and produce as output either "True" or "False" according to whether the statement is true or false....
     (Decision Problem) (Hodges p. 91, Penrose p. 34)
  • 1930 -- Kurt Gödel
    Kurt Gödel

    Kurt G?del was an Austrian-United States logician, mathematician and philosopher. One of the most significant logicians of all time, G?del made an immense impact upon scientific and philosophical thinking in the 20th century, a time when many, such as Bertrand Russell, A....
     announces a proof as an answer to the first two of Hilbert's 1928 questions [cf Reid p. 198]. "At first he [Hilbert] was only angry and frustrated, but then he began to try to deal constructively with the problem... Gödel himself felt -- and expressed the thought in his paper -- that his work did not contradict Hilbert's formalistic point of view" (Reid p. 199).
  • 1931 -- Gödel publishes "On Formally Undecidable Propositions of Principia Mathematica and Related Systems I", (reprinted in U p. 5ff)
  • 19 April 1935 -- Alonzo Church
    Alonzo Church

    Alonzo Church was an United States mathematician and list of logicians who made major contributions to mathematical logic and the foundations of theoretical computer science....
     publishes "An Unsolvable Problem of Elementary Number Theory" identifies what it means for a function to be effectively calculable. Such a function will have an algorithm, and "...the fact that the algorithm has terminated becomes effectively known ..." (italics added, U p. 100).
  • 1936 -- Church publishes the first proof that the Entscheidungsproblem is unsolvable [A Note on the Entscheidungsproblem, reprinted in U p. 110].
  • 7 October 1936 -- Emil Post's paper "Finite Combinatory Processes. Formulation I" is received. Post adds to his "process" an instruction "(C) Stop". He called such a process "type 1 ... if the process it determines terminates for each specific problem." (U. p.289ff)
  • 1937-- Alan Turing
    Alan Turing

    Alan Mathison Turing, Order of the British Empire, Fellow of the Royal Society was a British mathematician, logician and Cryptanalysis....
    's paper On Computable Numbers With an Application to the Entscheidungsproblem reaches print in January 1937 (reprinted in U, p. 115). Turing's proof departs from calculation by recursive functions and introduces the notion of computation by machine. Stephen Kleene (1952) refers to this as one of the "first examples of decision problems proved unsolvable".
  • 1939 -- J. Barkley Rosser
    J. Barkley Rosser

    John Barkley Rosser Sr. was an USA logician, a student of Alonzo Church, and known for his part in the Church-Rosser theorem, in lambda calculus....
     observes the essential equivalence of "effective method" defined by Gödel, Church, and Turing (Rosser in U p. 273, "Informal Exposition of Proofs of Gödel's Theorem and Church's Theorem").
  • 1943 -- In a paper, Stephen Kleene states that "In setting up a complete algorithmic theory, what we do is describe a procedure ... which procedure necessarily terminates and in such manner that from the outcome we can read a definite answer, 'Yes' or 'No,' to the question, 'Is the predicate value true?'."
  • 1952 -- Kleene (1952) Chapter XIII ("Computable Functions") includes a discussion of the unsolvability of the halting problem for Turing machines and reformulates it in terms of machines that "eventually stop", i.e. halt: "... there is no algorithm for deciding whether any given machine, when started from any given situation, eventually stops." (Kleene (1952) p.382)
  • 1952 -- "Davis [ Martin Davis
    Martin Davis

    Martin Davis, is an Jewish-United States mathematician, known for his work on Hilbert's tenth problem . He received his Ph.D. from Princeton University in 1950, where his adviser was Alonzo Church ....
      ] thinks it likely that he first used the term 'halting problem' in a series of lectures that he gave at the Control Systems Laboratory at the University of Illinois in 1952 (letter from Davis to Copeland, 12 Dec. 2001.)" (Footnote 61 in Copeland (2004) pp.40ff)


External link

  • - a poetic proof of undecidability of the halting problem


See also

  • Worst-case execution time
  • Watchdog Timer
    Watchdog timer

    A watchdog timer is a computer hardware timing device that triggers a system Reset if the main computer program, due to some fault condition, such as a hang , neglects to regularly service the watchdog ....