The only first-principles "proof" that a problem is NP-complete I encountered is from Introduction to algorithms, and deals with the circuit-satisfiability problem. According to the authors, many details in the proof are omitted.

What is the simplest first-principles proof that a problem is NP-complete that thoroughly presents all the technical details?

  • 3
    $\begingroup$ I assume you want a proof that is not a reduction to a different NP-complete problem, but rather a direct proof from the definition of NP-completeness? Wikipedia has a nice writeup of such a proof: en.wikipedia.org/wiki/Cook%27s_theorem. $\endgroup$ Feb 28, 2012 at 14:19
  • 1
    $\begingroup$ @AlextenBrink: I assume you mean (polynomial-time) reduction from a different NP-complete problem (in addition to an NP membership proof)? Just nit-picking, but the difference is, of course, crucial. $\endgroup$ Mar 5, 2012 at 12:16
  • $\begingroup$ @Magnus Lie Hetland: you are of course completely right. Unfortunately, comments can't be edited, so I can't correct it. $\endgroup$ Mar 5, 2012 at 14:18

1 Answer 1


What about { (M,$1^t$) : M is a turing machine that, run on a blank tape, accepts within t steps} ?

The proof of NP-completeness is a simple exercise from the definition.


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.