The decoupled describer, and the clauses it describes #
The describer of lem:decoupled-5sat: the 3SAT describer of thm:succinct-sat, its inputs
renamed into the five-block layout, in disjunction with the link formula of Link.lean, all
flattened once to a circuit. mem_formula5_iff is the bridge — a clause is accepted exactly
when the 3-clause of its last three literals is accepted by the 3SAT describer, or the clause
satisfies one of the eight link conditions (planning/decoupled-5sat.md, A1c).
Where the 3SAT describer's inputs go #
The renaming reads the right bits #
The shifted candidate #
The 3SAT describer's inputs cannot be renamed into the five-block layout by a program: the
renaming is k ↦ k + 2ℓ below 3r and k ↦ k + 2ℓ + 2 above, and deciding which needs a
comparison of two binary numbers, which the ambient model does not have. So the describer is
rebuilt on the shifted layout instead — the candidate reads its three field records at the
bases 2ℓ, 2ℓ + r, 2ℓ + 2r and its three signs at 2ℓ + 3r + 2, 3, 4. That is cheaper
in both directions: every offset is unary, so the program is the one S3 already has, and the
correctness goes straight through eval_tableauPlusF instead of through the renaming.
The candidate of the decoupled describer: the three field records at the shifted bases and the three auxiliary signs.
Equations
- One or more equations did not get rendered due to their size.
Instances For
The describer #
The tableau half of the describer's formula, on the shifted candidate.
Equations
- One or more equations did not get rendered due to their size.
Instances For
The formula of the decoupled describer.
Equations
- One or more equations did not get rendered due to their size.
Instances For
The decoupled describer circuit: the flattening of descFml5 on 2ℓ + 3r + 5
inputs.
Equations
- One or more equations did not get rendered due to their size.
Instances For
What the decoupled describer accepts: a clause is accepted exactly when the 3-clause of its last three literals is accepted by the 3SAT describer, or the clause satisfies one of the eight link conditions.
What a satisfying five-tuple is #
Following the paper: for a fixed triple of indices the three signs of the other blocks
range over all of {0,1}³, so a decoupled clause is satisfied exactly when the literals of
the blocks the condition constrains are. Rows 8 and 9 therefore read as equalities of whole
blocks, and rows 2 and 3 as equalities of single bits.
The index 0 of a block.
Equations
Instances For
A literal of a block that the given assignment falsifies.
Equations
- MIPRE.TM.CookLevin.Desc.offLit w = { var := MIPRE.TM.CookLevin.Desc.zeroIdx k, pos := !w (MIPRE.TM.CookLevin.Desc.zeroIdx k) }
Instances For
The three-block half: the described 3SAT formula on the three auxiliary blocks.
Equations
- MIPRE.TM.CookLevin.Desc.Tri φ w₁ w₂ w₃ = ∀ c ∈ φ, (MIPRE.SAT.Lit.eval w₁ c.l₁ || MIPRE.SAT.Lit.eval w₂ c.l₂ || MIPRE.SAT.Lit.eval w₃ c.l₃) = true
Instances For
The two halves of satisfaction.
The padding of an answer block #
Past twice the length of the string, a tape block is the blank cell 10: true at even
positions and false at odd ones. This is the parity the audit campaign repaired, and it is
what rows 4 to 7 assert.
The describer describes the decider #
The decoupled describer describes the decider (lem:decoupled-5sat, the description
clause).