The circuit-to-3SAT reduction #
Circuit.tseitin C inp gv is the 3SAT formula of a circuit C on variables inp i for its
inputs and gv g for its gates (lem:circuit-to-sat-reduction, lem:tseitin with the
output-wire conjunct of the F7.2 erratum): for every gate the clauses saying that its
variable is the gate's function of its arguments' variables, and the unit clause on the
output gate. tseitin_values: a satisfying assignment carries the gate values. The tableau of the Cook–Levin theorem is
this reduction applied to the local check circuit at every window
(planning/succinct-cook-levin.md, S1).
A clause from three literals.
Equations
- MIPRE.SAT.cl a b c = { l₁ := a, l₂ := b, l₃ := c }
Instances For
The consistency clauses of a gate whose variable is y, over the input variables inp
and the gate variables gv.
Equations
- One or more equations did not get rendered due to their size.
- MIPRE.SAT.gateClauses inp gv y (MIPRE.SAT.Gate.const b) = [MIPRE.SAT.cl { var := y, pos := b } { var := y, pos := b } { var := y, pos := b }]
Instances For
The clauses of a gate hold iff its variable carries the gate's value, when the argument variables carry the argument values.
Soundness: a satisfying assignment of the formula agreeing with x on the inputs
witnesses C(x) = 1.
Completeness, for a given assignment: one that carries the gate values on the gate variables satisfies the formula when the circuit accepts the bits it reads on the inputs.