The fields of a literal, as formulas #
For a literal whose m index bits are the input bits b .. b + m, the formulas computing
its fields (litFields): the flag, the structured fields as slices of the input, and the
answer decoding (j < 2T, r = j or j - 2T, p = r / 2 + 3, v from the parity of
r), multiplexed by the flag. evalFields_litFields says that they compute exactly
fieldsOf on the index (planning/succinct-cook-levin.md, S3).
Input slices #
The input bits b .. b + m as a bit string.
Equations
- MIPRE.TM.CookLevin.Desc.ibOf b m x = List.map x (List.range' b m)
Instances For
@[simp]
Multiplexed fields and constants #
if s then as else bs, bitwise.
Equations
- MIPRE.TM.CookLevin.Desc.muxList s as bs = List.zipWith s.mux as bs
Instances For
theorem
MIPRE.TM.CookLevin.Desc.bitsOf_muxList
(s : SAT.Fml)
(as bs : List SAT.Fml)
(h : as.length = bs.length)
(x : ℕ → Bool)
:
SAT.Fml.bitsOf (muxList s as bs) x = if SAT.Fml.eval x s = true then SAT.Fml.bitsOf as x else SAT.Fml.bitsOf bs x
theorem
MIPRE.TM.CookLevin.Desc.val_muxList
(s : SAT.Fml)
(as bs : List SAT.Fml)
(h : as.length = bs.length)
(x : ℕ → Bool)
:
SAT.Fml.val (muxList s as bs) x = if SAT.Fml.eval x s = true then SAT.Fml.val as x else SAT.Fml.val bs x
The constant c on w bits.
Equations
Instances For
The fields of a literal #
The flag bit.
Equations
Instances For
The low m - 1 bits, the value j of an answer index.
Equations
Instances For
2T on m - 1 bits.
Equations
Instances For
j < 2T.
Equations
- MIPRE.TM.CookLevin.Desc.lt2TF e G T b = MIPRE.SAT.Fml.ltConst (MIPRE.TM.CookLevin.Desc.jF e G b) (MIPRE.TM.CookLevin.Desc.twoTb e G T)
Instances For
r = j or j - 2T.
Equations
- One or more equations did not get rendered due to their size.
Instances For
The field formulas of the literal with base b.
Equations
- One or more equations did not get rendered due to their size.