Documentation

CslibFrontier.Computability.Complexity.CookLevin.Clauses

Polynomial-time construction of tableau clauses #

All clause families of the existing Cook–Levin tableau are polynomial-time functions of their input word and unary time/window bounds. Variables use encVar, so the certificates compose with Cslib.Complexity.CookLevin.computableInPolyTime_relabel to produce binary SAT instances.

The machine, its tape count and its finite state type are fixed. Traversals of tapes and situations therefore use fixed lists; the tape-cell window is enumerated from the input bound. The step certificate enumerates the original constructor templates, preserving their order and multiplicity. These certificates assemble into the complete reduction in CslibFrontier/Computability/Complexity/CookLevin/PolyTime.lean.

Main results #

References #

Build the existing initial-configuration clauses from a unary window bound.

Build the situation clauses at a unary time, with the finite machine data fixed.

Build the uniqueness clauses at a unary time, with the finite machine data fixed.

Build the step constraints by enumerating the fixed constructor templates in their original order. Positions and bounds are unary; the machine's finite transition table is fixed.