turing machines - stanford universityweb.stanford.edu/class/archive/cs/cs103/cs103.1198...the coming...

529
Turing Machines Part One

Upload: others

Post on 05-Aug-2020

1 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Turing Machines - Stanford Universityweb.stanford.edu/class/archive/cs/cs103/cs103.1198...the coming years An important theme is not simply proving more theorems, but achieving automation

Turing MachinesPart One

Page 2: Turing Machines - Stanford Universityweb.stanford.edu/class/archive/cs/cs103/cs103.1198...the coming years An important theme is not simply proving more theorems, but achieving automation

What problems can we solve with a computer?

Page 3: Turing Machines - Stanford Universityweb.stanford.edu/class/archive/cs/cs103/cs103.1198...the coming years An important theme is not simply proving more theorems, but achieving automation

RegularLanguages

CFLs

All Languages

Languages recognizable by

any feasible computing machine

Page 4: Turing Machines - Stanford Universityweb.stanford.edu/class/archive/cs/cs103/cs103.1198...the coming years An important theme is not simply proving more theorems, but achieving automation

All Languages

That same drawing, to scale.

Page 5: Turing Machines - Stanford Universityweb.stanford.edu/class/archive/cs/cs103/cs103.1198...the coming years An important theme is not simply proving more theorems, but achieving automation

The Problem

● Finite automata accept precisely the regular languages.

● We may need unbounded memory to recognize context-free languages.

● e.g. { anbn | n ∈ ℕ } requires unbounded counting.

● How do we build an automaton with fnitely many states but unbounded memory?

Page 6: Turing Machines - Stanford Universityweb.stanford.edu/class/archive/cs/cs103/cs103.1198...the coming years An important theme is not simply proving more theorems, but achieving automation

A Brief History Lesson

Page 7: Turing Machines - Stanford Universityweb.stanford.edu/class/archive/cs/cs103/cs103.1198...the coming years An important theme is not simply proving more theorems, but achieving automation

Technology has solved all of mankind’s problems! No more wars or sad ever!

<ahem>

Page 8: Turing Machines - Stanford Universityweb.stanford.edu/class/archive/cs/cs103/cs103.1198...the coming years An important theme is not simply proving more theorems, but achieving automation

Hilbert’s Vision

● 1900: International Congress of Mathematicians meeting in Paris● Proposes 23 unsolved problems as the agenda for the coming years● An important theme is not simply proving more theorems, but achieving automation of theorem-proving, even theorem generation. ● Humanity lives in leisure while all Truth fows efortlessly into our hands on a ticker tape!

“No one shall expel us from the Paradise that Cantor has created!” -David Hilbert

Page 9: Turing Machines - Stanford Universityweb.stanford.edu/class/archive/cs/cs103/cs103.1198...the coming years An important theme is not simply proving more theorems, but achieving automation

Hi there, Reality!

● Hilbert’s agenda is both a spectacular success and a spectacular failure● Inspires some of the most impactful theoretical work in mathematical history, human history● Brings us heroes like Alan Turing and Kurt Gödel! ● These incredible results consist of utterly demolishing all the pillars of Hilbert’s vision of automated knowledge creation, within just a few years

“No one shall expel us from the Paradise that Cantor has created!” -David Hilbert

Page 10: Turing Machines - Stanford Universityweb.stanford.edu/class/archive/cs/cs103/cs103.1198...the coming years An important theme is not simply proving more theorems, but achieving automation

A Simple Turing Machine

q0

qacc

qrej

q1

start

a → , R☐

a → , R☐

→ ☐ ☐, R

→ ☐ ☐, R

qacc

qrej

This is the Turing machine’s�nite��tite�nntont. It issues

commands that drive the operation of the machine.

This is the Turing machine’s�nite��tite�nntont. It issues

commands that drive the operation of the machine.

Page 11: Turing Machines - Stanford Universityweb.stanford.edu/class/archive/cs/cs103/cs103.1198...the coming years An important theme is not simply proving more theorems, but achieving automation

A Simple Turing Machine

q0

qacc

qrej

q1

start

a → , R☐

a → , R☐

→ ☐ ☐, R

→ ☐ ☐, R

qacc

qrej

This is the TM’s in�nite�tipe. Each tape cell holds a tipe�

�ymbnt. Initially, all (infnitely many) tape symbols are blank.

This is the TM’s in�nite�tipe. Each tape cell holds a tipe�

�ymbnt. Initially, all (infnitely many) tape symbols are blank.

… …

Page 12: Turing Machines - Stanford Universityweb.stanford.edu/class/archive/cs/cs103/cs103.1198...the coming years An important theme is not simply proving more theorems, but achieving automation

A Simple Turing Machine

q0

qacc

qrej

q1

start

a → , R☐

a → , R☐

→ ☐ ☐, R

→ ☐ ☐, R

qacc

qrej

The machine is started with the input��toing written somewhere

on the tape. The tipe�heid initially points to the frst symbol

of the input string.

The machine is started with the input��toing written somewhere

on the tape. The tipe�heid initially points to the frst symbol

of the input string.

a a a a… …

Page 13: Turing Machines - Stanford Universityweb.stanford.edu/class/archive/cs/cs103/cs103.1198...the coming years An important theme is not simply proving more theorems, but achieving automation

A Simple Turing Machine

q0

qacc

qrej

q1

start

a → , R☐

a → , R☐

→ ☐ ☐, R

→ ☐ ☐, R

qacc

qrej

a a a a… …

q0

Like DFAs and NFAs, TMs begin execution in their

�tiot��tite.

Like DFAs and NFAs, TMs begin execution in their

�tiot��tite.

Page 14: Turing Machines - Stanford Universityweb.stanford.edu/class/archive/cs/cs103/cs103.1198...the coming years An important theme is not simply proving more theorems, but achieving automation

a a a… …

A Simple Turing Machine

q0

qacc

qrej

q1

start

a → , R☐

a → , R☐

→ ☐ ☐, R

→ ☐ ☐, R

qacc

qrej

a

q0

At each step, the TM only looks at

the symbol immediately under

the tipe�heid.

At each step, the TM only looks at

the symbol immediately under

the tipe�heid.

Page 15: Turing Machines - Stanford Universityweb.stanford.edu/class/archive/cs/cs103/cs103.1198...the coming years An important theme is not simply proving more theorems, but achieving automation

a a a… …

A Simple Turing Machine

q0

qacc

qrej

q1

start

a → , R☐ → ☐ ☐, R

qacc

qrej

a

a → , R☐ → ☐ ☐, R

q0

These two transitions originate at the current

state. We’re going to choose one of them to

follow.

These two transitions originate at the current

state. We’re going to choose one of them to

follow.

Page 16: Turing Machines - Stanford Universityweb.stanford.edu/class/archive/cs/cs103/cs103.1198...the coming years An important theme is not simply proving more theorems, but achieving automation

a a a… …

A Simple Turing Machine

q0

qacc

qrej

q1

start

a → , R☐ → ☐ ☐, R

qacc

qrej

a

a → , R☐ → ☐ ☐, R

q0

Each transition has the form

oeid�→�woite,�dio

and means “if symbol oeid is under the tape head, replace it with woite and move the tape head in direction dio (L or R). The symbol denotes a blank cell.☐

Each transition has the form

oeid�→�woite,�dio

and means “if symbol oeid is under the tape head, replace it with woite and move the tape head in direction dio (L or R). The symbol denotes a blank cell.☐

Page 17: Turing Machines - Stanford Universityweb.stanford.edu/class/archive/cs/cs103/cs103.1198...the coming years An important theme is not simply proving more theorems, but achieving automation

→ ☐ ☐, R

a a a… …

A Simple Turing Machine

q0

qacc

qrej

q1

start

a → , R☐ → ☐ ☐, R

qacc

qrej

a

a → , R☐

q0

Each transition has the form

oeid�→�woite,�dio

and means “if symbol oeid is under the tape head, replace it with woite and move the tape head in direction dio (L or R). The symbol denotes a blank cell.☐

Each transition has the form

oeid�→�woite,�dio

and means “if symbol oeid is under the tape head, replace it with woite and move the tape head in direction dio (L or R). The symbol denotes a blank cell.☐

Page 18: Turing Machines - Stanford Universityweb.stanford.edu/class/archive/cs/cs103/cs103.1198...the coming years An important theme is not simply proving more theorems, but achieving automation

→ ☐ ☐, R

a a a… …

A Simple Turing Machine

q0

qacc

qrej

q1

start

a → , R☐ → ☐ ☐, R

qacc

qrej

a → , R☐

q0

Each transition has the form

oeid�→�woite,�dio

and means “if symbol oeid is under the tape head, replace it with woite and move the tape head in direction dio (L or R). The symbol denotes a blank cell.☐

Each transition has the form

oeid�→�woite,�dio

and means “if symbol oeid is under the tape head, replace it with woite and move the tape head in direction dio (L or R). The symbol denotes a blank cell.☐

Page 19: Turing Machines - Stanford Universityweb.stanford.edu/class/archive/cs/cs103/cs103.1198...the coming years An important theme is not simply proving more theorems, but achieving automation

→ ☐ ☐, R

a a a… …

A Simple Turing Machine

q0

qacc

qrej

q1

start

a → , R☐ → ☐ ☐, R

qacc

qrej

a → , R☐

q0

Each transition has the form

oeid�→�woite,�dio

and means “if symbol oeid is under the tape head, replace it with woite and move the tape head in direction dio (L or R). The symbol denotes a blank cell.☐

Each transition has the form

oeid�→�woite,�dio

and means “if symbol oeid is under the tape head, replace it with woite and move the tape head in direction dio (L or R). The symbol denotes a blank cell.☐

Page 20: Turing Machines - Stanford Universityweb.stanford.edu/class/archive/cs/cs103/cs103.1198...the coming years An important theme is not simply proving more theorems, but achieving automation

→ ☐ ☐, R

a a a… …

A Simple Turing Machine

q0

qacc

qrej

q1

start

a → , R☐ → ☐ ☐, R

qacc

qrej

a → , R☐

q1

Each transition has the form

oeid�→�woite,�dio

and means “if symbol oeid is under the tape head, replace it with woite and move the tape head in direction dio (L or R). The symbol denotes a blank cell.☐

Each transition has the form

oeid�→�woite,�dio

and means “if symbol oeid is under the tape head, replace it with woite and move the tape head in direction dio (L or R). The symbol denotes a blank cell.☐

Page 21: Turing Machines - Stanford Universityweb.stanford.edu/class/archive/cs/cs103/cs103.1198...the coming years An important theme is not simply proving more theorems, but achieving automation

→ ☐ ☐, R

a a a… …

A Simple Turing Machine

q0

qacc

qrej

q1

start

a → , R☐ → ☐ ☐, R

qacc

qrej

a → , R☐

q1

Page 22: Turing Machines - Stanford Universityweb.stanford.edu/class/archive/cs/cs103/cs103.1198...the coming years An important theme is not simply proving more theorems, but achieving automation

a a… …

→ ☐ ☐, R

a

A Simple Turing Machine

q0

qacc

qrej

q1

start

a → , R☐ → ☐ ☐, R

qacc

qrej

a → , R☐

q1

Page 23: Turing Machines - Stanford Universityweb.stanford.edu/class/archive/cs/cs103/cs103.1198...the coming years An important theme is not simply proving more theorems, but achieving automation

a a… …

→ ☐ ☐, R

a

A Simple Turing Machine

q0

qacc

qrej

q1

start

qacc

qrej

a → , R☐

a → , R☐ → ☐ ☐, R

q1

Page 24: Turing Machines - Stanford Universityweb.stanford.edu/class/archive/cs/cs103/cs103.1198...the coming years An important theme is not simply proving more theorems, but achieving automation

a a… …

→ ☐ ☐, R

a

A Simple Turing Machine

q0

qacc

qrej

q1

start

qacc

qrej

a → , R☐

→ ☐ ☐, Ra → , R☐

q1

Page 25: Turing Machines - Stanford Universityweb.stanford.edu/class/archive/cs/cs103/cs103.1198...the coming years An important theme is not simply proving more theorems, but achieving automation

a a… …

→ ☐ ☐, R

A Simple Turing Machine

q0

qacc

qrej

q1

start

qacc

qrej

a → , R☐

→ ☐ ☐, Ra → , R☐

q1

Page 26: Turing Machines - Stanford Universityweb.stanford.edu/class/archive/cs/cs103/cs103.1198...the coming years An important theme is not simply proving more theorems, but achieving automation

a a… …

→ ☐ ☐, R

A Simple Turing Machine

q0

qacc

qrej

q1

start

qacc

qrej

a → , R☐

→ ☐ ☐, Ra → , R☐

q1

Page 27: Turing Machines - Stanford Universityweb.stanford.edu/class/archive/cs/cs103/cs103.1198...the coming years An important theme is not simply proving more theorems, but achieving automation

a a… …

→ ☐ ☐, R

A Simple Turing Machine

q0

qacc

qrej

q1

start

qacc

qrej

a → , R☐

→ ☐ ☐, Ra → , R☐

q0

Page 28: Turing Machines - Stanford Universityweb.stanford.edu/class/archive/cs/cs103/cs103.1198...the coming years An important theme is not simply proving more theorems, but achieving automation

a a… …

→ ☐ ☐, R

A Simple Turing Machine

q0

qacc

qrej

q1

start

qacc

qrej

a → , R☐

→ ☐ ☐, Ra → , R☐

q0

Page 29: Turing Machines - Stanford Universityweb.stanford.edu/class/archive/cs/cs103/cs103.1198...the coming years An important theme is not simply proving more theorems, but achieving automation

a a… …

→ ☐ ☐, R

A Simple Turing Machine

q0

qacc

qrej

q1

start

qacc

qrej

a → , R☐

→ ☐ ☐, Ra → , R☐

q0

Page 30: Turing Machines - Stanford Universityweb.stanford.edu/class/archive/cs/cs103/cs103.1198...the coming years An important theme is not simply proving more theorems, but achieving automation

a… …

→ ☐ ☐, R

A Simple Turing Machine

q0

qacc

qrej

q1

start

qacc

qrej

a → , R☐

→ ☐ ☐, Ra → , R☐

q1

Page 31: Turing Machines - Stanford Universityweb.stanford.edu/class/archive/cs/cs103/cs103.1198...the coming years An important theme is not simply proving more theorems, but achieving automation

a… …

→ ☐ ☐, R

A Simple Turing Machine

q0

qacc

qrej

q1

start

qacc

qrej

a → , R☐

→ ☐ ☐, Ra → , R☐

q1

Page 32: Turing Machines - Stanford Universityweb.stanford.edu/class/archive/cs/cs103/cs103.1198...the coming years An important theme is not simply proving more theorems, but achieving automation

… …

→ ☐ ☐, R

A Simple Turing Machine

q0

qacc

qrej

q1

start

qacc

qrej

a → , R☐

→ ☐ ☐, Ra → , R☐

q0

Unlike a DFA or NFA, a TM doesn’t stop after reading all the input characters. We keep

running until the machine explicitly says to stop.

Unlike a DFA or NFA, a TM doesn’t stop after reading all the input characters. We keep

running until the machine explicitly says to stop.

Page 33: Turing Machines - Stanford Universityweb.stanford.edu/class/archive/cs/cs103/cs103.1198...the coming years An important theme is not simply proving more theorems, but achieving automation

… …

→ ☐ ☐, R

A Simple Turing Machine

q0

qacc

qrej

q1

start

qacc

qrej

a → , R☐

→ ☐ ☐, Ra → , R☐

q0

Page 34: Turing Machines - Stanford Universityweb.stanford.edu/class/archive/cs/cs103/cs103.1198...the coming years An important theme is not simply proving more theorems, but achieving automation

… …

→ ☐ ☐, R

A Simple Turing Machine

q0

qacc

qrej

q1

start

qacc

qrej

a → , R☐

→ ☐ ☐, Ra → , R☐

This special state is an iepting��tite. When a TM enters an accepting state, it immediately stops running and accepts whatever the

original input string was (in this case, aaaa).

This special state is an iepting��tite. When a TM enters an accepting state, it immediately stops running and accepts whatever the

original input string was (in this case, aaaa).

Page 35: Turing Machines - Stanford Universityweb.stanford.edu/class/archive/cs/cs103/cs103.1198...the coming years An important theme is not simply proving more theorems, but achieving automation

… …

→ ☐ ☐, R

A Simple Turing Machine

q0

qrej

q1

start

qrej

a → , R☐

→ ☐ ☐, Ra → , R☐

This special state is an iepting��tite. When a TM enters an accepting state, it immediately stops running and accepts whatever the

original input string was (in this case, aaaa).

This special state is an iepting��tite. When a TM enters an accepting state, it immediately stops running and accepts whatever the

original input string was (in this case, aaaa).

qacc

Page 36: Turing Machines - Stanford Universityweb.stanford.edu/class/archive/cs/cs103/cs103.1198...the coming years An important theme is not simply proving more theorems, but achieving automation

a a a… …a

→ ☐ ☐, R

a

A Simple Turing Machine

q0

qrej

q1

start

qrej

a → , R☐

→ ☐ ☐, Ra → , R☐

qacc

q0

Page 37: Turing Machines - Stanford Universityweb.stanford.edu/class/archive/cs/cs103/cs103.1198...the coming years An important theme is not simply proving more theorems, but achieving automation

a a a… …

→ ☐ ☐, R

a

A Simple Turing Machine

q0

qrej

q1

start

qrej

a → , R☐

→ ☐ ☐, Ra → , R☐

qacc

q1

Page 38: Turing Machines - Stanford Universityweb.stanford.edu/class/archive/cs/cs103/cs103.1198...the coming years An important theme is not simply proving more theorems, but achieving automation

a a a… …

→ ☐ ☐, R

A Simple Turing Machine

q0

qrej

q1

start

qrej

a → , R☐

→ ☐ ☐, Ra → , R☐

qacc

q0

Page 39: Turing Machines - Stanford Universityweb.stanford.edu/class/archive/cs/cs103/cs103.1198...the coming years An important theme is not simply proving more theorems, but achieving automation

a a… …

→ ☐ ☐, R

A Simple Turing Machine

q0

qrej

q1

start

qrej

a → , R☐

→ ☐ ☐, Ra → , R☐

qacc

q1

Page 40: Turing Machines - Stanford Universityweb.stanford.edu/class/archive/cs/cs103/cs103.1198...the coming years An important theme is not simply proving more theorems, but achieving automation

a… …

→ ☐ ☐, R

A Simple Turing Machine

q0

qrej

q1

start

qrej

a → , R☐

→ ☐ ☐, Ra → , R☐

qacc

q0

Page 41: Turing Machines - Stanford Universityweb.stanford.edu/class/archive/cs/cs103/cs103.1198...the coming years An important theme is not simply proving more theorems, but achieving automation

… …

→ ☐ ☐, R

A Simple Turing Machine

q0

qrej

q1

start

qrej

a → , R☐

→ ☐ ☐, Ra → , R☐

qacc

q1

Page 42: Turing Machines - Stanford Universityweb.stanford.edu/class/archive/cs/cs103/cs103.1198...the coming years An important theme is not simply proving more theorems, but achieving automation

… …

→ ☐ ☐, R

A Simple Turing Machine

q0

qrej

q1

start

qrej

a → , R☐

→ ☐ ☐, Ra → , R☐

qacc

This special state is a�oejeting��tite. When a TM

enters a rejecting state, it immediately stops running and rejects whatever the

original input string was (in this case, aaaaa).

This special state is a�oejeting��tite. When a TM

enters a rejecting state, it immediately stops running and rejects whatever the

original input string was (in this case, aaaaa).

Page 43: Turing Machines - Stanford Universityweb.stanford.edu/class/archive/cs/cs103/cs103.1198...the coming years An important theme is not simply proving more theorems, but achieving automation

… …

→ ☐ ☐, R

A Simple Turing Machine

q0

q1

start

a → , R☐

→ ☐ ☐, Ra → , R☐

qacc

This special state is a�oejeting��tite. When a TM

enters a rejecting state, it immediately stops running and rejects whatever the

original input string was (in this case, aaaaa).

This special state is a�oejeting��tite. When a TM

enters a rejecting state, it immediately stops running and rejects whatever the

original input string was (in this case, aaaaa).

qrej

Page 44: Turing Machines - Stanford Universityweb.stanford.edu/class/archive/cs/cs103/cs103.1198...the coming years An important theme is not simply proving more theorems, but achieving automation

… …

→ ☐ ☐, R

A Simple Turing Machine

q0

q1

start

a → , R☐

→ ☐ ☐, Ra → , R☐

qacc

qrej

q0

If the TM is started on the empty string ε, the entire tape is blank and the tape head is positioned at some arbitrary

location on the tape.

If the TM is started on the empty string ε, the entire tape is blank and the tape head is positioned at some arbitrary

location on the tape.

Page 45: Turing Machines - Stanford Universityweb.stanford.edu/class/archive/cs/cs103/cs103.1198...the coming years An important theme is not simply proving more theorems, but achieving automation

… …

→ ☐ ☐, R

A Simple Turing Machine

q0

q1

start

a → , R☐

→ ☐ ☐, Ra → , R☐

qacc

qrej

If the TM is started on the empty string ε, the entire tape is blank and the tape head is positioned at some arbitrary

location on the tape.

If the TM is started on the empty string ε, the entire tape is blank and the tape head is positioned at some arbitrary

location on the tape.

Page 46: Turing Machines - Stanford Universityweb.stanford.edu/class/archive/cs/cs103/cs103.1198...the coming years An important theme is not simply proving more theorems, but achieving automation

… …

→ ☐ ☐, R

A Simple Turing Machine

q0

q1

start

a → , R☐

→ ☐ ☐, Ra → , R☐

qacc

qrej

If the TM is started on the empty string ε, the entire tape is blank and the tape head is positioned at some arbitrary

location on the tape.

If the TM is started on the empty string ε, the entire tape is blank and the tape head is positioned at some arbitrary

location on the tape.

Page 47: Turing Machines - Stanford Universityweb.stanford.edu/class/archive/cs/cs103/cs103.1198...the coming years An important theme is not simply proving more theorems, but achieving automation

The Turing Machine

● A Turing machine consists of three parts:

● A �nite-�tite�nntont that issues commands,

● an in�nite�tipe for input and scratch space, and

● a tipe�heid that can read and write a single tape cell.

● At each step, the Turing machine

● writes a symbol to the tape cell under the tape head,

● changes state, and

● moves the tape head to the left or to the right.

Page 48: Turing Machines - Stanford Universityweb.stanford.edu/class/archive/cs/cs103/cs103.1198...the coming years An important theme is not simply proving more theorems, but achieving automation

Input and Tape Alphabets

● A Turing machine has two alphabets:

● An input�itphibet Σ. All input strings are written in the input alphabet.

● A tipe�itphibet Γ, where Σ Γ. The tape alphabet ⊊

contains all symbols that can be written onto the tape.

● The tape alphabet Γ can contain any number of symbols, but always contains at least one btink��ymbnt, denoted . You are guaranteed ∉ Σ.☐ ☐

● At startup, the Turing machine begins with an infnite tape of symbols with the input written at ☐

some location. The tape head is positioned at the start of the input.

Page 49: Turing Machines - Stanford Universityweb.stanford.edu/class/archive/cs/cs103/cs103.1198...the coming years An important theme is not simply proving more theorems, but achieving automation

Accepting and Rejecting States

● Unlike DFAs, Turing machines do not stop processing the input when they fnish reading it.

● Turing machines decide when (and if!) they will accept or reject their input.

● Turing machines can enter infnite loops and never accept or reject; more on that later...

Page 50: Turing Machines - Stanford Universityweb.stanford.edu/class/archive/cs/cs103/cs103.1198...the coming years An important theme is not simply proving more theorems, but achieving automation

→ ☐ ☐, R

Determinism

q0

qrej

q1

start

qrej

a → , R☐

→ ☐ ☐, Ra → , R☐

qacc

● Turing machines are deteomini�ti: for every combination of a (non-accepting, non-rejecting) state q and a tape symbol a ∈ Γ, there must be exactly one transition defned for that combination of q and a.

● Any transitions that are missing implicitly go straight to a rejecting state. We’ll use this later to simplify our designs.

Page 51: Turing Machines - Stanford Universityweb.stanford.edu/class/archive/cs/cs103/cs103.1198...the coming years An important theme is not simply proving more theorems, but achieving automation

→ ☐ ☐, R

Determinism

q0

q1

start

a → , R☐

a → , R☐

qacc

● Turing machines are deteomini�ti: for every combination of a (non-accepting, non-rejecting) state q and a tape symbol a ∈ Γ, there must be exactly one transition defned for that combination of q and a.

● Any transitions that are missing implicitly go straight to a rejecting state. We’ll use this later to simplify our designs.

This machine is exactly the same as the

previous one.

This machine is exactly the same as the

previous one.

Page 52: Turing Machines - Stanford Universityweb.stanford.edu/class/archive/cs/cs103/cs103.1198...the coming years An important theme is not simply proving more theorems, but achieving automation

q0

q1

start → ☐ ☐, L

a → b, Rb → a, R a → a, L

b → b, L → ☐ ☐, L

qacc

qrej

Run the TM shown above on the input string bba.What will the tape look like when the TM fnishes running?

Run the TM shown above on the input string bba.What will the tape look like when the TM fnishes running?

… b b a …A.

…… a a bD.

… a a b …B.

… b b a …C.

E. None of these, or two or more of these.

Page 53: Turing Machines - Stanford Universityweb.stanford.edu/class/archive/cs/cs103/cs103.1198...the coming years An important theme is not simply proving more theorems, but achieving automation

q0

q1

start → ☐ ☐, L

a → b, Rb → a, R a → a, L

b → b, L → ☐ ☐, L

qacc

qrej

b a… …b

q0

Page 54: Turing Machines - Stanford Universityweb.stanford.edu/class/archive/cs/cs103/cs103.1198...the coming years An important theme is not simply proving more theorems, but achieving automation

q0

q1

start → ☐ ☐, L

a → b, Rb → a, R a → a, L

b → b, L → ☐ ☐, L

qacc

qrej

b a… …a

q0

Page 55: Turing Machines - Stanford Universityweb.stanford.edu/class/archive/cs/cs103/cs103.1198...the coming years An important theme is not simply proving more theorems, but achieving automation

q0

q1

start → ☐ ☐, L

a → b, Rb → a, R a → a, L

b → b, L → ☐ ☐, L

qacc

qrej

a a… …a

q0

Page 56: Turing Machines - Stanford Universityweb.stanford.edu/class/archive/cs/cs103/cs103.1198...the coming years An important theme is not simply proving more theorems, but achieving automation

q0

q1

start → ☐ ☐, L

a → b, Rb → a, R a → a, L

b → b, L → ☐ ☐, L

qacc

qrej

a b… …a

q0

Page 57: Turing Machines - Stanford Universityweb.stanford.edu/class/archive/cs/cs103/cs103.1198...the coming years An important theme is not simply proving more theorems, but achieving automation

q0

q1

start → ☐ ☐, L

a → b, Rb → a, R a → a, L

b → b, L → ☐ ☐, L

qacc

qrej

a b… …a

q1

Page 58: Turing Machines - Stanford Universityweb.stanford.edu/class/archive/cs/cs103/cs103.1198...the coming years An important theme is not simply proving more theorems, but achieving automation

q0

q1

start → ☐ ☐, L

a → b, Rb → a, R a → a, L

b → b, L → ☐ ☐, L

qacc

qrej

a b… …a

Page 59: Turing Machines - Stanford Universityweb.stanford.edu/class/archive/cs/cs103/cs103.1198...the coming years An important theme is not simply proving more theorems, but achieving automation

q0

q1

start → ☐ ☐, L

a → b, Rb → a, R a → a, L

b → b, L → ☐ ☐, L

qacc

qrej

a b… …a

