# Chapter 3: The Church-Turing Thesis

## For Your Enjoyment

• An Alan Turing Wikipedia article.

## Chapter 3.1, Turing Machines

### High Level Overview

• Proposed by Alan Turing in 1936.
• Like a finite automaton, but has unlimited and unrestricted memory.
• Can solve any problem that is computable.

### Turing Machine Features

• An infinite tape
• A read/write head that can read symbols from the tape and write symbols to the tape.
• A read/write head that has the ability to move one square either left or right on the tape.
• Accept and Reject states that take effect immediately.

### High Level Example

Look at Figure 3.2 on page 167. The idea is to recognize the language B = {w#w | w ∈ {0, 1}*}.

### Turing Machine Definition

A Turing machine is a 7-tuple (Q, Σ, Γ, δ, q0, qaccept, qreject) where Q, Σ, Γ are finite sets and

• Q is the set of states,
• Σ is the input alphabet not containing the blank symbol,
• Γ is the tape alphabet, where the blank symbol ∈ Γ and Σ ⊆ Γ,
• δ: Q × Γ → Q × Γ × {L, R} is the transition function,
• q0 ∈ Q is the start state,
• qaccept ∈ Q is the accept state, and
• qreject ∈ Q is the reject state, where qreject ≠ qaccept.

### Active Learning Problems

• What is Σ in Figure 3.2?
• What is Γ in Figure 3.2?
• Assume that at the start of a computation, the input tape contains 0100#0100 (followed by an infinite number of blank symbols). What transitions are needed for the tape to contain x100#x100 and for the read/write head to be positioned on the #?
• A configuration of a Turing machine is u q v where q is the current state of the machine and u v are the contents of Γ. The first symbol of v is the location of the read/write head. What is the starting configuration in the bullet above?

### Terminology

• ua qi bv yields u qj acv if δ(qi, b) = (qj, c, L). Note: u, v ∈ Γ* and a, b, c ∈ Γ
• ua qi bv yields uac qj v if δ(qi, b) = (qj, c, R).

### Active Learning Problems

• Write the special cases for yields if the configuration is qi bv.
• Explain why special cases are not needed for configuration ua qi.

### Terminology and Notation

• Special configurations include the start configuration, accepting configuration, rejecting configuration and halting configuration.
• A Turing Machine M accepts input w if a sequence of configurations C1, ... Ck exist such that C1 is the start configuration, each Ci yields Ci+1 and Ck is an accepting configuration.
• The collection of strings that Turing Machine M accepts is the language of M or the language recognized by M and is denoted L(M).
• A language is Turing-recognizable if some Turing Machine recognizes it.
• A language is Turing-decidable (or decidable) if some Turing Machine decides it. To decide a language, the Turing Machine must halt on all inputs. In other words, no infinite looping is allowed. Every decidable language is Turing-recognizable, but not vice-versa - stay tuned!