SAT2016 is in P.
Observe that in order to satisfy the formula you have to assign 1 to at least one literal of every clause. Each clause contains at most 2n
literals. Therefore, the number of ways to choose a single literal from every clause is at most (2n)^2016
. In order to find out whether the formula is satisfiable, you should iterate over (at most) (2n)^2016
possibilities (to choose a single literal from every clause) and check for each possibility if it's legal. That is, for each choice of 2016 literals (one from each clause) you should check if two of the 2016 literals happen to be a certain variable and its negation. If that is the case, you move on to the next choice of 2016 literals. If you went through all the (2n)^2016
possibilities and found out that they all contain a conflict, you conclude that the formula is unsatisfiable.
Since there are at most (2n)^2016
possibilities, and checking a given possibility takes constant time (because you just have to loop over all possible pairs in a set of 2016 literals), the running time of the algorithm is polynomial in n
.