Page 60: Turing Machines - Stanford Universityweb.stanford.edu/class/archive/cs/cs103/cs103.1198...the coming years An important theme is not simply proving more theorems, but achieving automation

q0

q1

start → ☐ ☐, L

a → b, Rb → a, R a → a, L

b → b, L → ☐ ☐, L

qacc

qrej

If M is a Turing machine with input alphabet Σ, then the tinguige�nf�M, denoted ℒ(M), is the set

ℒ(M) = { w ∈ Σ* | M accepts w }

If M is a Turing machine with input alphabet Σ, then the tinguige�nf�M, denoted ℒ(M), is the set

ℒ(M) = { w ∈ Σ* | M accepts w }

Page 61: Turing Machines - Stanford Universityweb.stanford.edu/class/archive/cs/cs103/cs103.1198...the coming years An important theme is not simply proving more theorems, but achieving automation

q0

q1

start → ☐ ☐, L

a → b, Rb → a, R a → a, L

b → b, L → ☐ ☐, L

qacc

qrej

a b… …a

q0

Page 62: Turing Machines - Stanford Universityweb.stanford.edu/class/archive/cs/cs103/cs103.1198...the coming years An important theme is not simply proving more theorems, but achieving automation

q0

q1

start → ☐ ☐, L

a → b, Rb → a, R a → a, L

b → b, L → ☐ ☐, L

qacc

qrej

a b… …b

q0

Page 63: Turing Machines - Stanford Universityweb.stanford.edu/class/archive/cs/cs103/cs103.1198...the coming years An important theme is not simply proving more theorems, but achieving automation

q0

q1

start → ☐ ☐, L

a → b, Rb → a, R a → a, L

b → b, L → ☐ ☐, L

qacc

qrej

b b… …b

q0

Page 64: Turing Machines - Stanford Universityweb.stanford.edu/class/archive/cs/cs103/cs103.1198...the coming years An important theme is not simply proving more theorems, but achieving automation

q0

q1

start → ☐ ☐, L

a → b, Rb → a, R a → a, L

b → b, L → ☐ ☐, L

qacc

qrej

b a… …b

q0

Page 65: Turing Machines - Stanford Universityweb.stanford.edu/class/archive/cs/cs103/cs103.1198...the coming years An important theme is not simply proving more theorems, but achieving automation

q0

q1

start → ☐ ☐, L

a → b, Rb → a, R a → a, L

b → b, L → ☐ ☐, L

qacc

qrej

b a… …b

q1

Page 66: Turing Machines - Stanford Universityweb.stanford.edu/class/archive/cs/cs103/cs103.1198...the coming years An important theme is not simply proving more theorems, but achieving automation

q0

q1

start → ☐ ☐, L

a → b, Rb → a, R a → a, L

b → b, L → ☐ ☐, L

qacc

qrej

b a… …b

Page 67: Turing Machines - Stanford Universityweb.stanford.edu/class/archive/cs/cs103/cs103.1198...the coming years An important theme is not simply proving more theorems, but achieving automation

q0

q1

start → ☐ ☐, L

a → b, Rb → a, R a → a, L

b → b, L → ☐ ☐, L

qacc

qrej

b a… …b

Page 68: Turing Machines - Stanford Universityweb.stanford.edu/class/archive/cs/cs103/cs103.1198...the coming years An important theme is not simply proving more theorems, but achieving automation

q0

q1

start → ☐ ☐, L

a → b, Rb → a, R a → a, L

b → b, L → ☐ ☐, L

qacc

qrej

b a… …b

Although the tape ends with bba written on it, the original input string was aab. This shows that the TM

accepts aab, not bba.

So (ℒ M) = { w ∈ {a, b}* | w ends in b }

Although the tape ends with bba written on it, the original input string was aab. This shows that the TM

accepts aab, not bba.

So (ℒ M) = { w ∈ {a, b}* | w ends in b }

Page 69: Turing Machines - Stanford Universityweb.stanford.edu/class/archive/cs/cs103/cs103.1198...the coming years An important theme is not simply proving more theorems, but achieving automation

Designing Turing Machines

● Despite their simplicity, Turing machines are very powerful computing devices.

● Today's lecture explores how to design Turing machines for various languages.

Page 70: Turing Machines - Stanford Universityweb.stanford.edu/class/archive/cs/cs103/cs103.1198...the coming years An important theme is not simply proving more theorems, but achieving automation

Designing Turing Machines

● Let Σ = {0, 1} and consider the language L = {0n1n | n ∈ ℕ }.

● We know that L is context-free.

● How might we build a Turing machine for it?

Page 71: Turing Machines - Stanford Universityweb.stanford.edu/class/archive/cs/cs103/cs103.1198...the coming years An important theme is not simply proving more theorems, but achieving automation

L = {0n1n | n ∈ ℕ }

0 0 0 1 1 1… …

… …

0 1 0… …

1 1 0 0… …

Page 72: Turing Machines - Stanford Universityweb.stanford.edu/class/archive/cs/cs103/cs103.1198...the coming years An important theme is not simply proving more theorems, but achieving automation

A Recursive Approach

● The string ε is in L.

● The string 0w1 is in L if w is in L.

● Any string starting with 1 is not in L.

● Any string ending with 0 is not in L.

Page 73: Turing Machines - Stanford Universityweb.stanford.edu/class/archive/cs/cs103/cs103.1198...the coming years An important theme is not simply proving more theorems, but achieving automation

A Sketch of the TM

0 0 0 1 1 1… …

Page 74: Turing Machines - Stanford Universityweb.stanford.edu/class/archive/cs/cs103/cs103.1198...the coming years An important theme is not simply proving more theorems, but achieving automation

A Sketch of the TM

0 0 1 1 1… …

Page 75: Turing Machines - Stanford Universityweb.stanford.edu/class/archive/cs/cs103/cs103.1198...the coming years An important theme is not simply proving more theorems, but achieving automation

A Sketch of the TM

0 0 1 1 1… …

Page 76: Turing Machines - Stanford Universityweb.stanford.edu/class/archive/cs/cs103/cs103.1198...the coming years An important theme is not simply proving more theorems, but achieving automation

A Sketch of the TM

0 0 1 1 1… …

Page 77: Turing Machines - Stanford Universityweb.stanford.edu/class/archive/cs/cs103/cs103.1198...the coming years An important theme is not simply proving more theorems, but achieving automation

A Sketch of the TM

0 0 1 1 1… …

Page 78: Turing Machines - Stanford Universityweb.stanford.edu/class/archive/cs/cs103/cs103.1198...the coming years An important theme is not simply proving more theorems, but achieving automation

A Sketch of the TM

0 0 1 1 1… …

Page 79: Turing Machines - Stanford Universityweb.stanford.edu/class/archive/cs/cs103/cs103.1198...the coming years An important theme is not simply proving more theorems, but achieving automation

A Sketch of the TM

0 0 1 1 1… …

Page 80: Turing Machines - Stanford Universityweb.stanford.edu/class/archive/cs/cs103/cs103.1198...the coming years An important theme is not simply proving more theorems, but achieving automation

A Sketch of the TM

0 0 1 1 1… …

Page 81: Turing Machines - Stanford Universityweb.stanford.edu/class/archive/cs/cs103/cs103.1198...the coming years An important theme is not simply proving more theorems, but achieving automation

A Sketch of the TM

0 0 1 1… …

Page 82: Turing Machines - Stanford Universityweb.stanford.edu/class/archive/cs/cs103/cs103.1198...the coming years An important theme is not simply proving more theorems, but achieving automation

A Sketch of the TM

0 0 1 1… …

Page 83: Turing Machines - Stanford Universityweb.stanford.edu/class/archive/cs/cs103/cs103.1198...the coming years An important theme is not simply proving more theorems, but achieving automation

A Sketch of the TM

0 0 1 1… …

Page 84: Turing Machines - Stanford Universityweb.stanford.edu/class/archive/cs/cs103/cs103.1198...the coming years An important theme is not simply proving more theorems, but achieving automation

A Sketch of the TM

0 0 1 1… …

Page 85: Turing Machines - Stanford Universityweb.stanford.edu/class/archive/cs/cs103/cs103.1198...the coming years An important theme is not simply proving more theorems, but achieving automation

A Sketch of the TM

0 0 1 1… …

Page 86: Turing Machines - Stanford Universityweb.stanford.edu/class/archive/cs/cs103/cs103.1198...the coming years An important theme is not simply proving more theorems, but achieving automation

A Sketch of the TM

0 0 1 1… …

Page 87: Turing Machines - Stanford Universityweb.stanford.edu/class/archive/cs/cs103/cs103.1198...the coming years An important theme is not simply proving more theorems, but achieving automation

A Sketch of the TM

0 1 1… …

Page 88: Turing Machines - Stanford Universityweb.stanford.edu/class/archive/cs/cs103/cs103.1198...the coming years An important theme is not simply proving more theorems, but achieving automation

A Sketch of the TM

0 1 1… …

Page 89: Turing Machines - Stanford Universityweb.stanford.edu/class/archive/cs/cs103/cs103.1198...the coming years An important theme is not simply proving more theorems, but achieving automation

A Sketch of the TM

0 1 1… …

Page 90: Turing Machines - Stanford Universityweb.stanford.edu/class/archive/cs/cs103/cs103.1198...the coming years An important theme is not simply proving more theorems, but achieving automation

A Sketch of the TM

0 1 1… …

Page 91: Turing Machines - Stanford Universityweb.stanford.edu/class/archive/cs/cs103/cs103.1198...the coming years An important theme is not simply proving more theorems, but achieving automation

A Sketch of the TM

0 1 1… …

Page 92: Turing Machines - Stanford Universityweb.stanford.edu/class/archive/cs/cs103/cs103.1198...the coming years An important theme is not simply proving more theorems, but achieving automation

A Sketch of the TM

0 1… …

Page 93: Turing Machines - Stanford Universityweb.stanford.edu/class/archive/cs/cs103/cs103.1198...the coming years An important theme is not simply proving more theorems, but achieving automation

A Sketch of the TM

0 1… …

Page 94: Turing Machines - Stanford Universityweb.stanford.edu/class/archive/cs/cs103/cs103.1198...the coming years An important theme is not simply proving more theorems, but achieving automation

A Sketch of the TM

0 1… …

Page 95: Turing Machines - Stanford Universityweb.stanford.edu/class/archive/cs/cs103/cs103.1198...the coming years An important theme is not simply proving more theorems, but achieving automation

A Sketch of the TM

0 1… …

Page 96: Turing Machines - Stanford Universityweb.stanford.edu/class/archive/cs/cs103/cs103.1198...the coming years An important theme is not simply proving more theorems, but achieving automation

A Sketch of the TM

1… …

Page 97: Turing Machines - Stanford Universityweb.stanford.edu/class/archive/cs/cs103/cs103.1198...the coming years An important theme is not simply proving more theorems, but achieving automation

A Sketch of the TM

1… …

Page 98: Turing Machines - Stanford Universityweb.stanford.edu/class/archive/cs/cs103/cs103.1198...the coming years An important theme is not simply proving more theorems, but achieving automation

A Sketch of the TM

1… …

Page 99: Turing Machines - Stanford Universityweb.stanford.edu/class/archive/cs/cs103/cs103.1198...the coming years An important theme is not simply proving more theorems, but achieving automation

A Sketch of the TM

… …

Page 100: Turing Machines - Stanford Universityweb.stanford.edu/class/archive/cs/cs103/cs103.1198...the coming years An important theme is not simply proving more theorems, but achieving automation

A Sketch of the TM

… …

Page 101: Turing Machines - Stanford Universityweb.stanford.edu/class/archive/cs/cs103/cs103.1198...the coming years An important theme is not simply proving more theorems, but achieving automation

start

Page 102: Turing Machines - Stanford Universityweb.stanford.edu/class/archive/cs/cs103/cs103.1198...the coming years An important theme is not simply proving more theorems, but achieving automation

start

0 0 0 1 1 1… …

Page 103: Turing Machines - Stanford Universityweb.stanford.edu/class/archive/cs/cs103/cs103.1198...the coming years An important theme is not simply proving more theorems, but achieving automation

start

0 0 0 1 1 1… …

Page 104: Turing Machines - Stanford Universityweb.stanford.edu/class/archive/cs/cs103/cs103.1198...the coming years An important theme is not simply proving more theorems, but achieving automation

Checkfor 0

Checkfor 0

start

0 0 0 1 1 1… …

Page 105: Turing Machines - Stanford Universityweb.stanford.edu/class/archive/cs/cs103/cs103.1198...the coming years An important theme is not simply proving more theorems, but achieving automation

Checkfor 0

Checkfor 0

start

0 0 0 1 1 1… …

0 → , R☐

Page 106: Turing Machines - Stanford Universityweb.stanford.edu/class/archive/cs/cs103/cs103.1198...the coming years An important theme is not simply proving more theorems, but achieving automation

Checkfor 0

Checkfor 0

start

0 0 1 1 1… …

0 → , R☐

Page 107: Turing Machines - Stanford Universityweb.stanford.edu/class/archive/cs/cs103/cs103.1198...the coming years An important theme is not simply proving more theorems, but achieving automation

Checkfor 0

Checkfor 0

start

0 0 1 1 1… …

0 → , R☐Go toend

Page 108: Turing Machines - Stanford Universityweb.stanford.edu/class/archive/cs/cs103/cs103.1198...the coming years An important theme is not simply proving more theorems, but achieving automation

Checkfor 0

Checkfor 0

start

0 0 1 1 1… …

0 → , R☐Go toend

0 → 0, R 1 → 1, R

Page 109: Turing Machines - Stanford Universityweb.stanford.edu/class/archive/cs/cs103/cs103.1198...the coming years An important theme is not simply proving more theorems, but achieving automation

Checkfor 0

Checkfor 0

start

0 0 1 1 1… …

0 → , R☐Go toend

0 → 0, R 1 → 1, R

Page 110: Turing Machines - Stanford Universityweb.stanford.edu/class/archive/cs/cs103/cs103.1198...the coming years An important theme is not simply proving more theorems, but achieving automation

Checkfor 0

Checkfor 0

start

0 0 1 1 1… …

0 → , R☐Go toend

0 → 0, R 1 → 1, R

Page 111: Turing Machines - Stanford Universityweb.stanford.edu/class/archive/cs/cs103/cs103.1198...the coming years An important theme is not simply proving more theorems, but achieving automation

Checkfor 0

Checkfor 0

start

0 0 1 1 1… …

0 → , R☐Go toend

0 → 0, R 1 → 1, R

Page 112: Turing Machines - Stanford Universityweb.stanford.edu/class/archive/cs/cs103/cs103.1198...the coming years An important theme is not simply proving more theorems, but achieving automation

Checkfor 0

Checkfor 0

start

0 0 1 1 1… …

0 → , R☐Go toend

0 → 0, R 1 → 1, R

Page 113: Turing Machines - Stanford Universityweb.stanford.edu/class/archive/cs/cs103/cs103.1198...the coming years An important theme is not simply proving more theorems, but achieving automation

Checkfor 0

Checkfor 0

start

0 0 1 1 1… …

0 → , R☐Go toend

0 → 0, R 1 → 1, R

Page 114: Turing Machines - Stanford Universityweb.stanford.edu/class/archive/cs/cs103/cs103.1198...the coming years An important theme is not simply proving more theorems, but achieving automation

Checkfor 0

Checkfor 0

start

0 0 1 1 1… …

0 → , R☐Go toend

0 → 0, R 1 → 1, R

→ ☐ ☐, L

Page 115: Turing Machines - Stanford Universityweb.stanford.edu/class/archive/cs/cs103/cs103.1198...the coming years An important theme is not simply proving more theorems, but achieving automation

Go toend

Go toend

Checkfor 0

Checkfor 0

start

0 0 1 1 1… …

0 → , R☐ 0 → 0, R 1 → 1, R

→ ☐ ☐, L

Page 116: Turing Machines - Stanford Universityweb.stanford.edu/class/archive/cs/cs103/cs103.1198...the coming years An important theme is not simply proving more theorems, but achieving automation

Go toend

Checkfor 0

Go toend

Checkfor 0

start

0 0 1 1 1… …

0 → , R☐ 0 → 0, R 1 → 1, R

→ ☐ ☐, L

Clear a1

Page 117: Turing Machines - Stanford Universityweb.stanford.edu/class/archive/cs/cs103/cs103.1198...the coming years An important theme is not simply proving more theorems, but achieving automation

Go toend

Checkfor 0

Go toend

Checkfor 0

start

0 0 1 1 1… …

0 → , R☐ 0 → 0, R 1 → 1, R

→ ☐ ☐, L

Clear a1

1 → , L☐

Page 118: Turing Machines - Stanford Universityweb.stanford.edu/class/archive/cs/cs103/cs103.1198...the coming years An important theme is not simply proving more theorems, but achieving automation

Clear a1

Clear a1

Go toend

Checkfor 0

Go toend

Checkfor 0

start

0 0 1 1… …

0 → , R☐ 0 → 0, R 1 → 1, R

→ ☐ ☐, L

1 → , L☐

Page 119: Turing Machines - Stanford Universityweb.stanford.edu/class/archive/cs/cs103/cs103.1198...the coming years An important theme is not simply proving more theorems, but achieving automation

Clear a1

Clear a1

Go toend

Checkfor 0

Go toend

Checkfor 0

start

0 0 1 1… …

0 → , R☐ 0 → 0, R 1 → 1, R

→ ☐ ☐, L

1 → , L☐Go tostart

Page 120: Turing Machines - Stanford Universityweb.stanford.edu/class/archive/cs/cs103/cs103.1198...the coming years An important theme is not simply proving more theorems, but achieving automation

Clear a1

Clear a1

Go toend

Checkfor 0

Go toend

Checkfor 0

start

0 0 1 1… …

0 → , R☐ 0 → 0, R 1 → 1, R

→ ☐ ☐, L

1 → , L☐Go tostart

0 → 0, L 1 → 1, L

Page 121: Turing Machines - Stanford Universityweb.stanford.edu/class/archive/cs/cs103/cs103.1198...the coming years An important theme is not simply proving more theorems, but achieving automation

Clear a1

Clear a1

Go toend

Checkfor 0

Go toend

Checkfor 0

start

0 0 1 1… …

0 → , R☐ 0 → 0, R 1 → 1, R

→ ☐ ☐, L

1 → , L☐Go tostart

0 → 0, L 1 → 1, L

Page 122: Turing Machines - Stanford Universityweb.stanford.edu/class/archive/cs/cs103/cs103.1198...the coming years An important theme is not simply proving more theorems, but achieving automation

Clear a1

Clear a1

Go toend

Checkfor 0

Go toend

Checkfor 0

start

0 0 1 1… …

0 → , R☐ 0 → 0, R 1 → 1, R

→ ☐ ☐, L

1 → , L☐Go tostart

0 → 0, L 1 → 1, L

Page 123: Turing Machines - Stanford Universityweb.stanford.edu/class/archive/cs/cs103/cs103.1198...the coming years An important theme is not simply proving more theorems, but achieving automation

Clear a1

Clear a1

Go toend

Checkfor 0

Go toend

Checkfor 0

start

0 0 1 1… …

0 → , R☐ 0 → 0, R 1 → 1, R

→ ☐ ☐, L

1 → , L☐Go tostart

0 → 0, L 1 → 1, L

Page 124: Turing Machines - Stanford Universityweb.stanford.edu/class/archive/cs/cs103/cs103.1198...the coming years An important theme is not simply proving more theorems, but achieving automation

Clear a1

Clear a1

Go toend

Checkfor 0

Go toend

Checkfor 0

start

0 0 1 1… …

0 → , R☐ 0 → 0, R 1 → 1, R

→ ☐ ☐, L

1 → , L☐Go tostart

0 → 0, L 1 → 1, L

Page 125: Turing Machines - Stanford Universityweb.stanford.edu/class/archive/cs/cs103/cs103.1198...the coming years An important theme is not simply proving more theorems, but achieving automation

Clear a1

Clear a1

Go toend

Checkfor 0

Go toend

Checkfor 0

start

0 0 1 1… …

0 → , R☐ 0 → 0, R 1 → 1, R

→ ☐ ☐, L

1 → , L☐Go tostart

0 → 0, L 1 → 1, L

→ ☐ ☐, R

Page 126: Turing Machines - Stanford Universityweb.stanford.edu/class/archive/cs/cs103/cs103.1198...the coming years An important theme is not simply proving more theorems, but achieving automation

Checkfor 0

Go tostart

Clear a1

Go tostart

Clear a1

Go toend

Checkfor 0

Go toend

start

0 0 1 1… …

0 → , R☐ 0 → 0, R 1 → 1, R

→ ☐ ☐, L

1 → , L☐0 → 0, L 1 → 1, L

→ ☐ ☐, R

Page 127: Turing Machines - Stanford Universityweb.stanford.edu/class/archive/cs/cs103/cs103.1198...the coming years An important theme is not simply proving more theorems, but achieving automation

Checkfor 0

Go toend

Checkfor 0

Go tostart

Clear a1

Go tostart

Clear a1

Go toend

start

0 1 1… …

0 → , R☐ 0 → 0, R 1 → 1, R

→ ☐ ☐, L

1 → , L☐0 → 0, L 1 → 1, L

→ ☐ ☐, R

Page 128: Turing Machines - Stanford Universityweb.stanford.edu/class/archive/cs/cs103/cs103.1198...the coming years An important theme is not simply proving more theorems, but achieving automation

Checkfor 0

Go toend

Checkfor 0

Go tostart

Clear a1

Go tostart

Clear a1

Go toend

start

0 1 1… …

0 → , R☐ 0 → 0, R 1 → 1, R

→ ☐ ☐, L

1 → , L☐0 → 0, L 1 → 1, L

→ ☐ ☐, R

Page 129: Turing Machines - Stanford Universityweb.stanford.edu/class/archive/cs/cs103/cs103.1198...the coming years An important theme is not simply proving more theorems, but achieving automation

Checkfor 0

Go toend

Checkfor 0

Go tostart

Clear a1

Go tostart

Clear a1

Go toend

start

0 1 1… …

0 → , R☐ 0 → 0, R 1 → 1, R

→ ☐ ☐, L

1 → , L☐0 → 0, L 1 → 1, L

→ ☐ ☐, R

Page 130: Turing Machines - Stanford Universityweb.stanford.edu/class/archive/cs/cs103/cs103.1198...the coming years An important theme is not simply proving more theorems, but achieving automation

Checkfor 0

Go toend

Checkfor 0

Go tostart

Clear a1

Go tostart

Clear a1

Go toend

start

0 1 1… …

0 → , R☐ 0 → 0, R 1 → 1, R

→ ☐ ☐, L

1 → , L☐0 → 0, L 1 → 1, L

→ ☐ ☐, R

Page 131: Turing Machines - Stanford Universityweb.stanford.edu/class/archive/cs/cs103/cs103.1198...the coming years An important theme is not simply proving more theorems, but achieving automation

Go toend

Checkfor 0

Go toend

Checkfor 0

Go tostart

Clear a1

Go tostart

start

0 1 1… …

0 → , R☐ 0 → 0, R 1 → 1, R

→ ☐ ☐, L

1 → , L☐0 → 0, L 1 → 1, L

→ ☐ ☐, R

Page 132: Turing Machines - Stanford Universityweb.stanford.edu/class/archive/cs/cs103/cs103.1198...the coming years An important theme is not simply proving more theorems, but achieving automation

Clear a1

Clear a1

Go tostart

Go toend

Checkfor 0

Go toend

Checkfor 0

Go tostart

start

0 1… …

0 → , R☐ 0 → 0, R 1 → 1, R

→ ☐ ☐, L

1 → , L☐0 → 0, L 1 → 1, L

→ ☐ ☐, R

Page 133: Turing Machines - Stanford Universityweb.stanford.edu/class/archive/cs/cs103/cs103.1198...the coming years An important theme is not simply proving more theorems, but achieving automation

Clear a1

Clear a1

Go tostart

Go toend

Checkfor 0

Go toend

Checkfor 0

Go tostart

start

0 1… …

0 → , R☐ 0 → 0, R 1 → 1, R

→ ☐ ☐, L

1 → , L☐0 → 0, L 1 → 1, L

→ ☐ ☐, R

Page 134: Turing Machines - Stanford Universityweb.stanford.edu/class/archive/cs/cs103/cs103.1198...the coming years An important theme is not simply proving more theorems, but achieving automation

Clear a1

Clear a1

Go tostart

Go toend

Checkfor 0

Go toend

Checkfor 0

Go tostart

start

0 1… …

0 → , R☐ 0 → 0, R 1 → 1, R

→ ☐ ☐, L

1 → , L☐0 → 0, L 1 → 1, L

→ ☐ ☐, R

Page 135: Turing Machines - Stanford Universityweb.stanford.edu/class/archive/cs/cs103/cs103.1198...the coming years An important theme is not simply proving more theorems, but achieving automation

Checkfor 0

Go tostart

Clear a1

Clear a1

Go tostart

Go toend

Checkfor 0

Go toend

start

0 1… …

0 → , R☐ 0 → 0, R 1 → 1, R

→ ☐ ☐, L

1 → , L☐0 → 0, L 1 → 1, L

→ ☐ ☐, R

Page 136: Turing Machines - Stanford Universityweb.stanford.edu/class/archive/cs/cs103/cs103.1198...the coming years An important theme is not simply proving more theorems, but achieving automation

Checkfor 0

Go toend

Checkfor 0

Go tostart

Clear a1

Clear a1

Go tostart

Go toend

start

1… …

0 → , R☐ 0 → 0, R 1 → 1, R

→ ☐ ☐, L

1 → , L☐0 → 0, L 1 → 1, L

→ ☐ ☐, R

Page 137: Turing Machines - Stanford Universityweb.stanford.edu/class/archive/cs/cs103/cs103.1198...the coming years An important theme is not simply proving more theorems, but achieving automation

Checkfor 0

Go toend

Checkfor 0

Go tostart

Clear a1

Clear a1

Go tostart

Go toend

start

1… …

0 → , R☐ 0 → 0, R 1 → 1, R

→ ☐ ☐, L

1 → , L☐0 → 0, L 1 → 1, L

→ ☐ ☐, R

Page 138: Turing Machines - Stanford Universityweb.stanford.edu/class/archive/cs/cs103/cs103.1198...the coming years An important theme is not simply proving more theorems, but achieving automation

Clear a1

Go toend

Checkfor 0

Go toend

Checkfor 0

Go tostart

Clear a1

Go tostart

start

1… …

0 → , R☐ 0 → 0, R 1 → 1, R

→ ☐ ☐, L

1 → , L☐0 → 0, L 1 → 1, L

→ ☐ ☐, R

Page 139: Turing Machines - Stanford Universityweb.stanford.edu/class/archive/cs/cs103/cs103.1198...the coming years An important theme is not simply proving more theorems, but achieving automation

Clear a1

Go tostart

Clear a1

Go toend

Checkfor 0

Go toend

Checkfor 0

Go tostart

start

… …

0 → , R☐ 0 → 0, R 1 → 1, R

→ ☐ ☐, L

1 → , L☐0 → 0, L 1 → 1, L

→ ☐ ☐, R

Page 140: Turing Machines - Stanford Universityweb.stanford.edu/class/archive/cs/cs103/cs103.1198...the coming years An important theme is not simply proving more theorems, but achieving automation

Checkfor 0

Go tostart

Clear a1

Go tostart

Clear a1

Go toend

Checkfor 0

Go toend

start

… …

0 → , R☐ 0 → 0, R 1 → 1, R

→ ☐ ☐, L

1 → , L☐0 → 0, L 1 → 1, L

→ ☐ ☐, R

Page 141: Turing Machines - Stanford Universityweb.stanford.edu/class/archive/cs/cs103/cs103.1198...the coming years An important theme is not simply proving more theorems, but achieving automation

