Title: Chapter 4: A Universal Program
1Chapter 4A Universal Program
2Coding programs
- Example For our programs P we have variables
that are arranged in a certain order - Y1 X1 Z1 X2 Z2 X3 Z3
- Similarly labels are ordered
- A1 B1 C1 D1 E1 A1 B1 C1 D1
- Definition (V) is the position of a variable or
label in the given ordering, where V is the label
or variable. - Example (X3) 6
- (C) 3
- (X1) (X) 2
3Coding programs
- Definition Let I be (labeled or unlabeled)
instruction of the language L. Thus - , where the following points are satisfied
- If I is unlabeled, then a 0 if I is labeled
with L, then a (L). - If the variable V is mentioned in I, then c
(V) 1. - If the statement in I is either
- V ? V , then b 0
- V ? V 1, b 1
- V ? V 1, b 2
- If the statement in I is IF V ? 0 GOTO L', then b
(L') 2
4Coding programs
- Reminder from Chapter 3
- Given the following variable ordering Y X1,
Z1, X2, Z2 - Provided the following label ordering A1 B1
C1 D1 E1 .... - We have a program as follows A X
? X 1 - IF X ? 0 GOTO A
- The instruction numbers for this program are
thus - (I1) lt (A) ,lt 1, (X) - 1gtgt
lt1, lt 1,1 gtgt lt 1,5 gt 21 - (I2) lt0,lt (A) 2 , (X) - 1
gtgt lt0, lt 3 , 1 gtgt lt 0 , 23 gt 46 - Definition The program P number is then
calculated as - (P) (I1), (I2) , (I3) , ... - 1
- In the program above (P) 221 346 1
5Coding programs
- In order to avoid ambiguity of unlabeled Y ? Y
instruction, which is lt0,lt0,0gtgt an additional
rule is imposed - The final instruction in a program is not
permitted to be the unlabeled statement Y ? Y. - N.B The program number thus determines a unique
program, which can reconstructed. - Example Given (P) 576 575 1
- 575 52 231 0 , 0 , 2 , 0 , 0 , 0 , 0 ,
0 , 1 9 instructions - For 2 lt0,1gt lt0,lt1,0gtgt so unlabeled Y ? Y
1 - For 1 lt1, 0gt lt1, lt0,0gtgt so labeled A Y
? Y - For 0 lt0, lt0,0gtgt , this will be unlabeled Y ?
Y - Empty program has the number 0.
6The Halting Problem
- Definition For a given y, let P be the program
such that (P) y. Then HALT(x , y) is true if
is defined and false if - is undefined, so
- HALT( x , y ) program number y eventually
halts on input x - Theorem HALT( x , x ) is not a computable
predicate. - Proof Construct a program P A IF HALT( X ,
X ) GOTO A - Let (P) y0, then HALT( x, y0)
HALT( x , x ) - So we can set xy0, thus HALT (y0,y0)
HALT(y0,y0) - Contradiction!
7Insolvability of Halting Problem
- There is no algorithm that, given a program of P
and an input to that program, can determine
whether or not the given program will eventually
halt on the given input (Chapter 4, page 68) - Churchs Thesis Any algorithm for computing on
numbers can be carried out by a program of P. - See Golbachs conjecture (every even number
greater or equal to 4 is the sum of two prime
numbers) for an example of computable program for
which it is hard to determine whether it will
ever halt.
8Universality
- Universality Theorem For each n gt 0, where
- For each n gt0, the function
is partially computable. - Step-Counter Theorem For each n gt 0, the
- predicate is
primitive recursive, where
,where (P)y
Program number y halts after t or fewer Steps on
inputs x1, , xn.
9Normal Form Theorem
- Normal Form Theorem Let f( x1 ,, xn) be a
partially computable function. Then there is a
primitive recursive predicate R( x1, , xn, y )
such that - Theorem A function is computable iff can be
obtained from the initial functions by a finite
number of applications of composition, recursion
and (proper ) minimalization
10Normal Form Theorem
- Normal Form Theorem Proof
- Let y0 be the program number for f(x1,,xn).
- when the right-hand side of the equation is
defined, then there exists a number z - For any z, the program with number y0 has
reached a terminal snapshot in r(z) or fewer
steps and l(z) is in output variable Y. - If the right side is undefined, then
is false for all t i.e.
11Recursively Enumerable Sets
- Theorem Let the sets B , C belong to some PRC
class C. Then so do the sets
- (prove using predicate union and
intersection) - Theorem Let C be a PRC class, and let B be a
subset of . Then B belongs to C
iff - Definition The set is called
recursively enumerable if there is a partially
computable function g(x) such that
belongs to C
12Recursively Enumerable Sets
- If B is a recursive set, then B is recursively
enumerable. - The set B is recursive iff B and are both
recursively enumerable. - If B and C are recursively enumerable sets so are
- Enumeration Theorem A set B is recursively
enumerable iff there is an n for which B Wn
13Recursively Enumerable Sets
- Definition K is a set of all numbers n such that
program number n eventually halts on input n. - K is recursively enumerable but not recursive.
- Theorem Let B be a recursively enumerable set.
Then there is a primitive recursive predicate
R(x,t) such that
14Recursively Enumerable Sets
- Theorem Let S be a nonempty recursively
enumerable set. Then there is a primitive
recursive function f(u) such that - S f(n) n ? N f(0) , f(1) ,
- , where S is the range of f.
- Theorem Let f(x) be a partially computable
function and let - S f(x) f(x) ?
- , where S is the range. Then S is recursively
enumerable.
15Recursively Enumerable Sets
- Theorem Suppose that , then the
following statements are all equivalent - S is recursively enumerable
- S is the range of a primitive recursive function
- S is the range of a recursive function
- S is the range of a partial recursive function
16The Parameter Theorem
- s-m-n Theorem
- For each n , m gt 0 there is a primitive
recursive function such
that -
17The Parameter Theorem
- s-m-n proof using induction on n.
- Base case For program P take n 1, then the
following must be shown to be true - should be the number of the
program with m inputs - , which must be the same as
program number y having m 1 inputs
. - (P) y
- So will be the number of the
program, that will provide the variable
before proceeding with P. -
-
18The Parameter Theorem
- s-m-n proof continued
- The instruction will have
a number associated with it as follows
lt0,lt1,2m1gtgt 16m 10 - Thus may be defined as a primitive
recursive function - Induction step let n k, then
-
-
19Diagonalization and Reducibility
- Definition Let TOT be the set of all numbers p
such that p is the number of a program that
computes a total function f(x) of one variable.
That is, - , where
- Theorem TOT is not recursively enumerable.
,s
20Diagonalization and Reducibility
- Theorem TOT is not recursively enumerable.
- Proof Assume that TOT is recursively enumerable.
Then given that , then there is
a computable function g(x) - and let
- Since g(x) is the number of a program that
computes a total function, thus h is a computable
function. Let P be the program that computes h
and p(P). Then - Contradiction!
21Diagonalization and Reducibility
- Theorem Suppose A m B, then
- If B is recursive, then A is recursive.
- If B is recursively enumerable, then A is as
well. - Definition A set A is m-complete if
- A is recursively enumerable and
- For every recursively enumerable set B, B m A
22Diagonalization and Reducibility
- If A m B and B m C, then A m C (transitivity)
- If A is m-complete, B is recursively enumerable
and A m B then B is m-complete. - Definition A B means that A m B and B m A
- Theorem
- K and K0 are m-complete
- K K0
- Theorem EMPTY is not recursively enumerable,
where
23Rice's Theorem
- Examples
- ? is the set of computable functions
- ? is the set of primitive recursive functions
- ? is the set of partially computable functions
that are defined for all but a finite number of
values of x - Rices Theorem Let ? be a collection of
partially computable functions of one variable,
such that there are functions f(x), g(x) with
f(x) in ?, g(x) not in ?. Then R? is not
recursive. - Corollary There are no algorithms for testing a
given program P of the language L to determine
whether belongs to any of the classes
described in the above examples. - What does it mean? If ? is a non-trivial property
of functions, then ? is undecidable.
24Rice's Theorem
- Proof (using recursion theorem)
- Let f(x) and g(x) be partially computable
functions such that - f(x) ?
- g(x) ?
- Suppose is computable. Let
-
and - Then, since
- - is partially computable.
-
Iis not recursive
25Rice's Theorem
Proof (contd) Since is partially
computable, by recursion theorem there is a
number e s.t. As and
Contradiction!
26- The Recursion Theorem
- Recursion Theorem Let g(z, x1, , xm) be a
partially computable function of m 1 variables.
Then, there is a number e such that - Discussion Given a partially computable
function g, we must produce a program e that is
supplied m arguments and one of the implicit
arguments is its own encoding e. - We may attempt to prove the theorem by first
incrementing a variable e times. But then the
problem is that the encoding of such a program
will be larger than e! - The program P with (P) e must contain a
partial description of itself built-in so that
that it can computer its own encoding e from that
description.
27Let Q be the program Z Y g(Z, X1,
X2, , Xm) Now, the program P will consist of
(Q) copies of the instruction Xm1 Xm1 1,
followed by the program Q. After executing the
first (Q) increments as well as the instruction
Z , Z holds the number of the program
consisting of the (Q) copies of the instruction
followed by the program Q (Remember that
as defined in the proof of the
parameter theorem computes the of the program
consisting of (Q) copies of the increment
instruction Xm1 Xm1 1 followed by program
Q). But this is exactly the program P.
28- Proof Let g be a partially computable function
such as - is the function in the parameter theorem. Then
for some z0 and using s-m-n theorem - Set v z0 and , then
- Contradiction!
29The Recursion Theorem
- Corollary There is a number e such that for all
x - Proof Let g be a computable function
- Using the recursion theorem
- Fixed Point Theorem Let f(z) be a computable
function. Then there is a number e such that - Take g(z, x)
30Computable functions that are not primitive
recursive
- The primitive recursive functions are precisely
the functions from the initial functions (see
Chapter 3) - Theorem The unary primitive recursive functions
are precisely those obtained from the initial
functions s(x) x 1, n(x) 0, l(x) , r(x) by
applying the following three operations on unary
functions - To go from f(x) and g(x) to f(g(x))
- To go from f(x) and g(x) to lt f(x) , g(x) gt
- To go from f(x) and g(x) to the function defined
by the recursion - Theorem The function f( x , x ) 1 is a
computable function that is not primitive
recursive.