Correctness of the Cook–Levin tableau #
tableau tm u L T is satisfiable exactly when some certificate w of length L makes tm,
started on u ++ w, halt within T steps with output [true]. More precisely, for a fixed
certificate z, it has a satisfying assignment encoding z exactly when tm, started on
u ++ z, has halted after T steps with output [true] (exists_eval_tableau_iff).
Each family of clauses is first characterised semantically (eval_initClauses,
eval_readClauses, eval_stepClauses, …). The uniqueness clauses (eval_uniqueClauses) are not
needed for soundness; they make the satisfying assignments unique for each certificate
(Complexity/Computability/Complexity/CookLevin/Parsimonious.lean), and completeness checks that
the assignment read off the run
satisfies them. Soundness then shows, by induction on time, that a
satisfying assignment describes the run on the certificate it encodes (Agrees,
agrees_of_eval_tableau):
by the one-hot clauses it suffices that the basic features holding at time t + 1 are true
(Agrees.of_oneHot), and each of them follows from a term of its step equation
(Turing.MultiTapeTM.Feature.holds_step_iff_exists_stepTerms) through a step clause.
Completeness reads an assignment off the run (runAssignment); its step clauses hold by the same
step equation.
Main results #
Cslib.Complexity.CookLevin.exists_eval_tableau_iff: the tableau with fixed certificate bits.Cslib.Complexity.CookLevin.tableau_satisfiable_iff: the tableau is correct.
References #
Semantics of the clause families #
The initial clauses fix the initial configuration.
The read clauses: the symbol a head reads, from its position and the cell there, is true.
The uniqueness clauses: each head reads at most one symbol, and a true situation has its state and symbols read true.
An assignment describes the configuration cfg at time t: the basic features true at time
t are those holding of cfg.
Instances For
Under the read and situation clauses, the situation of a configuration that an assignment describes is true.
The step clauses impose the step equation of every basic feature.
The tableau holds when each of its families does, at each time.
Soundness #
Under the one-hot clauses at time t, an assignment describes cfg at time t as soon as
the basic features holding of cfg are true.
A satisfying assignment describes the run on the certificate it encodes, up to time T.
Completeness #
The assignment read off the run of tm on u ++ w: each feature variable says whether the
feature holds of the run, and the certificate variables spell w.
Instances For
The assignment read off an accepting run satisfies the tableau.
The tableau with fixed certificate bits. tableau tm u z.length T has a satisfying
assignment whose certificate is z exactly when tm, started on u ++ z, has halted after T
steps with output [true].
The Cook–Levin tableau is correct. tableau tm u L T is satisfiable exactly when some
certificate w of length L makes tm, started on u ++ w, halt within T steps with output
[true].