Checkfor 0

Go tostart

Clear a1

Go tostart

Clear a1

Go toend

Checkfor 0

Go toend

start

… …

0 → , R☐ 0 → 0, R 1 → 1, R

→ ☐ ☐, L

1 → , L☐0 → 0, L 1 → 1, L

→ ☐ ☐, R

qacc

qacc

→ ☐ ☐, R

Page 142: Turing Machines - Stanford Universityweb.stanford.edu/class/archive/cs/cs103/cs103.1198...the coming years An important theme is not simply proving more theorems, but achieving automation

Checkfor 0

Checkfor 0

Go tostart

Clear a1

Go tostart

Clear a1

Go toend

Go toend

start

… …

0 → , R☐ 0 → 0, R 1 → 1, R

→ ☐ ☐, L

1 → , L☐0 → 0, L 1 → 1, L

→ ☐ ☐, R

qacc

qacc

→ ☐ ☐, R

Page 143: Turing Machines - Stanford Universityweb.stanford.edu/class/archive/cs/cs103/cs103.1198...the coming years An important theme is not simply proving more theorems, but achieving automation

Checkfor 0

Checkfor 0

Go tostart

Clear a1

Go tostart

Clear a1

Go toend

Go toend

start

… …

0 → , R☐ 0 → 0, R 1 → 1, R

→ ☐ ☐, L

1 → , L☐0 → 0, L 1 → 1, L

→ ☐ ☐, R

qacc

qacc

→ ☐ ☐, R

Page 144: Turing Machines - Stanford Universityweb.stanford.edu/class/archive/cs/cs103/cs103.1198...the coming years An important theme is not simply proving more theorems, but achieving automation

Checkfor 0

Checkfor 0

Go tostart

Clear a1

Go tostart

Clear a1

Go toend

Go toend

start

0 → , R☐ 0 → 0, R 1 → 1, R

→ ☐ ☐, L

1 → , L☐0 → 0, L 1 → 1, L

→ ☐ ☐, R

qacc

qacc

→ ☐ ☐, R

Page 145: Turing Machines - Stanford Universityweb.stanford.edu/class/archive/cs/cs103/cs103.1198...the coming years An important theme is not simply proving more theorems, but achieving automation

Checkfor 0

Checkfor 0

Go tostart

Clear a1

Go tostart

Clear a1

Go toend

Go toend

start

0 0 1 1 1… …

0 → , R☐ 0 → 0, R 1 → 1, R

→ ☐ ☐, L

1 → , L☐0 → 0, L 1 → 1, L

→ ☐ ☐, R

qacc

qacc

→ ☐ ☐, R

Page 146: Turing Machines - Stanford Universityweb.stanford.edu/class/archive/cs/cs103/cs103.1198...the coming years An important theme is not simply proving more theorems, but achieving automation

Checkfor 0

Checkfor 0

Go tostart

Clear a1

Go tostart

Clear a1

Go toend

Go toend

start

0 0 1 1 1… …

0 → , R☐ 0 → 0, R 1 → 1, R

→ ☐ ☐, L

1 → , L☐0 → 0, L 1 → 1, L

→ ☐ ☐, R

qacc

qacc

→ ☐ ☐, R

Page 147: Turing Machines - Stanford Universityweb.stanford.edu/class/archive/cs/cs103/cs103.1198...the coming years An important theme is not simply proving more theorems, but achieving automation

Checkfor 0

Go toend

Checkfor 0

Go tostart

Clear a1

Go tostart

Clear a1

Go toend

start

0 1 1 1… …

0 → , R☐ 0 → 0, R 1 → 1, R

→ ☐ ☐, L

1 → , L☐0 → 0, L 1 → 1, L

→ ☐ ☐, R

qacc

qacc

→ ☐ ☐, R

Page 148: Turing Machines - Stanford Universityweb.stanford.edu/class/archive/cs/cs103/cs103.1198...the coming years An important theme is not simply proving more theorems, but achieving automation

Checkfor 0

Go toend

Checkfor 0

Go tostart

Clear a1

Go tostart

Clear a1

Go toend

start

0 1 1 1… …

0 → , R☐ 0 → 0, R 1 → 1, R

→ ☐ ☐, L

1 → , L☐0 → 0, L 1 → 1, L

→ ☐ ☐, R

qacc

qacc

→ ☐ ☐, R

Page 149: Turing Machines - Stanford Universityweb.stanford.edu/class/archive/cs/cs103/cs103.1198...the coming years An important theme is not simply proving more theorems, but achieving automation

Checkfor 0

Go toend

Checkfor 0

Go tostart

Clear a1

Go tostart

Clear a1

Go toend

start

0 1 1 1… …

0 → , R☐ 0 → 0, R 1 → 1, R

→ ☐ ☐, L

1 → , L☐0 → 0, L 1 → 1, L

→ ☐ ☐, R

qacc

qacc

→ ☐ ☐, R

Page 150: Turing Machines - Stanford Universityweb.stanford.edu/class/archive/cs/cs103/cs103.1198...the coming years An important theme is not simply proving more theorems, but achieving automation

Checkfor 0

Go toend

Checkfor 0

Go tostart

Clear a1

Go tostart

Clear a1

Go toend

start

0 1 1 1… …

0 → , R☐ 0 → 0, R 1 → 1, R

→ ☐ ☐, L

1 → , L☐0 → 0, L 1 → 1, L

→ ☐ ☐, R

qacc

qacc

→ ☐ ☐, R

Page 151: Turing Machines - Stanford Universityweb.stanford.edu/class/archive/cs/cs103/cs103.1198...the coming years An important theme is not simply proving more theorems, but achieving automation

Checkfor 0

Go toend

Checkfor 0

Go tostart

Clear a1

Go tostart

Clear a1

Go toend

start

0 1 1 1… …

0 → , R☐ 0 → 0, R 1 → 1, R

→ ☐ ☐, L

1 → , L☐0 → 0, L 1 → 1, L

→ ☐ ☐, R

qacc

qacc

→ ☐ ☐, R

Page 152: Turing Machines - Stanford Universityweb.stanford.edu/class/archive/cs/cs103/cs103.1198...the coming years An important theme is not simply proving more theorems, but achieving automation

Clear a1

Go toend

Checkfor 0

Go toend

Checkfor 0

Go tostart

Clear a1

Go tostart

start

0 1 1 1… …

0 → , R☐ 0 → 0, R 1 → 1, R

→ ☐ ☐, L

1 → , L☐0 → 0, L 1 → 1, L

→ ☐ ☐, R

qacc

qacc

→ ☐ ☐, R

Page 153: Turing Machines - Stanford Universityweb.stanford.edu/class/archive/cs/cs103/cs103.1198...the coming years An important theme is not simply proving more theorems, but achieving automation

Clear a1

Go tostart

Clear a1

Go toend

Checkfor 0

Go toend

Checkfor 0

Go tostart

start

0 1 1… …

0 → , R☐ 0 → 0, R 1 → 1, R

→ ☐ ☐, L

1 → , L☐0 → 0, L 1 → 1, L

→ ☐ ☐, R

qacc

qacc

→ ☐ ☐, R

Page 154: Turing Machines - Stanford Universityweb.stanford.edu/class/archive/cs/cs103/cs103.1198...the coming years An important theme is not simply proving more theorems, but achieving automation

Clear a1

Go tostart

Clear a1

Go toend

Checkfor 0

Go toend

Checkfor 0

Go tostart

start

0 1 1… …

0 → , R☐ 0 → 0, R 1 → 1, R

→ ☐ ☐, L

1 → , L☐0 → 0, L 1 → 1, L

→ ☐ ☐, R

qacc

qacc

→ ☐ ☐, R

Page 155: Turing Machines - Stanford Universityweb.stanford.edu/class/archive/cs/cs103/cs103.1198...the coming years An important theme is not simply proving more theorems, but achieving automation

Clear a1

Go tostart

Clear a1

Go toend

Checkfor 0

Go toend

Checkfor 0

Go tostart

start

0 1 1… …

0 → , R☐ 0 → 0, R 1 → 1, R

→ ☐ ☐, L

1 → , L☐0 → 0, L 1 → 1, L

→ ☐ ☐, R

qacc

qacc

→ ☐ ☐, R

Page 156: Turing Machines - Stanford Universityweb.stanford.edu/class/archive/cs/cs103/cs103.1198...the coming years An important theme is not simply proving more theorems, but achieving automation

Clear a1

Go tostart

Clear a1

Go toend

Checkfor 0

Go toend

Checkfor 0

Go tostart

start

0 1 1… …

0 → , R☐ 0 → 0, R 1 → 1, R

→ ☐ ☐, L

1 → , L☐0 → 0, L 1 → 1, L

→ ☐ ☐, R

qacc

qacc

→ ☐ ☐, R

Page 157: Turing Machines - Stanford Universityweb.stanford.edu/class/archive/cs/cs103/cs103.1198...the coming years An important theme is not simply proving more theorems, but achieving automation

Checkfor 0

Go tostart

Clear a1

Go tostart

Clear a1

Go toend

Checkfor 0

Go toend

start

0 1 1… …

0 → , R☐ 0 → 0, R 1 → 1, R

→ ☐ ☐, L

1 → , L☐0 → 0, L 1 → 1, L

→ ☐ ☐, R

qacc

qacc

→ ☐ ☐, R

Page 158: Turing Machines - Stanford Universityweb.stanford.edu/class/archive/cs/cs103/cs103.1198...the coming years An important theme is not simply proving more theorems, but achieving automation

Checkfor 0

Go toend

Checkfor 0

Go tostart

Clear a1

Go tostart

Clear a1

Go toend

start

1 1… …

0 → , R☐ 0 → 0, R 1 → 1, R

→ ☐ ☐, L

1 → , L☐0 → 0, L 1 → 1, L

→ ☐ ☐, R

qacc

qacc

→ ☐ ☐, R

Page 159: Turing Machines - Stanford Universityweb.stanford.edu/class/archive/cs/cs103/cs103.1198...the coming years An important theme is not simply proving more theorems, but achieving automation

Checkfor 0

Go toend

Checkfor 0

Go tostart

Clear a1

Go tostart

Clear a1

Go toend

start

1 1… …

0 → , R☐ 0 → 0, R 1 → 1, R

→ ☐ ☐, L

1 → , L☐0 → 0, L 1 → 1, L

→ ☐ ☐, R

qacc

qacc

→ ☐ ☐, R

Page 160: Turing Machines - Stanford Universityweb.stanford.edu/class/archive/cs/cs103/cs103.1198...the coming years An important theme is not simply proving more theorems, but achieving automation

Checkfor 0

Go toend

Checkfor 0

Go tostart

Clear a1

Go tostart

Clear a1

Go toend

start

1 1… …

0 → , R☐ 0 → 0, R 1 → 1, R

→ ☐ ☐, L

1 → , L☐0 → 0, L 1 → 1, L

→ ☐ ☐, R

qacc

qacc

→ ☐ ☐, R

Page 161: Turing Machines - Stanford Universityweb.stanford.edu/class/archive/cs/cs103/cs103.1198...the coming years An important theme is not simply proving more theorems, but achieving automation

Clear a1

Go toend

Checkfor 0

Go toend

Checkfor 0

Go tostart

Clear a1

Go tostart

start

1 1… …

0 → , R☐ 0 → 0, R 1 → 1, R

→ ☐ ☐, L

1 → , L☐0 → 0, L 1 → 1, L

→ ☐ ☐, R

qacc

qacc

→ ☐ ☐, R

Page 162: Turing Machines - Stanford Universityweb.stanford.edu/class/archive/cs/cs103/cs103.1198...the coming years An important theme is not simply proving more theorems, but achieving automation

Clear a1

Go tostart

Clear a1

Go toend

Checkfor 0

Go toend

Checkfor 0

Go tostart

start

1… …

0 → , R☐ 0 → 0, R 1 → 1, R

→ ☐ ☐, L

1 → , L☐0 → 0, L 1 → 1, L

→ ☐ ☐, R

qacc

qacc

→ ☐ ☐, R

Page 163: Turing Machines - Stanford Universityweb.stanford.edu/class/archive/cs/cs103/cs103.1198...the coming years An important theme is not simply proving more theorems, but achieving automation

Clear a1

Go tostart

Clear a1

Go toend

Checkfor 0

Go toend

Checkfor 0

Go tostart

start

1… …

0 → , R☐ 0 → 0, R 1 → 1, R

→ ☐ ☐, L

1 → , L☐0 → 0, L 1 → 1, L

→ ☐ ☐, R

qacc

qacc

→ ☐ ☐, R

Page 164: Turing Machines - Stanford Universityweb.stanford.edu/class/archive/cs/cs103/cs103.1198...the coming years An important theme is not simply proving more theorems, but achieving automation

Checkfor 0

Go tostart

Clear a1

Go tostart

Clear a1

Go toend

Checkfor 0

Go toend

start

1… …

0 → , R☐ 0 → 0, R 1 → 1, R

→ ☐ ☐, L

1 → , L☐0 → 0, L 1 → 1, L

→ ☐ ☐, R

qacc

qacc

→ ☐ ☐, R

Page 165: Turing Machines - Stanford Universityweb.stanford.edu/class/archive/cs/cs103/cs103.1198...the coming years An important theme is not simply proving more theorems, but achieving automation

Checkfor 0

Go tostart

Clear a1

Go tostart

Clear a1

Go toend

Checkfor 0

Go toend

start

1… …

0 → , R☐ 0 → 0, R 1 → 1, R

→ ☐ ☐, L

1 → , L☐0 → 0, L 1 → 1, L

→ ☐ ☐, R

qacc

qacc

→ ☐ ☐, R

qacc

qrej

1 → , R☐

Page 166: Turing Machines - Stanford Universityweb.stanford.edu/class/archive/cs/cs103/cs103.1198...the coming years An important theme is not simply proving more theorems, but achieving automation

Checkfor 0

Checkfor 0

Go tostart

Clear a1

Go tostart

Clear a1

Go toend

Go toend

start

… …

0 → , R☐ 0 → 0, R 1 → 1, R

→ ☐ ☐, L

1 → , L☐0 → 0, L 1 → 1, L

→ ☐ ☐, R

qacc

qacc

→ ☐ ☐, R

qacc

qrej

1 → , R☐

Page 167: Turing Machines - Stanford Universityweb.stanford.edu/class/archive/cs/cs103/cs103.1198...the coming years An important theme is not simply proving more theorems, but achieving automation

Checkfor 0

Checkfor 0

Go tostart

Clear a1

Go tostart

Clear a1

Go toend

Go toend

start

… …

0 → , R☐ 0 → 0, R 1 → 1, R

→ ☐ ☐, L

1 → , L☐0 → 0, L 1 → 1, L

→ ☐ ☐, R

qacc

qacc

→ ☐ ☐, R

qacc

qrej

1 → , R☐

Page 168: Turing Machines - Stanford Universityweb.stanford.edu/class/archive/cs/cs103/cs103.1198...the coming years An important theme is not simply proving more theorems, but achieving automation

Checkfor 0

Checkfor 0

Go tostart

Clear a1

Go tostart

Clear a1

Go toend

Go toend

start

0 → , R☐ 0 → 0, R 1 → 1, R

→ ☐ ☐, L

1 → , L☐0 → 0, L 1 → 1, L

→ ☐ ☐, R

qacc

qacc

→ ☐ ☐, R

qacc

qrej

1 → , R☐

Page 169: Turing Machines - Stanford Universityweb.stanford.edu/class/archive/cs/cs103/cs103.1198...the coming years An important theme is not simply proving more theorems, but achieving automation

Checkfor 0

Checkfor 0

Go tostart

Clear a1

Go tostart

Clear a1

Go toend

Go toend

start

0 0 1… …

0 → , R☐ 0 → 0, R 1 → 1, R

→ ☐ ☐, L

1 → , L☐0 → 0, L 1 → 1, L

→ ☐ ☐, R

qacc

qacc

→ ☐ ☐, R

qacc

qrej

1 → , R☐

Page 170: Turing Machines - Stanford Universityweb.stanford.edu/class/archive/cs/cs103/cs103.1198...the coming years An important theme is not simply proving more theorems, but achieving automation

Checkfor 0

Checkfor 0

Go tostart

Clear a1

Go tostart

Clear a1

Go toend

Go toend

start

0 0 1… …

0 → , R☐ 0 → 0, R 1 → 1, R

→ ☐ ☐, L

1 → , L☐0 → 0, L 1 → 1, L

→ ☐ ☐, R

qacc

qacc

→ ☐ ☐, R

qacc

qrej

1 → , R☐

Page 171: Turing Machines - Stanford Universityweb.stanford.edu/class/archive/cs/cs103/cs103.1198...the coming years An important theme is not simply proving more theorems, but achieving automation

Checkfor 0

Go toend

Checkfor 0

Go tostart

Clear a1

Go tostart

Clear a1

Go toend

start

0 1… …

0 → , R☐ 0 → 0, R 1 → 1, R

→ ☐ ☐, L

1 → , L☐0 → 0, L 1 → 1, L

→ ☐ ☐, R

qacc

qacc

→ ☐ ☐, R

qacc

qrej

1 → , R☐

Page 172: Turing Machines - Stanford Universityweb.stanford.edu/class/archive/cs/cs103/cs103.1198...the coming years An important theme is not simply proving more theorems, but achieving automation

Checkfor 0

Go toend

Checkfor 0

Go tostart

Clear a1

Go tostart

Clear a1

Go toend

start

0 1… …

0 → , R☐ 0 → 0, R 1 → 1, R

→ ☐ ☐, L

1 → , L☐0 → 0, L 1 → 1, L

→ ☐ ☐, R

qacc

qacc

→ ☐ ☐, R

qacc

qrej

1 → , R☐

Page 173: Turing Machines - Stanford Universityweb.stanford.edu/class/archive/cs/cs103/cs103.1198...the coming years An important theme is not simply proving more theorems, but achieving automation

Checkfor 0

Go toend

Checkfor 0

Go tostart

Clear a1

Go tostart

Clear a1

Go toend

start

0 1… …

0 → , R☐ 0 → 0, R 1 → 1, R

→ ☐ ☐, L

1 → , L☐0 → 0, L 1 → 1, L

→ ☐ ☐, R

qacc

qacc

→ ☐ ☐, R

qacc

qrej

1 → , R☐

Page 174: Turing Machines - Stanford Universityweb.stanford.edu/class/archive/cs/cs103/cs103.1198...the coming years An important theme is not simply proving more theorems, but achieving automation

Clear a1

Go toend

Checkfor 0

Go toend

Checkfor 0

Go tostart

Clear a1

Go tostart

start

0 1… …

0 → , R☐ 0 → 0, R 1 → 1, R

→ ☐ ☐, L

1 → , L☐0 → 0, L 1 → 1, L

→ ☐ ☐, R

qacc

qacc

→ ☐ ☐, R

qacc

qrej

1 → , R☐

Page 175: Turing Machines - Stanford Universityweb.stanford.edu/class/archive/cs/cs103/cs103.1198...the coming years An important theme is not simply proving more theorems, but achieving automation

Clear a1

Go tostart

Clear a1

Go toend

Checkfor 0

Go toend

Checkfor 0

Go tostart

start

0… …

0 → , R☐ 0 → 0, R 1 → 1, R

→ ☐ ☐, L

1 → , L☐0 → 0, L 1 → 1, L

→ ☐ ☐, R

qacc

qacc

→ ☐ ☐, R

qacc

qrej

1 → , R☐

Page 176: Turing Machines - Stanford Universityweb.stanford.edu/class/archive/cs/cs103/cs103.1198...the coming years An important theme is not simply proving more theorems, but achieving automation

Clear a1

Go tostart

Clear a1

Go toend

Checkfor 0

Go toend

Checkfor 0

Go tostart

start

0… …

0 → , R☐ 0 → 0, R 1 → 1, R

→ ☐ ☐, L

1 → , L☐0 → 0, L 1 → 1, L

→ ☐ ☐, R

qacc

qacc

→ ☐ ☐, R

qacc

qrej

1 → , R☐

Page 177: Turing Machines - Stanford Universityweb.stanford.edu/class/archive/cs/cs103/cs103.1198...the coming years An important theme is not simply proving more theorems, but achieving automation

Checkfor 0

Go tostart

Clear a1

Go tostart

Clear a1

Go toend

Checkfor 0

Go toend

start

0… …

0 → , R☐ 0 → 0, R 1 → 1, R

→ ☐ ☐, L

1 → , L☐0 → 0, L 1 → 1, L

→ ☐ ☐, R

qacc

qacc

→ ☐ ☐, R

qacc

qrej

1 → , R☐

Page 178: Turing Machines - Stanford Universityweb.stanford.edu/class/archive/cs/cs103/cs103.1198...the coming years An important theme is not simply proving more theorems, but achieving automation

Checkfor 0

Go toend

Checkfor 0

Go tostart

Clear a1

Go tostart

Clear a1

Go toend

start

… …

0 → , R☐ 0 → 0, R 1 → 1, R

→ ☐ ☐, L

1 → , L☐0 → 0, L 1 → 1, L

→ ☐ ☐, R

qacc

qacc

→ ☐ ☐, R

qacc

qrej

1 → , R☐

Page 179: Turing Machines - Stanford Universityweb.stanford.edu/class/archive/cs/cs103/cs103.1198...the coming years An important theme is not simply proving more theorems, but achieving automation

Clear a1

Go toend

Checkfor 0

Go toend

Checkfor 0

Go tostart

Clear a1

Go tostart

start

… …

0 → , R☐ 0 → 0, R 1 → 1, R

→ ☐ ☐, L

1 → , L☐0 → 0, L 1 → 1, L

→ ☐ ☐, R

qacc

qacc

→ ☐ ☐, R

qacc

qrej

1 → , R☐

Page 180: Turing Machines - Stanford Universityweb.stanford.edu/class/archive/cs/cs103/cs103.1198...the coming years An important theme is not simply proving more theorems, but achieving automation

Clear a1

Go toend

Checkfor 0

Go toend

Checkfor 0

Go tostart

Clear a1

Go tostart

start

… …

0 → , R☐ 0 → 0, R 1 → 1, R

→ ☐ ☐, L

1 → , L☐0 → 0, L 1 → 1, L

→ ☐ ☐, R

qacc

qacc

→ ☐ ☐, R

qacc

qrej

1 → , R☐

→ ☐ ☐, R

Page 181: Turing Machines - Stanford Universityweb.stanford.edu/class/archive/cs/cs103/cs103.1198...the coming years An important theme is not simply proving more theorems, but achieving automation

Clear a1

Clear a1

Go toend

Checkfor 0

Go toend

Checkfor 0

Go tostartGo tostart

start

… …

0 → , R☐ 0 → 0, R 1 → 1, R

→ ☐ ☐, L

1 → , L☐0 → 0, L 1 → 1, L

→ ☐ ☐, R

qacc

qacc

→ ☐ ☐, R

qacc

qrej

1 → , R☐

→ ☐ ☐, R

Page 182: Turing Machines - Stanford Universityweb.stanford.edu/class/archive/cs/cs103/cs103.1198...the coming years An important theme is not simply proving more theorems, but achieving automation

Clear a1

Clear a1

Go toend

Checkfor 0

Go toend

Checkfor 0

Go tostartGo tostart

start

… …

0 → , R☐ 0 → 0, R 1 → 1, R

→ ☐ ☐, L

1 → , L☐0 → 0, L 1 → 1, L

→ ☐ ☐, R

qacc

qacc

→ ☐ ☐, R

qacc

qrej

1 → , R☐

→ ☐ ☐, R

Page 183: Turing Machines - Stanford Universityweb.stanford.edu/class/archive/cs/cs103/cs103.1198...the coming years An important theme is not simply proving more theorems, but achieving automation

Clear a1

Clear a1

Go toend

Checkfor 0

Go toend

Checkfor 0

Go tostartGo tostart

start

0 → , R☐ 0 → 0, R 1 → 1, R

→ ☐ ☐, L

1 → , L☐0 → 0, L 1 → 1, L

→ ☐ ☐, R

qacc

qacc

→ ☐ ☐, R

qacc

qrej

1 → , R☐

→ ☐ ☐, R

Page 184: Turing Machines - Stanford Universityweb.stanford.edu/class/archive/cs/cs103/cs103.1198...the coming years An important theme is not simply proving more theorems, but achieving automation

Clear a1

Clear a1

Go toend

Checkfor 0

Go toend

Checkfor 0

Go tostartGo tostart

start

0 1 0… …

0 → , R☐ 0 → 0, R 1 → 1, R

→ ☐ ☐, L

1 → , L☐0 → 0, L 1 → 1, L

→ ☐ ☐, R

qacc

qacc

→ ☐ ☐, R

qacc

qrej

1 → , R☐

→ ☐ ☐, R

Page 185: Turing Machines - Stanford Universityweb.stanford.edu/class/archive/cs/cs103/cs103.1198...the coming years An important theme is not simply proving more theorems, but achieving automation

Checkfor 0

Clear a1

Clear a1

Go toend

Checkfor 0

Go toend

Go tostartGo tostart

start

0 1 0… …

0 → , R☐ 0 → 0, R 1 → 1, R

→ ☐ ☐, L

1 → , L☐0 → 0, L 1 → 1, L

→ ☐ ☐, R

qacc

qacc

→ ☐ ☐, R

qacc

qrej

1 → , R☐

→ ☐ ☐, R

Page 186: Turing Machines - Stanford Universityweb.stanford.edu/class/archive/cs/cs103/cs103.1198...the coming years An important theme is not simply proving more theorems, but achieving automation

Checkfor 0

Go toend

Checkfor 0

Clear a1

Clear a1

Go toend

Go tostartGo tostart

start

1 0… …

0 → , R☐ 0 → 0, R 1 → 1, R

→ ☐ ☐, L

1 → , L☐0 → 0, L 1 → 1, L

→ ☐ ☐, R

qacc

qacc

→ ☐ ☐, R

qacc

qrej

1 → , R☐

→ ☐ ☐, R

Page 187: Turing Machines - Stanford Universityweb.stanford.edu/class/archive/cs/cs103/cs103.1198...the coming years An important theme is not simply proving more theorems, but achieving automation

Checkfor 0

Go toend

Checkfor 0

Clear a1

Clear a1

Go toend

Go tostartGo tostart

start

1 0… …

0 → , R☐ 0 → 0, R 1 → 1, R

→ ☐ ☐, L

1 → , L☐0 → 0, L 1 → 1, L

→ ☐ ☐, R

qacc

qacc

→ ☐ ☐, R

qacc

qrej

1 → , R☐

→ ☐ ☐, R

Page 188: Turing Machines - Stanford Universityweb.stanford.edu/class/archive/cs/cs103/cs103.1198...the coming years An important theme is not simply proving more theorems, but achieving automation

Checkfor 0

Go toend

Checkfor 0

Clear a1

Clear a1

Go toend

Go tostartGo tostart

start

1 0… …

0 → , R☐ 0 → 0, R 1 → 1, R

→ ☐ ☐, L

1 → , L☐0 → 0, L 1 → 1, L

→ ☐ ☐, R

qacc

qacc

→ ☐ ☐, R

qacc

qrej

1 → , R☐

→ ☐ ☐, R

Page 189: Turing Machines - Stanford Universityweb.stanford.edu/class/archive/cs/cs103/cs103.1198...the coming years An important theme is not simply proving more theorems, but achieving automation

Clear a1

Go toend

Checkfor 0

Go toend

Checkfor 0

Clear a1

Go tostartGo tostart

start

1 0… …

0 → , R☐ 0 → 0, R 1 → 1, R

→ ☐ ☐, L

1 → , L☐0 → 0, L 1 → 1, L

→ ☐ ☐, R

qacc

qacc

→ ☐ ☐, R

qacc

qrej

1 → , R☐

→ ☐ ☐, R

