Computing the Pauli commutation bit #
The dot product of the two exponentially long indicator vectors factors as a product over the supplied coordinates. The program uses this product, followed by the field trace, and never constructs either indicator vector.
Equations
- One or more equations did not get rendered due to their size.
Instances For
theorem
MIPRE.Introspection.FieldGammaProgram.pairFactorProg_correct
(k : ℕ)
(hk : 1 ≤ k)
(x z : (SAT.shoupBinField k hk).carrier)
:
pairFactorProg.toFun ((SAT.shoupBinField k hk).toBits x, (SAT.shoupBinField k hk).toBits z) = (SAT.shoupBinField k hk).toBits (1 + x + z)
Equations
- One or more equations did not get rendered due to their size.
Instances For
theorem
MIPRE.Introspection.FieldGammaProgram.pairingProg_correct
(k : ℕ)
(hk : 1 ≤ k)
{m : ℕ}
(x z : Fin m → (SAT.shoupBinField k hk).carrier)
:
pairingProg.toFun
(Cost.unary k, List.ofFn fun (i : Fin m) => ((SAT.shoupBinField k hk).toBits (x i), (SAT.shoupBinField k hk).toBits (z i))) = (SAT.shoupBinField k hk).toBits (LowDegree.indPair x z)
Width, coordinate pairs, and the two scalar probe multipliers.
Equations
- One or more equations did not get rendered due to their size.
Instances For
theorem
MIPRE.Introspection.FieldGammaProgram.gammaProg_correct
(k : ℕ)
(hk : 1 ≤ k)
{m : ℕ}
(x z : Fin m → (SAT.shoupBinField k hk).carrier)
(rX rZ : (SAT.shoupBinField k hk).carrier)
:
gammaProg.toFun
(Cost.unary k, List.ofFn fun (i : Fin m) => ((SAT.shoupBinField k hk).toBits (x i), (SAT.shoupBinField k hk).toBits (z i)), (SAT.shoupBinField k hk).toBits rX, (SAT.shoupBinField k hk).toBits rZ) = LowDegree.BinaryLinear.bit (LowDegree.acGamma (ZMod 2) x z rX rZ)
The two-outcome scalar probe used by the point consistency rules.
Equations
Instances For
theorem
MIPRE.Introspection.FieldGammaProgram.probeProg_correct
(k : ℕ)
(hk : 1 ≤ k)
(a r : (SAT.shoupBinField k hk).carrier)
:
probeProg.toFun (Cost.unary k, (SAT.shoupBinField k hk).toBits a, (SAT.shoupBinField k hk).toBits r) = LowDegree.BinaryLinear.bit ((Algebra.trace (ZMod 2) (SAT.shoupBinField k hk).carrier) (a * r))