Documentation

CslibFrontier.Computability.Complexity.CookLevin.Parameters

Computing the Cook–Levin parameters #

The reduction in CslibFrontier/Computability/Complexity/CookLevin/Reduction.lean builds a tableau from a framed input prefix, a certificate length and a time bound. This module certifies their joint computation, with the two bounds in unary so that enumerating times and tape positions has polynomial cost. The certificate polynomial and the constants in the verifier's time bound are fixed parameters.

The clause and variable-numbering certificates in CslibFrontier/Computability/Complexity/CookLevin/Clauses.lean and CslibFrontier/Computability/Complexity/CookLevin/Encoding.lean compose with this result in CslibFrontier/Computability/Complexity/CookLevin/PolyTime.lean.

Main results #

References #

The input prefix, certificate length and verifier time bound used by the Cook–Levin reduction are jointly computable in polynomial time, with the bounds in unary.