Page 190: Turing Machines - Stanford Universityweb.stanford.edu/class/archive/cs/cs103/cs103.1198...the coming years An important theme is not simply proving more theorems, but achieving automation

Clear a1

Go toend

Checkfor 0

Go toend

Checkfor 0

Clear a1

Go tostartGo tostart

start

1 0… …

0 → , R☐ 0 → 0, R 1 → 1, R

→ ☐ ☐, L

1 → , L☐0 → 0, L 1 → 1, L

→ ☐ ☐, R

qacc

qacc

→ ☐ ☐, R

qacc

qrej

1 → , R☐

→ ☐ ☐, R0 → 0, R

Page 191: Turing Machines - Stanford Universityweb.stanford.edu/class/archive/cs/cs103/cs103.1198...the coming years An important theme is not simply proving more theorems, but achieving automation

Clear a1

Clear a1

Go toend

Checkfor 0

Go toend

Checkfor 0

Go tostartGo tostart

start

1 0… …

0 → , R☐ 0 → 0, R 1 → 1, R

→ ☐ ☐, L

1 → , L☐0 → 0, L 1 → 1, L

→ ☐ ☐, R

qacc

qacc

→ ☐ ☐, R

qacc

qrej

1 → , R☐

→ ☐ ☐, R0 → 0, R

Page 192: Turing Machines - Stanford Universityweb.stanford.edu/class/archive/cs/cs103/cs103.1198...the coming years An important theme is not simply proving more theorems, but achieving automation

Clear a1

Clear a1

Go toend

Checkfor 0

Go toend

Checkfor 0

Go tostartGo tostart

start

1 0… …

0 → , R☐ 0 → 0, R 1 → 1, R

→ ☐ ☐, L

1 → , L☐0 → 0, L 1 → 1, L

→ ☐ ☐, R

qacc

qacc

→ ☐ ☐, R

qacc

qrej

1 → , R☐

→ ☐ ☐, R0 → 0, R

Page 193: Turing Machines - Stanford Universityweb.stanford.edu/class/archive/cs/cs103/cs103.1198...the coming years An important theme is not simply proving more theorems, but achieving automation

Clear a1

Clear a1

Go toend

Checkfor 0

Go toend

Checkfor 0

Go tostartGo tostart

start

0 → , R☐ 0 → 0, R 1 → 1, R

→ ☐ ☐, L

1 → , L☐0 → 0, L 1 → 1, L

→ ☐ ☐, R

qacc

qacc

→ ☐ ☐, R

qacc

qrej

1 → , R☐

→ ☐ ☐, R0 → 0, R

Page 194: Turing Machines - Stanford Universityweb.stanford.edu/class/archive/cs/cs103/cs103.1198...the coming years An important theme is not simply proving more theorems, but achieving automation

Clear a1

Clear a1

Go toend

Checkfor 0

Go toend

Checkfor 0

Go tostartGo tostart

start

0 → , R☐ 0 → 0, R 1 → 1, R

→ ☐ ☐, L

1 → , L☐0 → 0, L 1 → 1, L

→ ☐ ☐, R

qacc

qacc

→ ☐ ☐, R

Page 195: Turing Machines - Stanford Universityweb.stanford.edu/class/archive/cs/cs103/cs103.1198...the coming years An important theme is not simply proving more theorems, but achieving automation

Time-Out for Announcements!

Page 196: Turing Machines - Stanford Universityweb.stanford.edu/class/archive/cs/cs103/cs103.1198...the coming years An important theme is not simply proving more theorems, but achieving automation

Problem Sets

● Problem Set Five was due at 3:00PM today.

● Problem Set Six goes out today. It’s due next Friday at 3:00PM.

● Looking ahead, the fnal assignment in this course, Problem Set Seven, will go out next Friday and be due on the last day of class.

● No late days or late submissions allowed on this one, so PS6 is the last assignment you may use your late days on.

● This last assignment will be shorter and will also serve as a review of all the topics we’ve covered in the course.

Page 197: Turing Machines - Stanford Universityweb.stanford.edu/class/archive/cs/cs103/cs103.1198...the coming years An important theme is not simply proving more theorems, but achieving automation

Final Exam

● As a reminder, the fnal exam for CS103 will be on Friday August 16th from 7-10 PM.

● We will release some practice fnal exams early next week.

● We’re planning to have a sit-down practice fnal on Wednesday August 1Tth right after class from 5:30-8:30 PM. Location TBD.

● The mock exam from this practice session will also be released online if you can’t make it in person.

Page 198: Turing Machines - Stanford Universityweb.stanford.edu/class/archive/cs/cs103/cs103.1198...the coming years An important theme is not simply proving more theorems, but achieving automation

Another TM Design

● We've designed a TM for {0n1n | n ∈ ℕ}.

● Consider this language over Σ = {0, 1}:

L = { w ∈ Σ* | w has the same number of 0s and 1s }

● This language is also not regular, but it is context-free.

● How might we design a TM for it?

Page 199: Turing Machines - Stanford Universityweb.stanford.edu/class/archive/cs/cs103/cs103.1198...the coming years An important theme is not simply proving more theorems, but achieving automation

0 0 0 1 1 1 0… …1

A Caveat

Page 200: Turing Machines - Stanford Universityweb.stanford.edu/class/archive/cs/cs103/cs103.1198...the coming years An important theme is not simply proving more theorems, but achieving automation

0 0 1 1 1 0… …1

A Caveat

Page 201: Turing Machines - Stanford Universityweb.stanford.edu/class/archive/cs/cs103/cs103.1198...the coming years An important theme is not simply proving more theorems, but achieving automation

0 0 1 1 1 0… …1

A Caveat

Page 202: Turing Machines - Stanford Universityweb.stanford.edu/class/archive/cs/cs103/cs103.1198...the coming years An important theme is not simply proving more theorems, but achieving automation

0 0 1 1 1 0… …1

A Caveat

Page 203: Turing Machines - Stanford Universityweb.stanford.edu/class/archive/cs/cs103/cs103.1198...the coming years An important theme is not simply proving more theorems, but achieving automation

0 0 1 1 0… …1

A Caveat

Page 204: Turing Machines - Stanford Universityweb.stanford.edu/class/archive/cs/cs103/cs103.1198...the coming years An important theme is not simply proving more theorems, but achieving automation

0 0 1 1 0… …1

A Caveat

Page 205: Turing Machines - Stanford Universityweb.stanford.edu/class/archive/cs/cs103/cs103.1198...the coming years An important theme is not simply proving more theorems, but achieving automation

0 0 1 1 0… …1

A Caveat

Page 206: Turing Machines - Stanford Universityweb.stanford.edu/class/archive/cs/cs103/cs103.1198...the coming years An important theme is not simply proving more theorems, but achieving automation

0 0 1 1 0… …1

A Caveat

Page 207: Turing Machines - Stanford Universityweb.stanford.edu/class/archive/cs/cs103/cs103.1198...the coming years An important theme is not simply proving more theorems, but achieving automation

0 1 1 0… …1

A Caveat

Page 208: Turing Machines - Stanford Universityweb.stanford.edu/class/archive/cs/cs103/cs103.1198...the coming years An important theme is not simply proving more theorems, but achieving automation

0 1 1 0… …1

A Caveat

Page 209: Turing Machines - Stanford Universityweb.stanford.edu/class/archive/cs/cs103/cs103.1198...the coming years An important theme is not simply proving more theorems, but achieving automation

0 1 1 0… …1

A Caveat

How do we know that this blank isn't one of

the infnitely many blanks after our input

string?

How do we know that this blank isn't one of

the infnitely many blanks after our input

string?

Page 210: Turing Machines - Stanford Universityweb.stanford.edu/class/archive/cs/cs103/cs103.1198...the coming years An important theme is not simply proving more theorems, but achieving automation

0 1 1 0… …1

A Caveat

Page 211: Turing Machines - Stanford Universityweb.stanford.edu/class/archive/cs/cs103/cs103.1198...the coming years An important theme is not simply proving more theorems, but achieving automation

0 1 0… …1

A Caveat

Page 212: Turing Machines - Stanford Universityweb.stanford.edu/class/archive/cs/cs103/cs103.1198...the coming years An important theme is not simply proving more theorems, but achieving automation

0 1 0… …1

A Caveat

Page 213: Turing Machines - Stanford Universityweb.stanford.edu/class/archive/cs/cs103/cs103.1198...the coming years An important theme is not simply proving more theorems, but achieving automation

0 1 0… …1

A Caveat

Page 214: Turing Machines - Stanford Universityweb.stanford.edu/class/archive/cs/cs103/cs103.1198...the coming years An important theme is not simply proving more theorems, but achieving automation

0 1 0… …1

A Caveat

Page 215: Turing Machines - Stanford Universityweb.stanford.edu/class/archive/cs/cs103/cs103.1198...the coming years An important theme is not simply proving more theorems, but achieving automation

1 0… …1

A Caveat

Page 216: Turing Machines - Stanford Universityweb.stanford.edu/class/archive/cs/cs103/cs103.1198...the coming years An important theme is not simply proving more theorems, but achieving automation

1 0… …1

A Caveat

How do we know that this blank isn't one of

the infnitely many blanks after our input

string?

How do we know that this blank isn't one of

the infnitely many blanks after our input

string?

Page 217: Turing Machines - Stanford Universityweb.stanford.edu/class/archive/cs/cs103/cs103.1198...the coming years An important theme is not simply proving more theorems, but achieving automation

1 0… …1

A Caveat

Page 218: Turing Machines - Stanford Universityweb.stanford.edu/class/archive/cs/cs103/cs103.1198...the coming years An important theme is not simply proving more theorems, but achieving automation

1 0… …1

A Caveat

How do we know that this blank isn't one of

the infnitely many blanks after our input

string?

How do we know that this blank isn't one of

the infnitely many blanks after our input

string?

Page 219: Turing Machines - Stanford Universityweb.stanford.edu/class/archive/cs/cs103/cs103.1198...the coming years An important theme is not simply proving more theorems, but achieving automation

One Solution

0 0 0 1 1 1 0… …1

Page 220: Turing Machines - Stanford Universityweb.stanford.edu/class/archive/cs/cs103/cs103.1198...the coming years An important theme is not simply proving more theorems, but achieving automation

One Solution

× 0 0 1 1 1 0… …1

Page 221: Turing Machines - Stanford Universityweb.stanford.edu/class/archive/cs/cs103/cs103.1198...the coming years An important theme is not simply proving more theorems, but achieving automation

One Solution

× 0 0 1 1 1 0… …1

Page 222: Turing Machines - Stanford Universityweb.stanford.edu/class/archive/cs/cs103/cs103.1198...the coming years An important theme is not simply proving more theorems, but achieving automation

One Solution

× 0 0 1 1 1 0… …1

Page 223: Turing Machines - Stanford Universityweb.stanford.edu/class/archive/cs/cs103/cs103.1198...the coming years An important theme is not simply proving more theorems, but achieving automation

One Solution

× 0 0 × 1 1 0… …1

Page 224: Turing Machines - Stanford Universityweb.stanford.edu/class/archive/cs/cs103/cs103.1198...the coming years An important theme is not simply proving more theorems, but achieving automation

One Solution

× 0 0 × 1 1 0… …1

Page 225: Turing Machines - Stanford Universityweb.stanford.edu/class/archive/cs/cs103/cs103.1198...the coming years An important theme is not simply proving more theorems, but achieving automation

One Solution

× 0 0 × 1 1 0… …1

Page 226: Turing Machines - Stanford Universityweb.stanford.edu/class/archive/cs/cs103/cs103.1198...the coming years An important theme is not simply proving more theorems, but achieving automation

One Solution

× 0 0 × 1 1 0… …1

Page 227: Turing Machines - Stanford Universityweb.stanford.edu/class/archive/cs/cs103/cs103.1198...the coming years An important theme is not simply proving more theorems, but achieving automation

One Solution

× 0 0 × 1 1 0… …1

Page 228: Turing Machines - Stanford Universityweb.stanford.edu/class/archive/cs/cs103/cs103.1198...the coming years An important theme is not simply proving more theorems, but achieving automation

One Solution

× 0 0 × 1 1 0… …1

Page 229: Turing Machines - Stanford Universityweb.stanford.edu/class/archive/cs/cs103/cs103.1198...the coming years An important theme is not simply proving more theorems, but achieving automation

One Solution

× × 0 × 1 1 0… …1

Page 230: Turing Machines - Stanford Universityweb.stanford.edu/class/archive/cs/cs103/cs103.1198...the coming years An important theme is not simply proving more theorems, but achieving automation

One Solution

× × 0 × 1 1 0… …1

Page 231: Turing Machines - Stanford Universityweb.stanford.edu/class/archive/cs/cs103/cs103.1198...the coming years An important theme is not simply proving more theorems, but achieving automation

One Solution

× × 0 × 1 1 0… …1

Page 232: Turing Machines - Stanford Universityweb.stanford.edu/class/archive/cs/cs103/cs103.1198...the coming years An important theme is not simply proving more theorems, but achieving automation

One Solution

× × 0 × × 1 0… …1

Page 233: Turing Machines - Stanford Universityweb.stanford.edu/class/archive/cs/cs103/cs103.1198...the coming years An important theme is not simply proving more theorems, but achieving automation

One Solution

× × 0 × × 1 0… …1

Page 234: Turing Machines - Stanford Universityweb.stanford.edu/class/archive/cs/cs103/cs103.1198...the coming years An important theme is not simply proving more theorems, but achieving automation

One Solution

× × 0 × × 1 0… …1

Page 235: Turing Machines - Stanford Universityweb.stanford.edu/class/archive/cs/cs103/cs103.1198...the coming years An important theme is not simply proving more theorems, but achieving automation

One Solution

× × 0 × × 1 0… …1

Page 236: Turing Machines - Stanford Universityweb.stanford.edu/class/archive/cs/cs103/cs103.1198...the coming years An important theme is not simply proving more theorems, but achieving automation

One Solution

× × 0 × × 1 0… …1

Page 237: Turing Machines - Stanford Universityweb.stanford.edu/class/archive/cs/cs103/cs103.1198...the coming years An important theme is not simply proving more theorems, but achieving automation

One Solution

× × 0 × × 1 0… …1

Page 238: Turing Machines - Stanford Universityweb.stanford.edu/class/archive/cs/cs103/cs103.1198...the coming years An important theme is not simply proving more theorems, but achieving automation

One Solution

× × 0 × × 1 0… …1

Page 239: Turing Machines - Stanford Universityweb.stanford.edu/class/archive/cs/cs103/cs103.1198...the coming years An important theme is not simply proving more theorems, but achieving automation

One Solution

× × 0 × × 1 0… …1

Page 240: Turing Machines - Stanford Universityweb.stanford.edu/class/archive/cs/cs103/cs103.1198...the coming years An important theme is not simply proving more theorems, but achieving automation

One Solution

× × × × × 1 0… …1

Page 241: Turing Machines - Stanford Universityweb.stanford.edu/class/archive/cs/cs103/cs103.1198...the coming years An important theme is not simply proving more theorems, but achieving automation

One Solution

× × × × × 1 0… …1

Page 242: Turing Machines - Stanford Universityweb.stanford.edu/class/archive/cs/cs103/cs103.1198...the coming years An important theme is not simply proving more theorems, but achieving automation

One Solution

× × × × × 1 0… …1

Page 243: Turing Machines - Stanford Universityweb.stanford.edu/class/archive/cs/cs103/cs103.1198...the coming years An important theme is not simply proving more theorems, but achieving automation

One Solution

× × × × × × 0… …1

Page 244: Turing Machines - Stanford Universityweb.stanford.edu/class/archive/cs/cs103/cs103.1198...the coming years An important theme is not simply proving more theorems, but achieving automation

One Solution

× × × × × × 0… …1

Page 245: Turing Machines - Stanford Universityweb.stanford.edu/class/archive/cs/cs103/cs103.1198...the coming years An important theme is not simply proving more theorems, but achieving automation

start

00 0 1 1 1 0… …1

Page 246: Turing Machines - Stanford Universityweb.stanford.edu/class/archive/cs/cs103/cs103.1198...the coming years An important theme is not simply proving more theorems, but achieving automation

start

00 0 1 1 1 0… …1

Page 247: Turing Machines - Stanford Universityweb.stanford.edu/class/archive/cs/cs103/cs103.1198...the coming years An important theme is not simply proving more theorems, but achieving automation

Find0/1

start

00 0 1 1 1 0… …1

Page 248: Turing Machines - Stanford Universityweb.stanford.edu/class/archive/cs/cs103/cs103.1198...the coming years An important theme is not simply proving more theorems, but achieving automation

Find0/1

start

00 0 1 1 1 0… …1

0 → ×, R

Page 249: Turing Machines - Stanford Universityweb.stanford.edu/class/archive/cs/cs103/cs103.1198...the coming years An important theme is not simply proving more theorems, but achieving automation

Find0/1

start

0× 0 1 1 1 0… …1

0 → ×, R

Page 250: Turing Machines - Stanford Universityweb.stanford.edu/class/archive/cs/cs103/cs103.1198...the coming years An important theme is not simply proving more theorems, but achieving automation

Find0/1

start

0× 0 1 1 1 0… …1

Find1

0 → ×, R

Page 251: Turing Machines - Stanford Universityweb.stanford.edu/class/archive/cs/cs103/cs103.1198...the coming years An important theme is not simply proving more theorems, but achieving automation

Find0/1

start

0× 0 1 1 1 0… …1

Find1

0 → ×, R

0 → 0, R

Page 252: Turing Machines - Stanford Universityweb.stanford.edu/class/archive/cs/cs103/cs103.1198...the coming years An important theme is not simply proving more theorems, but achieving automation

Find0/1

start

0× 0 1 1 1 0… …1

Find1

0 → ×, R

0 → 0, R

Page 253: Turing Machines - Stanford Universityweb.stanford.edu/class/archive/cs/cs103/cs103.1198...the coming years An important theme is not simply proving more theorems, but achieving automation

Find0/1

start

0× 0 1 1 1 0… …1

Find1

0 → ×, R

0 → 0, R

1 → ×, L

Page 254: Turing Machines - Stanford Universityweb.stanford.edu/class/archive/cs/cs103/cs103.1198...the coming years An important theme is not simply proving more theorems, but achieving automation

Find0/1

start

0× 0 × 1 1 0… …1

Find1

0 → ×, R

0 → 0, R

1 → ×, L

Page 255: Turing Machines - Stanford Universityweb.stanford.edu/class/archive/cs/cs103/cs103.1198...the coming years An important theme is not simply proving more theorems, but achieving automation

Find0/1

start

0× 0 × 1 1 0… …1

Find1

0 → ×, R

0 → 0, R

Gohome

1 → ×, L

Page 256: Turing Machines - Stanford Universityweb.stanford.edu/class/archive/cs/cs103/cs103.1198...the coming years An important theme is not simply proving more theorems, but achieving automation

Find0/1

start

0× 0 × 1 1 0… …1

Find1

0 → ×, R

0 → 0, R

Gohome

1 → ×, L

0 → 0, L

1 → 1, L

× → ×, L

Page 257: Turing Machines - Stanford Universityweb.stanford.edu/class/archive/cs/cs103/cs103.1198...the coming years An important theme is not simply proving more theorems, but achieving automation

Find0/1

start

0× 0 × 1 1 0… …1

Find1

0 → ×, R

0 → 0, R

Gohome

1 → ×, L

0 → 0, L

1 → 1, L

× → ×, L

Page 258: Turing Machines - Stanford Universityweb.stanford.edu/class/archive/cs/cs103/cs103.1198...the coming years An important theme is not simply proving more theorems, but achieving automation

Find0/1

start

0× 0 × 1 1 0… …1

Find1

0 → ×, R

0 → 0, R

Gohome

1 → ×, L

0 → 0, L

1 → 1, L

× → ×, L

Page 259: Turing Machines - Stanford Universityweb.stanford.edu/class/archive/cs/cs103/cs103.1198...the coming years An important theme is not simply proving more theorems, but achieving automation

Find0/1

start

0× 0 × 1 1 0… …1

Find1

0 → ×, R

0 → 0, R

Gohome

1 → ×, L

0 → 0, L

1 → 1, L

× → ×, L

→ ☐ ☐, R

Page 260: Turing Machines - Stanford Universityweb.stanford.edu/class/archive/cs/cs103/cs103.1198...the coming years An important theme is not simply proving more theorems, but achieving automation

Find0/1

start

0× 0 × 1 1 0… …1

Find1

0 → ×, R

0 → 0, R

Gohome

1 → ×, L

0 → 0, L

1 → 1, L

× → ×, L

→ ☐ ☐, R

Page 261: Turing Machines - Stanford Universityweb.stanford.edu/class/archive/cs/cs103/cs103.1198...the coming years An important theme is not simply proving more theorems, but achieving automation

Find0/1

start

0× 0 × 1 1 0… …1

Find1

0 → ×, R

0 → 0, R

Gohome

1 → ×, L

0 → 0, L

1 → 1, L

× → ×, L

→ ☐ ☐, R× → ×, R

Page 262: Turing Machines - Stanford Universityweb.stanford.edu/class/archive/cs/cs103/cs103.1198...the coming years An important theme is not simply proving more theorems, but achieving automation

Find0/1

start

0× 0 × 1 1 0… …1

Find1

0 → ×, R

0 → 0, R

Gohome

1 → ×, L

0 → 0, L

1 → 1, L

× → ×, L

→ ☐ ☐, R× → ×, R

Page 263: Turing Machines - Stanford Universityweb.stanford.edu/class/archive/cs/cs103/cs103.1198...the coming years An important theme is not simply proving more theorems, but achieving automation

Find0/1

start

0× × × 1 1 0… …1

Find1

0 → ×, R

0 → 0, R

Gohome

1 → ×, L

0 → 0, L

1 → 1, L

× → ×, L

→ ☐ ☐, R× → ×, R

Page 264: Turing Machines - Stanford Universityweb.stanford.edu/class/archive/cs/cs103/cs103.1198...the coming years An important theme is not simply proving more theorems, but achieving automation

Find0/1

start

0× × × 1 1 0… …1

Find1

0 → ×, R

0 → 0, R

× → ×, R

Gohome

1 → ×, L

0 → 0, L

1 → 1, L

× → ×, L

→ ☐ ☐, R× → ×, R

Page 265: Turing Machines - Stanford Universityweb.stanford.edu/class/archive/cs/cs103/cs103.1198...the coming years An important theme is not simply proving more theorems, but achieving automation

Find0/1

start

0× × × 1 1 0… …1

Find1

0 → ×, R

0 → 0, R

× → ×, R

Gohome

1 → ×, L

0 → 0, L

1 → 1, L

× → ×, L

→ ☐ ☐, R× → ×, R

Page 266: Turing Machines - Stanford Universityweb.stanford.edu/class/archive/cs/cs103/cs103.1198...the coming years An important theme is not simply proving more theorems, but achieving automation

Find0/1

start

0× × × × 1 0… …1

Find1

0 → ×, R

0 → 0, R

× → ×, R

Gohome

1 → ×, L

0 → 0, L

1 → 1, L

× → ×, L

→ ☐ ☐, R× → ×, R

Page 267: Turing Machines - Stanford Universityweb.stanford.edu/class/archive/cs/cs103/cs103.1198...the coming years An important theme is not simply proving more theorems, but achieving automation

Find0/1

start

0× × × × 1 0… …1

Find1

0 → ×, R

0 → 0, R

× → ×, R

Gohome

1 → ×, L

0 → 0, L

1 → 1, L

× → ×, L

→ ☐ ☐, R× → ×, R

Page 268: Turing Machines - Stanford Universityweb.stanford.edu/class/archive/cs/cs103/cs103.1198...the coming years An important theme is not simply proving more theorems, but achieving automation

Find0/1

start

0× × × × 1 0… …1

Find1

0 → ×, R

0 → 0, R

× → ×, R

Gohome

1 → ×, L

0 → 0, L

1 → 1, L

× → ×, L

→ ☐ ☐, R× → ×, R

Page 269: Turing Machines - Stanford Universityweb.stanford.edu/class/archive/cs/cs103/cs103.1198...the coming years An important theme is not simply proving more theorems, but achieving automation

Find0/1

start

0× × × × 1 0… …1

Find1

0 → ×, R

0 → 0, R

× → ×, R

Gohome

1 → ×, L

0 → 0, L

1 → 1, L

× → ×, L

→ ☐ ☐, R× → ×, R

Page 270: Turing Machines - Stanford Universityweb.stanford.edu/class/archive/cs/cs103/cs103.1198...the coming years An important theme is not simply proving more theorems, but achieving automation

Find0/1

start

0× × × × 1 0… …1

Find1

0 → ×, R

0 → 0, R

× → ×, R

Gohome

1 → ×, L

0 → 0, L

1 → 1, L

× → ×, L

→ ☐ ☐, R× → ×, R

Page 271: Turing Machines - Stanford Universityweb.stanford.edu/class/archive/cs/cs103/cs103.1198...the coming years An important theme is not simply proving more theorems, but achieving automation

Find0/1

start

0× × × × 1 0… …1

Find1

0 → ×, R

0 → 0, R

× → ×, R

Gohome

1 → ×, L

0 → 0, L

1 → 1, L

× → ×, L

→ ☐ ☐, R× → ×, R

Page 272: Turing Machines - Stanford Universityweb.stanford.edu/class/archive/cs/cs103/cs103.1198...the coming years An important theme is not simply proving more theorems, but achieving automation

Find0/1

start

0× × × × 1 0… …1

Find1

0 → ×, R

0 → 0, R

× → ×, R

Gohome

1 → ×, L

0 → 0, L

1 → 1, L

× → ×, L

→ ☐ ☐, R× → ×, R

Page 273: Turing Machines - Stanford Universityweb.stanford.edu/class/archive/cs/cs103/cs103.1198...the coming years An important theme is not simply proving more theorems, but achieving automation

Find0/1

start

0× × × × 1 0… …1

Find1

0 → ×, R

0 → 0, R

× → ×, R

Gohome

1 → ×, L

0 → 0, L

1 → 1, L

× → ×, L

→ ☐ ☐, R× → ×, R

Page 274: Turing Machines - Stanford Universityweb.stanford.edu/class/archive/cs/cs103/cs103.1198...the coming years An important theme is not simply proving more theorems, but achieving automation

Find0/1

start

0× × × × 1 0… …1

Find1

0 → ×, R

0 → 0, R

× → ×, R

Gohome

1 → ×, L

0 → 0, L

1 → 1, L

× → ×, L

→ ☐ ☐, R× → ×, R

Page 275: Turing Machines - Stanford Universityweb.stanford.edu/class/archive/cs/cs103/cs103.1198...the coming years An important theme is not simply proving more theorems, but achieving automation

Find0/1

start

0× × × × 1 0… …1

Find1

0 → ×, R

0 → 0, R

× → ×, R

Gohome

1 → ×, L

0 → 0, L

1 → 1, L

× → ×, L

→ ☐ ☐, R× → ×, R

1 → ×, R

Page 276: Turing Machines - Stanford Universityweb.stanford.edu/class/archive/cs/cs103/cs103.1198...the coming years An important theme is not simply proving more theorems, but achieving automation

Find0/1

start

0× × × × 1 0… …×

Find1

0 → ×, R

0 → 0, R

× → ×, R

Gohome

1 → ×, L

0 → 0, L

1 → 1, L

× → ×, L

→ ☐ ☐, R× → ×, R

1 → ×, R

Page 277: Turing Machines - Stanford Universityweb.stanford.edu/class/archive/cs/cs103/cs103.1198...the coming years An important theme is not simply proving more theorems, but achieving automation

Find0/1

start

0× × × × 1 0… …×

Find1

0 → ×, R

0 → 0, R

× → ×, R

Gohome

1 → ×, L

0 → 0, L

1 → 1, L

× → ×, L

→ ☐ ☐, R× → ×, R

