证明:
1.首先证明4SAT是NP问题:假设现在有一个包含N个变量,M个子句的4SAT实例INS和一个变量的赋值ASS,当把这个ASS应用上去后,显然是可以在多项式时间内知道这个ASS能不能满足INS为真的。所以4SAT是NP问题。
2.证明4SAT是NP-C问题。一个办法是用3SAT问题规约为4SAT问题。
假设现在有一个3SAT的实例INS3,那么转化的4SAT的实例INS4可以用如下方法:
——设INS3的所有变量为S,那么INS4中加入一个新变量K,所以INS4的变量集合为S ∪ {K}。
——对INS3的所有子句C(不妨设Ci = Xi ∨ Yi ∨ Zi),在INS4的子句中加入(Xi ∨ Yi ∨ Zi ∨ K)∧ (Xi ∨ Yi ∨ Zi ∨ ¬K)。
如果INS3可满足,那么不管K取什么值,(Xi ∨ Yi ∨ Zi ∨ K)∧ (Xi ∨ Yi ∨ Zi ∨ ¬K)一定等于(Xi ∨ Yi ∨ Zi),所以用了INS3的变量的值之后,再随便设一个K的值,这样的变量值的集合组成一个解,一定能满足INS4。
如果INS4可满足,那么因为不管K取什么值,(Xi ∨ Yi ∨ Zi ∨ K)∧ (Xi ∨ Yi ∨ Zi ∨ ¬K)一定等于(Xi ∨ Yi ∨ Zi),所以直接把满足INS4的解中除了K的变量都应用于INS3,INS3一定能被满足。
综上,3SAT可以被规约到4SAT问题。
又因为3SAT是NP-C问题,所以4SAT是NP-C问题。