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 #
- [Menezes, A. J., van Oorschot, P. C., and Vanstone, S. A., Subgroup Refinement Algorithms for Root Finding in GF(q)][MOV92]
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.
- q : ℕ
- generator : F
- leafEvaluator : BatchEvalContext F
- validInput : CPolynomial F → Prop
- splitLinearFactorsWith : Raw.MulContext F → Raw.ModContext F → CPolynomial F → Array (CPolynomial F)
- sound (M : Raw.MulContext F) (D : Raw.ModContext F) (p factor : CPolynomial F) : factor ∈ (self.splitLinearFactorsWith M D p).toList → IsLinearFactor factor
- complete (M : Raw.MulContext F) (D : Raw.ModContext F) (p : CPolynomial F) (a : F) : self.validInput p → p ≠ 0 → eval a p = 0 → ∃ factor ∈ (self.splitLinearFactorsWith M D p).toList, IsLinearRootFactorCandidate factor a
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
Build a smooth cyclic root context from executable constants and proof fields.
Instances For
Adapt a smooth cyclic context to the generic splitter interface.