Find0

1 → ×, R

Page 278: Turing Machines - Stanford Universityweb.stanford.edu/class/archive/cs/cs103/cs103.1198...the coming years An important theme is not simply proving more theorems, but achieving automation

Find0/1

start

0× × × × 1 0… …×

Find1

0 → ×, R

0 → 0, R

× → ×, R

Gohome

1 → ×, L

0 → 0, L

1 → 1, L

× → ×, L

→ ☐ ☐, R× → ×, R

Find0

1 → ×, R

1 → 1, R

× → ×, R

Page 279: Turing Machines - Stanford Universityweb.stanford.edu/class/archive/cs/cs103/cs103.1198...the coming years An important theme is not simply proving more theorems, but achieving automation

Find0/1

start

0× × × × 1 0… …×

Find1

0 → ×, R

0 → 0, R

× → ×, R

Gohome

1 → ×, L

0 → 0, L

1 → 1, L

× → ×, L

→ ☐ ☐, R× → ×, R

Find0

1 → ×, R

1 → 1, R

× → ×, R

Page 280: Turing Machines - Stanford Universityweb.stanford.edu/class/archive/cs/cs103/cs103.1198...the coming years An important theme is not simply proving more theorems, but achieving automation

Find0

Find0/1

Find1

Gohome

Find0/1

start

0× × × × 1 0… …×

Find1

0 → ×, R

0 → 0, R

× → ×, R

Gohome

1 → ×, L

0 → 0, L

1 → 1, L

× → ×, L

→ ☐ ☐, R× → ×, R

Find0

1 → ×, R

1 → 1, R

× → ×, R

0 → ×, L

Page 281: Turing Machines - Stanford Universityweb.stanford.edu/class/archive/cs/cs103/cs103.1198...the coming years An important theme is not simply proving more theorems, but achieving automation

Gohome

Find0Find0

Find0/1

Find1

Gohome

Find0/1

start

0× × × × 1 ×… …×

Find1

0 → ×, R

0 → 0, R

× → ×, R

1 → ×, L

0 → 0, L

1 → 1, L

× → ×, L

→ ☐ ☐, R× → ×, R

1 → ×, R

1 → 1, R

× → ×, R

0 → ×, L

Page 282: Turing Machines - Stanford Universityweb.stanford.edu/class/archive/cs/cs103/cs103.1198...the coming years An important theme is not simply proving more theorems, but achieving automation

Gohome

Find0Find0

Find0/1

Find1

Gohome

Find0/1

start

0× × × × 1 ×… …×

Find1

0 → ×, R

0 → 0, R

× → ×, R

1 → ×, L

0 → 0, L

1 → 1, L

× → ×, L

→ ☐ ☐, R× → ×, R

1 → ×, R

1 → 1, R

× → ×, R

0 → ×, L

Page 283: Turing Machines - Stanford Universityweb.stanford.edu/class/archive/cs/cs103/cs103.1198...the coming years An important theme is not simply proving more theorems, but achieving automation

Gohome

Find0Find0

Find0/1

Find1

Gohome

Find0/1

start

0× × × × 1 ×… …×

Find1

0 → ×, R

0 → 0, R

× → ×, R

1 → ×, L

0 → 0, L

1 → 1, L

× → ×, L

→ ☐ ☐, R× → ×, R

1 → ×, R

1 → 1, R

× → ×, R

0 → ×, L

Page 284: Turing Machines - Stanford Universityweb.stanford.edu/class/archive/cs/cs103/cs103.1198...the coming years An important theme is not simply proving more theorems, but achieving automation

Gohome

Find0Find0

Find0/1

Find1

Gohome

Find0/1

start

0× × × × 1 ×… …×

Find1

0 → ×, R

0 → 0, R

× → ×, R

1 → ×, L

0 → 0, L

1 → 1, L

× → ×, L

→ ☐ ☐, R× → ×, R

1 → ×, R

1 → 1, R

× → ×, R

0 → ×, L

Page 285: Turing Machines - Stanford Universityweb.stanford.edu/class/archive/cs/cs103/cs103.1198...the coming years An important theme is not simply proving more theorems, but achieving automation

Gohome

Find0Find0

Find0/1

Find1

Gohome

Find0/1

start

0× × × × 1 ×… …×

Find1

0 → ×, R

0 → 0, R

× → ×, R

1 → ×, L

0 → 0, L

1 → 1, L

× → ×, L

→ ☐ ☐, R× → ×, R

1 → ×, R

1 → 1, R

× → ×, R

0 → ×, L

Page 286: Turing Machines - Stanford Universityweb.stanford.edu/class/archive/cs/cs103/cs103.1198...the coming years An important theme is not simply proving more theorems, but achieving automation

Gohome

Find0Find0

Find0/1

Find1

Gohome

Find0/1

start

0× × × × 1 ×… …×

Find1

0 → ×, R

0 → 0, R

× → ×, R

1 → ×, L

0 → 0, L

1 → 1, L

× → ×, L

→ ☐ ☐, R× → ×, R

1 → ×, R

1 → 1, R

× → ×, R

0 → ×, L

Page 287: Turing Machines - Stanford Universityweb.stanford.edu/class/archive/cs/cs103/cs103.1198...the coming years An important theme is not simply proving more theorems, but achieving automation

Gohome

Find0Find0

Find0/1

Find1

Gohome

Find0/1

start

0× × × × 1 ×… …×

Find1

0 → ×, R

0 → 0, R

× → ×, R

1 → ×, L

0 → 0, L

1 → 1, L

× → ×, L

→ ☐ ☐, R× → ×, R

1 → ×, R

1 → 1, R

× → ×, R

0 → ×, L

Page 288: Turing Machines - Stanford Universityweb.stanford.edu/class/archive/cs/cs103/cs103.1198...the coming years An important theme is not simply proving more theorems, but achieving automation

Gohome

Find0/1

Gohome

Find0Find0

Find0/1

Find1

start

0× × × × 1 ×… …×

Find1

0 → ×, R

0 → 0, R

× → ×, R

1 → ×, L

0 → 0, L

1 → 1, L

× → ×, L

→ ☐ ☐, R× → ×, R

1 → ×, R

1 → 1, R

× → ×, R

0 → ×, L

Page 289: Turing Machines - Stanford Universityweb.stanford.edu/class/archive/cs/cs103/cs103.1198...the coming years An important theme is not simply proving more theorems, but achieving automation

Gohome

Find0/1

Gohome

Find0Find0

Find0/1

Find1

start

0× × × × 1 ×… …×

Find1

0 → ×, R

0 → 0, R

× → ×, R

1 → ×, L

0 → 0, L

1 → 1, L

× → ×, L

→ ☐ ☐, R× → ×, R

1 → ×, R

1 → 1, R

× → ×, R

0 → ×, L

Page 290: Turing Machines - Stanford Universityweb.stanford.edu/class/archive/cs/cs103/cs103.1198...the coming years An important theme is not simply proving more theorems, but achieving automation

Gohome

Find0/1

Gohome

Find0Find0

Find0/1

Find1

start

0× × × × 1 ×… …×

Find1

0 → ×, R

0 → 0, R

× → ×, R

1 → ×, L

0 → 0, L

1 → 1, L

× → ×, L

→ ☐ ☐, R× → ×, R

1 → ×, R

1 → 1, R

× → ×, R

0 → ×, L

Page 291: Turing Machines - Stanford Universityweb.stanford.edu/class/archive/cs/cs103/cs103.1198...the coming years An important theme is not simply proving more theorems, but achieving automation

Gohome

Find0/1

Gohome

Find0Find0

Find0/1

Find1

start

0× × × × 1 ×… …×

Find1

0 → ×, R

0 → 0, R

× → ×, R

1 → ×, L

0 → 0, L

1 → 1, L

× → ×, L

→ ☐ ☐, R× → ×, R

1 → ×, R

1 → 1, R

× → ×, R

0 → ×, L

Page 292: Turing Machines - Stanford Universityweb.stanford.edu/class/archive/cs/cs103/cs103.1198...the coming years An important theme is not simply proving more theorems, but achieving automation

Gohome

Find0/1

Gohome

Find0Find0

Find0/1

Find1

start

0× × × × 1 ×… …×

Find1

0 → ×, R

0 → 0, R

× → ×, R

1 → ×, L

0 → 0, L

1 → 1, L

× → ×, L

→ ☐ ☐, R× → ×, R

1 → ×, R

1 → 1, R

× → ×, R

0 → ×, L

Page 293: Turing Machines - Stanford Universityweb.stanford.edu/class/archive/cs/cs103/cs103.1198...the coming years An important theme is not simply proving more theorems, but achieving automation

Gohome

Find0/1

Gohome

Find0Find0

Find0/1

Find1

start

0× × × × 1 ×… …×

Find1

0 → ×, R

0 → 0, R

× → ×, R

1 → ×, L

0 → 0, L

1 → 1, L

× → ×, L

→ ☐ ☐, R× → ×, R

1 → ×, R

1 → 1, R

× → ×, R

0 → ×, L

Page 294: Turing Machines - Stanford Universityweb.stanford.edu/class/archive/cs/cs103/cs103.1198...the coming years An important theme is not simply proving more theorems, but achieving automation

Find0

Find0/1

Gohome

Find0/1

Gohome

Find0

Find1

start

0× × × × × ×… …×

Find1

0 → ×, R

0 → 0, R

× → ×, R

1 → ×, L

0 → 0, L

1 → 1, L

× → ×, L

→ ☐ ☐, R× → ×, R

1 → ×, R

1 → 1, R

× → ×, R

0 → ×, L

Page 295: Turing Machines - Stanford Universityweb.stanford.edu/class/archive/cs/cs103/cs103.1198...the coming years An important theme is not simply proving more theorems, but achieving automation

Find0

Find0/1

Gohome

Find0/1

Gohome

Find0

Find1

start

0× × × × × ×… …×

Find1

0 → ×, R

0 → 0, R

× → ×, R

1 → ×, L

0 → 0, L

1 → 1, L

× → ×, L

→ ☐ ☐, R× → ×, R

1 → ×, R

1 → 1, R

× → ×, R

0 → ×, L

Page 296: Turing Machines - Stanford Universityweb.stanford.edu/class/archive/cs/cs103/cs103.1198...the coming years An important theme is not simply proving more theorems, but achieving automation

Gohome

Find0Find0

Find0/1

Gohome

Find0/1

Find1

start

×× × × × × ×… …×

Find1

0 → ×, R

0 → 0, R

× → ×, R

1 → ×, L

0 → 0, L

1 → 1, L

× → ×, L

→ ☐ ☐, R× → ×, R

1 → ×, R

1 → 1, R

× → ×, R

0 → ×, L

Page 297: Turing Machines - Stanford Universityweb.stanford.edu/class/archive/cs/cs103/cs103.1198...the coming years An important theme is not simply proving more theorems, but achieving automation

Gohome

Find0Find0

Find0/1

Gohome

Find0/1

Find1

start

×× × × × × ×… …×

Find1

0 → ×, R

0 → 0, R

× → ×, R

1 → ×, L

0 → 0, L

1 → 1, L

× → ×, L

→ ☐ ☐, R× → ×, R

1 → ×, R

1 → 1, R

× → ×, R

0 → ×, L

Page 298: Turing Machines - Stanford Universityweb.stanford.edu/class/archive/cs/cs103/cs103.1198...the coming years An important theme is not simply proving more theorems, but achieving automation

Gohome

Find0Find0

Find0/1

Gohome

Find0/1

Find1

start

×× × × × × ×… …×

Find1

0 → ×, R

0 → 0, R

× → ×, R

1 → ×, L

0 → 0, L

1 → 1, L

× → ×, L

→ ☐ ☐, R× → ×, R

1 → ×, R

1 → 1, R

× → ×, R

0 → ×, L

Page 299: Turing Machines - Stanford Universityweb.stanford.edu/class/archive/cs/cs103/cs103.1198...the coming years An important theme is not simply proving more theorems, but achieving automation

Gohome

Find0Find0

Find0/1

Gohome

Find0/1

Find1

start

×× × × × × ×… …×

Find1

0 → ×, R

0 → 0, R

× → ×, R

1 → ×, L

0 → 0, L

1 → 1, L

× → ×, L

→ ☐ ☐, R× → ×, R

1 → ×, R

1 → 1, R

× → ×, R

0 → ×, L

Page 300: Turing Machines - Stanford Universityweb.stanford.edu/class/archive/cs/cs103/cs103.1198...the coming years An important theme is not simply proving more theorems, but achieving automation

Gohome

Find0Find0

Find0/1

Gohome

Find0/1

Find1

start

×× × × × × ×… …×

Find1

0 → ×, R

0 → 0, R

× → ×, R

1 → ×, L

0 → 0, L

1 → 1, L

× → ×, L

→ ☐ ☐, R× → ×, R

1 → ×, R

1 → 1, R

× → ×, R

0 → ×, L

Page 301: Turing Machines - Stanford Universityweb.stanford.edu/class/archive/cs/cs103/cs103.1198...the coming years An important theme is not simply proving more theorems, but achieving automation

Gohome

Find0Find0

Find0/1

Gohome

Find0/1

Find1

start

×× × × × × ×… …×

Find1

0 → ×, R

0 → 0, R

× → ×, R

1 → ×, L

0 → 0, L

1 → 1, L

× → ×, L

→ ☐ ☐, R× → ×, R

1 → ×, R

1 → 1, R

× → ×, R

0 → ×, L

Page 302: Turing Machines - Stanford Universityweb.stanford.edu/class/archive/cs/cs103/cs103.1198...the coming years An important theme is not simply proving more theorems, but achieving automation

Gohome

Find0Find0

Find0/1

Gohome

Find0/1

Find1

start

×× × × × × ×… …×

Find1

0 → ×, R

0 → 0, R

× → ×, R

1 → ×, L

0 → 0, L

1 → 1, L

× → ×, L

→ ☐ ☐, R× → ×, R

1 → ×, R

1 → 1, R

× → ×, R

0 → ×, L

Page 303: Turing Machines - Stanford Universityweb.stanford.edu/class/archive/cs/cs103/cs103.1198...the coming years An important theme is not simply proving more theorems, but achieving automation

Gohome

Find0Find0

Find0/1

Gohome

Find0/1

Find1

start

×× × × × × ×… …×

Find1

0 → ×, R

0 → 0, R

× → ×, R

1 → ×, L

0 → 0, L

1 → 1, L

× → ×, L

→ ☐ ☐, R× → ×, R

1 → ×, R

1 → 1, R

× → ×, R

0 → ×, L

Page 304: Turing Machines - Stanford Universityweb.stanford.edu/class/archive/cs/cs103/cs103.1198...the coming years An important theme is not simply proving more theorems, but achieving automation

Find0/1

Gohome

→ ☐ ☐, R Gohome

Find0Find0

Find0/1

Find1

start

×× × × × × ×… …×

Find1

0 → ×, R

0 → 0, R

× → ×, R

1 → ×, L

0 → 0, L

1 → 1, L

× → ×, L

× → ×, R

1 → ×, R

1 → 1, R

× → ×, R

0 → ×, L

Page 305: Turing Machines - Stanford Universityweb.stanford.edu/class/archive/cs/cs103/cs103.1198...the coming years An important theme is not simply proving more theorems, but achieving automation

Find0/1

Gohome

→ ☐ ☐, R Gohome

Find0Find0

Find0/1

Find1

start

×× × × × × ×… …×

Find1

0 → ×, R

0 → 0, R

× → ×, R

1 → ×, L

0 → 0, L

1 → 1, L

× → ×, L

× → ×, R

1 → ×, R

1 → 1, R

× → ×, R

0 → ×, L

Page 306: Turing Machines - Stanford Universityweb.stanford.edu/class/archive/cs/cs103/cs103.1198...the coming years An important theme is not simply proving more theorems, but achieving automation

Find0/1

Gohome

→ ☐ ☐, R Gohome

Find0Find0

Find0/1

Find1

start

×× × × × × ×… …×

Find1

0 → ×, R

0 → 0, R

× → ×, R

1 → ×, L

0 → 0, L

1 → 1, L

× → ×, L

× → ×, R

1 → ×, R

1 → 1, R

× → ×, R

0 → ×, L

Page 307: Turing Machines - Stanford Universityweb.stanford.edu/class/archive/cs/cs103/cs103.1198...the coming years An important theme is not simply proving more theorems, but achieving automation

Find0/1

Gohome

→ ☐ ☐, R Gohome

Find0Find0

Find0/1

Find1

start

×× × × × × ×… …×

Find1

0 → ×, R

0 → 0, R

× → ×, R

1 → ×, L

0 → 0, L

1 → 1, L

× → ×, L

× → ×, R

1 → ×, R

1 → 1, R

× → ×, R

0 → ×, L

Page 308: Turing Machines - Stanford Universityweb.stanford.edu/class/archive/cs/cs103/cs103.1198...the coming years An important theme is not simply proving more theorems, but achieving automation

Find0/1

Gohome

→ ☐ ☐, R Gohome

Find0Find0

Find0/1

Find1

start

×× × × × × ×… …×

Find1

0 → ×, R

0 → 0, R

× → ×, R

1 → ×, L

0 → 0, L

1 → 1, L

× → ×, L

× → ×, R

1 → ×, R

1 → 1, R

× → ×, R

0 → ×, L

Page 309: Turing Machines - Stanford Universityweb.stanford.edu/class/archive/cs/cs103/cs103.1198...the coming years An important theme is not simply proving more theorems, but achieving automation

Find0/1

Gohome

→ ☐ ☐, R Gohome

Find0Find0

Find0/1

Find1

start

×× × × × × ×… …×

Find1

0 → ×, R

0 → 0, R

× → ×, R

1 → ×, L

0 → 0, L

1 → 1, L

× → ×, L

× → ×, R

1 → ×, R

1 → 1, R

× → ×, R

0 → ×, L

Page 310: Turing Machines - Stanford Universityweb.stanford.edu/class/archive/cs/cs103/cs103.1198...the coming years An important theme is not simply proving more theorems, but achieving automation

Find0/1

Gohome

→ ☐ ☐, R Gohome

Find0Find0

Find0/1

Find1

start

×× × × × × ×… …×

Find1

0 → ×, R

0 → 0, R

× → ×, R

1 → ×, L

0 → 0, L

1 → 1, L

× → ×, L

× → ×, R

1 → ×, R

1 → 1, R

× → ×, R

0 → ×, L

Page 311: Turing Machines - Stanford Universityweb.stanford.edu/class/archive/cs/cs103/cs103.1198...the coming years An important theme is not simply proving more theorems, but achieving automation

Find0/1

Gohome

→ ☐ ☐, R Gohome

Find0Find0

Find0/1

Find1

start

×× × × × × ×… …×

Find1

0 → ×, R

0 → 0, R

× → ×, R

1 → ×, L

0 → 0, L

1 → 1, L

× → ×, L

× → ×, R

1 → ×, R

1 → 1, R

× → ×, R

0 → ×, L

Page 312: Turing Machines - Stanford Universityweb.stanford.edu/class/archive/cs/cs103/cs103.1198...the coming years An important theme is not simply proving more theorems, but achieving automation

Find0/1

Gohome

→ ☐ ☐, R Gohome

Find0Find0

Find0/1

Find1

start

×× × × × × ×… …×

Find1

0 → ×, R

0 → 0, R

× → ×, R

1 → ×, L

0 → 0, L

1 → 1, L

× → ×, L

× → ×, R

1 → ×, R

1 → 1, R

× → ×, R

0 → ×, L

Page 313: Turing Machines - Stanford Universityweb.stanford.edu/class/archive/cs/cs103/cs103.1198...the coming years An important theme is not simply proving more theorems, but achieving automation

Find0/1

Gohome

→ ☐ ☐, R Gohome

Find0Find0

Find0/1

Find1

start

×× × × × × ×… …×

Find1

0 → ×, R

0 → 0, R

× → ×, R

1 → ×, L

0 → 0, L

1 → 1, L

× → ×, L

× → ×, R

1 → ×, R

1 → 1, R

× → ×, R

0 → ×, L

Accept!

→ � �, R

Page 314: Turing Machines - Stanford Universityweb.stanford.edu/class/archive/cs/cs103/cs103.1198...the coming years An important theme is not simply proving more theorems, but achieving automation

Find0/1Find0/1

Gohome

→ ☐ ☐, R Gohome

Find0Find0

Find1

start

×× × × × × ×… …×

Find1

0 → ×, R

0 → 0, R

× → ×, R

1 → ×, L

0 → 0, L

1 → 1, L

× → ×, L

× → ×, R

1 → ×, R

1 → 1, R

× → ×, R

0 → ×, L

Accept!

→ � �, R

Page 315: Turing Machines - Stanford Universityweb.stanford.edu/class/archive/cs/cs103/cs103.1198...the coming years An important theme is not simply proving more theorems, but achieving automation

Find0/1Find0/1

Gohome

→ ☐ ☐, R Gohome

Find0Find0

Find1

start

×× × × × × ×… …×

Find1

0 → ×, R

0 → 0, R

× → ×, R

1 → ×, L

0 → 0, L

1 → 1, L

× → ×, L

× → ×, R

1 → ×, R

1 → 1, R

× → ×, R

0 → ×, L

Accept!

→ � �, R

Page 316: Turing Machines - Stanford Universityweb.stanford.edu/class/archive/cs/cs103/cs103.1198...the coming years An important theme is not simply proving more theorems, but achieving automation

Find0/1Find0/1

Gohome

→ ☐ ☐, R Gohome

Find0Find0

Find1

start

Find1

0 → ×, R

0 → 0, R

× → ×, R

1 → ×, L

0 → 0, L

1 → 1, L

× → ×, L

× → ×, R

1 → ×, R

1 → 1, R

× → ×, R

0 → ×, L

Accept!

→ � �, R

Page 317: Turing Machines - Stanford Universityweb.stanford.edu/class/archive/cs/cs103/cs103.1198...the coming years An important theme is not simply proving more theorems, but achieving automation

Find0/1Find0/1

Gohome

→ ☐ ☐, R Gohome

Find0Find0

Find1

start

Find1

0 → ×, R

0 → 0, R

× → ×, R

1 → ×, L

0 → 0, L

1 → 1, L

× → ×, L

× → ×, R

1 → ×, R

1 → 1, R

× → ×, R

0 → ×, L

Accept!

→ � �, R

Remember that all missing transitions

implicitly reject.

Remember that all missing transitions

implicitly reject.

Page 318: Turing Machines - Stanford Universityweb.stanford.edu/class/archive/cs/cs103/cs103.1198...the coming years An important theme is not simply proving more theorems, but achieving automation

Find0/1Find0/1

Gohome

→ ☐ ☐, R Gohome

Find0Find0

Find1

start

Find1

0 → ×, R

0 → 0, R

× → ×, R

1 → ×, L

0 → 0, L

1 → 1, L

× → ×, L

× → ×, R

1 → ×, R

1 → 1, R

× → ×, R

0 → ×, L

Accept!

→ � �, R

Page 319: Turing Machines - Stanford Universityweb.stanford.edu/class/archive/cs/cs103/cs103.1198...the coming years An important theme is not simply proving more theorems, but achieving automation

Constant Storage

● Sometimes, a TM needs to remember some additional information that can't be put on the tape.

● In this case, you can use similar techniques from DFAs and introduce extra states into the TM's fnite-state control.

● The fnite-state control can only remember one of fnitely many things, but that might be all that you need!

Page 320: Turing Machines - Stanford Universityweb.stanford.edu/class/archive/cs/cs103/cs103.1198...the coming years An important theme is not simply proving more theorems, but achieving automation

Another TM Design

● We just designed a TM for this language over Σ = {0, 1}:

L = { w ∈ Σ* | w has the same number of 0s and 1s }

● Let's do a quick review of how it worked.

Page 321: Turing Machines - Stanford Universityweb.stanford.edu/class/archive/cs/cs103/cs103.1198...the coming years An important theme is not simply proving more theorems, but achieving automation

0 0 0 1 1 1 0… …1

A Leap of Faith

Page 322: Turing Machines - Stanford Universityweb.stanford.edu/class/archive/cs/cs103/cs103.1198...the coming years An important theme is not simply proving more theorems, but achieving automation

0 0 1 1 1 0… …1

A Leap of Faith

Page 323: Turing Machines - Stanford Universityweb.stanford.edu/class/archive/cs/cs103/cs103.1198...the coming years An important theme is not simply proving more theorems, but achieving automation

0 0 1 1 1 0… …1

A Leap of Faith

Page 324: Turing Machines - Stanford Universityweb.stanford.edu/class/archive/cs/cs103/cs103.1198...the coming years An important theme is not simply proving more theorems, but achieving automation

0 0 1 1 1 0… …1

A Leap of Faith

Page 325: Turing Machines - Stanford Universityweb.stanford.edu/class/archive/cs/cs103/cs103.1198...the coming years An important theme is not simply proving more theorems, but achieving automation

0 0 1 1 0… …1

A Leap of Faith

Page 326: Turing Machines - Stanford Universityweb.stanford.edu/class/archive/cs/cs103/cs103.1198...the coming years An important theme is not simply proving more theorems, but achieving automation

0 0 1 1 0… …1

A Leap of Faith

Page 327: Turing Machines - Stanford Universityweb.stanford.edu/class/archive/cs/cs103/cs103.1198...the coming years An important theme is not simply proving more theorems, but achieving automation

0 0 1 1 0… …1

A Leap of Faith

Page 328: Turing Machines - Stanford Universityweb.stanford.edu/class/archive/cs/cs103/cs103.1198...the coming years An important theme is not simply proving more theorems, but achieving automation

0 0 1 1 0… …1

A Leap of Faith

Page 329: Turing Machines - Stanford Universityweb.stanford.edu/class/archive/cs/cs103/cs103.1198...the coming years An important theme is not simply proving more theorems, but achieving automation

0 1 1 0… …1

A Leap of Faith

Page 330: Turing Machines - Stanford Universityweb.stanford.edu/class/archive/cs/cs103/cs103.1198...the coming years An important theme is not simply proving more theorems, but achieving automation

0 1 1 0… …1

A Leap of Faith

Page 331: Turing Machines - Stanford Universityweb.stanford.edu/class/archive/cs/cs103/cs103.1198...the coming years An important theme is not simply proving more theorems, but achieving automation

0 1 1 0… …1

A Leap of Faith

How do we know that this blank isn't one of

the infnitely many blanks after our input

string?

How do we know that this blank isn't one of

the infnitely many blanks after our input

string?

Page 332: Turing Machines - Stanford Universityweb.stanford.edu/class/archive/cs/cs103/cs103.1198...the coming years An important theme is not simply proving more theorems, but achieving automation

The Solution

0 0 0 1 1 1 0… …1

Page 333: Turing Machines - Stanford Universityweb.stanford.edu/class/archive/cs/cs103/cs103.1198...the coming years An important theme is not simply proving more theorems, but achieving automation

The Solution

× 0 0 1 1 1 0… …1

Page 334: Turing Machines - Stanford Universityweb.stanford.edu/class/archive/cs/cs103/cs103.1198...the coming years An important theme is not simply proving more theorems, but achieving automation

The Solution

× 0 0 1 1 1 0… …1

Page 335: Turing Machines - Stanford Universityweb.stanford.edu/class/archive/cs/cs103/cs103.1198...the coming years An important theme is not simply proving more theorems, but achieving automation

The Solution

× 0 0 1 1 1 0… …1

Page 336: Turing Machines - Stanford Universityweb.stanford.edu/class/archive/cs/cs103/cs103.1198...the coming years An important theme is not simply proving more theorems, but achieving automation

The Solution

× 0 0 × 1 1 0… …1

Page 337: Turing Machines - Stanford Universityweb.stanford.edu/class/archive/cs/cs103/cs103.1198...the coming years An important theme is not simply proving more theorems, but achieving automation

The Solution

