Documentation

CompPoly.Univariate.Roots.SmoothSubgroup.Basic

Smooth Multiplicative-Subgroup Linear-Factor Splitting #

Executable splitter for field-root products over finite fields whose multiplicative group admits a smooth cyclic refinement schedule, following the subgroup-refinement root-finding method of [MOV92].

The generic root pipeline consumes a LinearFactorProductSplitter. This module provides a contract-bearing smooth context plus an adapter from that context to the shared splitter interface.

References #

def CompPoly.CPolynomial.Roots.FiniteField.smoothSplitterInput {F : Type u_1} [Field F] (q : ) (_generator : F) (_schedule : Array ) (p : CPolynomial F) :

Splitter-input predicate for a smooth cyclic splitter.

This predicate records the mathematical input contract for the splitter. The field-root pipeline proves it for gcd(p, X^q - X) values before using the splitter completeness theorem.

Instances For

    Package the executable smooth splitter with its field and schedule facts.

    Instances For
      def CompPoly.CPolynomial.Roots.FiniteField.smoothCosetPoints {F : Type u_1} [Field F] (alpha gamma : F) (order : ) :

      Ordered elements of the coset alpha * <gamma> with the supplied order.

      Instances For

        Emit linear factors for the points whose evaluated value is zero.

        Instances For

          Leaf extraction by evaluating all elements of the current coset.

          Instances For

            Schedule-driven nonzero-root refinement inside one multiplicative coset.

            Instances For

              Nonzero root extraction by smooth multiplicative-subgroup refinement.

              Instances For

                Smooth linear-factor splitting algorithm, including separate handling of root 0.

                Instances For
                  def CompPoly.CPolynomial.Roots.FiniteField.smoothCyclicRootContextOf {F : Type u_1} [Field F] [BEq F] [LawfulBEq F] (q : ) (generator : F) (schedule : Array ) (leafEvaluator : BatchEvalContext F) (validInput : CPolynomial FProp) (card_eq : Nat.card F = q) (generator_order : orderOf generator = q - 1) (schedule_complete : List.foldl (fun (order ell : ) => order / ell) (q - 1) schedule.toList = 1) (sound : ∀ (M : Raw.MulContext F) (D : Raw.ModContext F) (p factor : CPolynomial F), factor (smoothLinearFactorsAlgorithmWith M D leafEvaluator q generator schedule p).toListIsLinearFactor factor) (complete : ∀ (M : Raw.MulContext F) (D : Raw.ModContext F) (p : CPolynomial F) (a : F), validInput pp 0eval a p = 0factor(smoothLinearFactorsAlgorithmWith M D leafEvaluator q generator schedule p).toList, IsLinearRootFactorCandidate factor a) :

                  Build a smooth cyclic root context from executable constants and proof fields.

                  Instances For

                    Adapt a smooth cyclic context to the generic splitter interface.

                    Instances For