Talk:Cook–Levin theorem

message: My proof in this article differs from the one given by Garey and Johnson. My Boolean expression B contains the disjunction of the possible transitions for a tape position/computation step (thus requiring at least one transition), whereas the G&J proof contains the conjunction (thus requiring all transitions, which seems wrong). See the definition of group G6, page 43 of the 1997 edition. I think this is a trivial mistake on G&J's part as G&J make it clear what they mean in the table on page 42. But I would appreciate someone to check my working. Gdr 21:00, 2004 Jul 21 (UTC)
:In December 2008 your proof was edited, and at present there is no disjunction over possible transitions for a given state-symbol pair. That means the formula states that all applicable transitions must be satisfied (instead of one of them). Hence the construction is correct only for deterministic machines, which of course does not cover NP :)  Jochgem (talk) 10:30, 22 April 2011 (UTC)
thread_title: Different proof

message: Isn't the first sentence under "Definitions" in the Cook's Theorem page wrong?  Shouldn't it read as follows:
"A decision problem is in NP if a deterministic Turing machine can verify a proposed solution of the decision problem in polynomial time.  Equivalently, a decision problem is in NP if a non-deterministic Turing machine can solve the decision problem in polynomial time."
This is more consistent with the definitions on the "NP" page.
Rodney Topor 04:59, 29 October 2006 (UTC)
thread_title: Wrong definition

message: I believe that the actual Cook-Levin theorem, at least as taught at GU, MIT, and Columbia, and as written in the seminal algorithms textbook CLRS, is actually the CSAT problem, for which no entry on Wikipedia even exists.  After CSAT was shown to be NP-Complete, they reduced SAT to CSAT, and then 3SAT to SAT.  Perhaps I'm mistaken, but I think that this article is incorrect. I noticed this b/c I'm a student taking algorithms at MIT, and what they taught us contradicts this article. 18.224.0.172 (talk) 01:14, 17 November 2009 (UTC)
replies: text: Currently, there is a page on Circuit-SAT (=CSAT). Note that the approach to show that an NP-complete problem exists in CLRS is not the Cook-Levin theorem. A difference is that the Cook-Levin theorem shows NP-hardness of SAT with respect to logspace reductions, while CLRS uses polynomial time reductions to show NP-hardness of CSAT. As a logspace reduction can be performed in polynomial time, the Cook-Levin theorem is a bit stronger than the result in CLRS. I think CLRS have chosen to use polynomial time reductions because it allows them to prove all results within the RAM model and avoids the introduction of Turing machines. This makes the presentation simpler when coming from an algorithmic perspective. ShearedLizard (talk) 10:10, 22 May 2018 (UTC)
thread_title: CSAT

message: I agree that the Proof that Boolean satisfiability problem is NP-complete page should be merged into the Cook's Theorem page.  There already is a proof in the the Cook's Theorem page that is more concise, more precise, and more complete.  The other proof ignores the polynomial-time requirement of the reduction.  I would go further and recommend the "Proof" page be deleted as it is redundant.
Rodney Topor 05:47, 29 October 2006 (UTC)
replies: text: I was poking around on Leonid Levin's page and noticed there is also an article titled Cook-Levin Theorem, which I think should also be merged into here. Note the capital "T" - currently Cook-Levin theorem (small "t") is a redirect, but the capital T page is not. I haven't checked out all of the differences yet, but I will try and move some over if I have time. --Culix 08:39, 10 December 2006 (UTC)
thread_title: Merge

message: User:Mikkalai moved the page back to Cook's theorem with no discussion here. I've undone that for the moment. Let's go over the arguments again. Gdr 12:59, 30 November 2007 (UTC)
thread_title:  Rename was reverted 

message: There are three (not just two) different theorems about the "NP completeness" of SAT: Cook's version, Karp's version (which followed Cook) and Levin's version (which was independently found). Each of them uses different definitions, and therefore, they are not mathematically equivalent. Whether Cook's completeness notion and Karp's notion are equivalent is one of the major open problems in Complexity Theory. I cannot work on the article right now, but I thought it worthwhile to leave a note. AmirOnWiki (talk) 09:05, 5 October 2012 (UTC)
thread_title:  Cook, Levin and Karp 

message: "Additionally he found for each of these problems an algorithm that solves it in optimal time (in particular, these algorithms run in polynomial time if and only if P = NP)."
According to this statement the optimal algorithms have been found and by measuring their time complexity we can determine if P = NP. Surly something is wrong here.  — Preceding unsigned comment added by Folket (talk • contribs) 14:44, 13 January 2015 (UTC)
replies: text: The convergence of these algorithms running time to their asymptotic behavior is too slow to measure accurately, and anyway we need proofs not experiments. —David Eppstein (talk) 16:46, 13 January 2015 (UTC)

text: Define a "searcher" to be a Turing machine with three tapes (input, witness, scratch) that halts if the witness tape ever holds a witness for the given NP-complete problem instance and does not halt otherwise. Then if the problem can be solved in polynomial time, there exists a searcher that solves it in polynomial time (for all positive instances, but fails to halt for negative instances). Additionally there exists a brute force searcher that ignores its input tape and just counts up in binary in the witness tape; this searcher solves all positive instances but will probably not take polynomial time. Then, to solve a given instance of length n, let f(n) be a sufficiently slowly growing function (log log n is probably good enough) and simulate, in parallel, the set of all possible searchers with at most f(n) states, including also the brute force searcher even if it has too many states. Keep running the simulation until one of the simulated searchers halts. Because of the inclusion of the brute force searcher, this algorithm will correctly halt on all yes instances and fail to halt on all no instances. If P≠NP, it will not take polynomial time (because nothing can). And if P=NP then there exists a polynomial time searcher that will be included in the parallel simulation for all large enough inputs and that will cause the whole algorithm to halt within polynomial time (because small instances don't count towards the asymptotic time bound and multiplying the time for the good searcher by the overhead for the parallel simulation of all the other searchers and for testing the witnesses at each step still gives a polynomial). Of course, this isn't a true polynomial time algorithm because it doesn't halt on the no-instances, and I haven't read Levin to find out whether and how he gets around this issue. —David Eppstein (talk) 20:25, 13 January 2015 (UTC)
thread_title:  Known optimal algorithms?