× 0 0 × 1 1 0… …1

Page 338: Turing Machines - Stanford Universityweb.stanford.edu/class/archive/cs/cs103/cs103.1198...the coming years An important theme is not simply proving more theorems, but achieving automation

The Solution

× 0 0 × 1 1 0… …1

Page 339: Turing Machines - Stanford Universityweb.stanford.edu/class/archive/cs/cs103/cs103.1198...the coming years An important theme is not simply proving more theorems, but achieving automation

The Solution

× 0 0 × 1 1 0… …1

Page 340: Turing Machines - Stanford Universityweb.stanford.edu/class/archive/cs/cs103/cs103.1198...the coming years An important theme is not simply proving more theorems, but achieving automation

The Solution

× 0 0 × 1 1 0… …1

Page 341: Turing Machines - Stanford Universityweb.stanford.edu/class/archive/cs/cs103/cs103.1198...the coming years An important theme is not simply proving more theorems, but achieving automation

The Solution

× 0 0 × 1 1 0… …1

Page 342: Turing Machines - Stanford Universityweb.stanford.edu/class/archive/cs/cs103/cs103.1198...the coming years An important theme is not simply proving more theorems, but achieving automation

The Solution

× × 0 × 1 1 0… …1

Page 343: Turing Machines - Stanford Universityweb.stanford.edu/class/archive/cs/cs103/cs103.1198...the coming years An important theme is not simply proving more theorems, but achieving automation

The Solution

× × 0 × 1 1 0… …1

Page 344: Turing Machines - Stanford Universityweb.stanford.edu/class/archive/cs/cs103/cs103.1198...the coming years An important theme is not simply proving more theorems, but achieving automation

The Solution

× × 0 × 1 1 0… …1

Page 345: Turing Machines - Stanford Universityweb.stanford.edu/class/archive/cs/cs103/cs103.1198...the coming years An important theme is not simply proving more theorems, but achieving automation

The Solution

× × 0 × × 1 0… …1

Page 346: Turing Machines - Stanford Universityweb.stanford.edu/class/archive/cs/cs103/cs103.1198...the coming years An important theme is not simply proving more theorems, but achieving automation

The Solution

× × 0 × × 1 0… …1

Page 347: Turing Machines - Stanford Universityweb.stanford.edu/class/archive/cs/cs103/cs103.1198...the coming years An important theme is not simply proving more theorems, but achieving automation

The Solution

× × 0 × × 1 0… …1

Page 348: Turing Machines - Stanford Universityweb.stanford.edu/class/archive/cs/cs103/cs103.1198...the coming years An important theme is not simply proving more theorems, but achieving automation

The Solution

× × 0 × × 1 0… …1

Page 349: Turing Machines - Stanford Universityweb.stanford.edu/class/archive/cs/cs103/cs103.1198...the coming years An important theme is not simply proving more theorems, but achieving automation

The Solution

× × 0 × × 1 0… …1

Page 350: Turing Machines - Stanford Universityweb.stanford.edu/class/archive/cs/cs103/cs103.1198...the coming years An important theme is not simply proving more theorems, but achieving automation

The Solution

× × 0 × × 1 0… …1

Page 351: Turing Machines - Stanford Universityweb.stanford.edu/class/archive/cs/cs103/cs103.1198...the coming years An important theme is not simply proving more theorems, but achieving automation

A Diferent Idea

Page 352: Turing Machines - Stanford Universityweb.stanford.edu/class/archive/cs/cs103/cs103.1198...the coming years An important theme is not simply proving more theorems, but achieving automation

0 0 0 1 1 1 0… …1

A Diferent Strategy

Page 353: Turing Machines - Stanford Universityweb.stanford.edu/class/archive/cs/cs103/cs103.1198...the coming years An important theme is not simply proving more theorems, but achieving automation

0 0 0 1 1 1 0… …1

A Diferent Strategy

Could we sort

the characters

of this string?

Could we sort

the characters

of this string?

Page 354: Turing Machines - Stanford Universityweb.stanford.edu/class/archive/cs/cs103/cs103.1198...the coming years An important theme is not simply proving more theorems, but achieving automation

0 0 0 1 1 1 0… …1

A Diferent Strategy

Observation 1: A string

of 0s and 1s is sorted

if it matches the

regex 0*1*.

Observation 1: A string

of 0s and 1s is sorted

if it matches the

regex 0*1*.

Page 355: Turing Machines - Stanford Universityweb.stanford.edu/class/archive/cs/cs103/cs103.1198...the coming years An important theme is not simply proving more theorems, but achieving automation

0 0 0 1 1 1 0… …1

A Diferent Strategy

Observation 1: A string

of 0s and 1s is sorted

if it matches the

regex 0*1*.

Observation 1: A string

of 0s and 1s is sorted

if it matches the

regex 0*1*.

Page 356: Turing Machines - Stanford Universityweb.stanford.edu/class/archive/cs/cs103/cs103.1198...the coming years An important theme is not simply proving more theorems, but achieving automation

0 0 0 1 1 1 0… …1

A Diferent Strategy

Observation 1: A string

of 0s and 1s is sorted

if it matches the

regex 0*1*.

Observation 1: A string

of 0s and 1s is sorted

if it matches the

regex 0*1*.

Page 357: Turing Machines - Stanford Universityweb.stanford.edu/class/archive/cs/cs103/cs103.1198...the coming years An important theme is not simply proving more theorems, but achieving automation

0 0 0 1 1 1 0… …1

A Diferent Strategy

Observation 1: A string

of 0s and 1s is sorted

if it matches the

regex 0*1*.

Observation 1: A string

of 0s and 1s is sorted

if it matches the

regex 0*1*.

Page 358: Turing Machines - Stanford Universityweb.stanford.edu/class/archive/cs/cs103/cs103.1198...the coming years An important theme is not simply proving more theorems, but achieving automation

0 0 0 1 1 1 0… …1

A Diferent Strategy

Observation 1: A string

of 0s and 1s is sorted

if it matches the

regex 0*1*.

Observation 1: A string

of 0s and 1s is sorted

if it matches the

regex 0*1*.

Page 359: Turing Machines - Stanford Universityweb.stanford.edu/class/archive/cs/cs103/cs103.1198...the coming years An important theme is not simply proving more theorems, but achieving automation

0 0 0 1 1 1 0… …1

A Diferent Strategy

Observation 1: A string

of 0s and 1s is sorted

if it matches the

regex 0*1*.

Observation 1: A string

of 0s and 1s is sorted

if it matches the

regex 0*1*.

Page 360: Turing Machines - Stanford Universityweb.stanford.edu/class/archive/cs/cs103/cs103.1198...the coming years An important theme is not simply proving more theorems, but achieving automation

0 0 0 1 1 1 0… …1

A Diferent Strategy

Observation 1: A string

of 0s and 1s is sorted

if it matches the

regex 0*1*.

Observation 1: A string

of 0s and 1s is sorted

if it matches the

regex 0*1*.

Page 361: Turing Machines - Stanford Universityweb.stanford.edu/class/archive/cs/cs103/cs103.1198...the coming years An important theme is not simply proving more theorems, but achieving automation

0 0 0 1 1 1 0… …1

A Diferent Strategy

Observation 1: A string

of 0s and 1s is sorted

if it matches the

regex 0*1*.

Observation 1: A string

of 0s and 1s is sorted

if it matches the

regex 0*1*.

Page 362: Turing Machines - Stanford Universityweb.stanford.edu/class/archive/cs/cs103/cs103.1198...the coming years An important theme is not simply proving more theorems, but achieving automation

…0 0 0 1 1 1… 01

A Diferent Strategy

Observation 1: A string

of 0s and 1s is sorted

if it matches the

regex 0*1*.

Observation 1: A string

of 0s and 1s is sorted

if it matches the

regex 0*1*.

Page 363: Turing Machines - Stanford Universityweb.stanford.edu/class/archive/cs/cs103/cs103.1198...the coming years An important theme is not simply proving more theorems, but achieving automation

…0 0 0 1 1 1… 01

A Diferent Strategy

Observation 2: A

string of 0s and 1s is

not sorted if it

contains 10 as a

substring.

Observation 2: A

string of 0s and 1s is

not sorted if it

contains 10 as a

substring.

Page 364: Turing Machines - Stanford Universityweb.stanford.edu/class/archive/cs/cs103/cs103.1198...the coming years An important theme is not simply proving more theorems, but achieving automation

A Diferent Strategy

…0 0 0 1 1 1… 11

Observation 2: A

string of 0s and 1s is

not sorted if it

contains 10 as a

substring.

Observation 2: A

string of 0s and 1s is

not sorted if it

contains 10 as a

substring.

Page 365: Turing Machines - Stanford Universityweb.stanford.edu/class/archive/cs/cs103/cs103.1198...the coming years An important theme is not simply proving more theorems, but achieving automation

A Diferent Strategy

…0 0 0 1 1 1… 10

Observation 2: A

string of 0s and 1s is

not sorted if it

contains 10 as a

substring.

Observation 2: A

string of 0s and 1s is

not sorted if it

contains 10 as a

substring.

Page 366: Turing Machines - Stanford Universityweb.stanford.edu/class/archive/cs/cs103/cs103.1198...the coming years An important theme is not simply proving more theorems, but achieving automation

0 0 0 1 1 1 1… …0

A Diferent Strategy

Observation 2: A

string of 0s and 1s is

not sorted if it

contains 10 as a

substring.

Observation 2: A

string of 0s and 1s is

not sorted if it

contains 10 as a

substring.

Page 367: Turing Machines - Stanford Universityweb.stanford.edu/class/archive/cs/cs103/cs103.1198...the coming years An important theme is not simply proving more theorems, but achieving automation

0 0 0 1 1 1 1… …0

A Diferent Strategy

Idea: Repeatedly fnd

a copy of 10 and

replace it with 01.

Idea: Repeatedly fnd

a copy of 10 and

replace it with 01.

Page 368: Turing Machines - Stanford Universityweb.stanford.edu/class/archive/cs/cs103/cs103.1198...the coming years An important theme is not simply proving more theorems, but achieving automation

0 0 0 1 1 1 1… …0

A Diferent Strategy

Idea: Repeatedly fnd

a copy of 10 and

replace it with 01.

Idea: Repeatedly fnd

a copy of 10 and

replace it with 01.

Page 369: Turing Machines - Stanford Universityweb.stanford.edu/class/archive/cs/cs103/cs103.1198...the coming years An important theme is not simply proving more theorems, but achieving automation

0 0 0 1 1 1 1… …0

A Diferent Strategy

Idea: Repeatedly fnd

a copy of 10 and

replace it with 01.

Idea: Repeatedly fnd

a copy of 10 and

replace it with 01.

Page 370: Turing Machines - Stanford Universityweb.stanford.edu/class/archive/cs/cs103/cs103.1198...the coming years An important theme is not simply proving more theorems, but achieving automation

0 0 0 1 1 1 1… …0

A Diferent Strategy

Idea: Repeatedly fnd

a copy of 10 and

replace it with 01.

Idea: Repeatedly fnd

a copy of 10 and

replace it with 01.

Page 371: Turing Machines - Stanford Universityweb.stanford.edu/class/archive/cs/cs103/cs103.1198...the coming years An important theme is not simply proving more theorems, but achieving automation

0 0 0 1 1 1 1… …0

A Diferent Strategy

Idea: Repeatedly fnd

a copy of 10 and

replace it with 01.

Idea: Repeatedly fnd

a copy of 10 and

replace it with 01.

Page 372: Turing Machines - Stanford Universityweb.stanford.edu/class/archive/cs/cs103/cs103.1198...the coming years An important theme is not simply proving more theorems, but achieving automation

0 0 0 1 1 1 1… …0

A Diferent Strategy

Idea: Repeatedly fnd

a copy of 10 and

replace it with 01.

Idea: Repeatedly fnd

a copy of 10 and

replace it with 01.

Page 373: Turing Machines - Stanford Universityweb.stanford.edu/class/archive/cs/cs103/cs103.1198...the coming years An important theme is not simply proving more theorems, but achieving automation

0 0 0 1 1 1 1… …0

A Diferent Strategy

Idea: Repeatedly fnd

a copy of 10 and

replace it with 01.

Idea: Repeatedly fnd

a copy of 10 and

replace it with 01.

Page 374: Turing Machines - Stanford Universityweb.stanford.edu/class/archive/cs/cs103/cs103.1198...the coming years An important theme is not simply proving more theorems, but achieving automation

0 0 0 1 1 1 1… …0

A Diferent Strategy

Idea: Repeatedly fnd

a copy of 10 and

replace it with 01.

Idea: Repeatedly fnd

a copy of 10 and

replace it with 01.

Page 375: Turing Machines - Stanford Universityweb.stanford.edu/class/archive/cs/cs103/cs103.1198...the coming years An important theme is not simply proving more theorems, but achieving automation

0 0 0 1 1 1 1… …0

A Diferent Strategy

Idea: Repeatedly fnd

a copy of 10 and

replace it with 01.

Idea: Repeatedly fnd

a copy of 10 and

replace it with 01.

Page 376: Turing Machines - Stanford Universityweb.stanford.edu/class/archive/cs/cs103/cs103.1198...the coming years An important theme is not simply proving more theorems, but achieving automation

0 0 0 1 1 1 1… …0

A Diferent Strategy

Idea: Repeatedly fnd

a copy of 10 and

replace it with 01.

Idea: Repeatedly fnd

a copy of 10 and

replace it with 01.

Page 377: Turing Machines - Stanford Universityweb.stanford.edu/class/archive/cs/cs103/cs103.1198...the coming years An important theme is not simply proving more theorems, but achieving automation

0 0 0 1 1 1 1… …0

A Diferent Strategy

Idea: Repeatedly fnd

a copy of 10 and

replace it with 01.

Idea: Repeatedly fnd

a copy of 10 and

replace it with 01.

Page 378: Turing Machines - Stanford Universityweb.stanford.edu/class/archive/cs/cs103/cs103.1198...the coming years An important theme is not simply proving more theorems, but achieving automation

0 0 0 1 1 1 1… …0

A Diferent Strategy

Idea: Repeatedly fnd

a copy of 10 and

replace it with 01.

Idea: Repeatedly fnd

a copy of 10 and

replace it with 01.

Page 379: Turing Machines - Stanford Universityweb.stanford.edu/class/archive/cs/cs103/cs103.1198...the coming years An important theme is not simply proving more theorems, but achieving automation

0 0 0 1 1 1 1… …0

A Diferent Strategy

Idea: Repeatedly fnd

a copy of 10 and

replace it with 01.

Idea: Repeatedly fnd

a copy of 10 and

replace it with 01.

Page 380: Turing Machines - Stanford Universityweb.stanford.edu/class/archive/cs/cs103/cs103.1198...the coming years An important theme is not simply proving more theorems, but achieving automation

0 0 0 1 1 1 1… …0

A Diferent Strategy

Idea: Repeatedly fnd

a copy of 10 and

replace it with 01.

Idea: Repeatedly fnd

a copy of 10 and

replace it with 01.

Page 381: Turing Machines - Stanford Universityweb.stanford.edu/class/archive/cs/cs103/cs103.1198...the coming years An important theme is not simply proving more theorems, but achieving automation

0 0 0 1 1 1 1… …0

A Diferent Strategy

Idea: Repeatedly fnd

a copy of 10 and

replace it with 01.

Idea: Repeatedly fnd

a copy of 10 and

replace it with 01.

Page 382: Turing Machines - Stanford Universityweb.stanford.edu/class/archive/cs/cs103/cs103.1198...the coming years An important theme is not simply proving more theorems, but achieving automation

0 0 0 1 1 1 1… …1

A Diferent Strategy

Idea: Repeatedly fnd

a copy of 10 and

replace it with 01.

Idea: Repeatedly fnd

a copy of 10 and

replace it with 01.

Page 383: Turing Machines - Stanford Universityweb.stanford.edu/class/archive/cs/cs103/cs103.1198...the coming years An important theme is not simply proving more theorems, but achieving automation

0 0 0 1 1 0 1… …1

A Diferent Strategy

Idea: Repeatedly fnd

a copy of 10 and

replace it with 01.

Idea: Repeatedly fnd

a copy of 10 and

replace it with 01.

Page 384: Turing Machines - Stanford Universityweb.stanford.edu/class/archive/cs/cs103/cs103.1198...the coming years An important theme is not simply proving more theorems, but achieving automation

0 0 0 1 1 0 1… …1

A Diferent Strategy

Idea: Repeatedly fnd

a copy of 10 and

replace it with 01.

Idea: Repeatedly fnd

a copy of 10 and

replace it with 01.

Page 385: Turing Machines - Stanford Universityweb.stanford.edu/class/archive/cs/cs103/cs103.1198...the coming years An important theme is not simply proving more theorems, but achieving automation

0 0 0 1 1 0 1… …1

A Diferent Strategy

Idea: Repeatedly fnd

a copy of 10 and

replace it with 01.

Idea: Repeatedly fnd

a copy of 10 and

replace it with 01.

Page 386: Turing Machines - Stanford Universityweb.stanford.edu/class/archive/cs/cs103/cs103.1198...the coming years An important theme is not simply proving more theorems, but achieving automation

Let's Build It!

Page 387: Turing Machines - Stanford Universityweb.stanford.edu/class/archive/cs/cs103/cs103.1198...the coming years An important theme is not simply proving more theorems, but achieving automation

0 0 1 1 0 0… …

Page 388: Turing Machines - Stanford Universityweb.stanford.edu/class/archive/cs/cs103/cs103.1198...the coming years An important theme is not simply proving more theorems, but achieving automation

0 0 1 1 0 0… …

start

Page 389: Turing Machines - Stanford Universityweb.stanford.edu/class/archive/cs/cs103/cs103.1198...the coming years An important theme is not simply proving more theorems, but achieving automation

0*

0 0 1 1 0 0… …

start

Page 390: Turing Machines - Stanford Universityweb.stanford.edu/class/archive/cs/cs103/cs103.1198...the coming years An important theme is not simply proving more theorems, but achieving automation

0*

0 0 1 1 0 0… …

start

0*

Page 391: Turing Machines - Stanford Universityweb.stanford.edu/class/archive/cs/cs103/cs103.1198...the coming years An important theme is not simply proving more theorems, but achieving automation

0*

0 0 1 1 0 0… …

start

0*0 → 0, R

Page 392: Turing Machines - Stanford Universityweb.stanford.edu/class/archive/cs/cs103/cs103.1198...the coming years An important theme is not simply proving more theorems, but achieving automation

0*

0 0 1 1 0 0… …

start

0*0 → 0, R

Page 393: Turing Machines - Stanford Universityweb.stanford.edu/class/archive/cs/cs103/cs103.1198...the coming years An important theme is not simply proving more theorems, but achieving automation

0*

0 0 1 1 0 0… …

start

0*0 → 0, R

Page 394: Turing Machines - Stanford Universityweb.stanford.edu/class/archive/cs/cs103/cs103.1198...the coming years An important theme is not simply proving more theorems, but achieving automation

0*

0 0 1 1 0 0… …

start

0*0 → 0, R 1 → 1, R

Page 395: Turing Machines - Stanford Universityweb.stanford.edu/class/archive/cs/cs103/cs103.1198...the coming years An important theme is not simply proving more theorems, but achieving automation

0*0*

0 0 1 1 0 0… …

start

0 → 0, R 1 → 1, R

Page 396: Turing Machines - Stanford Universityweb.stanford.edu/class/archive/cs/cs103/cs103.1198...the coming years An important theme is not simply proving more theorems, but achieving automation

0*0*

0 0 1 1 0 0… …

start

0 → 0, R 0*1*1 → 1, R

Page 397: Turing Machines - Stanford Universityweb.stanford.edu/class/archive/cs/cs103/cs103.1198...the coming years An important theme is not simply proving more theorems, but achieving automation

0*0*

0 0 1 1 0 0… …

start

0 → 0, R 0*1*1 → 1, R

1 → 1, R

Page 398: Turing Machines - Stanford Universityweb.stanford.edu/class/archive/cs/cs103/cs103.1198...the coming years An important theme is not simply proving more theorems, but achieving automation

0*0*

0 0 1 1 0 0… …

start

0 → 0, R 0*1*1 → 1, R

1 → 1, R

Page 399: Turing Machines - Stanford Universityweb.stanford.edu/class/archive/cs/cs103/cs103.1198...the coming years An important theme is not simply proving more theorems, but achieving automation

0*0*

0 0 1 1 0 0… …

start

0 → 0, R 0*1*1 → 1, R

1 → 1, R

0 → ?, ?

Page 400: Turing Machines - Stanford Universityweb.stanford.edu/class/archive/cs/cs103/cs103.1198...the coming years An important theme is not simply proving more theorems, but achieving automation

0*0*

0 0 1 1 0 0… …

start

0 → 0, R 0*1*1 → 1, R

1 → 1, R

0 → ?, ?

Based on what we’re trying to do, what should this transition say?

Based on what we’re trying to do, what should this transition say?

Page 401: Turing Machines - Stanford Universityweb.stanford.edu/class/archive/cs/cs103/cs103.1198...the coming years An important theme is not simply proving more theorems, but achieving automation

0*0*

0 0 1 1 0… …

start

0 → 0, R 0*1*1 → 1, R

1 → 1, R

0 → ?, ?

0

Page 402: Turing Machines - Stanford Universityweb.stanford.edu/class/archive/cs/cs103/cs103.1198...the coming years An important theme is not simply proving more theorems, but achieving automation

0*0*

0 0 1 1 0… …

start

0 → 0, R 0*1*1 → 1, R

1 → 1, R

0 → 1, L

0

Page 403: Turing Machines - Stanford Universityweb.stanford.edu/class/archive/cs/cs103/cs103.1198...the coming years An important theme is not simply proving more theorems, but achieving automation

0*0*

0 0 1 1 0… …

start

0 → 0, R 0*1*1 → 1, R

1 → 1, R

0 → 1, L

1

0*1*

Page 404: Turing Machines - Stanford Universityweb.stanford.edu/class/archive/cs/cs103/cs103.1198...the coming years An important theme is not simply proving more theorems, but achieving automation

0*0*

0 0 1 1 0… …

start

0 → 0, R 0*1*1 → 1, R

1 → 1, R

Fix

01

0 → 1, L

1

0*1*

Page 405: Turing Machines - Stanford Universityweb.stanford.edu/class/archive/cs/cs103/cs103.1198...the coming years An important theme is not simply proving more theorems, but achieving automation

0*0*

0 0 1 1 0… …

start

0 → 0, R 0*1*1 → 1, R

1 → 1, R

Fix

01

0 → 1, L

1

0*1*

1 → 0, L

Page 406: Turing Machines - Stanford Universityweb.stanford.edu/class/archive/cs/cs103/cs103.1198...the coming years An important theme is not simply proving more theorems, but achieving automation

0*0*

0 0 1 0 0… …

start

0 → 0, R 0*1*1 → 1, R

1 → 1, R

Fix

01

0 → 1, L

1

0*1*

1 → 0, LFix

01

Page 407: Turing Machines - Stanford Universityweb.stanford.edu/class/archive/cs/cs103/cs103.1198...the coming years An important theme is not simply proving more theorems, but achieving automation

0*0*

0 0 1 0 0… …

start

0 → 0, R 0*1*1 → 1, R

1 → 1, R

Fix

01

0 → 1, L

1

0*1*

1 → 0, LFix

01

Page 408: Turing Machines - Stanford Universityweb.stanford.edu/class/archive/cs/cs103/cs103.1198...the coming years An important theme is not simply proving more theorems, but achieving automation

0*0*

0 0 1 0 0… …

start

0 → 0, R 0*1*1 → 1, R

1 → 1, R

Fix

01

0 → 1, L

1

0*1*

Go

Home

1 → 0, LFix

01

Page 409: Turing Machines - Stanford Universityweb.stanford.edu/class/archive/cs/cs103/cs103.1198...the coming years An important theme is not simply proving more theorems, but achieving automation

0*0*

0 0 1 0 0… …

start

0 → 0, R 0*1*1 → 1, R

1 → 1, R

Fix

01

0 → 1, L

1

0*1*

Go

Home

1 → 0, LFix

01

0 → 0, L

1 → 1, L

Page 410: Turing Machines - Stanford Universityweb.stanford.edu/class/archive/cs/cs103/cs103.1198...the coming years An important theme is not simply proving more theorems, but achieving automation

0*0*

0 0 1 0 0… …

start

0 → 0, R 0*1*1 → 1, R

1 → 1, R

Fix

01

0 → 1, L

1

0*1*

Go

Home

1 → 0, LFix

01

0 → 0, L

1 → 1, L

Page 411: Turing Machines - Stanford Universityweb.stanford.edu/class/archive/cs/cs103/cs103.1198...the coming years An important theme is not simply proving more theorems, but achieving automation

0*0*

0 0 1 0 0… …

start

0 → 0, R 0*1*1 → 1, R

1 → 1, R

Fix

01

0 → 1, L

1

0*1*

Go

Home

1 → 0, LFix

01

0 → 0, L

1 → 1, L

Page 412: Turing Machines - Stanford Universityweb.stanford.edu/class/archive/cs/cs103/cs103.1198...the coming years An important theme is not simply proving more theorems, but achieving automation

0*0*

0 0 1 0 0… …

start

0 → 0, R 0*1*1 → 1, R

1 → 1, R

Fix

01

0 → 1, L

1

0*1*

Go

Home

1 → 0, LFix

01

0 → 0, L

1 → 1, L

Page 413: Turing Machines - Stanford Universityweb.stanford.edu/class/archive/cs/cs103/cs103.1198...the coming years An important theme is not simply proving more theorems, but achieving automation

0*0*

0 0 1 0 0… …

start

0 → 0, R 0*1*1 → 1, R

1 → 1, R

Fix

01

0 → 1, L

1

0*1*

Go

Home

1 → 0, LFix

01

0 → 0, L

1 → 1, L

→ � �, R

Page 414: Turing Machines - Stanford Universityweb.stanford.edu/class/archive/cs/cs103/cs103.1198...the coming years An important theme is not simply proving more theorems, but achieving automation

0*0*

0 0 1 0 0… …

start

0 → 0, R 0*1*1 → 1, R

1 → 1, R

Fix

01

0 → 1, L

1

0*1*

Go

Home

1 → 0, LFix

01

0 → 0, L

1 → 1, L

→ � �, R

Go

Home

Page 415: Turing Machines - Stanford Universityweb.stanford.edu/class/archive/cs/cs103/cs103.1198...the coming years An important theme is not simply proving more theorems, but achieving automation

0*0*

0 0 1 0 0… …

start

0 → 0, R 0*1*1 → 1, R

1 → 1, R

Fix

01

0 → 1, L

1

0*1*

Go

Home

1 → 0, LFix

01

0 → 0, L

1 → 1, L

→ � �, R

Go

Home

Page 416: Turing Machines - Stanford Universityweb.stanford.edu/class/archive/cs/cs103/cs103.1198...the coming years An important theme is not simply proving more theorems, but achieving automation

0*0*

0 0 1 0 0… …

start

0 → 0, R 0*1*1 → 1, R

1 → 1, R

Fix

01

0 → 1, L

1

0*1*

Go

Home

1 → 0, LFix

01

0 → 0, L

1 → 1, L

→ � �, R

Go

Home

Page 417: Turing Machines - Stanford Universityweb.stanford.edu/class/archive/cs/cs103/cs103.1198...the coming years An important theme is not simply proving more theorems, but achieving automation

0* 0*1*0*

0 0 1 0 0… …

start

0 → 0, R 0*1*1 → 1, R

1 → 1, R

Fix

01

0 → 1, L

1

Go

Home

1 → 0, LFix

01

0 → 0, L

1 → 1, L

→ � �, R

Go

Home

