在计算复杂度理论内，Cook–Levin理论或者Cook理论，证明了布尔可满足性问题（SAT）是NP完全问题。换句话说，任何NP里面的问题可以在多项式时间内，使用图灵机，将之归约成「一个布尔方程式是否存在解」这个问题。这理论一个非常重要的结果是，如果存在一个决定型多项式时间演算法，可以解决SAT的话，则对于"所有的"NP里面的问题都存在决定型多项式时间演算法。而且，非常重要的，这对其他的NP完全问题也都成立。有关以上这个演算法存在与否的问题，又被称为P/NP问题。而且广泛认为这是现在的理论电脑科学里