From raw self-dual Pauli question bits to the actual decision program #
The executable block decoder converts every binary coordinate to its canonical Shoup representation and unpacks the fixed coordinate order. The resulting typed payloads are then passed to the uniform Boolean decision program.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
- One or more equations did not get rendered due to their size.
Instances For
theorem
MIPRE.QLD.PauliBinaryProgram.fieldsProg_binaryVector
(k : ℕ)
(hk : 1 ≤ k)
[NeZero k]
(hodd : Odd k)
(j m : ℕ)
[NeZero m]
(x : PauliCL.Coord m → (SAT.shoupBinField k hk).carrier)
:
fieldsProg.toFun
((Cost.unary k, Cost.unary j, Cost.unary m), CL.toBits ((PauliCL.binaryVectorEquiv (SAT.shoupSelfDualNormalBasis k hk hodd)) x)) = PauliCL.fieldEncoding (SAT.shoupBinField k hk) x
theorem
MIPRE.QLD.PauliBinaryProgram.fieldsProg_ofBits
(k : ℕ)
(hk : 1 ≤ k)
[NeZero k]
(hodd : Odd k)
(j m : ℕ)
[NeZero m]
(bs : Cost.BitStr)
(hbs : List.length bs = (3 * m + 3) * k)
:
fieldsProg.toFun ((Cost.unary k, Cost.unary j, Cost.unary m), bs) = PauliCL.fieldEncoding (SAT.shoupBinField k hk)
((PauliCL.binaryVectorEquiv (SAT.shoupSelfDualNormalBasis k hk hodd)).symm (CL.ofBits ((3 * m + 3) * k) bs))
Every full-length bit string has exactly its inverse-basis field meaning.
@[reducible, inline]
Equations
Instances For
@[reducible, inline]
Equations
Instances For
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
Instances For
theorem
MIPRE.QLD.PauliBinaryProgram.booleanInput_correct
(k : ℕ)
(hk : 1 ≤ k)
[NeZero k]
(hodd : Odd k)
(j m : ℕ)
[NeZero m]
(T U : Ty)
(x y : PauliCL.Coord m → (SAT.shoupBinField k hk).carrier)
(a b : Cost.BitStr)
:
booleanInput.toFun
((Cost.unary k, Cost.unary j, Cost.unary m), (T, CL.toBits ((PauliCL.binaryVectorEquiv (SAT.shoupSelfDualNormalBasis k hk hodd)) x), a), U, CL.toBits ((PauliCL.binaryVectorEquiv (SAT.shoupSelfDualNormalBasis k hk hodd)) y), b) = ((Cost.unary k, Cost.unary j, Cost.unary m), (T, PauliCL.fieldEncoding (SAT.shoupBinField k hk) x, a), U, PauliCL.fieldEncoding (SAT.shoupBinField k hk) y, b)