Skip to content
Browse chapters
Imports

The Cook--Levin main theorem

This module closes the textbook semantic circuitization with the concrete raw-input compiler. The resulting explicit map is a genuine polynomial-time many-one reduction, yielding NP-hardness and NP-completeness of the honest serialized general-circuit satisfiability language.

namespace CLRS.Chapter34.Turing.CookLevinnoncomputable section

The concrete Cook--Levin map is a polynomial-time many-one reduction for every normalized verifier witness.

Cook--Levin theorem. Every polynomially verifiable language reduces in polynomial time to general Boolean-circuit satisfiability.

General circuit satisfiability is NP-hard.

theorem generalCircuitSAT_npHard : NPHard GeneralCircuitSAT := by intro Γ L hL exact cookLevin_theorem hL

General circuit satisfiability is NP-complete.

endend CLRS.Chapter34.Turing.CookLevin