License: CC BY 4.0
arXiv:2404.04395v1 [cs.CC] 05 Apr 2024

A Critique of Du’s “A Polynomial-Time Algorithm for 3-\satthanks: Supported in part by NSF grant CCF-2006496.

Yumeng He Department of Computer Science
University of Rochester
Rochester, NY 14627, USA
Matan Kotler-Berkowitz Department of Computer Science
University of Rochester
Rochester, NY 14627, USA
Harry Liuson Department of Computer Science
University of Rochester
Rochester, NY 14627, USA
Zeyu Nie Department of Computer Science
University of Rochester
Rochester, NY 14627, USA
(April 5, 2024)
Abstract

In this paper, we examine the claims made by the paper “A polynomial-time algorithm for 3-SAT” [Du10] by Lizhi Du. The paper claims to provide a polynomial-time algorithm for solving the NP-complete problem 3-\sat\sat\sat. In examining the paper’s argument, we find a flaw in one of the main sections of its algorithm. We argue that this flaw causes the paper’s algorithm to incorrectly decide that an infinite family of satisfiable 3-CNF boolean formulas are not satisfiable. Therefore, the paper does not establish that P=NPPNP{\rm P}={\rm NP}roman_P = roman_NP.

1 Introduction

This critique provides an analysis of Lizhi Du’s “A polynomial-time algorithm for 3-\sat\sat\sat” [Du10]. The paper attempts to provide a polynomial-time algorithm that decides whether a 3-CNF boolean formula is satisfiable. This decision problem, known as 3-\sat\sat\sat, is a well-known NP-complete problem [Kar72]. Therefore, Du claims that their algorithm can be used to solve any problem in NPNP{\rm NP}roman_NP, in polynomial time. This claim has significant implications. Many widely-used algorithms have security claims that rely on the assumption that PNPPNP{\rm P}\neq{\rm NP}roman_P ≠ roman_NP, and many difficult problems may be easily solvable if P=NPPNP{\rm P}={\rm NP}roman_P = roman_NP. For instance, if Du’s claim is correct, most forms of cryptography may be breakable [MM00], and problems such as protein folding and finding mathematical proofs may become solvable in polynomial time [BL98]. We thus explore the algorithm that Du provides [Du10]. We show that the algorithm incorrectly decides that certain satisfiable 3-CNF boolean formulas are not satisfiable, which means that it is not a valid algorithm for 3-\sat\sat\sat.

In Section 3, we present the relevant terminology from Du, and discuss how Du’s algorithm purports to solve 3-\sat\sat\sat in polynomial time. In particular, in Section 3.2 we explain Du’s “Algorithm 1,” which purports to identify so-called “indirect contradiction pairs”: pairs of literals in a 3-CNF boolean formula for which no satisfying assignment exists that makes both literals true. Next, in Section 4, we provide a counterexample that demonstrates how Du’s Algorithm 1 incorrectly decides that certain satisfiable 3-CNF boolean formulas are not satisfiable. Finally, we explain how this flaw means that Du’s entire algorithm does not correctly decide 3-\sat\sat\sat, and thus Du’s claim of P=NPPNP{\rm P}={\rm NP}roman_P = roman_NP does not follow from their arguments.

2 Preliminaries

In this paper, we assume basic familiarity with Turing machines and computation, including the complexity classes PP{\rm P}roman_P and NPNP{\rm NP}roman_NP, and NP-complete problems. A boolean formula is in conjunctive normal form (CNF) if it is the conjunction of one or more clauses, where each clause is the disjunction of zero or more literals. Each literal can be either x𝑥xitalic_x or x¯¯𝑥\bar{x}over¯ start_ARG italic_x end_ARG for any variable x𝑥xitalic_x. A boolean formula is in k-CNF form if each clause of the formula has at most k𝑘kitalic_k literals [Kar72]. For example, the following is a 3-CNF boolean formula:

(abc)(db¯).𝑎𝑏𝑐𝑑¯𝑏(a\lor b\lor c)\land(d\lor\bar{b}).( italic_a ∨ italic_b ∨ italic_c ) ∧ ( italic_d ∨ over¯ start_ARG italic_b end_ARG ) .

