Documentation

MIPRE.Foundations.LowDegree.BinaryTrace

Effective Frobenius iteration and trace #

A fixed-width loop squares its current field element and adds it to a trace accumulator. The loop count is unary, so k Frobenius operations take poly(k) time even though the represented exponent is 2^k.

theorem MIPRE.LowDegree.BinaryPolynomial.evalBits_frobeniusTrace {R : Type u_1} [CommRing R] [CharP R 2] (z : R) (p a : Cost.BitStr) (u : Cost.Unary) (hroot : z ^ List.length p = evalBits z p) (ha : List.length a = List.length p) :
evalBits z (frobeniusTrace p a u).1 = evalBits z a ^ 2 ^ List.length u ∧ evalBits z (frobeniusTrace p a u).2 = ∑ i ∈ Finset.range (List.length u), evalBits z a ^ 2 ^ i

Squaring and accumulating computes the Frobenius orbit and its trace sum.

theorem MIPRE.LowDegree.BinaryPolynomial.evalBits_frobeniusTrace_trace {F : Type u_2} [Field F] [Finite F] [CharP F 2] [Algebra (ZMod 2) F] (z : F) (p a : Cost.BitStr) (hdegree : Module.finrank (ZMod 2) F = List.length p) (hroot : z ^ List.length p = evalBits z p) (ha : List.length a = List.length p) :

The accumulated sum is the algebraic trace, embedded into the extension field.

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

    Uniform computation of Frobenius iteration and the associated trace sum.

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