turing reducibility
one problem is reducible to another if a method for solving the second problem yields a method for solving the first.
[cite:;taken from @computability_rogers_1987 chapter 6 reducibilities]
[cite:;taken from @computability_rogers_1987 chapter 6 reducibilities]
is many-one reducible (
-reducible) to
(written
) if there is a computable function
such that
and
, i.e.,
iff
.
is one-one reducible (1-reducible) to
(
) if
by a 1:1 computable function.
let
be sets.
is many-one reducible to
, written
, if there is a computable function
such that
that is,
iff
. (the word many-one simply refers to the fact that we do not require
to be one-one.)
[cite:;taken from @computability_davis_1994 chapter 4.6 diagonalization and reducibility]
[cite:;taken from @computability_davis_1994 chapter 4.6 diagonalization and reducibility]
if
and
is computable then
is computable.
[cite:;taken from @computability_soare_2016 proposition 1.6.10]
[cite:;taken from @computability_soare_2016 proposition 1.6.10]
suppose
.
- if
is recursive, then
is recursive.
- if
is r.e., then
is r.e.
let
. if
is noncomputable, then
is also noncomputable. if
isnt computably enumerable then
is also not computably enumerable.
consider the function
this function acts as a reduction from
to
. for every program number
(i.e.
is the encoding of a program
), the function
returns the code of the following program
:

ignores its inputs and runs the given program
on
.
the given reduction function
is computable: we can write an algorithm that receives
and returns the encoding of the program
(the encoding function should be computable).
we have
:
we have shown the reduction from
, since
isnt computably enumerable, we have that
is also not computably enumerable.
the given reduction function
we have
if
and
, then
.
[cite:;taken from @computability_davis_1994 chapter 6.4 diagonalization and reducibility; theorem 6.3]
[cite:;taken from @computability_davis_1994 chapter 6.4 diagonalization and reducibility; theorem 6.3]
if
is
-complete,
is r.e. and
, then
is
-complete.
[cite:;taken from @computability_davis_1994 chapter 6.4 diagonalization and reducibility; corollary 6.4]
[cite:;taken from @computability_davis_1994 chapter 6.4 diagonalization and reducibility; corollary 6.4]
if
then
.
the proof is trivial, assuming there is a reduction function for
, the same reduction function can be used for the reduction
.
can regard any classification problem (on finitely described objects) as a subset of our set of inputs
. efficient reductions provide a natural partial order on such problems that captures their relative difficulty. note that reductions are a primary tool in computability and recursion theory, from which computational complexity developed. there, reductions were typically simply computable functions, whereas the focus of computational complexity is on efficiently computable ones. while we concentrate here on time efficiency, the field studies a great variety of other resources; limiting these in reductions is as fruitful as limiting them in algorithms. the following crucial definition is depicted in [cite:;in @computation_wigderson_2019 figure 7].
let
be two classification problems.
is an efficient reduction from
to
if
and for every
we have
iff
. in this case, we call
an efficient reduction from
to
. we write
if there is an efficient reduction from
to
.
[cite:;taken from @computation_wigderson_2019 definition 3.10 efficient reductions]
[cite:;taken from @computation_wigderson_2019 chapter 3.6 reductions][cite:;taken from @computation_wigderson_2019 definition 3.10 efficient reductions]