53
правки
Изменения
Нет описания правки
Для этого, сделаем два утверждения:
Среди значений <tex>(x_{1}^* \ldots x_{k}^*)</tex> хотя бы одно должно равняться <tex>true</tex>. Не умаляя общности, пусть для некоторого <tex>r: 1 \le r \le k, x_r = true</tex>. Тогда, пусть <tex>z_{s}^*=true</tex> для <tex>s \le r-2</tex> и <tex>z_{s}^*=false</tex> для <tex>s > r - 2</tex>. Тогда, все новые дизъюнкты также будут удовлетворены.
Предположим, что это не так, и <tex>x_i = false, i = 1..k</tex>. Тогда, первые <tex>k-3</tex> дизъюнкта в <tex>3SAT</tex> удовлетворены только если <tex>z_i = true, i=1..k-3</tex>. Однако, если <tex>z_{k-3}=true</tex>, то последний дизъюнкт <tex>(x_{k-1} \vee x_k \vee \neg z_{k-3})</tex> не может быть удовлетворен. Пришли к противоречию, следовательно хотя бы один из <tex>x_i</tex> должен равняться <tex>true</tex>.
Таким образом, мы свели <tex>CNFSAT</tex> к <tex>3SAT</TEX>, следовательно <tex>3SAT \in NPH</tex>. Теорема доказана.