The 3-CNF satisfiability problem is defined as determining whether a given 3-CNF boolean formula is satisfiable (i.e., has an assignment to the variables of the formula that makes the formula evaluate to true). The set 3-\sat\sat\sat consists of all 3-CNF boolean formulas for which there exists a satisfying assignment. 3-\sat\sat\sat is NP-complete [Kar72]. Thus the existence of a polynomial-time algorithm that decides 3-\sat\sat\sat would imply P=NPPNP{\rm P}={\rm NP}roman_P = roman_NP.

3 Analysis

In this section, we introduce relevant terminology and algorithms from Du’s paper.

Given a 3-CNF boolean formula, Du’s algorithm attempts to determine whether there is a satisfying assignment for that formula. Let Ci={ui1,ui2,ui3}subscript𝐶𝑖subscript𝑢subscript𝑖1subscript𝑢subscript𝑖2subscript𝑢subscript𝑖3C_{i}=\{u_{i_{1}},u_{i_{2}},u_{i_{3}}\}italic_C start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT = { italic_u start_POSTSUBSCRIPT italic_i start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT end_POSTSUBSCRIPT , italic_u start_POSTSUBSCRIPT italic_i start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT end_POSTSUBSCRIPT , italic_u start_POSTSUBSCRIPT italic_i start_POSTSUBSCRIPT 3 end_POSTSUBSCRIPT end_POSTSUBSCRIPT } refer to the i𝑖iitalic_ith clause of the 3-CNF formula, meaning that Ci=ui1ui2ui3subscript𝐶𝑖subscript𝑢subscript𝑖1subscript𝑢subscript𝑖2subscript𝑢subscript𝑖3C_{i}=u_{i_{1}}\lor u_{i_{2}}\lor u_{i_{3}}italic_C start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT = italic_u start_POSTSUBSCRIPT italic_i start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT end_POSTSUBSCRIPT ∨ italic_u start_POSTSUBSCRIPT italic_i start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT end_POSTSUBSCRIPT ∨ italic_u start_POSTSUBSCRIPT italic_i start_POSTSUBSCRIPT 3 end_POSTSUBSCRIPT end_POSTSUBSCRIPT. A “unit” is simply a literal in the clause. We note, before we introduce the following definitions, that Du’s use of the term “tree” seems to refer to the way that the “tree” structure is constructed iteratively, with each “layer” being added one at a time. In this context, a layer corresponds to a clause in the original 3-\sat\sat\sat instance, consisting of three or less “units” (literals). Du’s “trees” have neither tree nor graph structure in the conventional sense.

Given a 3-CNF boolean formula, Du’s algorithm transforms the formula into what the paper calls a “standard checking tree” through iteratively adding new clauses and deriving new “contradiction pairs.”

Definition 1 (Checking Tree).

A checking tree is a sequence of layers. A checking tree with k+1𝑘1k+1italic_k + 1 layers that are labeled T0,,Tksubscript𝑇0normal-…subscript𝑇𝑘T_{0},\ldots,T_{k}italic_T start_POSTSUBSCRIPT 0 end_POSTSUBSCRIPT , … , italic_T start_POSTSUBSCRIPT italic_k end_POSTSUBSCRIPT, is denoted as T(k)superscript𝑇𝑘T^{(k)}italic_T start_POSTSUPERSCRIPT ( italic_k ) end_POSTSUPERSCRIPT. Since checking trees are constructed iteratively, a checking tree may only have layers corresponding to some of the clauses in the original 3-SAT instance.

Definition 2 (Long Path).

For a checking tree T𝑇Titalic_T with m𝑚mitalic_m layers, a long path is a list of literals P=(u1j1,u2j2,,umjm)𝑃subscript𝑢1subscript𝑗1subscript𝑢2subscript𝑗2normal-…subscript𝑢𝑚subscript𝑗𝑚P=(u_{1j_{1}},u_{2j_{2}},\ldots,u_{mj_{m}})italic_P = ( italic_u start_POSTSUBSCRIPT 1 italic_j start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT end_POSTSUBSCRIPT , italic_u start_POSTSUBSCRIPT 2 italic_j start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT end_POSTSUBSCRIPT , … , italic_u start_POSTSUBSCRIPT italic_m italic_j start_POSTSUBSCRIPT italic_m end_POSTSUBSCRIPT end_POSTSUBSCRIPT ) such that (k{1,2,,m})[ukjkTkjk{1,2,3}]for-all𝑘12normal-…𝑚delimited-[]subscript𝑢𝑘subscript𝑗𝑘subscript𝑇𝑘subscript𝑗𝑘123(\forall k\in\{1,2,\ldots,m\})[u_{kj_{k}}\in T_{k}\wedge j_{k}\in\{1,2,3\}]( ∀ italic_k ∈ { 1 , 2 , … , italic_m } ) [ italic_u start_POSTSUBSCRIPT italic_k italic_j start_POSTSUBSCRIPT italic_k end_POSTSUBSCRIPT end_POSTSUBSCRIPT ∈ italic_T start_POSTSUBSCRIPT italic_k end_POSTSUBSCRIPT ∧ italic_j start_POSTSUBSCRIPT italic_k end_POSTSUBSCRIPT ∈ { 1 , 2 , 3 } ] and no two literals in P𝑃Pitalic_P are negations of each other.

