Cook reduction
Given two (search or decision) problems and and a complexity class , a Cook reduction of to is a Turing machine
appropriate for which solves using as an oracle (the Cook reduction itself is not in , since it is a Turing machine, not a problem, but it should be the class of bounded Turing machines corresponding to ). The most common type are Cook reductions, which are often just called Cook reductions.
If a Cook reduction exists then is in some sense “at least as hard” as , since a machine which solves could be used to construct one which solves . When is closed under appropriate operations, if and is -Cook reducible to then .
A Karp reduction is a special kind of Cook reduction for decision problems and . It is a function such that:
Again, Karp reductions are just called Karp reductions.
A Karp reduction provides a Cook reduction, since a Turing machine could decide by calculating on any input and determining whether . Note that it is a stronger condition than a Cook reduction. For instance, this machine requires only one use of the oracle.