# Lecture 17

## Polynomial-time Reductions

Definition The language $$A\subseteq\{0,1\}^*$$ is polynomial-time reducible to $$B\subseteq\{0,1\}^*$$ if $$f:\{0,1\}^*\rightarrow\{0,1\}^*$$ that satisfies

1. there exists a Turing machine with polynomial running time that on input $$x\in\{0,1\}^*$$ writes $$f(x)$$ on the tape
2. $$x\in A$$ iff $$f(x)\in B$$

Definition We write $$A\leq_p B$$ when $$A$$ is polynomial-time reducible to $$B$$.

Prop If $$A\leq_p B$$ and $$B\in P$$, then $$A\in P$$ as well.

    MA
--------------
x->|Mf->f(x)->MB|
--------------

E.g.

1. $$Add\leq_p Sub$$ ($$\{1^k01^l01^{k+l}\}$$ and $$\{1^{k+l}01^k01^l\}$$)
• $$f(x)=x^R$$
2. $$L_{0^k1^k}\leq_p PAL^{even}=\{ww^R:w\in\{0,1\}^*\}$$
3. $$2COL\leq_p 3COL$$

## NP-hardness & NP-completeness

Definition $$L\subseteq\{0,1\}^*$$ is $$NP-hard$$ if for every $$A\in NP$$ $$A\leq_p L$$

Definition $$L\subseteq\{0,1\}^*$$ is $$NP-complete$$ if $$L$$ is $$NP-hard$$ and $$L\in NP$$

Theorem There is alanguage $$L$$ that is $$NP-complete$$

Proof Consider $$TMSAT=\{<M,x,1^u,1^t>:\exists c\in\{0,1\}^*$$ of length $$\leq u$$ s.t. $$M$$ accepts $$<x,c>$$ in at most $$t$$ steps$$\}$$

1. $$TMSAT\in NP$$: we can build a NTM that guesses the certificate $$c$$ and simulate $$M$$ on $$<x,c>$$ for at most $$t$$ steps
2. Let $$A$$ be any language in $$NP$$. Let $$V$$ be a polynomial-time verifier for $$A$$. Define $$f(x)=<V,x,1^{p(|x|)},1^{t(|x|+p(|x|))}>$$ We can compute $$f$$ in polynomial time and we can easily verify that $$x\in A$$ iff $$f(x)\in TMSAT$$

## Cook-Levin Theorem

$$SAT$$ is $$NP-complete$$

Definition A Boolean formula is an expression of some boolean variables combine with $$\land, \lor, \lnot$$.

e.g. $$\varphi(x_1,x_2,x_3)=(x_1\land x_2)\lor(\lnot x_3\lor x_1)$$

Definition A Boolean formula is satisfiable if there is an assignment of True/False values to the variables that cases the formula to evaluate to True.

Definition $$SAT=\{<\varphi>: \varphi$$ is a satisfiable Boolean formular$$\}$$