Definition 3 (Direct Contradiction Pair).

A direct contradiction pair is a pair of literals {a,a¯}𝑎normal-¯𝑎\{a,\bar{a}\}{ italic_a , over¯ start_ARG italic_a end_ARG }.

Definition 4 (Indirect Contradiction Pair).

For a checking tree T𝑇Titalic_T, an indirect contradiction pair is a pair of literals {a,b}𝑎𝑏\{a,b\}{ italic_a , italic_b } such that there does not exist a long path P𝑃Pitalic_P of T𝑇Titalic_T such that both a,bP𝑎𝑏𝑃a,b\in Pitalic_a , italic_b ∈ italic_P.

Definition 5 (Standard Checking Tree).

A standard checking tree is a pair (T,C)𝑇𝐶(T,C)( italic_T , italic_C ) where T𝑇Titalic_T is a checking tree and C𝐶Citalic_C is the set of contradiction pairs of T𝑇Titalic_T. Contradiction pairs may be either direct or indirect (Definitions 3 and 4).

In essence, a long path is a satisfying assignment of the partial 3-\sat\sat\sat instance represented by T𝑇Titalic_T, with its clauses corresponding to the layers of T𝑇Titalic_T. The goal of Du’s algorithm is to find a long path through the standard checking tree that corresponds to the original 3-CNF formula.

The general process that Du gives to solve 3-\sat\sat\sat is to iteratively construct the standard checking tree by adding one layer at a time. After the algorithm calculates all the contradiction pairs of T(k)superscript𝑇𝑘T^{(k)}italic_T start_POSTSUPERSCRIPT ( italic_k ) end_POSTSUPERSCRIPT for some natural number k1𝑘1k\geq 1italic_k ≥ 1, it adds a new layer corresponding to Ck+1subscript𝐶𝑘1C_{k+1}italic_C start_POSTSUBSCRIPT italic_k + 1 end_POSTSUBSCRIPT to form T(k+1)superscript𝑇𝑘1T^{(k+1)}italic_T start_POSTSUPERSCRIPT ( italic_k + 1 ) end_POSTSUPERSCRIPT, and calculates the additional contradiction pairs of T(k+1)superscript𝑇𝑘1T^{(k+1)}italic_T start_POSTSUPERSCRIPT ( italic_k + 1 ) end_POSTSUPERSCRIPT. The algorithm does this by using a destroyed checking tree, which we define below.

3.1 Destroyed Checking Tree

Definition 6 (Destroyed Checking Tree).

A destroyed checking tree D(T,S)𝐷𝑇𝑆D(T,S)italic_D ( italic_T , italic_S ) of a standard checking tree T𝑇Titalic_T and some subset of literals S𝑆Sitalic_S is T𝑇Titalic_T such that for all literals sS𝑠𝑆s\in Sitalic_s ∈ italic_S, if s=x𝑠𝑥s=xitalic_s = italic_x for some variable x𝑥xitalic_x, then, then all the occurences of x¯normal-¯𝑥\bar{x}over¯ start_ARG italic_x end_ARG are removed from T𝑇Titalic_T, and if s=x¯𝑠normal-¯𝑥s=\bar{x}italic_s = over¯ start_ARG italic_x end_ARG for some variable x𝑥xitalic_x, then all occurences of x𝑥xitalic_x are removed from T𝑇Titalic_T. This corresponds to a modified problem with the restriction that the literals in S𝑆Sitalic_S cannot be set to true.

