Documentation

CompPoly.Univariate.Roots.Enumeration

Exhaustive Finite-Field Root Enumeration #

Reusable lazy field-enumeration contexts for finite-field root search. The context stores an indexing function rather than an array of all elements; array inputs are adapted through fieldEnumerationOfArray for tests and small callers.

A lazy complete enumeration of a finite field.

Instances For

    An array contains every field element. Duplicate entries are allowed.

    Instances For

      Adapt an explicit element array to a lazy enumeration context.

      Instances For

        Roots by exhaustive evaluation over a lazy field enumeration.

        Instances For
          theorem CompPoly.CPolynomial.Roots.FiniteField.rootsInFieldByEnumeration_sound {F : Type u_1} [Field F] [BEq F] [LawfulBEq F] {enumeration : FieldEnumeration F} {p : CPolynomial F} {a : F} (h : a (rootsInFieldByEnumeration enumeration p).toList) :
          eval a p = 0

          Exhaustive enumeration only returns actual roots.

          theorem CompPoly.CPolynomial.Roots.FiniteField.rootsInFieldByEnumeration_complete {F : Type u_1} [Field F] [BEq F] [LawfulBEq F] (enumeration : FieldEnumeration F) {p : CPolynomial F} {a : F} (hroot : eval a p = 0) :

          Complete enumeration finds every root.

          Linear factors for every enumerated root of p.

          Instances For
            theorem CompPoly.CPolynomial.Roots.FiniteField.enumeratedLinearFactors_sound {F : Type u_1} [Field F] [BEq F] [LawfulBEq F] {enumeration : FieldEnumeration F} {p factor : CPolynomial F} (h : factor (enumeratedLinearFactors enumeration p).toList) :

            Every factor emitted by exhaustive enumeration is represented linear.

            theorem CompPoly.CPolynomial.Roots.FiniteField.enumeratedLinearFactors_complete {F : Type u_1} [Field F] [BEq F] [LawfulBEq F] (enumeration : FieldEnumeration F) {p : CPolynomial F} {a : F} (hroot : eval a p = 0) :
            factor(enumeratedLinearFactors enumeration p).toList, IsLinearRootFactorCandidate factor a

            Exhaustive enumeration emits the linear factor for every root.

            Exhaustive enumeration packaged as a linear-factor product splitter.

            Instances For