Starting from Gödel's 1956 letter gives P vs NP the right philosophical weight: it was never just a puzzle about runtimes, it was a question about the nature of mathematical creativity itself.
If finding proofs were polynomial-time, then the difference between recognizing truth and discovering it would collapse in a profound way. That is such a beautiful way to motivate NP.
The progression is also elegant: computability -> time complexity -> P -> NP -> NP-completeness -> barriers -> Williams.
We trace computational complexity theory from Kurt Gödel's 1956 letter to von Neumann, through the foundational work of Hartmanis and Stearns, Cook's and Levin's discovery of NP-completeness, the barrier theorems that explain why proving P ≠ NP is so hard, and Ryan Williams' surprising connection between faster algorithms and lower bounds.
Starting from Gödel's 1956 letter gives P vs NP the right philosophical weight: it was never just a puzzle about runtimes, it was a question about the nature of mathematical creativity itself.
If finding proofs were polynomial-time, then the difference between recognizing truth and discovering it would collapse in a profound way. That is such a beautiful way to motivate NP.
The progression is also elegant: computability -> time complexity -> P -> NP -> NP-completeness -> barriers -> Williams.
We trace computational complexity theory from Kurt Gödel's 1956 letter to von Neumann, through the foundational work of Hartmanis and Stearns, Cook's and Levin's discovery of NP-completeness, the barrier theorems that explain why proving P ≠ NP is so hard, and Ryan Williams' surprising connection between faster algorithms and lower bounds.