Let x,y𝑥𝑦x,yitalic_x , italic_y be any pair of literals in the layers of T(k)superscript𝑇𝑘T^{(k)}italic_T start_POSTSUPERSCRIPT ( italic_k ) end_POSTSUPERSCRIPT. To determine whether (x,y)𝑥𝑦(x,y)( italic_x , italic_y ) is a new indirect contradiction pair, for all vCk+1𝑣subscript𝐶𝑘1v\in C_{k+1}italic_v ∈ italic_C start_POSTSUBSCRIPT italic_k + 1 end_POSTSUBSCRIPT, Du’s algorithm constructs a destroyed checking tree D(T(k),{x,y,v})𝐷superscript𝑇𝑘𝑥𝑦𝑣D(T^{(k)},\{x,y,v\})italic_D ( italic_T start_POSTSUPERSCRIPT ( italic_k ) end_POSTSUPERSCRIPT , { italic_x , italic_y , italic_v } ). If for all such vCk+1𝑣subscript𝐶𝑘1v\in C_{k+1}italic_v ∈ italic_C start_POSTSUBSCRIPT italic_k + 1 end_POSTSUBSCRIPT, the destroyed checking tree is unsatisfiable, then (x,y)𝑥𝑦(x,y)( italic_x , italic_y ) must be a contradiction pair in T(k+1)superscript𝑇𝑘1T^{(k+1)}italic_T start_POSTSUPERSCRIPT ( italic_k + 1 ) end_POSTSUPERSCRIPT, as a long path through T(k+1)superscript𝑇𝑘1T^{(k+1)}italic_T start_POSTSUPERSCRIPT ( italic_k + 1 ) end_POSTSUPERSCRIPT must have a literal in the last layer, Ck+1subscript𝐶𝑘1C_{k+1}italic_C start_POSTSUBSCRIPT italic_k + 1 end_POSTSUBSCRIPT.

This requires that we determine the satisfiability of the destroyed checking tree. Du’s algorithm first “repairs” the destroyed checking tree to a standard checking tree using Algorithm 1. When a destroyed checking tree is created, it is comprised of the set of contradiction pairs from the standard checking tree from which it was created. However, these contradiction pairs may no longer be valid in the destroyed checking tree, as the destroyed literals impose additional constraints on the possible solutions to the problem. As such, Du’s paper uses Algorithm 1 to augment the set of contradiction pairs and “repair” the checking tree to obtain an (ostensibly) updated, correct set of contradiction pairs for the destroyed checking tree.

It then uses a somewhat convoluted procedure, Algorithm 2, which we will not discuss in depth here, in order to determine satisfiability. We observe that this procedure can actually be simplified, as given a standard checking tree T𝑇Titalic_T and a set of contradiction pairs R𝑅Ritalic_R, T𝑇Titalic_T is unsatisfiable if and only if R𝑅Ritalic_R contains every pair of units in (some layers of) T𝑇Titalic_T. Then we can check the satisfiability of the destroyed checking tree by invoking Algorithm 1.

3.2 Algorithm 1

Algorithm 1 takes a destroyed checking tree D(T,S)𝐷𝑇𝑆D(T,S)italic_D ( italic_T , italic_S ) as input. Let 2subscript2\ell_{2}roman_ℓ start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT be the set of clauses with one or two literals, created as a result of deleting literals. Let 3subscript3\ell_{3}roman_ℓ start_POSTSUBSCRIPT 3 end_POSTSUBSCRIPT be the set of clauses with three literals.

For each unit x𝑥xitalic_x that is a member of a clause in 3subscript3\ell_{3}roman_ℓ start_POSTSUBSCRIPT 3 end_POSTSUBSCRIPT, the algorithm calculates its useful units Uxsubscript𝑈𝑥U_{x}italic_U start_POSTSUBSCRIPT italic_x end_POSTSUBSCRIPT as the set of literals in clauses in 2subscript2\ell_{2}roman_ℓ start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT that are in a satisfying partial assignment of 2subscript2\ell_{2}roman_ℓ start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT consistent with x𝑥xitalic_x. This is decidable in polynomial time, since 2-\sat\sat\sat \in P.

The issue arises in Step 3: “for each unit u𝑢uitalic_u’s each useful unit (sic), if in another 3-unit layer, the units that do not destroy u𝑢uitalic_u do not have this useful unit, u𝑢uitalic_u also has to lose this useful unit” [Du10].

