Explicit polynomial-time Frobenius-stride traces #
Repeat squaring once per unary stride bit.
Equations
Instances For
A supplied unary number of squarings in the explicit binary quotient.
Equations
Instances For
The stride Frobenius program is globally polynomially bounded.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Repeated squaring never increases even a malformed coefficient width.
The modulus width is preserved on valid quotient elements.
The supplied stride is the exponent of the Frobenius iterate.
Stride, modulus, accumulated sum, and the current Frobenius conjugate.
Equations
Instances For
Add the current conjugate and advance by the fixed Frobenius stride.
Equations
- MIPRE.LowDegree.BinaryQuotient.traceStep s x✝ = (s.1, s.2.1, MIPRE.LowDegree.BinaryPolynomial.xorBits s.2.2.1 s.2.2.2, MIPRE.LowDegree.BinaryQuotient.frobeniusBits s.1 s.2.1 s.2.2.2)
Instances For
All runtime state widths stay below their initial widths.
Both active coefficient vectors retain the modulus width.
The loop computes the trace-shaped sum, with the supplied initial accumulator.
Equations
- One or more equations did not get rendered due to their size.
Instances For
The binary vector for the sum of the requested Frobenius-stride conjugates.
Equations
Instances For
One globally polynomial-time program computes every such modular trace sum.
Equations
- One or more equations did not get rendered due to their size.
Instances For
The modular trace output has exactly the field representation width.
The program's semantics are the finite sum used in Shoup's trace construction.