Page 418: Turing Machines - Stanford Universityweb.stanford.edu/class/archive/cs/cs103/cs103.1198...the coming years An important theme is not simply proving more theorems, but achieving automation

0 0 0… …1

0* 0*1*0*

1 0

start

0 → 0, R 0*1*1 → 1, R

1 → 1, R

Fix

01

0 → 1, L

Go

Home

1 → 0, LFix

01

0 → 0, L

1 → 1, L

→ � �, R

Go

Home

Page 419: Turing Machines - Stanford Universityweb.stanford.edu/class/archive/cs/cs103/cs103.1198...the coming years An important theme is not simply proving more theorems, but achieving automation

0*1*

Fix

01

0 0 0… …1

0* 0*1*0*

1 1

start

0 → 0, R 1 → 1, R

1 → 1, R

Fix

01

0 → 1, L

Go

Home

1 → 0, L0 → 0, L

1 → 1, L

→ � �, R

Go

Home

Page 420: Turing Machines - Stanford Universityweb.stanford.edu/class/archive/cs/cs103/cs103.1198...the coming years An important theme is not simply proving more theorems, but achieving automation

Fix

01

Go

Home

0*1*

Fix

01

0 0 0… …1

0* 0*1*0*

0 1

start

0 → 0, R 1 → 1, R

1 → 1, R

0 → 1, L

Go

Home

1 → 0, L0 → 0, L

1 → 1, L

→ � �, R

Page 421: Turing Machines - Stanford Universityweb.stanford.edu/class/archive/cs/cs103/cs103.1198...the coming years An important theme is not simply proving more theorems, but achieving automation

Fix

01

Go

Home

0*1*

Fix

01

0* 0*1*0*

0 0 0 1 0… …

start

0 → 0, R 1 → 1, R

1 → 1, R

0 → 1, L

1

Go

Home

1 → 0, L0 → 0, L

1 → 1, L

→ � �, R

Page 422: Turing Machines - Stanford Universityweb.stanford.edu/class/archive/cs/cs103/cs103.1198...the coming years An important theme is not simply proving more theorems, but achieving automation

Fix

01

Go

Home

0*1*

Fix

01

0* 0*1*0*

0 0 0 1 0… …

start

0 → 0, R 1 → 1, R

1 → 1, R

0 → 1, L

1

Go

Home

1 → 0, L0 → 0, L

1 → 1, L

→ � �, R

Page 423: Turing Machines - Stanford Universityweb.stanford.edu/class/archive/cs/cs103/cs103.1198...the coming years An important theme is not simply proving more theorems, but achieving automation

Fix

01

Go

Home

0*1*

Fix

01

0* 0*1*0*

0 0 0 1 0… …

start

0 → 0, R 1 → 1, R

1 → 1, R

0 → 1, L

1

Go

Home

1 → 0, L0 → 0, L

1 → 1, L

→ � �, R

Page 424: Turing Machines - Stanford Universityweb.stanford.edu/class/archive/cs/cs103/cs103.1198...the coming years An important theme is not simply proving more theorems, but achieving automation

0*

Go

Home

Fix

01

Go

Home

0*1*

Fix

01

0* 0*1*

0 0 0 1 0… …

start

0 → 0, R 1 → 1, R

1 → 1, R

0 → 1, L

1

1 → 0, L0 → 0, L

1 → 1, L

→ � �, R

Page 425: Turing Machines - Stanford Universityweb.stanford.edu/class/archive/cs/cs103/cs103.1198...the coming years An important theme is not simply proving more theorems, but achieving automation

0*

Go

Home

Fix

01

Go

Home

0*1*

Fix

01

0* 0*1*

0 0 0 1 0… …

start

0 → 0, R 1 → 1, R

1 → 1, R

0 → 1, L

1

1 → 0, L0 → 0, L

1 → 1, L

→ � �, R

Page 426: Turing Machines - Stanford Universityweb.stanford.edu/class/archive/cs/cs103/cs103.1198...the coming years An important theme is not simply proving more theorems, but achieving automation

0*

Go

Home

Fix

01

Go

Home

0*1*

Fix

01

0* 0*1*

0 0 0 1 0… …

start

0 → 0, R 1 → 1, R

1 → 1, R

0 → 1, L

1

1 → 0, L0 → 0, L

1 → 1, L

→ � �, R

Page 427: Turing Machines - Stanford Universityweb.stanford.edu/class/archive/cs/cs103/cs103.1198...the coming years An important theme is not simply proving more theorems, but achieving automation

0*

Go

Home

Fix

01

Go

Home

0*1*

Fix

01

0* 0*1*

0 0 0 1 0… …

start

0 → 0, R 1 → 1, R

1 → 1, R

0 → 1, L

1

1 → 0, L0 → 0, L

1 → 1, L

→ � �, R

Page 428: Turing Machines - Stanford Universityweb.stanford.edu/class/archive/cs/cs103/cs103.1198...the coming years An important theme is not simply proving more theorems, but achieving automation

0* 0*1*0*

Go

Home

Fix

01

Go

Home

0*1*

Fix

01

0 0 0 1 0… …

start

0 → 0, R 1 → 1, R

1 → 1, R

0 → 1, L

1

1 → 0, L0 → 0, L

1 → 1, L

→ � �, R

Page 429: Turing Machines - Stanford Universityweb.stanford.edu/class/archive/cs/cs103/cs103.1198...the coming years An important theme is not simply proving more theorems, but achieving automation

0* 0*1*0*

Go

Home

Fix

01

Go

Home

0*1*

Fix

01

0 0 0 1 0… …

start

0 → 0, R 1 → 1, R

1 → 1, R

0 → 1, L

1

1 → 0, L0 → 0, L

1 → 1, L

→ � �, R

Page 430: Turing Machines - Stanford Universityweb.stanford.edu/class/archive/cs/cs103/cs103.1198...the coming years An important theme is not simply proving more theorems, but achieving automation

0*1*

Fix

01

0* 0*1*0*

Go

Home

Fix

01

Go

Home

0 0 0 1 1… …

start

0 → 0, R 1 → 1, R

1 → 1, R

0 → 1, L

1

1 → 0, L0 → 0, L

1 → 1, L

→ � �, R

Page 431: Turing Machines - Stanford Universityweb.stanford.edu/class/archive/cs/cs103/cs103.1198...the coming years An important theme is not simply proving more theorems, but achieving automation

Fix

01

Go

Home

0*1*

Fix

01

0* 0*1*0*

Go

Home

0 0 0 1 1… …

start

0 → 0, R 1 → 1, R

1 → 1, R

0 → 1, L

0

1 → 0, L0 → 0, L

1 → 1, L

→ � �, R

Page 432: Turing Machines - Stanford Universityweb.stanford.edu/class/archive/cs/cs103/cs103.1198...the coming years An important theme is not simply proving more theorems, but achieving automation

Fix

01

Go

Home

0*1*

Fix

01

0* 0*1*0*

Go

Home

0 0 0 1 1… …

start

0 → 0, R 1 → 1, R

1 → 1, R

0 → 1, L

0

1 → 0, L0 → 0, L

1 → 1, L

→ � �, R

Page 433: Turing Machines - Stanford Universityweb.stanford.edu/class/archive/cs/cs103/cs103.1198...the coming years An important theme is not simply proving more theorems, but achieving automation

Fix

01

Go

Home

0*1*

Fix

01

0* 0*1*0*

Go

Home

0 0 0 1 1… …

start

0 → 0, R 1 → 1, R

1 → 1, R

0 → 1, L

0

1 → 0, L0 → 0, L

1 → 1, L

→ � �, R

Page 434: Turing Machines - Stanford Universityweb.stanford.edu/class/archive/cs/cs103/cs103.1198...the coming years An important theme is not simply proving more theorems, but achieving automation

Fix

01

Go

Home

0*1*

Fix

01

0* 0*1*0*

Go

Home

0 0 0 1 1… …

start

0 → 0, R 1 → 1, R

1 → 1, R

0 → 1, L

0

1 → 0, L0 → 0, L

1 → 1, L

→ � �, R

Page 435: Turing Machines - Stanford Universityweb.stanford.edu/class/archive/cs/cs103/cs103.1198...the coming years An important theme is not simply proving more theorems, but achieving automation

Fix

01

Go

Home

0*1*

Fix

01

0* 0*1*0*

Go

Home

0 0 0 1 1… …

start

0 → 0, R 1 → 1, R

1 → 1, R

0 → 1, L

0

1 → 0, L0 → 0, L

1 → 1, L

→ � �, R

Page 436: Turing Machines - Stanford Universityweb.stanford.edu/class/archive/cs/cs103/cs103.1198...the coming years An important theme is not simply proving more theorems, but achieving automation

0*

Go

Home

Fix

01

Go

Home

0*1*

Fix

01

0* 0*1*

0 0 0 1 1… …

start

0 → 0, R 1 → 1, R

1 → 1, R

0 → 1, L

0

1 → 0, L0 → 0, L

1 → 1, L

→ � �, R

Page 437: Turing Machines - Stanford Universityweb.stanford.edu/class/archive/cs/cs103/cs103.1198...the coming years An important theme is not simply proving more theorems, but achieving automation

0*

Go

Home

Fix

01

Go

Home

0*1*

Fix

01

0* 0*1*

0 0 0 1 1… …

start

0 → 0, R 1 → 1, R

1 → 1, R

0 → 1, L

0

1 → 0, L0 → 0, L

1 → 1, L

→ � �, R

Page 438: Turing Machines - Stanford Universityweb.stanford.edu/class/archive/cs/cs103/cs103.1198...the coming years An important theme is not simply proving more theorems, but achieving automation

0*

Go

Home

Fix

01

Go

Home

0*1*

Fix

01

0* 0*1*

0 0 0 1 1… …

start

0 → 0, R 1 → 1, R

1 → 1, R

0 → 1, L

0

1 → 0, L0 → 0, L

1 → 1, L

→ � �, R

Page 439: Turing Machines - Stanford Universityweb.stanford.edu/class/archive/cs/cs103/cs103.1198...the coming years An important theme is not simply proving more theorems, but achieving automation

0*

Go

Home

Fix

01

Go

Home

0*1*

Fix

01

0* 0*1*

0 0 0 1 1… …

start

0 → 0, R 1 → 1, R

1 → 1, R

0 → 1, L

0

1 → 0, L0 → 0, L

1 → 1, L

→ � �, R

Page 440: Turing Machines - Stanford Universityweb.stanford.edu/class/archive/cs/cs103/cs103.1198...the coming years An important theme is not simply proving more theorems, but achieving automation

0* 0*1*0*

Go

Home

Fix

01

Go

Home

0*1*

Fix

01

0 0 0 1 1… …

start

0 → 0, R 1 → 1, R

1 → 1, R

0 → 1, L

0

1 → 0, L0 → 0, L

1 → 1, L

→ � �, R

Page 441: Turing Machines - Stanford Universityweb.stanford.edu/class/archive/cs/cs103/cs103.1198...the coming years An important theme is not simply proving more theorems, but achieving automation

0*1*

Fix

01

1 → 1, R0* 0*1*0*

Go

Home

Fix

01

Go

Home

0 0 0 1 1… …

start

0 → 0, R 1 → 1, R

0 → 1, L

1

1 → 0, L0 → 0, L

1 → 1, L

→ � �, R

Page 442: Turing Machines - Stanford Universityweb.stanford.edu/class/archive/cs/cs103/cs103.1198...the coming years An important theme is not simply proving more theorems, but achieving automation

Fix

01

Go

Home

0*1*

Fix

01

1 → 1, R0* 0*1*0*

Go

Home

0 0 0 0 1… …

start

0 → 0, R 1 → 1, R

0 → 1, L

1

1 → 0, L0 → 0, L

1 → 1, L

→ � �, R

Page 443: Turing Machines - Stanford Universityweb.stanford.edu/class/archive/cs/cs103/cs103.1198...the coming years An important theme is not simply proving more theorems, but achieving automation

Fix

01

Go

Home

0*1*

Fix

01

1 → 1, R0* 0*1*0*

Go

Home

0 0 0 0 1… …

start

0 → 0, R 1 → 1, R

0 → 1, L

1

1 → 0, L0 → 0, L

1 → 1, L

→ � �, R

Page 444: Turing Machines - Stanford Universityweb.stanford.edu/class/archive/cs/cs103/cs103.1198...the coming years An important theme is not simply proving more theorems, but achieving automation

Fix

01

Go

Home

0*1*

Fix

01

1 → 1, R0* 0*1*0*

Go

Home

0 0 0 0 1… …

start

0 → 0, R 1 → 1, R

0 → 1, L

1

1 → 0, L0 → 0, L

1 → 1, L

→ � �, R

Page 445: Turing Machines - Stanford Universityweb.stanford.edu/class/archive/cs/cs103/cs103.1198...the coming years An important theme is not simply proving more theorems, but achieving automation

Fix

01

Go

Home

0*1*

Fix

01

1 → 1, R0* 0*1*0*

Go

Home

0 0 0 0 1… …

start

0 → 0, R 1 → 1, R

0 → 1, L

1

1 → 0, L0 → 0, L

1 → 1, L

→ � �, R

Page 446: Turing Machines - Stanford Universityweb.stanford.edu/class/archive/cs/cs103/cs103.1198...the coming years An important theme is not simply proving more theorems, but achieving automation

0*

Go

Home

Fix

01

Go

Home

0*1*

Fix

01

1 → 1, R0* 0*1*

0 0 0 0 1… …

start

0 → 0, R 1 → 1, R

0 → 1, L

1

1 → 0, L0 → 0, L

1 → 1, L

→ � �, R

Page 447: Turing Machines - Stanford Universityweb.stanford.edu/class/archive/cs/cs103/cs103.1198...the coming years An important theme is not simply proving more theorems, but achieving automation

0*

Go

Home

Fix

01

Go

Home

0*1*

Fix

01

1 → 1, R0* 0*1*

0 0 0 0 1… …

start

0 → 0, R 1 → 1, R

0 → 1, L

1

1 → 0, L0 → 0, L

1 → 1, L

→ � �, R

Page 448: Turing Machines - Stanford Universityweb.stanford.edu/class/archive/cs/cs103/cs103.1198...the coming years An important theme is not simply proving more theorems, but achieving automation

0*

Go

Home

Fix

01

Go

Home

0*1*

Fix

01

1 → 1, R0* 0*1*

0 0 0 0 1… …

start

0 → 0, R 1 → 1, R

0 → 1, L

1

1 → 0, L0 → 0, L

1 → 1, L

→ � �, R

Page 449: Turing Machines - Stanford Universityweb.stanford.edu/class/archive/cs/cs103/cs103.1198...the coming years An important theme is not simply proving more theorems, but achieving automation

0*

Go

Home

Fix

01

Go

Home

0*1*

Fix

01

1 → 1, R0* 0*1*

0 0 0 0 1… …

start

0 → 0, R 1 → 1, R

0 → 1, L

1

1 → 0, L0 → 0, L

1 → 1, L

→ � �, R

Page 450: Turing Machines - Stanford Universityweb.stanford.edu/class/archive/cs/cs103/cs103.1198...the coming years An important theme is not simply proving more theorems, but achieving automation

0*

Go

Home

Fix

01

Go

Home

0*1*

Fix

01

1 → 1, R0* 0*1*

0 0 0 0 1… …

start

0 → 0, R 1 → 1, R

0 → 1, L

1

1 → 0, L0 → 0, L

1 → 1, L

→ � �, R

Page 451: Turing Machines - Stanford Universityweb.stanford.edu/class/archive/cs/cs103/cs103.1198...the coming years An important theme is not simply proving more theorems, but achieving automation

0* 0*1*0*

Go

Home

Fix

01

Go

Home

0*1*

Fix

01

1 → 1, R

0 0 0 0 1… …

start

0 → 0, R 1 → 1, R

0 → 1, L

1

1 → 0, L0 → 0, L

1 → 1, L

→ � �, R

Page 452: Turing Machines - Stanford Universityweb.stanford.edu/class/archive/cs/cs103/cs103.1198...the coming years An important theme is not simply proving more theorems, but achieving automation

0* 0*1*0*

Go

Home

Fix

01

Go

Home

0*1*

Fix

01

1 → 1, R

0 0 0 0 1… …

start

0 → 0, R 1 → 1, R

0 → 1, L

1

1 → 0, L0 → 0, L

1 → 1, L

→ � �, R

Page 453: Turing Machines - Stanford Universityweb.stanford.edu/class/archive/cs/cs103/cs103.1198...the coming years An important theme is not simply proving more theorems, but achieving automation

0* 0*1*0*

Go

Home

Fix

01

Go

Home

0*1*

Fix

01

1 → 1, R

0 0 0 0 1… …

start

0 → 0, R 1 → 1, R

0 → 1, L

1

1 → 0, L0 → 0, L

1 → 1, L

→ � �, R

Our ultimate goal here was to sort

everything so we could hand it of to

the machine to check for 0n1n. Let's

rewind the tape head back to the start.

Our ultimate goal here was to sort

everything so we could hand it of to

the machine to check for 0n1n. Let's

rewind the tape head back to the start.

Page 454: Turing Machines - Stanford Universityweb.stanford.edu/class/archive/cs/cs103/cs103.1198...the coming years An important theme is not simply proving more theorems, but achieving automation

0* 0*1*0*

Go

Home

Fix

01

Go

Home

0*1*

Fix

01

1 → 1, R

0 0 0 0 1… …

start

0 → 0, R 1 → 1, R

0 → 1, L

1

1 → 0, L0 → 0, L

1 → 1, L

→ � �, R

To

Start

→ � �, L

Page 455: Turing Machines - Stanford Universityweb.stanford.edu/class/archive/cs/cs103/cs103.1198...the coming years An important theme is not simply proving more theorems, but achieving automation

0*1*0* 0*1*0*

Go

Home

Fix

01

Go

Home

Fix

01

1 → 1, R

0 0 0 0 1… …

start

0 → 0, R 1 → 1, R

0 → 1, L

1

1 → 0, L0 → 0, L

1 → 1, L

→ � �, R

To

Start

→ � �, L

Page 456: Turing Machines - Stanford Universityweb.stanford.edu/class/archive/cs/cs103/cs103.1198...the coming years An important theme is not simply proving more theorems, but achieving automation

0*1*0* 0*1*0*

Go

Home

Fix

01

Go

Home

Fix

01

1 → 1, R

0 0 0 0 1… …

start

0 → 0, R 1 → 1, R

0 → 1, L

1

1 → 0, L0 → 0, L

1 → 1, L

→ � �, R

To

Start

→ � �, L

0 → 0, L

1 → 1, L

Page 457: Turing Machines - Stanford Universityweb.stanford.edu/class/archive/cs/cs103/cs103.1198...the coming years An important theme is not simply proving more theorems, but achieving automation

0*1*0* 0*1*0*

Go

Home

Fix

01

Go

Home

Fix

01

1 → 1, R

0 0 0 0 1… …

start

0 → 0, R 1 → 1, R

0 → 1, L

1

1 → 0, L0 → 0, L

1 → 1, L

→ � �, R

To

Start

→ � �, L

0 → 0, L

1 → 1, L

Page 458: Turing Machines - Stanford Universityweb.stanford.edu/class/archive/cs/cs103/cs103.1198...the coming years An important theme is not simply proving more theorems, but achieving automation

0*1*0* 0*1*0*

Go

Home

Fix

01

Go

Home

Fix

01

1 → 1, R

0 0 0 0 1… …

start

0 → 0, R 1 → 1, R

0 → 1, L

1

1 → 0, L0 → 0, L

1 → 1, L

→ � �, R

To

Start

→ � �, L

0 → 0, L

1 → 1, L

Page 459: Turing Machines - Stanford Universityweb.stanford.edu/class/archive/cs/cs103/cs103.1198...the coming years An important theme is not simply proving more theorems, but achieving automation

0*1*0* 0*1*0*

Go

Home

Fix

01

Go

Home

Fix

01

1 → 1, R

0 0 0 0 1… …

start

0 → 0, R 1 → 1, R

0 → 1, L

1

1 → 0, L0 → 0, L

1 → 1, L

→ � �, R

To

Start

→ � �, L

0 → 0, L

1 → 1, L

Page 460: Turing Machines - Stanford Universityweb.stanford.edu/class/archive/cs/cs103/cs103.1198...the coming years An important theme is not simply proving more theorems, but achieving automation

0*1*0* 0*1*0*

Go

Home

Fix

01

Go

Home

Fix

01

1 → 1, R

0 0 0 0 1… …

start

0 → 0, R 1 → 1, R

0 → 1, L

1

1 → 0, L0 → 0, L

1 → 1, L

→ � �, R

To

Start

→ � �, L

0 → 0, L

1 → 1, L

Page 461: Turing Machines - Stanford Universityweb.stanford.edu/class/archive/cs/cs103/cs103.1198...the coming years An important theme is not simply proving more theorems, but achieving automation

0*1*0* 0*1*0*

Go

Home

Fix

01

Go

Home

Fix

01

1 → 1, R

0 0 0 0 1… …

start

0 → 0, R 1 → 1, R

0 → 1, L

1

1 → 0, L0 → 0, L

1 → 1, L

→ � �, R

To

Start

→ � �, L

0 → 0, L

1 → 1, L

Page 462: Turing Machines - Stanford Universityweb.stanford.edu/class/archive/cs/cs103/cs103.1198...the coming years An important theme is not simply proving more theorems, but achieving automation

0*1*0* 0*1*0*

Go

Home

Fix

01

Go

Home

Fix

01

1 → 1, R

0 0 0 0 1… …

start

0 → 0, R 1 → 1, R

0 → 1, L

1

1 → 0, L0 → 0, L

1 → 1, L

→ � �, R

To

Start

→ � �, L

0 → 0, L

1 → 1, L

Page 463: Turing Machines - Stanford Universityweb.stanford.edu/class/archive/cs/cs103/cs103.1198...the coming years An important theme is not simply proving more theorems, but achieving automation

0*1*0* 0*1*0*

Go

Home

Fix

01

Go

Home

Fix

01

1 → 1, R

0 0 0 0 1… …

start

0 → 0, R 1 → 1, R

0 → 1, L

1

1 → 0, L0 → 0, L

1 → 1, L

→ � �, R

To

Start

→ � �, L

0 → 0, L

1 → 1, L Start

0n1n

→ � �, R

Page 464: Turing Machines - Stanford Universityweb.stanford.edu/class/archive/cs/cs103/cs103.1198...the coming years An important theme is not simply proving more theorems, but achieving automation

0*1*0* 0*1*0*

Go

Home

Fix

01

Go

Home

Fix

01

1 → 1, R

0 0 0 0 1… …

start

0 → 0, R 1 → 1, R

0 → 1, L

1

1 → 0, L0 → 0, L

1 → 1, L

→ � �, R

To

Start

→ � �, L

0 → 0, L

1 → 1, L Start

0n1n

→ � �, R

Page 465: Turing Machines - Stanford Universityweb.stanford.edu/class/archive/cs/cs103/cs103.1198...the coming years An important theme is not simply proving more theorems, but achieving automation

0*1*0* 0*1*0*

Go

Home

Fix

01

Go

Home

Fix

01

1 → 1, R

start

0 → 0, R 1 → 1, R

0 → 1, L

1 → 0, L0 → 0, L

1 → 1, L

→ � �, R

To

Start

→ � �, L

0 → 0, L

1 → 1, L Start

0n1n

→ � �, R

Page 466: Turing Machines - Stanford Universityweb.stanford.edu/class/archive/cs/cs103/cs103.1198...the coming years An important theme is not simply proving more theorems, but achieving automation

0*1*0* 0*1*0*

Go

Home

Fix

01

Go

Home

Fix

01

1 → 1, R

start

0 → 0, R 1 → 1, R

0 → 1, L

1 → 0, L0 → 0, L

1 → 1, L

→ � �, R

To

Start

→ � �, L

0 → 0, L

1 → 1, L Start

0n1n

→ � �, R

This is just a

placeholder. Imagine

snapping in the entire

TM for 0n1n into this

diagram, putting the

start state in the

dashed area.

This is just a

placeholder. Imagine

snapping in the entire

TM for 0n1n into this

diagram, putting the

start state in the

dashed area.

Page 467: Turing Machines - Stanford Universityweb.stanford.edu/class/archive/cs/cs103/cs103.1198...the coming years An important theme is not simply proving more theorems, but achieving automation

0*1*0* 0*1*0*

Go

Home

Fix

01

Go

Home

Fix

01

1 → 1, R

0 0 0 0… …

start

0 → 0, R 1 → 1, R

0 → 1, L

1 → 0, L0 → 0, L

1 → 1, L

→ � �, R

To

Start

→ � �, L

0 → 0, L

1 → 1, L Start

0n1n

→ � �, R

Page 468: Turing Machines - Stanford Universityweb.stanford.edu/class/archive/cs/cs103/cs103.1198...the coming years An important theme is not simply proving more theorems, but achieving automation

0* 0*1*0* 0*1*

Go

Home

Fix

01

Go

Home

Fix

01

1 → 1, R

0 0 0 0… …

start

0 → 0, R 1 → 1, R

0 → 1, L

1 → 0, L0 → 0, L

1 → 1, L

→ � �, R

To

Start

→ � �, L

0 → 0, L

1 → 1, L Start

0n1n

→ � �, R

Page 469: Turing Machines - Stanford Universityweb.stanford.edu/class/archive/cs/cs103/cs103.1198...the coming years An important theme is not simply proving more theorems, but achieving automation

0* 0*1*0* 0*1*

Go

Home

Fix

01

Go

Home

Fix

01

1 → 1, R

0 0 0 0… …

start

0 → 0, R 1 → 1, R

0 → 1, L

1 → 0, L0 → 0, L

1 → 1, L

→ � �, R

To

Start

→ � �, L

0 → 0, L

1 → 1, L Start

0n1n

→ � �, R

Page 470: Turing Machines - Stanford Universityweb.stanford.edu/class/archive/cs/cs103/cs103.1198...the coming years An important theme is not simply proving more theorems, but achieving automation

0* 0*1*0* 0*1*

Go

Home

Fix

01

Go

Home

Fix

01

1 → 1, R

0 0 0 0… …

start

0 → 0, R 1 → 1, R

0 → 1, L

1 → 0, L0 → 0, L

1 → 1, L

→ � �, R

To

Start

→ � �, L

0 → 0, L

1 → 1, L Start

0n1n

→ � �, R

Page 471: Turing Machines - Stanford Universityweb.stanford.edu/class/archive/cs/cs103/cs103.1198...the coming years An important theme is not simply proving more theorems, but achieving automation

0* 0*1*0* 0*1*

Go

Home

Fix

01

Go

Home

Fix

01

1 → 1, R

0 0 0 0… …

start

0 → 0, R 1 → 1, R

0 → 1, L

1 → 0, L0 → 0, L

1 → 1, L

→ � �, R

To

Start

→ � �, L

0 → 0, L

1 → 1, L Start

0n1n

→ � �, R

Page 472: Turing Machines - Stanford Universityweb.stanford.edu/class/archive/cs/cs103/cs103.1198...the coming years An important theme is not simply proving more theorems, but achieving automation

0* 0*1*0* 0*1*

Go

Home

Fix

01

Go

Home

Fix

01

1 → 1, R

0 0 0 0… …

start

0 → 0, R 1 → 1, R

0 → 1, L

1 → 0, L0 → 0, L

1 → 1, L

→ � �, R

To

Start

→ � �, L

0 → 0, L

1 → 1, L Start

0n1n

→ � �, R

Page 473: Turing Machines - Stanford Universityweb.stanford.edu/class/archive/cs/cs103/cs103.1198...the coming years An important theme is not simply proving more theorems, but achieving automation

0* 0*1*0* 0*1*

Go

Home

Fix

01

Go

Home

Fix

01

1 → 1, R

0 0 0 0… …

start

0 → 0, R 1 → 1, R

0 → 1, L

1 → 0, L0 → 0, L

