Skip to article frontmatterSkip to article content

6.2Church-Turing Thesis

The University of Melbourne

In the early 1900s, mathematicians wanted to formalize what it means for a computational problem to “effectively computable”. One of the computational problems they were interested in is determining whether a formula in first-order logic is satisfiable. Besides the Turing machine, other models include λλ-calculus, rewriting systems, and others. Although the models look very different, they all turn out to be equivalent to one another in terms of computational power.

This led to the formulation of the Church-Turing Thesis

In particular, it means that a problem can be solved using <insert favorite programming language> if and only if it can be solved by a Turing machine.

In the next two sections, we will see that while we can define Turing machines with extra capabilities, they are no more powerful than the standard Turing machine. This provides some justification that Turing machines is a model of general-purpose computation.

6.2.1Multi-Tape Turing machines

6.2.2Nondeterministic Turing Machines

A nondeterministic Turing machine (NTM) is one where the transition function is allowed to return more than one outcome and as a result, a single configuration can yield more than one configuration. Thus, the NTM can be in multiple configurations at once.

(sec-ntm-process)= Let NN be a NTM and ww be an input string. We use C\mathcal{C} to denote the set of configurations it is in currently. NN processes ww as follows:

  1. Initially, C\mathcal{C} consists of the start configuration q0wq_0w

  2. For each configuration CC in C\mathcal{C} that is neither qaccq_{acc} or qrejq_{rej}, replace CC with the set of configurations that CC yields. More precisely, we replace the configuration that entered CC earliest.

  3. The NTM accepts the string if C\mathcal{C} eventually contains qaccq_{acc}

Similar to NFAs, we can visualise the execution of the NTM as a computation tree where each node of the tree is a configuration. The root node of the tree is the initial configuration, and there is an edge from a node representing configuration CC to a node representing configuration CC' if and only if CC' is one of the configurations that CC yields.