Proving Life is
Universal
Equivalence to TMs
Review of Life Rules
Two-dimensional, outer totalistic rule 224.
A live cell with fewer than 2 live neighbors dies of loneliness.
A live cell with 4 or more live neighbors dies of overcrowding.
A live cell with exactly 2 or 3 live neighbors survives
unchanged.
A dead cell with exactly 3 live neighbors will come to life
(birth).
Use the CA Explorer to investigate the Life rule
briefly.
Get a feel for how it behaves.
For a simple initial state, predict its next step.
Did you get it right?
Proving Universal: The Basic Idea
We have to show Life can emulate all possible
Turing Machines.
Including a Universal Turing Machine.
Because then Life can calculate anything that a Universal
Turing Machine can calculate.
i.e., all algorithms
So will show that Life can create
A finite-state control (with a clock).
A tape (with memory).
A tape head.
How Do We Build The Parts?
Need configurations that can be used as
clocks, and memory, and etc.
Consider the following basic
configurations.
They’ll play a role in our construction.
Example Life Forms: Stable and
Glider
Stable Life
(cycle length of 1)
Periodic Life
(other cycle lengths)
Gliders
(translates position
down and to the
right every
4 steps)
block
loaf
boat
ship
blinkers
(cycle length 2)
step 1
step 2
beehive
aircraft
carrier
tub
long
boat
pond
barge
long
ship
figure eight
(cycle length 8)
step 3
step 4
step 5
Life Forms: Stable Glider Eater
Glider which will
move southeast
towards the
“eater”.
A glider “eater”. A
stable configuration
that swallows the
glider and then
reconstructs itself.
Life Forms: Spaceships
Spaceships move to the right!
lightweight spaceship
middleweight spaceship
heavyweight spaceship
step 1
step 2
All have cycle length of 4.
Life Forms: Glider Gun
This produces an endless stream of
gliders. One glider every 30 steps.
Life Forms: Glider Gun in Action
Glider gun after 85 generations.
The stream of gliders keep
moving indefinitely down and to
the right.
Computer Building Blocks: Memory
Memory
Can arrange stable blocks (or other stable pattern)
to serve as memory.
For example,
1
1
0
1
0
1
1
Computer Building Blocks:
Transmitting Data
Alternatively, can represent data (memory) with gliders.
That way can transmit information.
1
0
1
1
1
Computer Building Blocks: Clock
Glider gun
All CA have a built in clock – the time increments.
But need a way to move objects at a set rate.
E.g., so can move the tape head and transmit
information.
Spaceships and glider move. So just need
something that generates one of them.
Glider gun!
Computer Building Blocks: FiniteState Control
Uh oh. How?
Recall that the finite-state control of a Turing Machine
(TM) takes an input string from the tape and finishes with
an output string on the tape.
WLOG, we can consider just binary strings.
Note that the tape may be infinite, but the input and output strings
are required to be finite.
Otherwise not calculable by an algorithm, because couldn’t be read (or
written) in finite time.
Therefore, the finite-state control (along with the tape
head) is just a Boolean function!
A function from binary strings to binary strings.
Finite-State Control as Boolean
Function
So we’ll create Boolean functions from the Game of Life.
In fact, we will show that we can create any Boolean
function.
If we can create any Boolean function, then in particular,
we can create the Boolean function which gives a
Universal Turing Machine’s finite state control!
We don’t actually have to build this Boolean function for the proof.
We just have to know that it is possible.
So we digress to discuss Boolean functions (logic gates).
Boolean Functions: Definition
Any function from a string of 0’s and 1’s to another
string of 0’s and 1’s.
f : {0,1}n {0,1}m
Prototypical Boolean function has m = 1.
Note: Can always build a function f : {0,1}n {0,1}m from a set of m
functions fi : {0,1}n {0,1}
f(x1, x2, ..., xn) = (f1(x1, x2, ..., xn), f2(x1, x2, ..., xn), ..., fm(x1, x2, ..., xn))
Boolean Functions: Logic Gates
Real computer chips are designed and built
using very particular Boolean functions called
AND, OR, NOT, XOR, NAND, NOR, etc.
Each is f : {0,1}2 {0,1}
Called logic gates.
Let’s take a look at the most important of these.
AND, OR, NOT
Boolean Functions: AND
Truth table for AND
x y
x AND y
0 0
0
0 1
0
1 0
0
1 1
1
x
y
x AND y
Boolean Functions: OR
Truth table for OR
x y
x AND y
0 0
0
0 1
1
1 0
1
1 1
1
x
y
x OR y
Boolean Functions: NOT
Truth table for NOT
x
NOT x
0
1
1
0
x
NOT x
Boolean Functions: NAND
Can combine the Boolean functions.
For example, AND and NOT create NAND
x
x y
x NAND y
= NOT(x AND y)
0 0
1
0 1
1
1 0
1
1 1
0
x NAND y
y
OR, DRAWN AS
x
y
x NAND y
Boolean Functions: Others
Obviously there are many other Boolean functions.
2
2 inputs
numInputBi
ts
numOutputBits 2
1 output
# of inputs
# of
outputs
# of possible
functions
1
1
22 = 4
2
1
24 = 16
3
1
28 = 256
3
2
48 = 65536
00 0 or 1
01 0 or 1
10 0 or 1
11 0 or 1
So 2 possible answers for
each of two possible inputs.
i.e., 24 = 16.
Number of output possibilities (0 or 1)
Number of input possibilities (22 = 4)
Number of output
possibilities (22)
Number of input
possibilities (23)
Boolean Function: Random
Example
Another random Boolean function:
000 10
001 10
010 01
011 00
100 00
101 01
110 11
111 10
Universal Gates: AND, OR, NOT
Theorem: AND, OR, and NOT are sufficient for
calculating all the possible Boolean functions.
Cool!
Proof: We start with an illustrative example.
Consider a Boolean function f as shown in the
following table. (See next slide.)
Universal Gates: Proof (part 2)
x1
x2
x3
f
0
0
0
0
0
0
1
1
0
1
0
0
For each line where the output
is a 1, we can construct a
Boolean function that mimics f.
Line 2 would be
0
1
1
1
1
0
0
0
1
0
1
0
1
1
0
0
1
1
1
1
Line 4 would be
(NOT x1) AND (NOT x2) AND x3
This will have value 1 when x1= 0,
x2= 0, and x3= 1.
(NOT x1) AND x2 AND x3
Line 8 would be
x1 AND x2 AND x3
Universal Gates: Proof (part 3)
Now we can OR these three lines together.
((NOT x1) AND (NOT x2) AND x3) OR ((NOT x1) AND x2 AND x3) OR (x1
AND x2 AND x3).
This is the same as the function f. Any of those three cases should give a 1,
but all other cases should give a 0.
This is called the disjunctive normal form of the function.
Clearly we can generalize to an arbitrary Boolean function with n
inputs. Now recall f : {0,1}n {0,1}m can be constructed from a set
of m functions fi : {0,1}n {0,1} (see earlier in the lecture). And
each fi can be constructed in disjunctive normal form (as shown
above). Therefore, the entire function can be built from a collection
of disjunctive normal forms which are just a collection of NOT, AND,
and OR gates.
Note: the number of required gates can be huge (growing exponentially as 2n
because there are 2n lines in the truth table for n inputs). More efficient
mappings use Veitch-Karnaugh maps, Quine-McCluskey procedures, etc.
Universal Gate: NAND
Theorem: NAND is a universal gate by itself.
Cool! That means we only have to build a NAND gate (rather
than AND, OR, and NOT) when we want to prove Life is
universal.
Proof: We can build AND, OR, and NOT gates
(which are universal) from NAND gates as
follows.
x AND y = (x NAND y) NAND (x NAND y)
x OR y = (x NAND x) NAND (y NAND y)
NOT x = x NAND x
Check these yourself!
Universal Gate: NAND Pictures
May help to see these as pictures.
NOT x
x
x
x AND y
y
x
y
x
y
x OR y
Life and NAND
Finally! We’ve shown that all we need is a
memory device and a NAND gate.
The Universal Turing Machine’s finite-state control can be
written as a series of universal logic gates (NAND).
And in Life, the NAND gate will be built from gliders and a
glider gun.
We will actually build a NOT gate and an AND gate.
Memory device can be any arrangement of stable (or even
periodic) states.
E.g., 2 by 2 blocks or beehives.
Life NOT Gate
Consider a stream of data constructed from gliders.
Presence of a glider = 1.
Absence of a glider = 0.
Create another stream of gliders that is all 1’s, and orient this stream
at right angles to the data stream.
Use glider gun to create the stream.
The two streams will collide with each other. When gliders collide,
they annihilate.
So the second stream will annihilate any 1’s from the first stream.
And the second stream will pass through any 0’s (holes) in the first
stream.
The results is the NOT of the original stream.
Life NOT Example
These gliders aren’t positioned exactly correctly, but you
get the idea.
These two
gliders will
annihilate,
producing a 0.
Stream from a glider gun.
The gun is located off the
Page to the northwest.
1
0
Data coming in from
the southwest.
1
1
1
A glider from the
gun’s stream will
pass through
this hole,
producing a 1.
Life AND Gate
See schematic.
The two input data
streams, x and y, collide at
right angles with a glider
stream.
The circles show the
location of collisions.
The “eater” makes sure
that no extra gliders
escape.
How’s it work? See next
slide.
Glider Gun
x AND y
(output)
Eater
Life AND Gate (cont.)
Look at previous picture.
The first collision produces the NOT of x.
If y is a 0, then nothing passes through to the output.
Output is 0 as it should be.
If y is a 1, then it only passes through if x was a 1.
So if x is a 1 (a glider), then y will collide with a 0.
So if x is a 0 (no glider), then y will collide with a 1.
Because if x is a 1, then the glider stream creates a 0, which y
can pass through.
In other words, only get a 1 at the output if both
x and y are 1.
This is an AND gate.
Life Is Universal: Proof
Theorem: The Game of Life is universal (capable of
computing any algorithm).
Proof Outline:
Have memory (stable/periodic blocks).
Have AND and NOT gates which can be combined to create a
NAND gate.
NAND gates can build any Boolean function.
In particular can build the Boolean function for the Universal Turing
Machine’s (UTM) finite state control.
A UTM can run any other TM.
All algorithms are TM’s.
Therefore, Life can run any algorithm – it’s a universal computer!
Finally! Phew!
A Complete Turing Machine
Our proof is abstract, but implementations have
been done!
Paul Rendell, 2001. “A Turing Machine in Conway’s Game
Life.” http://rendell-attic.org/gol/tm.htm
See handout.
The implementation is huge.
Chapman, 2002, constructed a full blown Universal TM.
http://www.igblan.free-online.co.uk/igblan/ca/
The implementation is gigantic!
Requires 268,096 initially active cells on a grid roughly
2,600 by 21,500.
© Copyright 2025 Paperzz