Documentation

MIPRE.Foundations.SAT.PowerPadding

Power-of-two padding with unary output #

The inner PCP dimension must itself be a power of two. ceilPower is the least power of two at least its input, with value one at zero. ceilPowerProg produces that many unary slots in polynomial time in the number of input slots. Its loop explicitly caps intermediate vectors, rather than assuming that unrestricted unary exponentiation has polynomial cost.

The least power of two at least n, including ceilPower 0 = 1.

Equations
Instances For
    theorem MIPRE.SAT.grow_bound (fuel : Cost.BitStr) (cap acc : Cost.Unary) :
    (List.foldl growStep (cap, acc) fuel).1 = cap ∧ List.length (List.foldl growStep (cap, acc) fuel).2 ≤ max (List.length cap) (List.length acc)
    theorem MIPRE.SAT.min_mul_min (c p v : ℕ) (hp : 1 ≤ p) :
    min c (p * min c v) = min c (p * v)
    theorem MIPRE.SAT.grow_length (fuel : Cost.BitStr) (cap acc : Cost.Unary) (ha : List.length acc ≤ List.length cap) :
    Equations
    • One or more equations did not get rendered due to their size.
    Instances For

      Uniform power-of-two padding, with polynomial cost in the supplied unary length.

      Equations
      • One or more equations did not get rendered due to their size.
      Instances For