Reducibility
Key idea: For comparing RE sets.
Def:
Let A and B be sets (of any kind)
A is many-one reducible to B, written A
<m B , if
there is a computable
function f(X) such that x is in A
if and only if f(x) is in B.
Note that above definition covers all members of the set
A but not necessarily those of the set B.
EX: A
= {0,1,2,3,4, ..., Infinity}
B = {0,2,4,6,8, ..., 2*Infinity}
f(x) = 2*x
In the above case, clearly it is the case that A is many-one reducible to
B
as f(x) is computable and x is in A if and only if 2*x is in
B
In this example, both sets are covered entirely.
EX: A
= {0,2,4,6,8, ..., Infinity}
B = {4,6,8,10,12,14, ..., Infinity}
f(x) = x+10
In the above case, set A is many-one reducible to set B. But, the set B
is not
covered entirely as 4,6, and 8 are not covered in the
mapping.
In general, when a set A is many-one reducible to set B, it is the case that the
membership question for the set A is no
harder than that for the set B.
THM6.2 (Reducibility)
Suppose that A is many-one reducible to
B.
1. If B is recursive, then so is
A.
2. If B is RE, then so is A.
Proof:
(1)
Since A is many-one reducible to B, from the definition,
there is a computable
function f(x) such that A = { x | f(x) is in B
}.
As B is recursive, B = { x | P(x) is true } for a
certain computable predicate P(x).
Hence, A = { x | P(f(x)) is true } and the predicate
P(f(x)) is computable making
the set A Computable (Recursive).
(2)
As B is RE, B = { x | g(x) is defined } for a certain PC
function g(x).
Hence, A = { x | g(f(x)) is defined } and g(f(x)) is a
PC function as it is the
composition of a PC function and a computable
function.
Utility of this THM:
If we know that A is many-one reducible to B and it is
not Recursive, then
we can conclude that B is not Recursive either.
Likewise if A is not RE, then we can conclude that
neither is B.
EX:
Let K0 = { <x,y> |
f (x,y) is defined }
= { u |
f (l(u),
r(u)) is defined }
= { u |
g(u) is defined } where g(u) is
f (l(u),r(u))
which is PC.
So, K0 is clearly RE.
We can show that it is not Recursive by reducing K to K0
We see that u is in K if and only if <u,u> is K0 and f(u) = <u,u>
is
Computable and so K is reducible to K0
Actually, we can show every RE set is many-one reducible
to K0
Suppose that S is RE and let S = {x | g(x) is defined}
where g(x) is PC.
So, S = { x
| f (x,q) is defined } where q is the program number
computing
the PC function g(x) .
So, x is in
S if and only if <x,q> is K0 and <x,q> is a computable function
of x.
This establishes the reducibility.
In a way, this set
K0 is the most complicated RE set. So, call
it m-Complete.
Definition:
An m-Complete set
An RE set is m-Complete if any RE set is many-one
reducible to it, like the set K0
Once we find an m-Complete set S, we can use it in
finding another m-Complete set
R
by reducing S to R. In this case, we are establishing that R is also m-Complete
because the reducibility is a transitive
relation.
In fact,
K0 is reducible to K and so K is also
m-Complete.
Proof of
above Reducibility (Reduction)
1.
We need to identify
a computable unary function f(x) such that
x is in K0 if and
only if f(x) is in K, that is,
<u,v> is K0 if and only if f(<u,v>) is in K, that
is,
f (u,v) is defined
if and only if f (
f(<u,v>), f(<u,v>) ) is
defined.
2. We want
a program P with two inputs such that
f (u,v) = yP (X1,
<u,v>) = f (X1,
S(<u,v>, #P))
This equation becomes, for X1 = S(<u,v>,
#P)
f (u,v)
=
f ( S(<u,v>,#P), S(<u,v>,
#P))
As #P is a constant, S(<u,v>,#P) is a computable
function of one argument
as it is
S(<l(x),r(x)>, #P).
3. This
program P computes f (u,v) which
is f (l(X2),r(X2))
So, P may have just one instruction :
Y = f (l(X2),r(X2))
THM7.1 (Rice’s Theorem)
A sufficient condition for Non-Recursive
Sets
Suppose that t is an infinite set of PC functions of one
argument without all PC functions. Then it is not
Recursive.
Note that there is at least one function in this set
t and
at least one function not
in this set by definition. We call the first f(x) and
the second g(x).
Also note that a set of PC functions is the same as a
set of numbers of programs that
computes these PC functions.
Proof: By
reducibility of the set K to this set t.
1.
Let h(x) be the empty function that is undefined for all x’s, namely its
domain
is
empty.
2. We
assume that h(x) is not in set
t.
a. Consider
the following program p:
Z <- f (X2,X2)
Y <-
f(X1)
So, f (X1,X2,#p) = f(X1) if f(X2,X2) is defined and
undefined
otherwise.
b.
Now, consider the following program we get from above program
p:
X2 <- k
// where k is a constant
Z <- f (X2,X2)
Y <-
f(X1)
By definition, above program is S11 (k,#p) which is
a Computable function
of k as #p is fixed.
c.
Now we can check the relationship between the set K and this set
t.
1. Suppose that k is in
K
<->
f (k,k) is defined
<->
f (X,
S11 (k,#p))
= f(X) for all X’s <->
S(k,#p) which can be taken as a computable function of k is in
t
as f(X) is.
2.
Suppose that k is not K, then S(k,#p) must not be in t.
k is not in K
<->
f(k,k) is not defined. <->
f(X, S(k,#p)) is undefined for all X’s
<->
f(X,S(k,#p)) = h(X)
<->
S(k,#p) is not in t.
This
establishes the wanted reducibility as h(X) is not in t.
So, in this case K is reduced to this set t.
3.
Suppose that h(X) is in this set
t.
We get analogous
result when we consider the following program p:
Z <- f(X2,X2)
Y <-
g(X1)
And, in this
case, S(k,#p) will represent the
following program:
X2 <- k
Z <- f(X2,X2)
Y <-
g(X1)
In this
case, we will conclude that:
k is in K <-> S(k,#p)
is in ~t
(as
h(X) is in t now and
g(X) is in ~t)
So, we are
reducing K to ~t in concluding that ~t is not
Recursive.
This means
that t is not Recursive.
4.
Hence, this set t is not Recursive.
QED.
This means
that its membership question is unsolvable.
Significance of Rice’s THM:
Any infinite set of PC functions (or of programs) with
at least one possible member
missing is not Recursive and hence the membership
question of any such set is unsolvable.
Examples of such sets:
a. Set of all PR functions of one argument.
b. Set of all Computable functions of one argument.
c. Set of all PC functions of one argument but without at least PC
function of one
argument.
Note that the set of all PC functions of one argument
without any one
missing is not such a set as it is Recursive.