Definition: Karp Reduction
A language $A$ is Karp reducible to a language $B$ if there is a polynomial-time computable function $f:\{0,1\}^*\rightarrow\{0,1\}^*$ such that for every $x$, $x\in A$ if and only if $f(x)\in B$.
Definition: Levin Reduction
A search problem $V_A$ is Levin reducible to a search problem $V_B$ if there is polynomial time function $f$ that Karp reduces $L(V_A)$ to $L(V_B)$ and there are polynomial-time computable functions $g$ and $h$ such that
$\langle x, y \rangle \in V_A \implies \langle f(x), g(x,y) \rangle \in V_B$,
$\langle f(x), z \rangle \in V_B \implies \langle x, h(x,z) \rangle \in V_A$
Are these reductions equivalent?
I think the two definitions are equivalent. For any two $\mathsf{NP}$ languages $A$ and $B$, if $A$ is Karp reducible to $B$, then $A$ is Levin reducible to $B$.
Here is my proof:
Let $x$ and $\overline{x}$ be arbitrary instances of $A$ while $x'$ be that of $B$. Suppose $V_A$ and $V_B$ are verifiers of $A$ and $B$. Let $y$ and $\overline{y}$ be arbitrary certificates of $x$ and $\overline{x}$ according to $V_A$. Let $z$ be that of $x'$ according to $V_B$.
Construct new verifiers $V'_A$ and $V'_B$ with new certificates $y'$ and $z'$:
$V'_A(x,y'):$
- $y'=\langle 0,\overline{x},\overline{y}\rangle$: If $f(x)\ne f(\overline{x})$, reject. Otherwise output $V_A(\overline{x},\overline{y})$.
- $y'=\langle 1,z\rangle$: Output $V_B(f(x),z)$.
$V'_B(x',z'):$
$z'=\langle 0,z\rangle$: Output $V_B(x',z)$.
$z'=\langle 1,x,y\rangle$: If $x'\ne f(x)$, reject. Otherwise output $V_A(x,y)$.
The polynomial-time computable functions $g$ and $h$ are defined as below:
$g(x,y')$
$y'=\langle 0,\overline{x},\overline{y}\rangle$: Output $\langle 1,\overline{x},\overline{y}\rangle$.
$y'=\langle 1,z\rangle$: Output $\langle 0,z\rangle$.
$h(x',z')$
$z'=\langle 0,z\rangle$: Output $\langle 1,z\rangle$.
$z'=\langle 1,x,y\rangle$: Output $\langle 0,x,y\rangle$.
Let $Y_x$ be the set of all certificates of $x$ according to $V_A$ and $Z_{x'}$ be the set of all certificates of $x'$ according to $V_B$. Then the set of all certificates of $x$ according to $V'_A$ is $0\overline{x}Y_\overline{x}+1Z_{f(x)}$ such that $f(x)=f(\overline{x})$, and the set of all certificates of $x'$ according to $V'_B$ is $0Z_{x'}+1\overline{x}Y_\overline{x}$ such that $x'=f(\overline{x})$.
(This is derived from the accepting language of $V'_A$ and $V'_B$.)
Now let $x'=f(x)$, the rest part is easy to check.