Canonical binary linear coordinates for the effective field #
theorem
MIPRE.LowDegree.BinaryLinear.vectorBits_vectorValue
(n : ℕ)
(v : Cost.BitStr)
(hv : List.length v = n)
:
Decoding and re-encoding a vector of the prescribed width is exact.
theorem
MIPRE.SAT.shoupBinField_ofBits
(k : ℕ)
(hk : 1 ≤ k)
(v : Cost.BitStr)
(hv : List.length v = k)
:
Correct-width decoding in the Shoup model is evaluation at its root.
@[simp]
theorem
MIPRE.SAT.shoupCoordinateEquiv_apply
(k : ℕ)
(hk : 1 ≤ k)
(a : (shoupBinField k hk).carrier)
:
(shoupCoordinateEquiv k hk) a = LowDegree.BinaryLinear.vectorValue k ((shoupBinField k hk).toBits a)
theorem
MIPRE.SAT.shoupCoordinateEquiv_encoding
(k : ℕ)
(hk : 1 ≤ k)
(a : (shoupBinField k hk).carrier)
:
Canonical field encodings and canonical linear coordinates coincide exactly.
noncomputable def
MIPRE.SAT.shoupPowerBasis
(k : ℕ)
(hk : 1 ≤ k)
:
Module.Basis (Fin k) (ZMod 2) (shoupBinField k hk).carrier
The basis associated to the actual polynomial-time field representation.
Equations
Instances For
Standard unit vectors encode the corresponding polynomial-basis elements.
theorem
MIPRE.SAT.shoupMulProg_encoding
(k : ℕ)
(hk : 1 ≤ k)
(a b : (shoupBinField k hk).carrier)
:
shoupMulProg.toFun (Cost.unary k, (shoupBinField k hk).toBits a, (shoupBinField k hk).toBits b) = (shoupBinField k hk).toBits (a * b)
Multiplication prints the canonical linear coordinates of the product.