Formal methods for comparing decision problems using many-one and Turing reducibility.
Reducibility is a way to compare problems by asking whether one problem can be solved using another.
Suppose we have two decision problems, and . Each problem asks whether an input belongs to a certain set:
or
We say that reduces to if a method for solving would also give us a method for solving .
In informal terms:
means:
The direction matters. If , then is at least as powerful as . A solver for can be used to solve .
Many-One Reducibility
One common kind of reducibility is many-one reducibility.
We write:
if there is a computable function such that:
This means we can transform every question about into one question about .
The function is called a reduction function.
The process looks like this:
Then instead of asking whether , we ask whether .
If the answer to is yes, then the answer to is yes. If the answer is no, then the answer to is no.
So solves after a computable translation.
Example Pattern
Suppose is the problem:
and is another problem about programs.
To show:
we build a computable transformation:
where is an instance of problem .
Then we prove:
This is the standard structure of a reduction proof.
Turing Reducibility
Many-one reducibility allows one computable translation and one query to . Turing reducibility is more flexible.
We write:
if can be decided by a Turing machine with oracle access to .
An oracle for is an idealized device that answers questions of the form:
in one step.
A machine deciding may ask the oracle many questions while it runs. It may choose later questions depending on earlier answers.
So means:
or equivalently:
Every many-one reduction gives a Turing reduction:
The reverse implication does not hold in general. Turing reductions allow more interaction with the oracle.
Why Reducibility Matters
Reducibility lets us transfer impossibility results.
If:
and is undecidable, then must also be undecidable.
Why? If were decidable, then we could solve by reducing to and then deciding . That would contradict the undecidability of .
So the proof pattern is:
Therefore:
This is one of the most important uses of reductions.
Reduction Direction
The most common beginner mistake is reversing the direction.
To prove that is hard, reduce a known hard problem to :
This says: if we could solve , then we could solve .
Since cannot be solved, cannot be solved either.
So the hard problem goes on the left, and the new problem goes on the right.
Reducibility as a Preorder
Reducibility behaves like a comparison relation.
First, every problem reduces to itself:
This is reflexivity.
Second, reductions compose. If:
and
then:
This is transitivity.
Together, these properties make reducibility a preorder.
It may happen that:
and:
Then and have the same computational difficulty under that reducibility.
For Turing reducibility, we write:
when:
This equivalence relation leads to Turing degrees, which are studied in the next section.