1 → 1, L

→ � �, R

To

Start

→ � �, L

0 → 0, L

1 → 1, L Start

0n1n

→ � �, R

→ � �, L

Page 474: Turing Machines - Stanford Universityweb.stanford.edu/class/archive/cs/cs103/cs103.1198...the coming years An important theme is not simply proving more theorems, but achieving automation

0*0* 0*1*0*1*

Go

Home

Fix

01

Go

Home

Fix

01

1 → 1, R

0 0 0 0… …

start

0 → 0, R 1 → 1, R

0 → 1, L

1 → 0, L0 → 0, L

1 → 1, L

→ � �, R

To

Start

→ � �, L

0 → 0, L

1 → 1, L Start

0n1n

→ � �, R

→ � �, L

Page 475: Turing Machines - Stanford Universityweb.stanford.edu/class/archive/cs/cs103/cs103.1198...the coming years An important theme is not simply proving more theorems, but achieving automation

0*0* 0*1*0*1*

Go

Home

Fix

01

Go

Home

Fix

01

1 → 1, R

0 0 0 0… …

start

0 → 0, R 1 → 1, R

0 → 1, L

1 → 0, L0 → 0, L

1 → 1, L

→ � �, R

To

Start

→ � �, L

0 → 0, L

1 → 1, L Start

0n1n

→ � �, R

→ � �, L

Page 476: Turing Machines - Stanford Universityweb.stanford.edu/class/archive/cs/cs103/cs103.1198...the coming years An important theme is not simply proving more theorems, but achieving automation

0*0* 0*1*0*1*

Go

Home

Fix

01

Go

Home

Fix

01

1 → 1, R

0 0 0 0… …

start

0 → 0, R 1 → 1, R

0 → 1, L

1 → 0, L0 → 0, L

1 → 1, L

→ � �, R

To

Start

→ � �, L

0 → 0, L

1 → 1, L Start

0n1n

→ � �, R

→ � �, L

Page 477: Turing Machines - Stanford Universityweb.stanford.edu/class/archive/cs/cs103/cs103.1198...the coming years An important theme is not simply proving more theorems, but achieving automation

0*0* 0*1*0*1*

Go

Home

Fix

01

Go

Home

Fix

01

1 → 1, R

0 0 0 0… …

start

0 → 0, R 1 → 1, R

0 → 1, L

1 → 0, L0 → 0, L

1 → 1, L

→ � �, R

To

Start

→ � �, L

0 → 0, L

1 → 1, L Start

0n1n

→ � �, R

→ � �, L

Page 478: Turing Machines - Stanford Universityweb.stanford.edu/class/archive/cs/cs103/cs103.1198...the coming years An important theme is not simply proving more theorems, but achieving automation

0*0* 0*1*0*1*

Go

Home

Fix

01

Go

Home

Fix

01

1 → 1, R

0 0 0 0… …

start

0 → 0, R 1 → 1, R

0 → 1, L

1 → 0, L0 → 0, L

1 → 1, L

→ � �, R

To

Start

→ � �, L

0 → 0, L

1 → 1, L Start

0n1n

→ � �, R

→ � �, L

Page 479: Turing Machines - Stanford Universityweb.stanford.edu/class/archive/cs/cs103/cs103.1198...the coming years An important theme is not simply proving more theorems, but achieving automation

0*0* 0*1*0*1*

Go

Home

Fix

01

Go

Home

Fix

01

1 → 1, R

0 0 0 0… …

start

0 → 0, R 1 → 1, R

0 → 1, L

1 → 0, L0 → 0, L

1 → 1, L

→ � �, R

To

Start

→ � �, L

0 → 0, L

1 → 1, L Start

0n1n

→ � �, R

→ � �, L

Page 480: Turing Machines - Stanford Universityweb.stanford.edu/class/archive/cs/cs103/cs103.1198...the coming years An important theme is not simply proving more theorems, but achieving automation

0* 0*1*

Fix

01

Go

Home

To

Start

Start

0n1n

start

1 → 1, R 1 → 1, R0 → 0, R

0 → 1, L

1 → 0, L0 → 0, L

1 → 1, L

→ � �, R

→ � �, L → � �, L

0 → 0, L

1 → 1, L

→ � �, R

Page 481: Turing Machines - Stanford Universityweb.stanford.edu/class/archive/cs/cs103/cs103.1198...the coming years An important theme is not simply proving more theorems, but achieving automation

0* 0*1*

Fix

01

Go

Home

To

Start

Start

0n1n

start

1 → 1, R 1 → 1, R0 → 0, R

0 → 1, L

1 → 0, L0 → 0, L

1 → 1, L

→ � �, R

→ � �, L → � �, L

0 → 0, L

1 → 1, L

→ � �, R

This TM will sort any sequence of 0s and

1s, but it might take a while.

Fun problem: design a TM that sorts a

string of 0s and 1s, but does so while

taking way fewer steps than this machine.

This TM will sort any sequence of 0s and

1s, but it might take a while.

Fun problem: design a TM that sorts a

string of 0s and 1s, but does so while

taking way fewer steps than this machine.

Page 482: Turing Machines - Stanford Universityweb.stanford.edu/class/archive/cs/cs103/cs103.1198...the coming years An important theme is not simply proving more theorems, but achieving automation

TM Subroutines

● A TM subroutine is a Turing machine that, instead of accepting or rejecting an input, does some sort of processing job.

● TM subroutines let us compose larger TMs out of smaller TMs, just as you'd write a larger program using lots of smaller helper functions.

● Here, we saw a TM subroutine that sorts a sequence of 0s and 1s into ascending order.

Page 483: Turing Machines - Stanford Universityweb.stanford.edu/class/archive/cs/cs103/cs103.1198...the coming years An important theme is not simply proving more theorems, but achieving automation

TM Subroutines

● Typically, when a subroutine is done running, you have it enter a state marked “done” with a dashed line around it.

● When we're composing multiple subroutines together – which we'll do in a bit – the idea is that we'll snap in some real state for the “done” state.

Page 484: Turing Machines - Stanford Universityweb.stanford.edu/class/archive/cs/cs103/cs103.1198...the coming years An important theme is not simply proving more theorems, but achieving automation

Where We Stand

● What have we seen TMs do so far?

● Operate on numbers.

● Sort sequences of values.

● Break tasks down into smaller pieces.

● Here are a few other tasks TMs can do:

● Work with base-10 numbers.

● Increment and decrement numbers.

● Add numbers.

● Aren’t these, youknow, the thingscomputers do?

If you’re curious to see how this is

done, check the appendix for this

lecture. You aren’t required to do

this, though.

If you’re curious to see how this is

done, check the appendix for this

lecture. You aren’t required to do

this, though.

Page 485: Turing Machines - Stanford Universityweb.stanford.edu/class/archive/cs/cs103/cs103.1198...the coming years An important theme is not simply proving more theorems, but achieving automation

How to Turing machines compare with standard, run-of-the-mill computers?

Page 486: Turing Machines - Stanford Universityweb.stanford.edu/class/archive/cs/cs103/cs103.1198...the coming years An important theme is not simply proving more theorems, but achieving automation

Real and “Ideal” Computers

● A real computer has memory limitations: you have a fnite amount of RAM, a fnite amount of disk space, etc.

● This makes them equivalent to fnite automata.

● However, as computers get more and more powerful, the amount of memory available keeps increasing.

● An idealized computer is like a regular computer, but with unlimited RAM and disk space. It functions just like a regular computer, but never runs out of memory.

Page 487: Turing Machines - Stanford Universityweb.stanford.edu/class/archive/cs/cs103/cs103.1198...the coming years An important theme is not simply proving more theorems, but achieving automation

Claim 1: Idealized computers can simulate Turing machines.

“Anything that can be done with a TMcan also be done with an unbounded-

memory computer.”

Page 488: Turing Machines - Stanford Universityweb.stanford.edu/class/archive/cs/cs103/cs103.1198...the coming years An important theme is not simply proving more theorems, but achieving automation

Clear a1

Clear a1

Go toend

Checkfor 0

Go toend

Checkfor 0

Go tostart

Go tostart

start

0 → , R☐ 0 → 0, R

1 → 1, R

→ ☐ ☐, L

1 → , L☐0 → 0, L

1 → 1, L

→ ☐ ☐, R

qaccqa

→ ☐ ☐, R

qaccqr

1 → , R☐

→ ☐ ☐, R

0 → 0, R

Page 489: Turing Machines - Stanford Universityweb.stanford.edu/class/archive/cs/cs103/cs103.1198...the coming years An important theme is not simply proving more theorems, but achieving automation

Clear a1q₂

Go toend

Checkfor 0

q₁q₀

Go tostartq₃

start

0 → , R☐ 0 → 0, R

1 → 1, R

→ ☐ ☐, L

1 → , L☐0 → 0, L

1 → 1, L

→ ☐ ☐, R

qaccqa

→ ☐ ☐, R

qaccqr

1 → , R☐

→ ☐ ☐, R

0 → 0, R

Page 490: Turing Machines - Stanford Universityweb.stanford.edu/class/archive/cs/cs103/cs103.1198...the coming years An important theme is not simply proving more theorems, but achieving automation

Clear a1q₂

Go toend

Checkfor 0

q₁q₀

Go tostartq₃

start

0 → , R☐ 0 → 0, R

1 → 1, R

→ ☐ ☐, L

1 → , L☐0 → 0, L

1 → 1, L

→ ☐ ☐, R

qaccqa

→ ☐ ☐, R

qaccqr

1 → , R☐

→ ☐ ☐, R

0 → 0, R

q₀

q₁

q₂

q₃

0

q₁ ◻ R

1

qr ◻ R

qa ◻ R

q₁ 0 R q₁ 1 R q₂ ◻ L

qr 0 R q₃ ◻ L q

r ◻ R

q₃ 0 L q₃ 1 L q₀ ◻ R

Page 491: Turing Machines - Stanford Universityweb.stanford.edu/class/archive/cs/cs103/cs103.1198...the coming years An important theme is not simply proving more theorems, but achieving automation

Clear a1q₂

Go toend

Checkfor 0

q₁q₀

Go tostartq₃

start

0 → , R☐ 0 → 0, R

1 → 1, R

→ ☐ ☐, L

1 → , L☐0 → 0, L

1 → 1, L

→ ☐ ☐, R

qaccqa

→ ☐ ☐, R

qaccqr

1 → , R☐

→ ☐ ☐, R

0 → 0, R

q₀

q₁

q₂

q₃

0

q₁ ◻ R

1

qr ◻ R

qa ◻ R

q₁ 0 R q₁ 1 R q₂ ◻ L

qr 0 R q₃ ◻ L q

r ◻ R

q₃ 0 L q₃ 1 L q₀ ◻ R

The TM's fnite-state control can be encoded as a table, just like we did for DFAs.

The TM's fnite-state control can be encoded as a table, just like we did for DFAs.

Page 492: Turing Machines - Stanford Universityweb.stanford.edu/class/archive/cs/cs103/cs103.1198...the coming years An important theme is not simply proving more theorems, but achieving automation

Simulating a TM

● To simulate a TM, the computer would need to be able to keep track of

● the fnite-state control,

● the current state,

● the position of the tape head, and

● the tape contents.

● The tape contents are infnite, but that's because there are infnitely many blanks on both sides.

● We only need to store the “interesting” part of the tape (the parts that have been read from or written to so far.)

0 0 0 1 1 1 ……

Page 493: Turing Machines - Stanford Universityweb.stanford.edu/class/archive/cs/cs103/cs103.1198...the coming years An important theme is not simply proving more theorems, but achieving automation

Simulating a TM

● To simulate a TM, the computer would need to be able to keep track of

● the fnite-state control,

● the current state,

● the position of the tape head, and

● the tape contents.

● The tape contents are infnite, but that's because there are infnitely many blanks on both sides.

● We only need to store the “interesting” part of the tape (the parts that have been read from or written to so far.)

…… 0 0 0 1 1 1

Page 494: Turing Machines - Stanford Universityweb.stanford.edu/class/archive/cs/cs103/cs103.1198...the coming years An important theme is not simply proving more theorems, but achieving automation

Claim 2: Turing machines can simulate idealized computers.

“Anything that can be done with an unbounded-memory computer can be done

with a TM.”

Page 495: Turing Machines - Stanford Universityweb.stanford.edu/class/archive/cs/cs103/cs103.1198...the coming years An important theme is not simply proving more theorems, but achieving automation

What We've Seen

● TMs can

● implement loops (basically, every TM we've seen).

● make function calls (subroutines).

● keep track of natural numbers (written in unary or in decimal on the tape).

● perform elementary arithmetic (equality testing, multiplication, addition, increment, decrement, etc.).

● perform if/else tests (diferent transitions based on diferent cases).

Page 496: Turing Machines - Stanford Universityweb.stanford.edu/class/archive/cs/cs103/cs103.1198...the coming years An important theme is not simply proving more theorems, but achieving automation

What Else Can TMs Do?

● Maintain variables.

● Have a dedicated part of the tape where the variables are stored.

● We've seen this before: you can kinda sorta think of our machine for { 0n1n | n ∈ ℕ } as checking if two variables are equal.

● Maintain arrays and linked structures.

● Divide the tape into diferent regions corresponding to memory locations.

● Represent arrays and linked structures by keeping track of the ID of one of those regions.

Page 497: Turing Machines - Stanford Universityweb.stanford.edu/class/archive/cs/cs103/cs103.1198...the coming years An important theme is not simply proving more theorems, but achieving automation

A CS107 Perspective

● Internally, computers execute by using basic operations like

● simple arithmetic,

● memory reads and writes,

● branches and jumps,

● register operations,

● etc.

● Each of these are simple enough that they could be simulated by a Turing machine.

Page 498: Turing Machines - Stanford Universityweb.stanford.edu/class/archive/cs/cs103/cs103.1198...the coming years An important theme is not simply proving more theorems, but achieving automation

A Leap of Faith

● It may require a leap of faith, but anything you can do with a computer (excluding randomness and user input) can be performed by a Turing machine.

● The resulting TM might be colossal, or really slow, or both, but it would still faithfully simulate the computer.

● We're going to take this as an article of faith in CS103. If you’re curious for more details, come talk to me after class.

Page 499: Turing Machines - Stanford Universityweb.stanford.edu/class/archive/cs/cs103/cs103.1198...the coming years An important theme is not simply proving more theorems, but achieving automation

Wait, You’re Saying a TM Can Do…

Sure! A picture is

just a 2D array of

colors, and a color

can be represented

as a series of

numbers.

“cat pictures?”

Page 500: Turing Machines - Stanford Universityweb.stanford.edu/class/archive/cs/cs103/cs103.1198...the coming years An important theme is not simply proving more theorems, but achieving automation

If you think about

it, a video is just a

series of pictures!“cat videos?”

“cat pictures?”

Wait, You’re Saying a TM Can Do…

Page 501: Turing Machines - Stanford Universityweb.stanford.edu/class/archive/cs/cs103/cs103.1198...the coming years An important theme is not simply proving more theorems, but achieving automation

Yes! Write encodings of notes to

play on the TM tape. Hook up a

speaker device that reads the tape

and makes sound.

“music?”

Yes! View all networked

computers as one gigantic

machine.

“chat messages over the internet?”

Wait, You’re Saying a TM Can Do…

Page 502: Turing Machines - Stanford Universityweb.stanford.edu/class/archive/cs/cs103/cs103.1198...the coming years An important theme is not simply proving more theorems, but achieving automation

Just how powerful are Turing machines?

Page 503: Turing Machines - Stanford Universityweb.stanford.edu/class/archive/cs/cs103/cs103.1198...the coming years An important theme is not simply proving more theorems, but achieving automation

Efective Computation

● An efective method of computation is a form of computation with the following properties:

● The computation consists of a set of steps.

● There are fxed rules governing how one step leads to the next.

● Any computation that yields an answer does so in fnitely many steps.

● Any computation that yields an answer always yields the correct answer.

● This is not a formal defnition. Rather, it's a set of properties we expect out of a computational system.

Page 504: Turing Machines - Stanford Universityweb.stanford.edu/class/archive/cs/cs103/cs103.1198...the coming years An important theme is not simply proving more theorems, but achieving automation

The Church-Turing Thesis claims that

every efective method of computation is either equivalent to or weaker than a Turing machine.

Page 505: Turing Machines - Stanford Universityweb.stanford.edu/class/archive/cs/cs103/cs103.1198...the coming years An important theme is not simply proving more theorems, but achieving automation

RegularLanguages

CFLs

All Languages

Problems Solvable by

Any Feasible Computing

Machine

Page 506: Turing Machines - Stanford Universityweb.stanford.edu/class/archive/cs/cs103/cs103.1198...the coming years An important theme is not simply proving more theorems, but achieving automation

RegularLanguages

CFLs

All Languages

Problems solvable by

Turing Machines

Page 507: Turing Machines - Stanford Universityweb.stanford.edu/class/archive/cs/cs103/cs103.1198...the coming years An important theme is not simply proving more theorems, but achieving automation

TMs ≈ Computers

● Because Turing machines have the same computational powers as regular computers, we can (essentially) reason about Turing machines by reasoning about actual computer programs.

● Going forward, we're going to switch back and forth between TMs and computer programs based on whatever is most appropriate.

● In fact, our eventual proofs about the existence of impossible problems will involve a good amount of pseudocode. Stay tuned for details!

Page 508: Turing Machines - Stanford Universityweb.stanford.edu/class/archive/cs/cs103/cs103.1198...the coming years An important theme is not simply proving more theorems, but achieving automation

What problems can we solve with a computer?

What kind

of

computer?

Page 509: Turing Machines - Stanford Universityweb.stanford.edu/class/archive/cs/cs103/cs103.1198...the coming years An important theme is not simply proving more theorems, but achieving automation

What problems can we solve with a computer?

What does it

mean to

“solve” a

problem?

Page 510: Turing Machines - Stanford Universityweb.stanford.edu/class/archive/cs/cs103/cs103.1198...the coming years An important theme is not simply proving more theorems, but achieving automation

The Hailstone Sequence

● Consider the following procedure, starting with some n ∈ ℕ, where n > 0:

● If n = 1, you are done.

● If n is even, set n = n / 2.

● Otherwise, set n = 3n + 1.

● Repeat.

● Question: Given a number n, does this process terminate?

Page 511: Turing Machines - Stanford Universityweb.stanford.edu/class/archive/cs/cs103/cs103.1198...the coming years An important theme is not simply proving more theorems, but achieving automation

11

34

17

52

26

13

40

20

10

5

16

8

4

2

1

· If n = 1, stop.

· If n is even, set n = n / 2.

· Otherwise, set n = 3n + 1.

· Repeat.

· If n = 1, stop.

· If n is even, set n = n / 2.

· Otherwise, set n = 3n + 1.

· Repeat.

Page 512: Turing Machines - Stanford Universityweb.stanford.edu/class/archive/cs/cs103/cs103.1198...the coming years An important theme is not simply proving more theorems, but achieving automation

The Hailstone Sequence

● Let Σ = {1} and consider the language

L = { 1n | n > 0 and the hailstone sequence terminates for n }.

● Could we build a TM for L?

Page 513: Turing Machines - Stanford Universityweb.stanford.edu/class/archive/cs/cs103/cs103.1198...the coming years An important theme is not simply proving more theorems, but achieving automation

The Hailstone Turing Machine

… 1 1 1 1 1 …

If the input is ε, reject.

While the input is not 1:

· If the input has even length, halve the length of the string.

· If the input has odd length, triple the length of the string and append a 1.

Accept.

If the input is ε, reject.

While the input is not 1:

· If the input has even length, halve the length of the string.

· If the input has odd length, triple the length of the string and append a 1.

Accept.

Page 514: Turing Machines - Stanford Universityweb.stanford.edu/class/archive/cs/cs103/cs103.1198...the coming years An important theme is not simply proving more theorems, but achieving automation

The Hailstone Turing Machine

… 1 1 1 1 1 …

If the input is ε, reject.

While the input is not 1:

· If the input has even length, halve the length of the string.

· If the input has odd length, triple the length of the string and append a 1.

Accept.

If the input is ε, reject.

While the input is not 1:

· If the input has even length, halve the length of the string.

· If the input has odd length, triple the length of the string and append a 1.

Accept.

Poof!

Page 515: Turing Machines - Stanford Universityweb.stanford.edu/class/archive/cs/cs103/cs103.1198...the coming years An important theme is not simply proving more theorems, but achieving automation

The Hailstone Turing Machine

… 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 …

If the input is ε, reject.

While the input is not 1:

· If the input has even length, halve the length of the string.

· If the input has odd length, triple the length of the string and append a 1.

Accept.

If the input is ε, reject.

While the input is not 1:

· If the input has even length, halve the length of the string.

· If the input has odd length, triple the length of the string and append a 1.

Accept.

Page 516: Turing Machines - Stanford Universityweb.stanford.edu/class/archive/cs/cs103/cs103.1198...the coming years An important theme is not simply proving more theorems, but achieving automation

The Hailstone Turing Machine

… 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 …

If the input is ε, reject.

While the input is not 1:

· If the input has even length, halve the length of the string.

· If the input has odd length, triple the length of the string and append a 1.

Accept.

If the input is ε, reject.

While the input is not 1:

· If the input has even length, halve the length of the string.

· If the input has odd length, triple the length of the string and append a 1.

Accept.

Poof!

Page 517: Turing Machines - Stanford Universityweb.stanford.edu/class/archive/cs/cs103/cs103.1198...the coming years An important theme is not simply proving more theorems, but achieving automation

The Hailstone Turing Machine

… 1 1 1 1 1 1 1 1 …

If the input is ε, reject.

While the input is not 1:

· If the input has even length, halve the length of the string.

· If the input has odd length, triple the length of the string and append a 1.

Accept.

If the input is ε, reject.

While the input is not 1:

· If the input has even length, halve the length of the string.

· If the input has odd length, triple the length of the string and append a 1.

Accept.

Page 518: Turing Machines - Stanford Universityweb.stanford.edu/class/archive/cs/cs103/cs103.1198...the coming years An important theme is not simply proving more theorems, but achieving automation

The Hailstone Turing Machine

… 1 1 1 1 1 1 1 1 …

If the input is ε, reject.

While the input is not 1:

· If the input has even length, halve the length of the string.

· If the input has odd length, triple the length of the string and append a 1.

Accept.

If the input is ε, reject.

While the input is not 1:

· If the input has even length, halve the length of the string.

· If the input has odd length, triple the length of the string and append a 1.

Accept.

Page 519: Turing Machines - Stanford Universityweb.stanford.edu/class/archive/cs/cs103/cs103.1198...the coming years An important theme is not simply proving more theorems, but achieving automation

The Hailstone Turing Machine

… 1 1 1 1 1 1 1 1 …

If the input is ε, reject.

While the input is not 1:

· If the input has even length, halve the length of the string.

· If the input has odd length, triple the length of the string and append a 1.

Accept.

If the input is ε, reject.

While the input is not 1:

· If the input has even length, halve the length of the string.

· If the input has odd length, triple the length of the string and append a 1.

Accept.

Page 520: Turing Machines - Stanford Universityweb.stanford.edu/class/archive/cs/cs103/cs103.1198...the coming years An important theme is not simply proving more theorems, but achieving automation

The Hailstone Turing Machine

… 1 1 1 1 …

If the input is ε, reject.

While the input is not 1:

· If the input has even length, halve the length of the string.

· If the input has odd length, triple the length of the string and append a 1.

Accept.

If the input is ε, reject.

While the input is not 1:

· If the input has even length, halve the length of the string.

· If the input has odd length, triple the length of the string and append a 1.

Accept.

Page 521: Turing Machines - Stanford Universityweb.stanford.edu/class/archive/cs/cs103/cs103.1198...the coming years An important theme is not simply proving more theorems, but achieving automation

The Hailstone Turing Machine

… 1 1 …

If the input is ε, reject.

While the input is not 1:

· If the input has even length, halve the length of the string.

· If the input has odd length, triple the length of the string and append a 1.

Accept.

If the input is ε, reject.

While the input is not 1:

· If the input has even length, halve the length of the string.

· If the input has odd length, triple the length of the string and append a 1.

Accept.

Page 522: Turing Machines - Stanford Universityweb.stanford.edu/class/archive/cs/cs103/cs103.1198...the coming years An important theme is not simply proving more theorems, but achieving automation

The Hailstone Turing Machine

… 1 …

If the input is ε, reject.

While the input is not 1:

· If the input has even length, halve the length of the string.

· If the input has odd length, triple the length of the string and append a 1.

Accept.

If the input is ε, reject.

While the input is not 1:

· If the input has even length, halve the length of the string.

· If the input has odd length, triple the length of the string and append a 1.

Accept.

Page 523: Turing Machines - Stanford Universityweb.stanford.edu/class/archive/cs/cs103/cs103.1198...the coming years An important theme is not simply proving more theorems, but achieving automation

Does this Turing machine accept all nonempty strings?

Page 524: Turing Machines - Stanford Universityweb.stanford.edu/class/archive/cs/cs103/cs103.1198...the coming years An important theme is not simply proving more theorems, but achieving automation

The Collatz Conjecture

● It is unknown whether this process will terminate for all natural numbers.

● In other words, no one knows whether the TM described in the previous slides will always stop running!

● The conjecture (unproven claim) that this always terminates is called the Collatz Conjecture.

Page 525: Turing Machines - Stanford Universityweb.stanford.edu/class/archive/cs/cs103/cs103.1198...the coming years An important theme is not simply proving more theorems, but achieving automation

The Collatz Conjecture

“Mathematics may not be readyfor such problems.” - Paul Erdős

The fact that the Collatz Conjecture is unresolved is useful later on for building

intuitions. Keep this in mind!

Page 526: Turing Machines - Stanford Universityweb.stanford.edu/class/archive/cs/cs103/cs103.1198...the coming years An important theme is not simply proving more theorems, but achieving automation

An Important Observation

● Unlike fnite automata, which automatically halt after all the input is read, TMs keep running until they explicitly enter an accept or reject state.

● As a result, it’s possible for a TM to run forever without accepting or rejecting.

● This leads to several important questions:

● How do we formally defne what it means to build a TM for a language?

● What implications does this have about problem-solving?

Page 527: Turing Machines - Stanford Universityweb.stanford.edu/class/archive/cs/cs103/cs103.1198...the coming years An important theme is not simply proving more theorems, but achieving automation

Very Important Terminology

● Let M be a Turing machine and let w be a string.

● M accepts w if it enters an accept state when run on w.

● M rejects w if it enters a reject state when run on w.

● M loops infnitely on w (or just loops on w) if when run on w it enters neither an accept nor a reject state.

● M does not accept w if it either rejects w or loops infnitely on w.

● M does not reject w w if it either accepts w or loops on w.

● M halts on w if it accepts w or rejects w.

Accept

Loop

Rejectdoes not accept

does not reject

halts

Page 528: Turing Machines - Stanford Universityweb.stanford.edu/class/archive/cs/cs103/cs103.1198...the coming years An important theme is not simply proving more theorems, but achieving automation

The Language of a TM

● The language of a Turing machine M, denoted (ℒ M), is the set of all strings that M accepts:

ℒ(M) = { w ∈ Σ* | M accepts w }

● For any w ∈ (ℒ M), M accepts w.

● For any w ∉ (ℒ M), M does not accept w.

● M might reject w, or it might loop on w.

● A language is called recognizable if it is the language of some TM.

● A TM M where (ℒ M) = L is called a recognizer for L.

● Notation: the class RE is the set of all recognizable languages.

L ∈ RE ↔ L is recognizable

Page 529: Turing Machines - Stanford Universityweb.stanford.edu/class/archive/cs/cs103/cs103.1198...the coming years An important theme is not simply proving more theorems, but achieving automation

What do you think? Does thatcorrespond to what you think it

means to solve a problem?