Computation of gcd chain over the power of an irreducible polynomial
aa r X i v : . [ c s . S C ] D ec Computation of gcd chain over the power of an irreduciblepolynomial
Xavier Dahan ⋆ Ochanomizu university, Faculty of General Educational Research & Dept. of Mathematics [email protected]
Abstract.
A notion of gcd chain has been introduced by the author at ISSAC 2017 for two univariatemonic polynomials with coefficients in a ring R = k [ x , . . . , x n ] / h T i where T is a primary triangularset of dimension zero. A complete algorithm to compute such a gcd chain remains challenging. Thiswork treats completely the case of a triangular set T = ( T ( x )) in one variable, namely a power of anirreducible polynomial. This seemingly “easy” case reveals the main steps necessary for treating thegeneral case, and it allows to isolate the particular one step that does not directly extend and requiresmore care. Computing gcd is without a doubt one of the most fundamental algorithm in computer algebra and com-putational aspects have been studied extensively, till today. In [4] is introduced the concept of gcd chain tobring a similar notion of the classical gcd of polynomials of one variable over a field, to the case of over aring R := k [ x , . . . , x n ] / h T i where T is a primary triangular set of dimension zero. Such a ring has nilpo-tent elements, and non nilpotent elements are invertible. Some attempts to treat this case in prior [4] haveconcluded in somewhat unsatisfactory solutions. Indeed, a desirable fundamental property of gcd is an idealequality h a, b i = h g i . While if a and b have coefficients in such a ring of type R , it is well-known that apolynomial g does not exist in general, the outcome of [4] being to present a strategy to circumvent thisimpediment by “iterating” somehow a Pseudo Remainder Sequence when a nilpotent remainder is met. Onthe algorithmic side, this raises several challenging questions, even in the seemingly “easy” case of a primarytriangular set T = ( T ( x )) of one variable. As this article shows, this case is already not simple. And it isimportant since it builds the framework to tackle the case of several variables. In particular we identify thatall steps, except one that requires more work, extend to more than one variable. An early motivation in computing gcds over triangular sets come from the triangular-decomposition algorithmto solve polynomial (commutative or differential) systems [18,2]. This set of computational methods tracesback to the early work of Ritt [16], and the major computational advances realized later by Wu-Wen Tsu [19].This has lead to several new directions of researches, followed by many researchers. In term of algorithms, only pseudo-divisions were initially used. In 1993, in [7] Kalkbrenner introduced a “gcd”-point of view to realizethe decomposition, and the elimination (See also the notes [6]). This point of view has later been significantlydeveloped by M. Moreno-Maza et al. in particular with the implementation of the library
RegularChains [5]in the software Maple.However, such a gcd does not handle “faithfully” polynomials having multiplicities; this question wasraised as early as 1995 [13] and later studied furthermore in [10], but without a satisfactory general answer.In this regard, the present work situates in the realm of triangular decomposition as initiated by Wu-WenTsu.The gcd chain has the following geometric interpretation. The underlying triangular set can be thoughtas some algebraic constraints, over which one may want to compute with further polynomials, that is over ⋆ extended version of a presentation made at the conference ADG’2018 (September 12-14, Nanning, China) he solutions of the constraints only . It may happen that the solution (a constraint), is multiple . One maythink of t ( x ) = x for example, in the case where constraints are modeled by a polynomial of one variablelike in this work. When computing over t , this allows to consider Taylor expansions at order 2 (for exampleto control the first and second order derivative of the solution=constraint being modeled).In Example 3 below, we want to compute the constraints defined by both polynomials a and b withcoefficients in R [ x ] / h t i = R [ x ] / h x i . We obtain three cases, displayed in Figure 1.1, as computed by thealgorithm of this paper. Fig. 1.
Precision x (left): Three points intersection of y = 0 , − , x = 0. Precision x (middle): Two lines,expanded from y = 0 ,
1. Precision x (right): One parabola, expanded from y = 1 A primary triangular set in one variable is just a power of an irreducible polynomial p : T = ( T ( x )) = ( p ( x ) e ).The ring R = k [ x ] / h T i is local of maximal ideal m = h p i . It is therefore Henselian : monic polynomials admita unique factorization into coprime factors (not into irreducibles: see [4, § R is Henselian we can write the unique factorization of the input polynomials a and b into coprimefactors as follows: a = a · · · a γ · a γ +1 · · · a α , b = b · · · b γ · b γ +1 · · · b β . (1)We have ordered the factors so that gcd( a i mod h p i , b j mod h p i ) = ρ ν i i where ρ i ∈ ( k [ x ] / h p i )[ y ] is anirreducible polynomial; And ν i = min( λ i , δ i ) where a i = ρ δ i i + · · · and b i = ρ λ i i + · · · (so that a i ≡ ρ δ i i mod h p i and b i ≡ ρ λ i i mod h p i ). If a and b have some factors a ℓ and b m for ℓ, m > γ then we assume thatgcd( a ℓ mod h p i , b m mod h p i ) = 1. Example 1
We reproduce the example of [4, Ex. 3.5, Ex. 5.2]. Consider the polynomials a and b along withtheir unique factorizations into coprimes modulo T = x . a = a a a = (( y + 1) + x (2 y + 1) + x ( y + 1))( y + 2 x + 3 x )( y − − x − x ) b = b b b = ( y + 1 + 2 x + x )( y + 2 x + 4 x )( y − − x − x ) We have γ = 3 and in each case gcd( a i mod h x i , b i mod h x i ) is non trivial. The informal discussion that follows is rigorously detailed in Sections 4.1-4.2 of [4]. Under this point ofview, it is convenient to refer to the more common terminology of unique factorization domains, but there isa caveat: “precision”. Modulo p , the gcd of a and b (over the field k [ x ] / h p i ) is well-defined and is as expected:II = gcd( a i mod h p i , b j mod h p i ) = Q γi =1 ρ ν i i . But there is no isomorphism h a, b, T i = h g, T i , only the morecoarse h a, b, p i = h g, p i holds. A more refined notion of “common factors at certain precision” allows to obtainan ideal equality h a, b, T i . Definition 1.
A monic polynomial c is said to be a common factor of a and b at precision ℓ iff theEuclidean divisions of a and b by c have both zero remainder modulo p ℓ , but at least one non-zeromodulo p ℓ +1 . a = ca ′ + r a , b = cb ′ + r b ⇒ r a , r b ≡ h p ℓ i , r a or r b h p ℓ +1 i . Let I be the set of indices of common factors of a and b at the smallest precision e . Let I be theset of indices of common factors a and b at the next to smallest precision e , etc. we obtain a partition( I , I , . . . , I s ) of the set of common factors of a and b and the associated precision exponents [ e , . . . , e s ]. Example 2 (Example 1 continued) We notice that e = 1 and I = { } . Indeed y + 1 is the largest commondivisor of a and b , and it is modulo x e = x ; There is no common divisor of a and b modulo x e +1 = x .Next we observe that e = 2 and I = { } : the largest common divisor of a and b is y + 2 x and it is modulo x e = x (there is no common divisor of a and b modulo x e +1 = x ). Last modulo x e = x the factors a and b have a common divisor implying that I = { e } . Sections 4.1-4.2 of [4] prove the existence and uniqueness , in the case of a triangular set of one variable, ofthe tuple of indices ( I , I , . . . , I s ) and of the sequence of increasing precision powers [ e , e , . . . , e s ]. Beforethat, with the notations of Eq. (1), denote G ( a ) j := Q j ∈I j a i and G ( b ) j := Q j ∈I j b i , so that: a = s Y i =1 G ( a ) i ! · a γ +1 · · · a α , b = s Y i =1 G ( b ) i ! · b γ +1 · · · b β . (2)And from the discussion above both G ( a ) i and G ( b ) i have one maximal common factor which is at precision p e i . Let us write it G i (since ehere it comes alone, it makes no harm to think of G i as “the” gcd and to write G i ≡ gcd( G ( a ) i , G ( b ) i ) mod p e i . There exist monic polynomials c ( a ) i and c ( b ) i both relatively prime modulo p ,such that: G ( a ) i ≡ c ( a ) i G i mod h p e i i , and G ( b ) i ≡ c ( b ) i G i mod h p e i i , (3)We obtain an equality of ideals: h a, b, T i = h G , p e i · · · h G s , p e s i . The formal definition of gcd chain moduloa triangular set of one variable is as follows: Definition 2.
Given two monic polynomials a, b ∈ R [ y ] , a gcd chain of a, b is a sequence ( g i , p e i ) i =1 ,...,s such that: – e < . . . < e s ≤ e and deg y ( g ) > · · · > deg y ( g s ) . – g i is the product of all common factors of a and b at precision ≥ e i . – g i +1 divides g i modulo p e i +1 . Defining G i := g i /g i +1 mod p e i +1 for i = 1 , . . . , s − and G s := g s , thefollowing isomorphism holds: R [ y ] / h a, b i ≃ ( k [ x ] / h p e i )[ y ] / h G i × · · · × ( k [ x ] / h p e s i )[ y ] / h G s i (4) where the r.h.s is a direct product of rings. We have moreover for all i = 1 , . . . , s : ( k [ x ] / h p e i i )[ y ] / h a, b i ≃ ( k [ x ] / h p e i )[ y ] / h G i × · · · × ( k [ x ] / h p e i − i )[ y ] / h G i − i × ( k [ x ] / h p e i i )[ y ] / h g i i (5) Example 3 (Examples 1, 2 continued) Let p ( x ) = x , T = ( T ( x )) = ( x ) = ( p ) . The two monic polynomials a and b when expanded are written: a = y + (cid:0) x + 3 x + 1 (cid:1) y + (cid:0) − x − x − (cid:1) y (cid:0) − x − x − (cid:1) y − x − xb = y + (3 x + 3 x ) y + ( − x − x − y − x − x III ccording to the discussion made in Example 2, e = 1 , e = 2 , e = 3 . The gcd chain is given by: [(( y − y ( y + 1) , x ) , (( y − − x )( y + 2 x ) , x ) , ( y − − x − x , x )] , and yields the following isomorphism according to (4) . ( k [ x ] / h x i )[ y ] / h a, b i ≃ ( k [ x ] / h x i )[ y ] / h y + 1 i × ( k [ x ] / h x i )[ y ] / h y + 2 x i× ( k [ x ] / h x i )[ y ] / h y − − x − x i (6)However, Section 5 of [4] dealing with algorithms is more an indication of directions for future work, thana complete and definitive exposition. This is what the present work does, treating the case of one variablecompletely. First of all, let us clarify what may appear as an elephant in the room:why not computing the squarefree part of T = p e ?The first reason is that sticking with T = p e really allows to discover the gcd-chain. Otherwise starting fromthe gcd known at precision p one could perform Hensel lifting and, roughly speaking, see at each step whichparts still divide a and b etc. But then quadratic convergent lifting may not be convenient enough to recovereach precision e i , in that it may miss some. Some refinements should then be devised. . . with additionalcosts. The linearly convergent Hensel lifting is not as efficient. The second reason is for considerations ofgeneralization to a primary triangular set of several variables. Computing the radical is still possible (see e.g. [15,11]) at a reasonable cost, but this time recovering the factors at the required “precision” becomesfar more complicated, assuming it is possible. Consequently, for convenience and generalization in mind,the squarefree part operation is not considered.Gcds over non-radical triangular sets have been addressed in [13,10]. But none provided a structural iso-morphism that mimics the case of gcd of polynomials over a field. In a different direction, some works havefocused on representing not only solution points, but their multiplicity as well [3,9,12,1]. The multiplicity is amuch coarser information than what provides an ideal isomorphism; Moreover the methods proposed in theseworks are not simpler than the one proposed in [4] and here. See Section “Previous Work” of [4] for moredetails. Compared to the algorithmic Section 5 of [4] the present article gives a complete treatment, withHensel lifting; in particular the over-optimistic over-simplistic Assumption (C) made therein is elucidatedwith Weierstrass preparation theorem.When the input irreducible polynomial is p ( x ) = x , the article [14] which computes a “truncated”resultant of bivariate polynomials a and b shares some common features with the present work. However, thegcd-chain carries more information than the classical resultant, and it is not clear wether the quite intricatealgorithm that is devised in [14] can be adapted. Therein, a generalized version of the “half-gcd” is proposedwhose purpose is a better asymptotic complexity. Another significant difference is the use of Weiertrassfactorization to cope with nilpotent leading coefficients. This notion is more natural and efficient than the“normalization” lemma 1 of [14]; It does not require Hensel lifting and to know the squarefree part p of theinput T = p e .Besides, the “clarity” of the classical subresultant based study presented here allows to detect that alltasks used in the algorithm extend quite straightforwardly to primary triangular sets of more than onevariable, except one: Algo. 1 “nilpotentFactor” which “removes” nilpotent part. See Section “Concludingremarks” for more about this. IV .4 Organization of the paper Section 2 introduces the core routine “largestFactor” that executes one iteration of the subresultant algo-rithm. It finds the “last non-nilpotent subresultant”, uses the Weierstrass factorization to make it, togetherwith the first nilpotent subresultant, monic before another iteration. The complete algorithm “gcdChain”that calls “largestFactor” is presented and analyzed in Section 3. The last section 4 details the variation ofthe Weierstrass preparation theorem that we have used. Some concluding remarks end the article.
Acknowledgement
The idea of Weierstrass preparation theorem was transmitted to me by M. Moreno-Maza. I am grateful forthis precious advice and other discussions we had in March 2018.
The outcome of this section is Algorithm 4 “largestFactor” presented in Subsection 2.2. It introduces Weier-strass factorizations at Lines 29 and 35. In the first subsection several subroutines used in this algorithm areintroduced first.
Algorithm 1 computes the largest power of p that divides all the coefficients of a polynomial in ( k [ x ] / h p e i )[ y ].It is a key routine in the present work. Input: T = p e , power an irreducible polynomial. Nilpotent polynomial F = F + F y + · · · + F r y r modulo T Output: P = p ℓ , where ℓ ≤ e , and p ℓ | F but p ℓ +1 ∤ F Largest degree i such that F i is invertible if exists; − P ← T , i ← r while i > − and deg( P ) > do P ← gcd( F i , P ) ; i ← i − return P, i
Algo nilpotentFactor: find the largest power of p that divides F , and T Proof (Correctness of Algo. 1).
For any value of i , one has P = gcd( F r , F r − , . . . , F i , T ). Since T = p e , wecan write p ℓ i := gcd( F r , . . . , F i , T ). The sequence { ℓ i } i decreases. Let ℓ be the minimal value. By definition p ℓ | F since p ℓ | F j for all j , and ℓ is the largest integer having this property. Note that the output P isprecisely p ℓ . On the other hand, if deg( P ) = 0, then gcd( F i , p ℓ i − ) = 1 and ℓ i − > F i is the coefficient of F of largest degree that is invertible— when it exists. (cid:3) Let
P, i be the ouput of Algorithm 1. The first statement in the remark hereunder follows directly fromthe algorithm. The second one from the classical fact that a polynomial is nilpotent iff all its coefficients arenilpotent.
Remark 1 If deg( P ) > then i = − and reciprocally. The polynomial F is nilpotent iff i = − . A key subroutine Algo. 2 “WeierstrassMonic”, is used to “make monic” a non-nilpotent polynomial. Itis based on Corollary 2, which details are postponed to Section 4.Last, the routine Algo. 3 below computes the subresultant pseudo remainder sequence modulo T andproceeds to the necessary modifications. All specifications are described within the algorithm.V nput: Primary triangular set T = ( p ( x ) e )Univariate polynomial f = · · · + f k y k + · · · in R [ y ] where R = k [ x ] / h p e i , index k of the non nilpotent coefficient of f of largest degree Output:
Monic polynomial h = y k + h k − y k − + · · · + h in the Weierstrass factorization theorem (Corollary 2)In particular h f, T i = h h, T i (ideal equality) ( up e + vf k = 1) ← Extended Euclidean Algorithm of p e and f k in k [ x ] f − k ← v // inverse of f k modulo p e y k = fg + r ← Division of y k by f following Corollary 2 (using v ), up to precision O ( y k +1 ) return y k − r Algo WeierstrassMonic
Input:
Monic polynomials a, b with deg y ( a ) ≥ deg y ( b ) > T = ( p ( x ) ǫ ). Output:
Subresultant pseudo-remainder sequence modulo T : S = [ S r = a, S r = b, S r , , . . . , S r t , . . . ]Index j such that S r j is not nilpotent and S r j +1 is nilpotent or zeroInteger i such that coeff ( S r j , i ) is the non-nilpotent coefficient of largest degreeIf S r j +1 is not zero, largest degree polynomial P ( x ) = p ( x ) ℓ ∈ k [ x ] such that P | S r j +1 . try Compute a subresultant sequence modulo T : S = [ S r = a, S r = b, S r , , . . . , S r t , . . . ] j + 1 ← index of last non-zero subresultant i new ← − P new ← catch (“Error: Leading coefficient of S r t +2 is not invertible”) // division failed at the r t +2 -th subresultant j ← t + 1 ; P new , i new ← nilpotentFactor( S r j , T ) if i new > − then // S r j is not nilpotent A ← WeierstrassMonic( S r j , T, i new ) , i ← nilpotentFactor( S r j − , T ) // coeff ( S r j − , i ) is invertible B ← WeierstrassMonic( S r j − , T, i ) return modifiedSubres( A, B, T ) while i new = − do // S r j is nilpotent i old ← i new ; P old ← P new ; j ← j − P new , i new ← nilpotentFactor( S r j , T ) return S , j, i new , P old Algo modifiedSubres: Modified subresultant pseudo-remainder sequence Lemma 1 (Correctness of Algo. 3)
The output S , j, i, P satisfies the specifications mentionned in “ouput”.Proof. Step 1: The computation of the subresultant p.r.s. modulo T raises no exception at Line10. Thismeans that the full chain has been successfully computed, in particular the last subresultant is zero. Bydefinition of the index j at Line 11, its index is r j +2 and S r j +1 is the last non zero (mod T ).It goes next to Line 20. The “return” occurs exactly when i new > − S r j is notnilpotent; Additionally that S r j +1 is nilpotent or zero. The specification of Algorithm “nilpotentFactor” tellthat i new is the largest degree of S r j whose coefficient c i new is not nilpotent. Since a polynomial is nilpotentiff all its coefficients are nilpotent, this implies that S r j is not nilpotent. Since the while loop (Line 20) isbottom-up on the subresultant chain, j is the first index for which the corresponding subresultant is notnilpotent. Therefore S r j +1 is nilpotent, and the specifications of Algorithm “nilpotentFactor” imply that i old = − P old | S r j +1 . This shows that all the requirements sateted in the “output” of Algo. 3 aresatisfied.Step 2: The computation of the subresultant p.r.s. failed, an exception is caught. Lines 10-11 are skept togo directly to Line 14. The leading coefficient of S r t is not invertible therefore the subresultant S r t +2 cannot VIe computed (mod T ) following the (classical subresultant p.r.s.) formula: S r t +2 ( a, b ) = ± prem ( S r t , S r t +1 ) c r t − r t +1 t lc ( S r t ) , ( c = 1 , r i = deg( S r i ) c i = lc ( S r i ) r i − − r i c r i − r i − +1 i − . Nonetheless, S r t and S r t +1 have been both computed successfully. Index j is set to t + 1. If i new > − S r t +1 is not nilpotent, therefore neither is S r t . Thus the call to Algo. “WeierstrassMonic” is valid at Lines16and 18. And the recursive call to “modifiedSubres” makes sense. Eventually, no exception is raised, or S r j isnilpotent (at Line 14). Moreover the recursive call is consistent since h a, b, T i = h S r t , S r t +1 , T i = h A, B, T i .If i new = − S r j is nilpotent, but it may not be the first nilpotent subresultant. It goes next to thewhile loop (line 20) and the proof follows that of Step 1. (cid:3) Now that the subroutines are defined, we describe the main algorithm of this section. It builds upon thesubresultant algorithm, where instead of computing the “last non-zero” one, it computes the “last non-nilpotent” subresultant. Besides the comments and specifications, the proof of correctness discusses in detailsof the several steps.
Input:
Monic polynomials f, A with deg y ( f ) ≥ deg y ( A ). Power of an irreducible polynomial T = ( p ( x ) ǫ ). Output: g, p ǫ , B, p ℓ or where g is monic and h g, p ǫ i = h f, A, p ǫ i ; B =“ end ” ; or B ∈ k [ y ] monic, deg y ( g ) ≥ deg y ( B ) ; p ℓ = p ǫ − ǫ is used for iterative calls in Algorithm 5 if A = 0 then // Finished: No iteration necessary return f, T , “ end ”, if deg( A ) = 0 then // Finished: No iteration necessary return A, T , “ end ”, S , j, i, p e ← modifiedSubres( A, f, T ) // S r j is not nilpotent, S r j +1 is. p e | S r j +1 g ← WeierstrassMonic( S r j , T, i ) // Put S r j in monic form if p e = T then // case where e = e return g, T, “ end ” , S ← S r j +1 /p e // Precision loss of deg( p e ) ; S is no more nilpotent p ℓ ← T /p e = p e − e , i ← nilpotentFactor( S, p ℓ ) // coeff ( S, i ) is invertible B ← WeierstrassMonic(
S, p ℓ , i ) // Put S in monic form return g, p e , B, p ℓ Algo The Largest Common Factor (largestFactor)
Lemma 2 (Correctness of Algo. 4)
The output of Algorithm 4 verifies: h f, A, p e i = h g, p e i .Proof. If the algorithm exits at Line 25 then h f, A, T i = h f, , T i = h f, T i . It then returns f, T, “ end ”, hence g = f and p e = T , and h f, T i = h g, p e i . The gcd chain has one block.If the algorithm exits at Line 27 then A is monic constant, hence equal to 1; therefore h f, A, T i = h A, T i = h T, i = h i . It returns A, T, “ end ”, hence g = A and p e = T , thereby h g, p e i = h A, T i . Here too the gcdchain has one block.Assume now that the algorithm ends at Line 36 or at Line 31. At Line 28, according to the specificationsof Algo. 3, S r j is not nilpotent and S r j +1 is either nilpotent or zero (mod T ). Moreover p e is the largestpower of p ( x ) that divides S r j +1 , and coeff ( S r j , i ) is the coefficient of largest degree that is invertible. WeVIIan apply Algorithm 2 “WeierstrassMonic” at Line 29; It outputs a monic polynomial g such that S r j = u · g where u is a unit in ( k [ x ] / h p e i )[ y ]. In particular h g, p e i = h S r j , p e i ( ‡ ).If the test of Line 30 is satisfied, then S r j is not only the last non-nilpotent subresultant but also thelast non-zero one: classical subresultant theory insures that h S r j i = h f, A i modulo T (that is e = e ). Fromthe specifications of the “WeierstrassMonic” algorithm we have h g i = h S r j i and thus h g, T i = h f, A, T i (with T = p e since e = e ). The ouput Line 36 is then in accordance with the specifications.If this test is not satisfied, more data needs to be output since additional works must be performed, likeHensel lifting. We compute then S = S r j +1 /p e at Line 32 which is not nilpotent. By the “last non-nilpotentcriterion” of subresultant [4, Thm 5.1] h S r j , p e i = h f, A, p e i . Hence h g, p e i = h f, A, p e i , by ( ‡ ), as required.Similarly, Algorithm 2 at Line 35 returns a monic polynomial B such that S = v · B , v being a unitmodulo p ℓ . Note that B is monic and satisfies deg y ( B ) ≤ deg y ( g ), as required. (cid:3) Lemma 3
If a monic polynomial c = 1 is a common factor of f and A at precision r > e then c is amonic divisor of B at precision r − e . A monic divisor c = 1 of B is not a common factor of f and A at precision < e .Proof. Let c be a factor of f and A at precision r > e . We can write: f ≡ cf ′ mod p r and A ≡ cA ′ mod p r (by Definition 1, both equalities do not hold together modulo p r +1 ). Consider the B´ezout coefficients (a.k.acofactors) u ι , v ι of the subresultant S r ι . From the equality S r j +1 = u j +1 f + v j +1 A , one deduce that S r j +1 ≡ c ( u j +1 f ′ + v j +1 A ′ ) mod p r . We also have p e Bv ≡ c ( u j +1 f ′ + v j +1 A ′ ) mod p r . Now c being monic p e does not divide c , and we have: B ≡ c v − u j +1 f ′ + v − v j +1 A ′ p e mod p r − e . Since r > e by assumption, B ≡ h p r − e , c i and c is a factor of B at precision at least r − e ≥
1. Moreover, since p e is the largestpower of p that divides S r j +1 , the precison is exactly r − e . This proves the first assertion.Consider a monic divisor C of B at precision < e . This means that the remainder of the Euclideandivision of B by C is in h p i but not in h p e i . If C were a common factor of A and f at precision ℓ < e ,then it is at precision ℓ ≤ e since there is no common factor of f and A at precision e + 1 , . . . , e −
1, bydefinition. We would obtain p e B ≡ v − ( u j +1 Cf ′ + v j +1 CA ′ + p ℓ W ) mod h p e i for a non-zero polynomial W ,and B ≡ C v − u j +1 f ′ + v − v j +1 A ′ p e + p ℓ − e W mod h p e − e i . For C to divide B modulo p ℓ , the term p ℓ − e W shallbe zero at least modulo p . This happens only if ℓ > e since W = 0. Contradiction with ℓ ≤ e . (cid:3) Now that all sub-routines used in Algorithm 4 “largestFactor” are defined, we introduce in this section mainAlgorithm 5 below. It is made of a while loop that has two main components:1. a call to Algorithm 4 “largestFactor” (line 40) . A loss of precision is entailed in the division at Line 32.2. recovering this precision loss at each iteration by Hensel lifting (Lines 43-51).Each iteration computes one “block” of the gcd-chain. The correctness is shown in Theorem 1, with severalpreliminaries made of Lemmas 4-6, Proposition 1 and its corollary 1. These preliminaries contain a detaileddescription of each step of the algorithm.
Remark 2
In the sequel the triangular sets T i , T ′ i are all power of the irreducible polynomial p . Theseexponents denoted e i or e ′ i are introduced only for the analysis and are not needed in the algorithms. This isconsistent with the principle made in § Lemma 4
The Hensel lifting at Line 48 of Algorithm 5 returns G ⋆i , g ⋆i +1 verifying: G ⋆i ≡ G i mod h T ′ i +1 i , g ⋆i +1 ≡ g i +1 mod h T ′ i +1 i , g i ≡ G ⋆i g ⋆i +1 mod h T i +1 i .Proof. This is classical: the algorithm follows exactly the steps presented in Algorithm 15.10 of [17]. (cid:3)
The next lemma clarifies the status of the input/output when calling Algorithm “largestFactor” atLine 40, within the several iterations. The notations introduced will be used thereafter.VIII nput:
Power of an irreducible polynomial T = ( p ( x ) e )Univariate polynomials a and b in R [ y ] where R = k [ x ] / h T i Output:
Lists of polynomials C = [ g , . . . , g s ] , D = [ G , . . . , G s − ]List of polynomials equal to powers of the irreducible polynomial p : T = [ p e , p e , . . . , p e s ] such that[( g , p e ) , . . . , ( g s , p e s )] is the gcd-chain of ( a, b, T ) g ← a ; B ← b ; S ← T ; i ← e ← T ← T C ← [ ] ;
D ← [ ] ;
T ← [ ] while B i = “ end ” and B i = 1 do // Algo. 4 ended Line 25 or 27 or 31 g i +1 , T ′ i +1 , B i +1 , S i +1 ← largestFactor( g i , B i , S i ) // Iteration of Algo. 4 if i = 0 then // First iteration treated apart T ← T cat [ T ′ i +1 ] else // Trigger Hensel Lifting from second iteration G i ← g i /g i +1 mod h T ′ i +1 i // g i = G i g i +1 mod h T ′ i +1 i α, β ← xgcd( G i , g i +1 ) mod h T ′ i +1 i // αG i + βg i +1 ≡ h T ′ i +1 i T i +1 ← T i · T ′ i +1 // T i +1 = p e i +1 precision ← deg( T i +1 ) G ⋆i , g ⋆i +1 ← HenselLift( g i , G i , g i +1 , α, β, T ′ i +1 , precision) // G ⋆i ≡ G i mod h T ′ i +1 i , g ⋆i +1 ≡ g i +1 mod h T ′ i +1 i , g i ≡ G ⋆i g ⋆i +1 mod h T i +1 i g i +1 ← g ⋆i +1 mod h T i +1 i D ← D cat [ G ⋆i mod h T i i ] T ← T cat [ T i +1 ] // Next block computed C ← C cat [ g i +1 ] i ← i + 1 return C , D , T Algo The gcd-chain algorithm
Lemma 5
Write T = [ T , . . . , T s ] with T i = p e i , C = [ g , . . . , g s ] and D = [ G , . . . , G s − ] the three outputs ofAlgorithm 5. For all i = 0 , . . . , s − , consider the output g i +1 , T ′ i +1 , B i +1 , S i +1 of the call to “largestFactor”at Line 40, and T i +1 as defined at Line 46. They are related as follows: T ′ i +1 = p e i +1 − e i , S i +1 = p e − e i +1 , T i +1 = p e i +1 (with e := 0) . Proof.
The proof goes by induction on i = 0 , . . . , s −
1. According to the specifications of Algorithm 4“largestFactor” (Line 40) proved in Lemma 2. we have when i = 0, T ′ = p e , S = p e − e . Note that the case i = 0 (Line 41) does not require Hensel lifting, and thus T = T ′ = p e − e = p e , as required.By induction hypothesis we can assume that the result holds up to i < s −
1. There is an i + 1-th callto Algorithm 4 “largestFactor” (at Line 40), with input S i = p e − e i , by induction hypothesis. From theSpecification of Algorithm 4, the output is T ′ i +1 = p e i +1 − e i because the input S i is only at precision e − e i ;And S i +1 = p e − e i − ( e i +1 − e i ) = p e − e i +1 as required. The definition of T i +1 at Line 46 gives T i +1 = T ′ i +1 · T i = p e i +1 − e i p e i = p e i +1 as required. (cid:3) The proposition below connects the different outputs obtained after each iteration, to the initial input a, b, T . It is crucial in the proof of Theorem 1
Proposition 1.
With the notation of Lemma 5, we havefor i ≥ , p e i − g i ∈ h a, b, p e i , p e i B i ∈ h a, b, p e i . Proof.
We proceed by induction on i , starting with the base case i = 1.By definition g is the first output polynomial of the first call to Algorithm 4 “largestFactor” in Algo-rithm 5 “gcdChain”. From the definition of the Weierstrass factorization at Line 29 of Algorithm 4, thereis a unit ν ∈ ( k [ x ] / h p e i )[ y ] such that ν g = S r j . Write the B´ezout coefficients u (1) j a + v (1) j b = S r j , so that g = ν − ( u (1) j a + v (1) j b ); this proves that g ∈ h a, b, T i (and that g ∈ h a, b, p e i : indeed p e = T ).IX is the third output polynomial of the first call to Algorithm 4 “largestFactor” in Algorithm 5 “gcd-Chain”. From Line 35 of Algorithm 4 and by definition of the Weierstrass factorization, there is a unit ǫ ∈ ( k [ x ] / h p e − e i )[ y ] such that p e ǫ B = S r j +1 . With the B´ezout coefficients written S r j +1 = u (1) j +1 a + v (1) j +1 b ,we obtain p e B = ǫ − ( u (1) j +1 a + v (1) j +1 b ) ∈ h a, b, p e i .Next assume that the result holds up to a value 1 ≤ i < s and let us prove it for i +1. By definition g i (resp. B i ) is the first (resp. the third) output polynomial of the i -th call to Algorithm 4 “largestFactor” in Al-gorithm 5 “gcdChain”. From the definition of the Weierstrass factorization at Line 29 (resp. at Line 35)of Algorithm 4, there is a unit ν i +1 ∈ ( k [ x ] / h p e − e i i )[ y ] (resp. ǫ i +1 ) such that g i +1 ν i +1 = S r j (resp. p e i +1 − e i ǫ i +1 B i +1 = S r j +1 ). Write the B´ezout coefficients as follows: S r j = u ( i +1) j g i + v ( i +1) j B i , S r j +1 = u ( i +1) j +1 g i + v ( i +1) j +1 B i . It follows that: p e i g i +1 ( • ) = ν − i +1 ( u ( i +1) j p e i g i + v ( i +1) j p e i B i ) , p e i +1 − e i B i +1 = ǫ − i +1 ( u ( i +1) j +1 g i + v ( i +1) j +1 B i ) . The latter equality implies p e i +1 B i +1 ( ⋆ ) = ǫ − i +1 ( u ( i +1) j +1 p e i g i + v ( i +1) j +1 p e i B i ). By induction hypothesis p e i − g i ∈h a, b, p e i and p e i B i ∈ h a, b, p e i . Thus p e i g i = p e i − e i − p e i − g i ∈ h a, b, p e i . Consequently, both the r.h.s ofEqs. ( ⋆ ) and ( • ) are in h a, b, p e i , therefore so are p e i g i +1 and p e i +1 B i +1 . (cid:3) The first iteration of the loop of Line 39 is special since it doesn’t require Hensel Lifting (case i = 0).The lemma hereunder treats this base case apart, and used in the induction proof of Theorem 1. Lemma 6
The first iteration of the while loop (Line 39, i = 0 ) of Algorithm 5 fills C with g and T with T ′ = p e . We have h g , p e i = h a, b, p e i .Moreover, if there is only one iteration the stronger equality h g , p e i = h a, b, p e i holds.Proof. From the proof of correctness of Algorithm 4 one has at Line 40 of Algorithm 5 h g , T ′ i = h g , B , T ′ i .But T ′ = p e , g = a and B = b yielding the first equality.For the second one, by Proposition 1 we know that p e g = g ∈ h a, b, p e i and that p e B ∈ h a, b, p e i . Ifthere is only one iteration of the while loop Line 39, namely for i = 0, then there are two sub-cases. First B =“ end ” and B = 1. Then Proposition 1 gives p e B = p e ∈ h a, b, p e i which proves h p e , g i = h a, b, p e i .Second, B =“ end ”. This happens when the call to Algorithm “largestFactor” (Line 40) with input a, b, T outputs B i +1 = B =“ end ”. According to Lines 25, 27, 31 the output denoted p e (in this Lemma) is equalto T (as denoted in Algorithm 4) which is equal to p e . This implies h g , p e i = h g , p e i = h a, b, p e i . (cid:3) To prove correctness of the “gcdChain” Algorithm 5, one must consider the isomorphisms (4) and (5).This amounts to prove that a product of ideals of type h G , p e ih G , p e i · · · h g i , p e i i is equal to ideals oftype h a, b, p e i i . Thus we must examine the generators of the product of ideals, which is the purpose of thefollowing corollary (of Proposition 1). Corollary 1.
The same notations as in Lemma 5 are used. Let I be a subset of indices in [[1 , s − and let ¯ I its complement in [[1 , s ]] (so that I , ¯ I is a partition [[1 , s ]] ).Then g s Q i ∈I p e i Q j ∈ ¯ I G j ∈ h a, b, p e i .Proof. Assume that
I 6 = ∅ first and let ς := max I . Then { ς + 1 , . . . , s − } ⊂ ¯ I (possibly empty). Weclaim that p e ς g s Q s − j = ς +1 G j ∈ h a, b, p e i , from which the conclusion follows since h g s Q i ∈I p e i Q j ∈ ¯ I G j i ⊂h p e ς g s Q s − j = ς +1 G j i .From the definition of G i and g i after Hensel Lifting at Lines 50 and 49 of Algorithm 5 one has: g i − = G i − g i mod p e i − (see Lemma 4). It implies the following equality where ( · · · ) denotes a polynomial: (cid:16)Q s − j = ς +1 G j (cid:17) g s = ( Q s − j = ς +1 G j )( g s − + p e s − g s ( · · · )) = ( Q s − j = ς +1 G j )( g s − + p e s − g s − ( · · · ) + p e s − g s ( · · · ))= g ς +1 + p e ς +1 g ς +2 ( · · · ) + · · · + p e s − g s − ( · · · ) + p e s − g s − ( · · · ) + p e s − g s ( · · · ))Xf we multiply the above equation by p e ς then each term is a multiple of p e ℓ g ℓ +1 for some ℓ = ς, . . . , s − h a, b, p e i yielding the conclusion in the case I 6 = ∅ .Otherwise when I = ∅ , the product is equal to G · · · G s − g s and similarly to the above, we get g + p e g ( · · · ) + · · · + p e s − g s ( · · · ), which is in h a, b, p e i according to Proposition 1. (cid:3) The proof of Theorem 1 requires a last intermediate result.
Lemma 7
With the notations of Lemma 5 assume that s ≥ . Fix an ≤ i ≤ s − and refer to the notationsof Eqs (2) - (3) , to define a ′ := G ( a ) i +1 · · · G ( a ) s · a γ +1 · · · a α and b ′ := G ( b ) i +1 · · · G ( b ) s · b γ +1 · · · b β . We have:1. h a, b, p e i +1 i ⊂ h G , p e i · · · h G i , p e i ih a ′ , b ′ , p e i +1 i .2. h a ′ , b ′ , p e i +1 i = h g i +1 , p e i +1 i .Proof. By Eqs.(2)-(3), we have a = a ′ Q ij =1 G ( a ) j (similarly b = b ′ Q ij =1 G ( b ) j ) with G ( a ) j ≡ c ( a ) j G j mod h p e j i (respectively G ( b ) j ≡ c ( b ) j G j mod h p e j i ). Therefore a = a ′ · i Y j =1 ( c ( a ) j G j + p e j ( · · · )) , b = b ′ · i Y j =1 ( c ( b ) j G j + p e j ( · · · )) , where ( · · · ) denotes some polynomials. This proves the inclusion 1.To prove 2, let us treat first the case i = 1. Consider the polynomials g , B , which are the output of thefirst call to “largestFactor” at Line 40 of Algorithm 5. Note that if we apply the lemma 6 with g , B , p e − e instead of a, b, T , we obtain the ideal equality: h g , B , p e − e i = h g , p e − e i ; Note the precision loss of e entailed at the previous iteration i = 0. Let us prove prove that h a ′ , b ′ , p e − e i = h g , B , p e − e i . Accordingto Definition 1 and to the definitions of the polynomials a ′ and b ′ , the common factors and a ′ and b ′ areexactly those of a and b at precision ≥ e . By Lemma 3, such common factors are divisors of B at precision ≥ e − e . On the other hand, by Lemma 2 the divisors of g (at precision p ) are exactly the common factorsof a and b . Therefore, up to precision , the common factors of g and B are exactly those of a and b atprecision ≥ e , hence are the same as those of a ′ and b ′ . As for precision , the common factors at precision ≥ e of a, b , and those of g , B (and they are at precision ≥ e − e due to precision loss). We deduce that h g , p e − e i = h a ′ , b ′ , p e − e i . After Hensel lifting at Line 48, we obtain h g , p e i = h a ′ , b ′ , p e i .The general case i > i = 1 by considering instead of a and b , E := a/G ( a )1 · · · G ( a ) i − = a γ +1 · · · a α · Q sj = i G ( a ) j and respectively F := b/G ( b )1 · · · G ( a ) i − = b γ +1 · · · b β · Q sj = i G ( b ) j ; And instead of a ′ and b ′ to take E ′ := a ′ /G ( a )1 · · · G ( a ) i = a γ +1 · · · a α · Q sj = i +1 G ( a ) j and respectively F ′ := b ′ /G ( b )1 · · · G ( b ) i = b γ +1 · · · b β · Q sj = i +1 G ( b ) j . (cid:3) Theorem 1.
At the end of the i -th iteration of the while loop (Line 39) of Algorithm 5, the output lists C , T , D are currently filled with: C = [ g , . . . , g i ] , T = [ p e , . . . , p e i ] , D = [ G , . . . , G i − ] , and at the end of the algorithm, after say s iterations, the sequence [( g , p e ) , . . . , ( g s , p e s )] is a gcd chain.Proof. We must show that Isomorphisms (4) and (5) hold. By the Chinese remaindering theorem it sufficesto show that h a, b, p e i = h G , p e i · · · h G s − , p e s − ih g s , p e s i . (7)holds, in order to prove (4); and to prove that (5) holds, it suffices to show that:for all s ≥ i ≥ , h a, b, p e i i = h G , p e i · · · h G i − , p e i − ih g i , p e i i , (8)Assume first that s = 1. Then Eq. (8) and Eq. (7) corresponds respectively to the first and to the secondequality of Lemma 6. XIssume now that s >
1. Let us prove Eq. (8) first. The case i = 1 amounts to h g , p e i = h a, b, p e i and is provided by Lemma 6. Assuming now i >
1. Statements 1.-2 of Lemma 7 together insure that h a, b, p e i i ⊂ h G , p e i · · · h G i − , p e i − ih g i , p e i i ( † ).On the other hand, Corollary 1 insures of the inclusion: h G , p e i · · · h G i − , p e i − ih g i i ⊂ h a, b, p e i . Indeed the generators of the product ideals on the l.h.s. are proved in that corollary to belong to the r.h.s.It follows that: h G , p e i · · · h G i − , p e i − ih g i , p e i i ⊂ h a, b, p e i i . Together with ( † ), this proves Eq. (8). Let us prove Eq. (7). Eq. (8) with i = s yields: h G , p e i · · · h G s − , p e s − ih g s , p e s i = h a, b, p e s i . Corollary 1 provides the inclusion: h a, b, p e i ⊃ h G , p e i · · · h G s − , p e s − ih g s i . Moreover, since by assumption there are s iterations, the while loop at Line 39 of Algorithm 5 stops at the s + 1-th iteration. Either B s =“ end ” and then B s = 1. Proposition 1 then guarantees that p e s B s = p e s ∈h a, b, p e i . We obtain the equality (7) required. Either B s =“ end ”: the s − g s − , B s − , p e − e s − exits at one of the Lines 25, 27, 31. If it is at Line 25, then B s − = 0which happens eventually only if b = 0, that is if there is only one iteration; Since s > B s − = 1, and there is no such s -th iteration since the test at Line 39 is notpassed. It remains the case of Line 31. Then the output T is equal here to p e s and we have e = e s . ThenEq. (7) and Eq. (8) coincide. (cid:3) The Weierstrass preparation theorem states that a formal power series f = P i a i X i ∈ a [[ X ]] with coefficientsin a local complete ring ( a , m ), not all of them lying in m , has a unique factorization f = qu where q = q + · · · + q n − X n − + X n is monic and q i ∈ m , and where u ∈ a [[ x ]] ⋆ is an invertible power series.In our context the local complete ring is a = k [ x ] / h p e i , m = h p i (indeed it is equal to k [[ x ]] / h p e i , whichis a finite quotient of the local complete ring k [[ x ]]). But the factorization supplied by the classical version( e.g. [8, Theorem 9.1]) does not fit the needs of this work. The following variant does: Proposition 2.
Let ( a , m ) be a complete local ring and let f ∈ a [ X ] a polynomial , say f = f d X d + · · · + f which has not all of its coefficients f i lying in m . Write f k the coefficient of highest degree that is not in m .There are unique polynomials q and u in a [ X ] such that f = uq where: – q is monic of degree k . – u = u + u X + · · · + u d − k X d − k where u m and u i ∈ m for i ≥ (note that u is a unit of a [[ X ]] ). The proof is adapted from [8, Theorem 9.1-9.2].
Proof.
Write rev d ( f ) := X d f ( X ) the reversal polynomial of f (this is why we need f to be a polynomial andnot a general power series). The term of smallest degree not in m is f k X d − k . By the standard Weierstrasspreparation Theorem 9.2 of [8] rev d ( f ) = gs where s is an invertible power series in a [[ X ]] and g = X d − k + g d − k − X d − k − + · · · + g is a monic polynomial which satisfies g i ∈ m . Since deg( rev d ( f )) = d and that g ismonic, necessarily s ∈ a [ X ] and is of degree k . We write s = s + · · · + s k X k . Thus: rev d ( rev d ( f )) = f = rev d − k ( g ) rev k ( s ) = (1 + g d − k − X + · · · + g X d − k )( s k + · · · + s X k )Now since s is invertible, s ∈ a ⋆ . Letting u = s + · · · + g s X d − k and q = s − s k + · · · + s − s X k − + X k provides polynomials satisfying f = uq as well as the requirement of the proposition. (cid:3) XIIhe polynomial q can be computed by an Euclidean division. This possibility is a minor adaptation of [8,Theorem 9.1], that we have reproduced in Appendix for sake of completeness. Corollary 2.
With the same notations and hypotheses of Proposition 2, given the inverse coefficient f − k , themonic polynomial q can be computed by mimicking the Euclidean division of X k by f k X k + f k − X k − + · · · ,but with f instead of f k X k + f k − X k − + · · · to obtain X k = gf + r . The power series g needs to be computedonly up to modulo X d − k +1 . Followed by the inversion of the truncated power series g to get: q = ( X k − r ) g − .Proof. By Lemma 8, there exits a unique invertible power series g ∈ a [[ X ]] and a unique polynomial r ∈ a [ X ]such that X k = gf + r . Therefore ( X k − r ) g − = f is the factorization of Proposition 2, by uniqueness. Wededuce that g − is a polynomial of degree d − k that verifies the conditions of the aforementioned proposition.In consequence, the power series g needs to be known only modulo X d − k +1 . (cid:3) Example 4
Let a = k [[ x ]] / h x i ≃ k [ x ] / h x i be the complete local ring of maximal ideal m = h x i , f = xy + y + 1 . The Weierstrass factorization of Proposition 2 insures the existence of a polynomial q = y + · · · ∈ a [ y ] and u = u + u y with u ∈ a ⋆ and u ∈ m , such that f = uq . To compute it, Euclidean division as explainedin Corollary 2 works as follows (boxed terms are parts of the remainder). y xy + y + 1 − xy -1 − xy + xxy -xWe obtain y = ( xy + y + 1)(1 − xy + x ) − x − , hence qu = ( y + x + 1)(1 − xy + x ) − = xy + y + 1 is thefactorization of Proposition 2. Now u = (1 − xy + x ) − = 1 + P i ≥ x i ( y − i = 1 + x ( y − in ( k [ x ] / h x i )[ y ] .We check that u = 1 − x ∈ a ⋆ and u = x ∈ m . A running example
Let p ( x ) = x , e = 7, that is the input primary triangular set in one variable is T ( x ) = x . The two input monic polynomials in ( Q [ x ] / h T ( x ) i )[ y ] are defined through their unique factorization into(two) coprime factors as: a := ( y + x + x + x + x + x + x ) ∗ ( y + 1 + x + x ) b := ( y + x + x + 2 ∗ x + x + x + x ) ∗ ( y + 1 + x + x )gcdChain( a, b, x ) == – First call to “largestFactor” Line 39 ( i = 0): largestFactor( a, b, x ) == • Line 28 modifiedSubres( a, b, x ) == ∗ Line 10: Subresultant mod x does not fail; We obtain S = [ a, b, . . . ], precisely: S = [ y + (2 ∗ x + x + x + 2 ∗ x + x + x + 1) ∗ y + 2 ∗ x + 2 ∗ x + 2 ∗ x + x + x + x,y + ( x + 2 ∗ x + x + 3 ∗ x + x + x + 1) ∗ y + 4 ∗ x + 2 ∗ x + 2 ∗ x + 2 ∗ x + x + x, ( − x + x + x ) ∗ y + 2 ∗ x + x , ∗ The last non nilpotent subresultant is b = S [2] and the first nilpotent is S [3] = ( − x + x + x ) ∗ y + 2 ∗ x + x . ∗ While loop Line 20 ( j = 3) S r j = S [3]nilpotentFactor( S r j , x ) == x , − P new = x , x | S [3] , i new = − ∗ While loop Line 20 ( j = 2) S r j = S [2] = b nilpotentFactor( S r j , x ) == 1 , P new = 1, coeff ( b, i new ) = coeff ( b, y ) = 1)XIII exit while loop and return modifiedSubres( a, b, T ) == S , , , x • Line 29: WeierstrassMonic( b, x ,
2) == b • Line 32: S = S [3] /x = ( − x + x + 1) ∗ y + 2 ∗ x + 1 • Lines 33-34: p ℓ = T /x = x , nilpotentFactor( S, x ) == 1 , i = 1) • Line 35: B = y + 3 ∗ x − x + 1 • return b, x , B , x – Line 42, Line 52: T = [ x ], C = [ g ] ( g = b mod h x i ) – Line 39 ( i = 1): largestFactor( g , B , x ) == • Line 28: modifiedSubres( g , B , x ) == ∗ Line 10 Subresultant mod x does not fail; We obtain S = [ y + (3 ∗ x + x + x + 1) ∗ y + 2 ∗ x + x + x,y + 3 ∗ x − x + 1 , ∗ x − x , ∗ The last non nilpotent is actually B = S [2] and the first one is S [3] = 3 ∗ x − x . ∗ While loop Line 20 ( j = 3) S r j = S [3]nilpotentFactor( S r j , x ) == x , − P new = x , x | S [3] , i new = − ∗ While loop Line 20 ( j = 2) S r j = S [2] = B nilpotentFactor( S r j , x ) == 1 , P new = 1, coeff ( B , i new ) = coeff ( B , y ) = 1) ∗ exit while loop and return modifiedSubres( g , B , x ) == S , , , x • Line 29: WeierstrassMonic( B , x ,
1) == B • Lines 32 S = S [3] /x = 3 ∗ x − • Lines 33-34: p ℓ = x /x = x , nilpotentFactor( S, x ) == 1 , i = 0) • Line 35: B = 3 ∗ x • return B (= g ) , x (= T ′ ) , ∗ x − B ) , x (= S ) – (Hensel Lifting, preparation) Line 44: G = g /g = b/B = y + x mod h x i – Lines45-47 α = − (1 + x ) , β = (1 + x ), T = x · x = x , precision= 5. – (Hensel Lifting): Step 1: from x to x : G ⋆ = y + 2 ∗ x + x + x, g ⋆ = y + x + 1Step2: from x to x : G ⋆ = y − ∗ x + x + x + x + 2 ∗ x + x + x, g ⋆ = y + 2 ∗ x + x + x + 1 – Line 49: g = g ⋆ mod h x i = y + x + 1 – Lines 50-52: D = [ G ⋆ mod h x i ] = [ y + x + x ], T = [ x , x ], C = [ b, y + x + 1] – Line 39 ( i = 2): largestFactor( g , ∗ x − , x ) == • Line 27 deg y (3 ∗ x −
1) = 0 , return 3 ∗ x − , x , “end”. – return C = [ b, y + x + 1], D = [ y + x + x ], T = [ x , x ].According to Definition 2, we have here s = 2 blocks. And moreover G = D [1] and G = g = C [2],yielding the isomorphism:( Q [ x ] / h x i )[ y ] / h a, b i ≃ ( Q [ x ] / h x i )[ y ] / h y + x + x i × ( Q [ x ] / h x i )[ y ] / h y + x + 1 i In this example, this decomposition coincides with the primary decomposition.
Generalization
All steps of Algorithm 4 “largestFactor” extends to more than one variable, except themanagement of the first nilpotent subresultant. To illustrate this difficulty, let us consider a primary tri-angular set T = ( x , y ) of radical ( x, y ), and some input polynomials a and b in ( k [ x, y ] / h T i )[ z ]. It mayhappen that a subresultant is equal to say xz + y (for example a = z + 2 xz − y and b = z + xz − y ).It is nilpotent and the iterated resultant criterion allows to detect it. But there is no way to “remove” thenilpotent part as in the case of a polynomial of one variable. To apply Weierstrass preparation theorem, thepolynomial must not be nilpotent. A solution consists of “adding” this polynomial to the coefficient ring.How this integration shall be done requires more work and will be investigated in the future.XIV omplexity The running-time of the algorithm is dominated by that of the subresultant calls. Indeed, allother subroutines are indeed based on classical algorithms which have a lower cost: Hensel lifting, inversionof a truncated power series are endowed of fast algorithms; And Weierstrass factorization is reduced to anEuclidean division. The standard subresultant p.r.s. have a quadratic (operations in k [ x ] / h p e i ) cost in thedegrees of the input polynomials. Therefore a running-time of O (( e deg( p )) · deg( a ) ) can be estimated usingnaive but realistic algorithms..We speculate that a fast version of our algorithm has a quasi-linear cost O ˜(( e deg( p ) · deg( a )), by usingfast “divide and conquer” (a.k.a half-gcd). This is quite challenging, and as one knows, is not reflected inany practical algorithm. For now, we care on feasability with a view toward extensions to several variables. References
1. Parisa Alvandi, Marc Moreno Maza, ´Eric Schost, and Paul Vrbik.
A Standard Basis Free Algorithm for Computingthe Tangent Cones of a Space Curve , pages 45–60. Springer International Publishing, Cham, 2015.2. C. Chen and M. Moreno-Maza. Algorithms for computing triangular decomposition of polynomial systems.
Journal of Symbolic Computation , 47(6):610–642, 2012.3. Jin-San Cheng and Xiao-Shan Gao. Multiplicity-preserving triangular set decomposition of two polynomials.
Journal of Systems Science and Complexity , 27(6):1320–1344, 2014.4. Xavier Dahan. Gcd modulo a primary triangular set of dimension zero. In
Proceedings of the 2017 ACM onInternational Symposium on Symbolic and Algebraic Computation , ISSAC ’17, pages 109–116, New York, NY,USA, 2017. ACM.5. M. Moreno Maza F. Lemaire and Y. Xie. The
RegularChains library.6. ´E. Hubert. Notes on triangular sets and triangulation-decomposition algorithms. I. Polynomial systems. volume2630 of
Lecture Notes in Comput. Sci. , pages 1–39. Springer, Berlin, 2003.7. M. Kalkbrener. A generalized Euclidean algorithm for computing triangular representations of algebraic varieties.
J. Symbolic Comput. , 15(2):143–167, 1993.8. Serge Lang.
Algebra (revised third edition) , volume 211 of
Graduate Texts in Mathematics . Springer Science andMedia, 2002.9. B.-H Li. A method to solve algebraic equations up to multiplicities via ritt-wu’s characteristic sets.
Acta AnalysisFunctionalis Appicata , 2:97–109, 2003.10. X. Li, M. Moreno-Maza, and W. Pan. Computations modulo regular chains. In
Proceedings of the 2009 interna-tional symposium on Symbolic and algebraic computation , pages 239–246. ACM, 2009.11. X. Li, C. Mou, and D. Wang. Decomposing polynomial sets into simple sets over finite fields: The zero-dimensionalcase.
Computers & Mathematics with Applications , 60(11):2983 – 2997, 2010.12. Steffen Marcus, Marc Moreno Maza, and Paul Vrbik.
On Fulton’s Algorithm for Computing Intersection Multi-plicities , pages 198–211. Springer Berlin Heidelberg, Berlin, Heidelberg, 2012.13. M. Moreno Maza and R. Rioboo. Polynomial gcd computations over towers of algebraic extensions. In
Proc.AAECC-11 , pages 365–382. Springer, 1995.14. Guillaume Moroz and ´Eric Schost. A fast algorithm for computing the truncated resultant. In
Proceedings of theACM on International Symposium on Symbolic and Algebraic Computation , pages 341–348. ACM, 2016.15. Chenqi Mou, Dongming Wang, and Xiaoliang Li. Decomposing polynomial sets into simple sets over finite fields:The positive-dimensional case.
Theoretical Computer Science , 468:102–113, 2013.16. J. F. Ritt. Differential equations from an algebraic standpoint.
Colloquiium publications of the AMS , 14, 1932.17. J. von zur Gathen and J. Gerhard.
Modern computer algebra . Cambridge University Press, New York, NY, USA,2003. Second Edition.18. D. Wang.
Elimination Methods . Texts & Monographs in Symbolic Computation. Springer Vienna, 2012.19. W. T. Wu. On zeros of algebraic equations - an application of Ritt principle.
Kexue Tongbao , 5:1–5, 1986.
Appendix
This is a modification of Lang’s proof [8, Theorem 9.1] up to a minor point indicated below, of the Weierstrassdivision, which is used in Corollary 2.
Lemma 8
With the same notations and assumptions of Proposition 2, given g ∈ a [[ X ]] , we can solve theequation g = qf + r uniquely with q ∈ a [[ X ]] and r ∈ a [ X ] and deg r < k . XV roof. Define the linear maps α : a [[ X ]] → a [ X ], P i a i X i P k − i =0 a i X i and τ : a [[ X ]] → a [[ X ]], P i a i X i P i a k + i X i . It is clear that b ∈ a [ X ] has degree < k if and only if τ ( b ) = 0 or α ( b ) = b . Therefore if g = qf + r ,deg( r ) < k then τ ( g ) = τ ( qf ). Moreover τ ( X k h ) = h and h = τ ( h ) X k + α ( h ) for any h ∈ a [[ X ]]. Thus τ ( g ) = τ ( q ( α ( f ) + X k τ ( f ))) = τ ( qα ( f )) + τ ( f ) q. Let Z = τ ( f ) q . Notice that τ ( f ) = f k + Xm ′ with f k ∈ a ⋆ and m ′ ∈ ma [[ X ]] by assumption, hence τ ( f )is invertible in a [[ X ]]. The equation above can be rewritten: τ ( g ) = τ ( Z α ( f ) τ ( f ) ) + Z . Being able to solve thisequation in Z uniquely gives τ ( f ) q , hence q , hence r = g − f q in a unique way.To do it, the proof differs slightly from that of [8, Theorem 9.2] to the following point. The reason whythe image of the map below τ ◦ α ( f ) τ ( f ) : a [[ X ]] → ma [[ X ]]is ma [[ X ] is because τ ( f ) − = f − k P ℓ ≥ ( − ℓ ( mX ) ℓ for an m ∈ ma [[ X ]] and hence α ( f ) τ ( f ) − = α ( f ) f − k + α ( f ) M where M ∈ ma [[ X ]]. Therefore τ ( α ( f ) τ ( f ) − ) ∈ ma [[ X ]] since deg( α ( f ) f k − ) = deg( α ( f )) ≤ k − h ∈ a [[ X ]], (cid:18) τ ◦ α ( f ) τ ( f ) (cid:19) ( h ) ∈ ma [[ X ]] . Now a [[ X ]] being a complete ring, I + τ ◦ α ( f ) τ ( f ) is invertible and Z = ( I + τ ◦ α ( f ) τ ( f ) ) − ( τ ( g )) is determined ina unique way. (cid:3)(cid:3)