“Destroy” here is not entirely clearly-defined. We interpret this as: For all (x,y)𝑥𝑦(x,y)( italic_x , italic_y ) in distinct 3-unit layers that are not contradiction pairs of T𝑇Titalic_T, the useful units of x𝑥xitalic_x and y𝑦yitalic_y are set as the intersection between the useful units of x𝑥xitalic_x and y𝑦yitalic_y. Section 4 demonstrates how Step 3 causes the algorithm to incorrectly decide that certain 3-CNF formulas are unsatisfiable.

4 A Counterexample

Consider an instance of a standard checking tree, where C1Cnsubscript𝐶1subscript𝐶𝑛C_{1}\dots C_{n}italic_C start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT … italic_C start_POSTSUBSCRIPT italic_n end_POSTSUBSCRIPT are some arbitrary clauses satisfying our assumptions below.

stc¯C1Cns¯t¯r.𝑠𝑡¯𝑐subscript𝐶1subscript𝐶𝑛¯𝑠¯𝑡𝑟\\ s\lor t\lor\bar{c}\\ C_{1}\\ \vdots\\ C_{n}\\ \bar{s}\lor\bar{t}\lor r.\\ start_ROW start_CELL end_CELL end_ROW start_ROW start_CELL italic_s ∨ italic_t ∨ over¯ start_ARG italic_c end_ARG end_CELL end_ROW start_ROW start_CELL italic_C start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT end_CELL end_ROW start_ROW start_CELL ⋮ end_CELL end_ROW start_ROW start_CELL italic_C start_POSTSUBSCRIPT italic_n end_POSTSUBSCRIPT end_CELL end_ROW start_ROW start_CELL over¯ start_ARG italic_s end_ARG ∨ over¯ start_ARG italic_t end_ARG ∨ italic_r . end_CELL end_ROW (1)

Now, suppose we are trying to add the clause abc𝑎𝑏𝑐a\lor b\lor citalic_a ∨ italic_b ∨ italic_c to the tree.

Assume the existence of some unit α𝛼\alphaitalic_α such that (a,α)𝑎𝛼(a,\alpha)( italic_a , italic_α ) and (b,α)𝑏𝛼(b,\alpha)( italic_b , italic_α ) are contradiction pairs. Additionally suppose that all long paths contain c,α𝑐𝛼c,\alphaitalic_c , italic_α, and that (s,t¯)𝑠¯𝑡(s,\bar{t})( italic_s , over¯ start_ARG italic_t end_ARG ) and (t,s¯)𝑡¯𝑠(t,\bar{s})( italic_t , over¯ start_ARG italic_s end_ARG ) are not contradiction pairs, and suppose that there exists at least one long path.

Then to check if c,α𝑐𝛼c,\alphaitalic_c , italic_α are a contradiction pair, we delete c¯¯𝑐\bar{c}over¯ start_ARG italic_c end_ARG and α¯¯𝛼\bar{\alpha}over¯ start_ARG italic_α end_ARG from the tree. The resulting destroyed checking tree has the form:

stC1Cns¯t¯r.𝑠𝑡subscriptsuperscript𝐶1subscriptsuperscript𝐶𝑛¯𝑠¯𝑡𝑟\\ s\lor t\\ C^{\prime}_{1}\\ \vdots\\ C^{\prime}_{n}\\ \bar{s}\lor\bar{t}\lor r.\\ start_ROW start_CELL end_CELL end_ROW start_ROW start_CELL italic_s ∨ italic_t end_CELL end_ROW start_ROW start_CELL italic_C start_POSTSUPERSCRIPT ′ end_POSTSUPERSCRIPT start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT end_CELL end_ROW start_ROW start_CELL ⋮ end_CELL end_ROW start_ROW start_CELL italic_C start_POSTSUPERSCRIPT ′ end_POSTSUPERSCRIPT start_POSTSUBSCRIPT italic_n end_POSTSUBSCRIPT end_CELL end_ROW start_ROW start_CELL over¯ start_ARG italic_s end_ARG ∨ over¯ start_ARG italic_t end_ARG ∨ italic_r . end_CELL end_ROW (2)

