Correctness of the Cook–Levin tableau #
The tableau formula of S steps of a machine M (tableau) is satisfiable, with the fixed
input tapes holding their strings, iff M accepts some completion of the free input tapes
within S steps (planning/succinct-cook-levin.md, S1; answer_reduction.tex
lem:correct-tableau). Acceptance is AcceptsIn: halted at time S with output string
exactly [acc].
- Completeness (
tableau_sat_of_acceptsIn): the assignment of an accepting run (runAssign) satisfies every clause; the window clauses because the windows of a run are locally consistent (locallyConsistent_localCfgOf) and the check circuit computes local consistency, its specification being the hypothesishchk. - Soundness (
acceptsIn_of_tableau_sat): a satisfying assignment determines the free input strings from its time-0rows, and its rows encode the configurations of the run on those inputs, by induction on time: at each step the window clauses force, through the check circuit, local consistency of every window, and a locally consistent window whose time-tpart is that of a configuration has the time-t + 1part of its successor (post_of_pre). The acceptance row and the emission bookkeeping then give acceptance.
Both directions use the head bounds headsIn_cfgAt: along a run, a head moves at most one
cell per step, so at every time t ≤ S every head is on an interior cell of the tableau.
Acceptance within S steps: halted at time S, having output exactly [acc].
Equations
- MIPRE.TM.CookLevin.AcceptsIn M acc input S = ((Turing.MultiInputTM.configs (Turing.MultiInputTM.initCfg input) S).state = none ∧ M.outputString (Turing.MultiInputTM.initCfg input) S = [acc])
Instances For
Head bounds along a run #
A work head is at a position of absolute value at most t at time t.
The output string of an accepting run #
The output of S steps, split at step t.
In a run whose output over S steps is [acc], a step that emits emits acc, and
nothing was emitted before it.
The assignment of a run, by variable #
Clause evaluation #
Cells #
An interior input cell holds a blank or a symbol of the string.
Cell 2 of an input tape is blank.
Blanks propagate to the right on an input tape.
Completeness: the window clauses #
The bits of the window read from f are the values of f on the circuit's inputs.
The check circuit accepts every window of the run.
Completeness: the other clauses #
Completeness of the tableau. The assignment of an accepting run satisfies the tableau formula.