Documentation

CslibFrontier.Computability.Complexity.CookLevin.PolyTime

Polynomial time for the complete Cook–Levin reduction #

The existing tableau is constructed from a bit-string prefix and unary certificate/time bounds. All clause families and intermediate lists are charged by the polynomial-time machine calculus. Composing with the exact parameter computation and binary variable relabelling certifies reduce itself. The verifier, tape count, finite state type and polynomial bounds are fixed; one resulting machine and polynomial work for every encoded instance.

Main results #

References #

theorem Cslib.Complexity.CookLevin.computableInPolyTime_reduce {k : ℕ} {State : Type} [Fintype State] [DecidableEq State] (tm : Turing.MultiTapeTM k Bool State) (p : Polynomial ℕ) (c d : ℕ) {α : Type} (enc : α ↪ List Bool) :

The existing Cook–Levin reduction is polynomial-time for every fixed verifier and bounds.