If (s,t¯)𝑠¯𝑡(s,\bar{t})( italic_s , over¯ start_ARG italic_t end_ARG ) and (t,s¯)𝑡¯𝑠(t,\bar{s})( italic_t , over¯ start_ARG italic_s end_ARG ) are not contradiction pairs, and α𝛼\alphaitalic_α is in all long paths, then there must be some long path which has both α𝛼\alphaitalic_α and s¯¯𝑠\bar{s}over¯ start_ARG italic_s end_ARG and another one which has both α𝛼\alphaitalic_α and t¯¯𝑡\bar{t}over¯ start_ARG italic_t end_ARG. Therefore (α,s¯)𝛼¯𝑠(\alpha,\bar{s})( italic_α , over¯ start_ARG italic_s end_ARG ) and (α,t¯)𝛼¯𝑡(\alpha,\bar{t})( italic_α , over¯ start_ARG italic_t end_ARG ) are not indirect contradiction pairs. That is, they do not destroy each other. Clearly, t𝑡titalic_t is s¯¯𝑠\bar{s}over¯ start_ARG italic_s end_ARG’s only useful unit and s𝑠sitalic_s is t¯¯𝑡\bar{t}over¯ start_ARG italic_t end_ARG’s only useful unit. Then Step 3 of Algorithm 1 causes s𝑠sitalic_s and t𝑡titalic_t to be removed from α𝛼\alphaitalic_α’s useful units. This causes α𝛼\alphaitalic_α to be deleted in Step 7 since it has a layer with zero useful units.

By our assumption that all valid long paths must contain α𝛼\alphaitalic_α, the algorithm then concludes that there are no solutions and that (c,α)𝑐𝛼(c,\alpha)( italic_c , italic_α ) must be a contradiction pair.

This demonstrates one failure case of Algorithm 1. It can incorrectly conclude that a destroyed checking tree has no solutions, leading to pairs incorrectly being designated as indirect contradiction pairs. It is clear that incorrectly labeling contradiction pairs may lead to the algorithm failing to output the correct answer. For example, in the above case, if there was a single unique solution requiring c𝑐citalic_c and α𝛼\alphaitalic_α to be assigned true, then the algorithm would fail.

Additionally, the clauses C1,,C2subscript𝐶1subscript𝐶2C_{1},\ldots,C_{2}italic_C start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT , … , italic_C start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT may be composed of any arbitrary literals that satisfy our assumptions. Therefore, there is an infinite family of 3-\sat\sat\sat instances that Du’s algorithm decides incorrectly.

5 Conclusion

Du presents a complex algorithm that claims to decide in polynomial time whether a 3-\sat\sat\sat instance is satisfiable. Du’s algorithm is presented in multiple parts, with each part relying on the output of the previous part. The only part of Du’s paper that does not rely on another algorithm is Algorithm 1. If we assume that Algorithm 1 works correctly, the rest of Du’s algorithm may indeed be able to decide 3-\sat\sat\sat in polynomial time. However, as demonstrated above, Algorithm 1 does not work correctly: There are satisfiable instances of 3-\sat\sat\sat that Algorithm 1 will identify as being unsatisfiable. Since the entirety of Du’s algorithm relies on Algorithm 1, this flaw in Algorithm 1 is fatal to the rest of Du’s algorithm. Thus Du’s paper has not provided an algorithm that correctly decides an NP-complete problem in polynomial time. As a result, the claim that P=NPPNP{\rm P}={\rm NP}roman_P = roman_NP does not follow from the paper’s argument.

Acknowledgments

We would like to thank Michael C. Chavrimootoo, Lane A. Hemaspaandra, Michael P. Reidy, and Eliot J. Smith for their helpful comments on prior drafts. The authors are responsible for any remaining errors.

References

  • [BL98] B. Berger and T. Leighton. Protein folding in the hydrophobic-hydrophilic (HP) model is NP-complete. Journal of Computational Biology, 5(1):27–40, 1998.
  • [Du10] L. Du. A polynomial time algorithm for 3-SAT. Technical Report arXiv:1004.3702 [cs.CC], Computing Research Repository, arXiv.org/corr/, April 2010. Revised October, 2023.
  • [Kar72] R. Karp. Reducibilities among combinatorial problems. In Complexity of Computer Computations, pages 85–103, 1972.
  • [MM00] F. Massacci and L. Marraro. Logical cryptanalysis as a SAT problem. Journal of Automated Reasoning, 24:165–203, 2000.