Implicitization of Hypersurfaces John Abbott Dipartimento di Matematica, Università di Genova, Via Dodecaneso 35, I-16146 Genova, Italy
arXiv:1602.03993v1 [math.AC] 12 Feb 2016
Anna Maria Bigatti Dipartimento di Matematica, Università di Genova, Via Dodecaneso 35, I-16146 Genova, Italy
Lorenzo Robbiano Dipartimento di Matematica, Università di Genova, Via Dodecaneso 35, I-16146 Genova, Italy
Abstract We present new, practical algorithms for the hypersurface implicitization problem: namely, given a parametric description (in terms of polynomials or rational functions) of the hypersurface, find its implicit equation. Two of them are for polynomial parametrizations: one algorithm, “ElimTH”, has as main step the computation of an elimination ideal via a truncated, homogeneous Gröbner basis. The other algorithm, “Direct”, computes the implicitization directly using an approach inspired by the generalized Buchberger-Möller algorithm. Either may be used inside the third algorithm, “RatPar”, to deal with parametrizations by rational functions. Finally we show how these algorithms can be used in a modular approach, algorithm “ModImplicit”, for avoiding the high costs of arithmetic with rational numbers. We exhibit experimental timings to show the practical efficiency of our new algorithms. Keywords: Hypersurface, Implicitization 2010 MSC: 13P25, 13P10, 13-04, 14Q10, 68W30
1. Introduction Let K be a field and let P = K[x1 , . . . , xn ] be a polynomial ring in n indeterminates. Then let f1 , ..., fn be elements in the field L = K(t1 , . . . , t s ), where {t1 , . . . , t s } is another set of indeterminates which are viewed as parameters. We consider the K-algebra homomorphism ϕ : K[x1 , ..., xn ] −→ K(t1 , . . . , t s )
given by
xi 7→ fi
for i = 1, . . . , n
Its kernel, which will be denoted by Implicit( f1 , . . . , fn ), is a prime ideal, and the general problem of implicitization is to find a set of generators for this ideal. The task of computing Implicit( f1 , . . . , fn ) can be solved by computing a suitable Gröbner basis (see Proposition 2.2). However, in practice this method does not work well since in most Email addresses:
[email protected] (John Abbott),
[email protected] (Anna Maria Bigatti),
[email protected] (Lorenzo Robbiano) Preprint submitted to Elsevier February 15, 2016
non-trivial cases it is far too slow. The poor computational speed is aggravated when computing with rational coefficients (rather than coefficients from a finite field). There is definitely a big need for new, efficient techniques, and many authors have investigated alternative ways. The literature about implicitization is so vast that it is almost impossible to mention the entire body of research on this topic. This interest derives from the fact that the parametric representation of a rational variety is important for generating points on it, while the implicit representation is used to check whether a point lies on it. Besides its theoretical importance, the double representation of a rational variety is used intensively for instance in Computer Aided Geometric Design. A good source of bibliography up to ten years ago is [9]. More recently, new ideas have emerged. As we said, it is almost impossible to cite all of them, and we content ourselves to mention a few. In particular, new methods for computing implicitizations have been described in [11], [12], [13], and [18]. Some of these new ideas respond to the fact that in many cases the computation of Implicit( f1 , . . . , fn ) is too hard, hence one seeks a way to check whether a point lies on the rational variety without actually computing its equations. With our new methods, most of the examples mentioned in the literature become “easy”, that is we can compute the implicitization in less than a second — see Table 1 in Section 6. So, what is the content of this paper? And what are the novelties and the new algorithms presented here? First of all, we concentrate on the “hypersurface case” where Implicit( f1 , . . . , fn ) is a principal ideal, and hence generated by an irreducible polynomial which is therefore unique up to an invertible constant factor. Remark 1.1. Let I be the ideal Implicit( f1 , . . . , fn ) and let m be the minimum number of generators for I. From the facts that dim(K[ f1 , . . . , fn ]) = dim(K[x1 , . . . , xn ]/I) ≥ n − m and dim(K[ f1 , . . . , fn ]) ≤ dim(K[t1 , . . . , t s ]) = s it follows that m ≥ n − s. So, whenever s ≤ n − 1 then I has at least one generator, and in particular I is non-zero. The hypersurface case typically arises when s = n − 1, in accordance with the remark above. However, this is not always the case, as the following examples show. Example 1.2. We consider the “atypical” case where n = s = 2 and f1 = f2 = t1 + t2 . Clearly we have Implicit( f1 , f2 ) = hx − yi, which is obviously principal. This does, however, become a typical case if we use a “better parametrization” in terms of u = t1 + t2 , where we then have f1 = f2 = u, and consequently also have s = n − 1 with this better parametrization. Another “atypical” example is the following. Let n = 3, s = 2 and f1 = f3 =
t12 +t1 t2 +t22 . t12
t22 , t12
f2 =
t12 +t22 , t12
Here we do have s = n − 1 but the implicitization is not principal, in fact it turns
out that Implicit( f1 , f2 , f3 ) = hx1 + x2 − 1, x22 − 2x2 x3 + x23 − x2 − 1i. The reason here is that there is a “better parametrization” in terms of u = tt21 , where we have f1 = u2 , f2 = u2 + 1, f3 = u2 + u + 1; and with this better parametrization we have s , n − 1. The ideas explored in this paper can be classified in the following way: • Improve elimination by homogenization (see Proposition 2.4 and Theorem 4.6). • Use a direct algorithm which does not need elimination (see Subsection 3.2). • When the coefficient field is Q compute the solution polynomial modulo several primes, and then use (fault-tolerant) rational reconstruction to obtain the solution polynomial over the field Q (see Section 5). 2
There is a further idea: computing implicitizations with constraints, in particular using a method of “slicing” the variety with suitable parallel hyperplanes. This technique was introduced and used in [19]. However, it is rarely better than our new methods when Implicit( f1 , . . . , fn ) is a hypersurface. We shall investigate the “slicing method” for the general case in a later paper. The algorithms described in the paper are implemented in CoCoALib [2] and CoCoA 5 [3]. In the last section we introduce new, challenging examples, and the last table shows the performance of our implementation. 2. Polynomial Parametrizations In this section we consider a parametrization given by polynomials f1 , . . . , fn in the ring K[t1 , . . . , t s ], where {t1 , . . . , t s } is a set of indeterminates which are viewed as parameters. Definition 2.1. Let K be a field, and let P = K[x1 , . . . , xn ] be a polynomial ring in n indeterminates. Let t1 , . . . , t s be further indeterminates. Given elements f1 , ..., fn in K[t1 , . . . , t s ], we define the ideal J = hx1 − f1 , . . . , xn − fn i of the ring P[t1 , . . . , t s ] to be the eliminating ideal of the n-tuple ( f1 , . . . , fn ). We shall write Implicit( f1 , . . . , fn ) to denote the kernel of the K-algebra homomorphism ϕ : P −→ K[t1 , . . . , t s ] which sends xi 7→ fi for i = 1, . . . , n. Proposition 2.2. Suppose we are in the setting of the above definition. (a) We have Implicit( f1 , . . . , fn ) = J ∩ P. (b) The ideal Implicit( f1 , . . . , fn ) can be computed using an elimination ordering for all the ti . (c) The ideal Implicit( f1 , . . . , fn ) is prime. Proof. Claims (a) and (b) are standard results (see for instance book [16], Section 3.4). Claim (c) follows from the fact that there is an isomorphism K[t1 , . . . , t s , x1 , . . . , xn ]/J K[t1 , . . . t s ], hence J is prime, and so J ∩ P is prime too. Remark 2.3. We shall later find it convenient to suppose that in the parametrization no xi maps to a constant. This is not a restriction because if fn ∈ K then we obtain the simple decomposition: Implicit( f1 , f2 , . . . , fn ) = hxn − fn i + Implicit( f1 , . . . , fn−1 ). Thus any indeterminates xi which map to constants can simply be taken out of consideration, letting us concentrate on the interesting part. Henceforth we shall assume that none of the fi is constant. The very construction of the eliminating ideal looks intrinsically non-homogeneous. And it is well-known that the behaviour of Buchberger’s algorithm can be quite erratic when the input is not homogeneous: usually the computation for a non-homogeneous input is a lot slower than a “similar” homogeneous computation (though there are sporadic exceptions). We now look quickly at how to use homogenization during implicitization. A first idea is to give weights to the xi indeterminates by setting deg(xi ) = deg( fi ) for each i. If we do so, and if the original fi are homogeneous polynomials, then the eliminating ideal J turns out to be a homogeneous ideal. Even when the fi are not all homogeneous, in the process of ordering and choosing the power-products of a given degree, we may reasonably expect that Buchberger’s algorithm will “behave” more similarly to a homogeneous ideal than with the standard grading, where all indeterminates have degree 1. 3
Although this trick improves the computation in most cases, it is not a miraculous panacea. Much better ideas come from the following Proposition 2.4 and Theorem 4.6 which reduce the computation of the implicitization ideal to the case of prime ideals whose generators are homogeneous polynomials. In the proofs we use the fundamental properties of homogenization and dehomogenization as described in [17], Section 4.3. A general discussion about the topic treated in the following proposition can be found in [17], Tutorial 51. In the proposition below we use a single homogenizing indeterminate h; so, to simplify notation, homogenization and dehomogenization are tacitly taken with respect to h. Proposition 2.4. (Implicitization of Polynomial Parametrizations by Homogenization) Let P = K[x1 , . . . , xn ], let f1 , . . . , fn ∈ K[t1 , . . . , t s ] \ K. Now let h be a new indeterminate, and let P[t1 , . . . , t s , h] be graded by setting deg(xi ) = deg( fi ) for i = 1, . . . , n and deg(t1 ) = · · · = deg(t s ) = deg(h) = 1. Finally let Fi = fihom , and let J¯ be the eliminating ideal of (F1 , . . . , Fn ). Then: (a) The ideal J¯ ∩ P[h] is prime. (b) We have the equality Implicit( f1 , . . . , fn ) = ( J¯ ∩ P[h])deh. Proof. The proof of claim (a) follows immediately from the fact that J¯ is an eliminating ideal, hence prime. Let J be the (non-homogeneous) eliminating ideal of the tuple ( f1 , . . . , fn ). Now, since J¯ is prime, it is saturated with respect to h; furthermore we have J¯deh = J, so we can deduce that J¯ = J hom . Clearly (J ∩ P)hom ⊆ J hom ∩ P[h] = J¯ ∩ P[h], hence, by dehomogenizing, we deduce that J ∩ P = ((J ∩ P)hom )deh ⊆ ( J¯ ∩ P[h])deh . On the other hand, if f ∈ ( J¯ ∩ P[h])deh then we have f ∈ J¯deh ∩P, but J¯deh = (J hom )deh = J, and the proof is complete since Implicit( f1 , . . . , fn ) = J ∩P by Proposition 2.2.a. 3. The Hypersurface Case In this section we start to treat the “hypersurface case”, namely the case where it is known that the implicitization ideal is principal. In this situation we typically have s = n − 1, although this equality is not equivalent to the implicitization being a principal ideal, as shown in Example 1.2. There is no easy way to determine whether the implicitization is going to be a principal ideal, but this information might already be independently known for the particular example under consideration. So this is usually taken as hypothesis by the papers in this topic. 3.1. A Truncated Computation As already observed, the ideal J¯ in Proposition 2.4 is homogeneous, hence the computation of the (elimination) Gröbner basis of J¯ can be performed degree by degree. Moreover, using the methods described in Proposition 2.4 we get the following extra bonus in the hypersurface case: as soon as we obtain a Gröbner basis element G which does not involve the parameters, we may stop the computation of the Gröbner basis because the solution polynomial is just the dehomogenization of G. Corollary 3.1. With the same assumptions as in Proposition 2.4, if Implicit( f1 , . . . , fn ) is a principal ideal generated by g then Implicit( f1hom , . . . , fnhom ) is a principal ideal generated by ghom . 4
deh ¯ Proof. We recall the equality Implicit( f1 , . . . , fn ) = ( J∩P[h]) proved in Proposition 2.4.b. This deh implies that ( J¯ ∩ P[h]) = hgi. Conversely, the ideal J¯ ∩ P[h] is prime by Proposition 2.4.a, hence it is saturated with respect to h, and so it is generated by ghom .
Algorithm 3.2. (ElimTH: Truncated Homogeneous Elimination) Input f1 , . . . , fn ∈ K[t1 , . . . , t s ] \ K such that the ideal Implicit( f1 , . . . , fn ) is principal. ElimTH-1 Initialization: ElimTH-1.1 Create the polynomial ring R = K[t1 , . . . , t s , h, x1 , . . . , xn ], graded by [1, . . . , 1, 1, deg( f1 ), . . . , deg( fn )]. Let σ be an elimination ordering for {t1 , . . . , t s } on R. ElimTH-1.2 Let Fi = fihom(h) ∈ R. ElimTH-1.3 Let J = hx1 − F1 , . . . , xn − Fn i, the eliminating ideal of (F1 , . . . , Fn ). ElimTH-2 Main Loop: Start Buchberger’s algorithm for the computation of a σ-Gröbner basis GB of J. Perform its main loop degree by degree (i.e. always choose the pair with minimum degree). When you add to GB the first polynomial G such that LTσ (G) is not divisible by any ti exit from loop. ElimTH-3 Let gcalc = Gdeh(h) mapped into K[x1 , . . . , xn ]. Output gcalc ∈ K[x1 , . . . , xn ] Then gcalc generates Implicit( f1 , . . . , fn ). Proof. Termination: The loop in the algorithm is simply Buchberger’s algorithm, and this terminates in a finite number of steps. Moreover, Corollary 3.1 guarantees that J¯ contains a polynomial not involving the ti indeterminates, and since σ is an elimination ordering for the ti there is such a polynomial in the Gröbner basis, so the Main Loop will set G and exit. Correctness: In the Main Loop we execute Buchberger’s Algorithm with respect to an elimination ordering for all the ti ; thus the elements of the Gröbner basis whose leading terms are not divisible by any ti form a Gröbner basis for the elimination ideal J¯ ∩ P[h]. By Corollary 3.1 this ideal is principal, so Buchberger’s Algorithm (computing degree by degree) will produce exactly one polynomial whose leading term is not divisible by any ti . The loop stops as soon as this polynomial is found. In step ElimTH-3 the polynomial G will be the generator of Implicit( f1hom , . . . , fnhom ), and by Corollary 3.1 we have that gcalc = Gdeh(h) is the generator of Implicit( f1 , . . . , fn ). Remark 3.3. We consider briefly what happens if the input to Algorithm 3.2 does not correspond to a principal implicitization ideal. If Implicit( f1 , . . . , fn ) is the zero ideal then Buchberger’s Algorithm in step ElimTH-2 will terminate without finding any candidate for G; we could in that case simply set G = 0. By Remark 1.1 this cannot happen if s ≤ n − 1. If, instead, Implicit( f1 , . . . , fn ) is non-zero and non-principal then the polynomial G found in step ElimTH-2 will be a lowest-weighted-degree element of a Gröbner basis for that ideal (and consequently a lowest-weighted-degree non-zero element of the ideal). 5
This next example illustrates the good behaviour of the algorithm above. Example 3.4. We let K = Z/(32003) and in the ring K[x1 , x2 , t] we consider the eliminating ideal I = hx1 − (t15 − 3t2 − t + 1), x2 − (t23 + t11 + t3 − t − 2)i The usual elimination of t takes more than one hour, even if we give the weights 15 and 23 to the indeterminates x1 , x2 respectively; whereas the truncated homogeneous elimination takes less than a second (this is one of our test cases: see Example 6.12). The solution polynomial has 176 power-products in its support. Remark 3.5. If the eliminating ideal is not homogeneous, the idea of truncating the computation as soon as a polynomial in P is found does not work well, since it may happen that the first such polynomial computed by the algorithm is a proper multiple of the solution polynomial. The phenomenon is similar to the case where the reduced Gröbner basis of an ideal is {1}, yet before discovering that 1 is in the basis it often happens that many other (non-reduced) Gröbner basis elements are computed. One could take the polynomial found and factorize it, then substitute into the various irreducible factors to see which factor is the good one. But this is unlikely to be efficient. 3.2. A Direct Approach We briefly recall the setting of this paper: we have been given a K-algebra homomorphism ϕ : K[x1 , . . . , xn ] −→ K[t1 , . . . , t s ] sending xi 7→ fi and we assume that its kernel is a principal ideal: the problem is to find the generator of ker(ϕ) = Implicit( f1 , . . . , fn ) = hgi. Following Remark 2.3, we shall find it convenient to assume that each fi ∈ K[t1 , . . . , t s ] is non-constant. In this section we compute the polynomial g via a direct approach. P Remark 3.6. First of all notice that, if a polynomial f = i ai T i ∈ K[x1 , . . . , xn ] is such that P ϕ( f ) = 0, then i ai ϕ(T i ) = 0. In other words, there is a K-linear dependency among the image polynomials {ϕ(T ) | T ∈ Supp( f )} ⊂ K[t1 , . . . , t s ], and the coefficients of the linear relation are exactly the coefficients of f (up to a scalar multiple). The idea behind our “direct approach” is to directly determine g by searching for the smallest linear dependency among all the ϕ(T ), i.e. those polynomials in K[t1 , . . . , t s ] which are images of the power-products T ∈ K[x1 , . . . , xn ]. We shall now see how to reduce this apparently infinite problem to a finite, tractable one. Definition 3.7. A compact ordering is a total ordering such that for every element there are only finitely many elements smaller than it. In particular, a compact term-ordering is a termordering which is also compact; consequently, a compact term-ordering is defined by a matrix with strictly positive entries in the first row. Example 3.8. The ordering DegRevLex is compact because for any given power-product T¯ all smaller power-products, T < T¯ , must have deg(T ) ≤ deg(T¯ ), and so they are finite in number. Similarly, any degree-compatible term-ordering is compact. In contrast, the lex-ordering (for 2 or more indeterminates) is not compact because if indeterminate x2 is less than x1 then all powers xd2 are smaller than x1 .
6
Algorithm 3.9. (Direct: Implicitization by Direct Search) Input f1 , . . . , fn ∈ K[t1 , . . . , t s ] such that the ideal Implicit( f1 , . . . , fn ) is principal. Variables The main variables are: QB: the list of power-products in K[x1 , . . . , xn ] already considered. L: the list of power-products in K[x1 , . . . , xn ] yet to be considered. PhiQB: the list [ϕ(T i ) | T i ∈ QB]; its elements are seen as vectors in the infinite dimensional K-vector space K[t1 , . . . , ts ].
Direct-1 Initialization Direct-1.1 Fix a compact term-ordering σ on the power-products of K[x1 , . . . , xn ]. Direct-1.2 Set QB = ∅. Set PhiQB = ∅. Set L = {1}. Direct-2 Main Loop Direct-2.1 Let T = minσ (L). Remove T from L. Direct-2.2 Compute v = ϕ(T ) ∈ K[t1 , . . . , t s ]. P Direct-2.3 Is there a linear dependency v = i ai vi with ai ∈ K and vi ∈ PhiQB? yes exit from loop no Add to L the elements of {x1 T, . . . , xn T } not already in L; append T to the list QB; append v to the list PhiQB P Direct-3 Let gcalc = T − i ai T i where T i ∈ QB corresponds to vi ∈ PhiQB. Output gcalc ∈ K[x1 , . . . , xn ] Then gcalc generates Implicit( f1 , . . . , fn ). Proof. Termination: The main loop of the algorithm considers the power-products in the ring K[x1 , . . . , xn ] in increasing order (wrt. σ) until the condition in step Direct-2.4 breaks out; since σ is compact, every power-product will be considered at some (finite) time. The initial values for QB and L, and the updates to these variables in step Direct-2.3 (no) guarantee that whenever we enter step Direct-2.1 the set L satisfies L = {xi T : 1 ≤ i ≤ n and T ∈ QB} \ QB; in other words it comprises those power-products outside QB and which border on QB. As σ is a term-ordering, L therefore always contains the σ-smallest power-product outside QB (as well as many others). In step Direct-2.3 the algorithm looks for a K-linear dependency amongst the polynomials {ϕ(T ) | T ≤ T¯ }. Every such linear dependency corresponds to a monic element of ker(ϕ). By hypothesis ker(ϕ) contains the polynomial g (which we may assume to be monic wrt. σ), so if we reach step Direct-2.3 with T = LPP(g) then a linear dependency will be found (e.g. corresponding to the coefficients of g). Since σ is a compact ordering, there are only finitely many power-products less than LPP(g); so we will break out of the main loop when T = LPP(g), if not earlier. Correctness: We shall show that we do not break out of the main loop until T = LPP(g), and that when we do break out the polynomial we construct in step Direct-3 is g. P The test in step Direct-2.3 gives true if and only if there is a polynomial g˜ = T − i ai T i with each T i < T satisfing ϕ(g˜ ) = 0, i.e. g˜ ∈ ker(ϕ); note that g˜ is monic, thus non-zero by construction. 7
By hypothesis ker(ϕ) is a principal ideal (generated by g). So every non-zero element of ker(ϕ) has leading term σ-greater-than-or-equal to LPP(g), thus step Direct-2.3 will not find any linear dependency if T < LPP(g). Let gcalc be the polynomial constructed in step Direct-3. We have LPP(gcalc ) = LPP(g), and both polynomials are monic. Suppose gcalc , g, and set gˆ = gcalc − g. Then LPP(gˆ ) < LPP(g) but also ϕ(gˆ ) = ϕ(gcalc ) − ϕ(g) = 0, so gˆ ∈ ker(ϕ) which contradicts the fact that g is the (non-zero) element of ker(ϕ) with σ-smallest leading term. This concludes the proof. Remark 3.10. We consider briefly what happens if the input to Algorithm 3.9 does not correspond to a principal implicitization ideal. If Implicit( f1 , . . . , fn ) is the zero ideal then the main loop never exits (as no non-trivial linear dependency exists). Note that if s = n − 1 then the ideal Implicit( f1 , . . . , fn ) cannot be the zero ideal as proved in Remark 1.1. If, instead, Implicit( f1 , . . . , fn ) is non-zero and non-principal then the main loop will exit, and the polynomial gcalc found in step Direct-3 will be the monic polynomial with σ-smallest leading term in the reduced σ-Gröbner basis for that ideal. Remark 3.11. This approach is inspired by the Generalized Buchberger-Möller algorithm [6], and is somewhat simpler (e.g. the list G for storing the Gröbner basis is not needed, and the update to the list L is simpler). But there is an important difference: here we cannot specify a priori a finite dimensional vector space as the codomain of the normal form vector map. For the generalized Buchberger-Möller algorithm the finiteness of the codomain led to an easy proof of termination; instead here we had to introduce the concept of compact ordering. Remark 3.12 (Optimizations). We mention here a few optimizations which considerably improve the execution time: (a) The computation of ϕ(T ) in step Direct-2.2 can be effected in several ways. We suggest exploiting the fact that ϕ is a homomorphism to compute the value cheaply. Apart from the very first iteration when T = 1, we always have T = x j T ′ where T ′ is a power-product for which we have already computed ϕ(T ′ ); so we can calculate with a single multiplication ϕ(T ) = ϕ(x j ) ϕ(T ′ ). Usually there are several choices for the indeterminate x j , so we can choose the one which leads to the cheapest multiplication. (b) In step Direct-1.1 we pick some compact ordering on the power-products of the ring K[x1 , . . . , xn ]. Here we describe a specific good choice of compact term-ordering. Fix a (standard) degree-compatible term-ordering τ on the power-products of K[t1 , . . . , t s ], and let Mτ be an s × s matrix representing it (so all entries in the first row are 1). We indicate with E the s × n matrix whose columns are the exponents of LPPτ ( fi ), and let M = Mτ · E; this is an s × n matrix with strictly positive entries in the first row: namely deg( fi ) with i = 1, .., n. We complete M to a term-ordering matrix M ′ for the powerproducts of K[x1 , . . . , xn ]: i.e. we remove linearly dependent rows, and adjoin suitable new rows at the bottom to make M ′ square and invertible. This is a compact term-ordering because M and M ′ share (at least) the first row. This choice of term-ordering implies that in step Direct-2.1 we choose the power-product with τ-smallest LPPτ (ϕ(T )), therefore guiding the search with the degree of ϕ(T ). Remark 3.13. The requirement that σ be a term-ordering is stronger than necessary. For instance it is sufficient that σ orders by degree (how it orders within a fixed degree is unimportant). 8
However, if we use such a general ordering then the list L will then have be to updated differently (e.g. fill it with all power-products of the next degree when it becomes empty). 4. Rational Parametrizations In this section we consider a parametrization given by rational functions f1 , . . . , fn in the field L = K(t1 , . . . , t s ), where {t1 , . . . , t s } is a set of indeterminates which are viewed as parameters. We can write this parametrization with a common denominator q, so that we have fi = pqi with q, p1 , . . . , pn ∈ K[t1 , . . . , t s ]. Definition 4.1. As in Definition 2.1, we write Implicit( f1 , . . . , fn ) to denote the kernel of the K-algebra homomorphism ϕ : K[x1 , ..., xn ] −→ L which sends xi 7→ pqi for i = 1, . . . , n. Remark 4.2. We recall here a general method for computing Implicit( pq1 , . . . , pqn ). We start with the ideal I = hqx1 − p1 , . . . , qxn − pn i ⊂ K[x1 , . . . , xn , t1 , . . . , t s ], then we introduce a new indeterminate u, and let J = I + huq − 1i ⊂ K[x1 , . . . , xn , t1 , . . . , t s , u]. Now we have Implicit( pq1 , . . . , pqn ) = J ∩ P which can be computed by eliminating the indeterminates u and t1 , . . . , t s . The following example illustrates the necessity of adding huq − 1i to I. Example 4.3. We let K = Q and we let f1 = f2 = st , f3 = s, and let I = htx − s, ty − s, z − si. We have the equality I = hx − yi ∩ hs, t, zi, hence we get I ∩ K[x, y, z] = hz (x − y)i which is not prime. The correct result is Implicit( f1 , f2 , f3 ) = hx − yi. In the following we present a “homogeneous” method for computing Implicit( f1 , . . . , fn ) when f1 , . . . , fn are rational functions; compared to the classical method the big advantage we have is that the Gröbner basis computation (i.e. the elimination) is performed on a homogeneous ideal. Definition 4.4. We will use two different kinds of homogenization: • traditional homogenization and dehomogenization: with respect to h denoted by superscripts hom(h) and deh(h) respectively; with respect to x0 , by superscripts hom(x0 ) and deh(x0 ) . • d-shifted-homogenization: for a non-zero polynomial f and degree d ≥ deg( f ) we write f homd (h) to mean hd−deg( f ) f hom(h) , which is a homogeneous polynomial of degree d. Observe that since 0hom(h) = 0, we have 0homd (h) = 0 for all d. The following easy properties of the shifted-homogenization will help the reader understand the theorem below. Lemma 4.5. Let P be a polynomial ring over the field K, and let f, g ∈ P. • If d1 ≥ deg( f ) and d2 ≥ deg(g) then f homd1 (h) · ghomd2 (h) = ( f g)homd1 +d2 (h) • If d ≥ deg( f ) and d ≥ deg(g) then f homd (h) + ghomd (h) = ( f + g)homd (h) Proof. The proofs are elementary exercises in algebra. Observe that the definition 0homd (h) = 0 is indeed compatible with this lemma, since from the equality f − f = 0 we deduce the equalities 0 = f homd (h) − f homd (h) = 0homd (h) .
9
Theorem 4.6. (Implicitization of Rational Parametrizations by Homogenization) Let q, p1 , . . . , pn be non-zero polynomials in K[t1 , . . . , t s ]. We shall work in the graded ring R = K[x0 , x1 , . . . , xn , t1 , . . . , t s , h] with grading defined by deg(h) = deg(ti ) = 1 for i = 1, . . . , s and deg(xi ) = d for i = 0, . . . , n where d = max{deg(q), deg(p1 ), . . . , deg(pn )}. Now make the input polynomials homogeneous and of equal degree d: set Q = qhomd (h) , and d (h) for i = 1, . . . , n. Let J be the homogeneous eliminating ideal in R generated by set Pi = phom i {x0 − Q, x1 − P1 , . . . , xn − Pn }. Then: (a) The ideal J ∩ K[x0 , x1 , . . . , xn ] is prime. (b) We have the equality Implicit( pq1 , . . . , pqn ) = J ∩ K[x0 , x1 , . . . , xn ] deh(x0 ) . Proof. The kernel Implicit( pq1 , . . . , pqn ) is an ideal in the ring P = K[x1 , . . . , xn ], which we view as a subring of R. We write P[x0 ] to denote the subring K[x0 , x1 , . . . , xn ]: observe that a polynomial in P[x0 ] is homogeneous in the induced grading if and only if it is homogeneous in the standard grading (i.e. in the usual sense of the word). As in Proposition 2.4, the proof of claim (a) follows immediately from the fact that J is an eliminating ideal, hence prime. To prove claim (b) we introduce the following sets: • S 1 = {A ∈ P | A( pq1 , . . . , pqn ) = 0} • S 2 = {A ∈ P[x0 ] | A is homogeneous and A(Q, P1 , . . . , Pn ) = 0} • S 3 = {A ∈ P[x0 ] | A is homogeneous and A(q, p1 , . . . , pn ) = 0} • S 4 = {A ∈ P[x0 ] | A is homogeneous and Adeh(x0 ) ( pq1 , . . . , pqn ) = 0} Clearly, the conclusion is reached if we prove the following claims. (1) The set S 1 is the ideal Implicit( f1 , . . . , fn ). (2) The set S 2 generates the ideal J ∩ P[x0 ]. (3) We have S 3 = S 2 . (4) We have S 4 = S 3 . (5) We have S 1 = {Adeh(x0 ) | A ∈ S 4 }. Claim (1) is just the definition of Implicit. To prove claim (2) we recall that the ideal J is homogeneous, hence J ∩ P[x0 ] is too. Thus J∩P[x0 ] can be generated by homogeneous elements, and S 2 contains all homogeneous elements in J ∩ P[x0 ], and so it surely generates the ideal. We prove claim (3). Let A(x0 , x1 , . . . , xn ) be a homogeneous polynomial, and let D = deg(A). Repeated application of Lemma 4.5 on the monomials in A shows that d (h) d (h) A(Q, P1 , . . . , Pn ) = A(qhomd (h) , phom , . . . , phom ) = (A(q, p1, . . . , pn ))homdD (h) n 1
whence A(Q, P1 , . . . , Pn ) = 0 if and only if A(q, p1, . . . , pn ) = 0. deg(A) deh(x0 ) x1 deg(A) A ( x0 , . . . , xxn0 ), Next we prove claim (4). We have A = x0 A(1, xx01 , . . . , xx0n ) = x0 pn deg(A) deh(x0 ) p1 consequently A(q, p1 , . . . , pn ) = q A ( q , . . . , q ), hence the claimed equality follows. Since claim (5) is clear, the proof is complete. Corollary 4.7. If Implicit( pq1 , . . . ,
pn q )
= hgi then J ∩ K[x0 , x1 , . . . , xn ] = hghom i.
Proof. The proof can be done exactly as the proof of Corollary 3.1.a. 10
Remark 4.8. We may relax the restriction in the theorem that each pi be non-zero; it is there just to allow an easy definition of d, the upper bound for the degrees. Remark 4.9. We could be tempted to use the general method highlighted in Remark 4.2: namely, ¯ and then imitate Propowe homogenize the given generators of J, get the eliminating ideal J, sition 2.4. However, even if the ideal ( J¯ ∩ P[h])deh is principal, the ideal J¯ ∩ P[h] need not be principal, as the following example shows. The main drawback is that J¯ need not be saturated with respect to h. Example 4.10 (Ex 4.3 continued). We return to Example 4.3, but this time homogenize the generators of J = I + hut − 1i to get the following ideal J ′ = htx − hs, ty − hs, z − s, ut − h2 i. However, elimination produces J ′ ∩ K[x, y, z, h] = hxzh − yzh, xh2 − yh2 i which is not principal. Even if we homogenize the generators and bring them all to the same degree, we get the ideal J¯ = htx − hs, ty − hs, h(z − s), ut − h2 i, and again elimination produces J¯ ∩ K[x, y, z, h] = hxzh − yzh, xh2 − yh2 i. Remark 4.11. In the case of rational functions, we could also be tempted to homogenize the input in a similar way to Theorem 4.6 but applying just hom(h) instead of equalizing the degrees with homd (h) . This does not work because claim (4) of the proof fails, as the following easy example shows. Example 4.12. In the ring K(t1 , t2 )[x1 , x2 , x3 ] we consider the eliminating ideal I = hx1 −
t3 t4 t22 , x2 − 2 , x3 − 2 i t1 t1 t1
The solution polynomial is x1 x3 − x22 . However, if we consider the ring K[x0 , x1 , x2 , x3 , t1 , t2 ] graded by setting deg(x0 ) = 1, deg(x1 ) = 2, deg(x2 ) = 3, deg(x3 ) = 4, deg(t1 ) = deg(t2 ) = 1, the ideal J¯ = hx0 − t1 , x1 − t22 , x2 − t23 , x3 − t24 i is homogeneous, but the polynomial of minimal degree in K[x0 , x1 , x2 , x3 ] is x3 − x21 whose degree is 4 while the actual solution is the polynomial x1 x3 − x22 whose degree is 6. We now turn Theorem 4.6 into an explicit algorithm: Algorithm 4.13. (RatPar: Rational Parametrization) Input f1 = pq1 , . . . , fn = pqn ∈ K(t1 , . . . , t s ) where q is a common denominator. RatPar-1 Let d = max{deg(q), deg(p1 ), . . . , deg(pn )}, where here we define deg(0) = 0. RatPar-2 Create the polynomial ring R = K[t1 , . . . , t s , h, x0 , x1 , . . . , xn ], graded by deg(ti ) = deg(h) = 1 for i = 1, . . . , s, and deg(xi ) = d for i = 0, . . . , n. d (h) ∈ R for i = 1, . . . , n. RatPar-3 Let Q = qhomd (h) ∈ R, and let Pi = phom i RatPar-4 Compute hG1 , . . . , Gm i = Implicit(Q, P1 , . . . , Pn ) using any algorithm for (homogeneous) polynomial parametrization. RatPar-5 Compute gi = Gi deh(x0 ) for all i = 1, . . . , m Output (g1 , . . . , gm ) ⊆ K[x1 , . . . , xn ] — satisfying hg1 , . . . , gm i = Implicit( f1 , . . . , fn ).
11
5. Modular Approach for Rational Coefficients It is well known that computations with coefficients in Q can be very costly in terms of both time and space. When possible, it is generally a good idea to perform the computation modulo one or more primes, and then lift the coefficients of these modular results into coefficients in Q. There are two general classes of method: Hensel Lifting and Chinese Remaindering. We shall use Chinese Remaindering. The modular approach has been successfully used in numerous contexts: factorization [21], determinant of integer matrices [5], ideals of points [4], and so on. There are two important aspects which must be addressed before a modular approach can be adopted: • knowing how many different primes to consider to guarantee the result (i.e. find a realistic bound for the size of coefficients in the answer); • handling bad primes: i.e. those whose related computation follows a different route, yielding an answer with the wrong “shape” (which is not simply the modular reduction of the correct non-modular result). There is no universal technique for tackling these issues. For our particular application there is no useful coefficient bound, and only a partial criterion for detecting bad primes (see Remark 5.7) We shall use fault-tolerant rational recovery to overcome our limited of knowledge about these two aspects. Now we formally write down what we mean by “performing the computation modulo a prime”. Definition 5.1. Given a prime p we denote by ψ˜ p the ring homomorphism Zhpi −→ Z/hpi ¯ −1 ; here Zhpi denotes the ring of rational numbers whose denominators are defined by ba 7→ a¯ (b) not divisible by p — the localization of Z away from hpi. Observe that Zhpi is a subring of Q. This can be naturally extended to rings of polynomials over Zhpi mapping the coefficients but preserving the power-products ψ p : Zhpi [t1 , . . . , t s ] −→ Z/hpi[t1 , . . . , t s ] We wish to reconstruct the monic generator of Implicit( f1 , . . . , fn ) in Q[x1 , . . . , xn ] from the modular implicitizations Implicit ψ p ( f1 ), . . . , ψ p ( fn ) in Z/hpi[x1 , . . . , xn ]. 5.1. Bad Primes We recall that both our algorithms (Algorithm 3.2 and Algorithm 3.9) require a term-ordering to be specified. We denote this term-ordering by σ. Let f1 , . . . , fn ∈ Q(t1 , . . . , t s ) be such that Implicit( f1 , . . . , fn ) is a principal ideal, and let g ∈ Q[x1 , . . . , xn ] be its generator which is monic wrt. σ. Define den(g) ∈ Z to be the least common denominator of the coefficients of g. Definition 5.2. We say that the prime p is unsuitable if any of the following happens: (a) there is an index i such that fi < Zhpi (t1 , . . . , t s ). (b) there is an index i such that ψP ( fi ) = 0 or deg(ψ p ( fi )) < deg( fi ). in other words p divides the denominator of some coefficient in fi , or it divides the numerators of all coefficients in the leading form of some fi . We henceforth exclude unsuitable primes from discussion — note that they are easily recognized. We say that the prime p is bad if it is suitable but either of the following happens: 12
(A) Implicit(ψ p ( f1 ), . . . , ψ p ( fn )) , hψ p (g)i. (B) p divides den(g). We say that a prime is good if it is neither unsuitable nor bad. We say that p is very-good if it is good and Supp(g) = Supp(ψ p (g)); in other words, it does not divide the numerator of any coefficient in g. Example 5.3 (Bad primes). Given f1 = t13 , f2 = t23 , f3 = t1 + t2 ∈ Q[t1 , t2 ] we have Implicit( f1 , f2 , f3 ) = h−x93 + 3x1 x63 + 3x2 x63 − 3x21 x33 + 21x1 x2 x33 − 3x22 x33 + x31 + 3x21 x2 + 3x1 x22 + x32 i but modulo 3 we obtain Implicit(ψ3 ( f1 ), ψ3 ( f2 ), ψ3 ( f3 )) = hx33 − x1 − x2 i
Z/h3i[x1 , x2 , x3 ]
⊆
So the prime 3 is bad because, even though the modular implicitization is principal, it is not equivalent modulo 3 to the correct result. Indeed, we cannot even be sure that when Implicit( f1 , . . . , fn ) is principal in Q[x1 , . . . , xn ] then Implicit(ψ p ( f1 ), . . . , ψ p ( fn )) is principal too. For instance, given f1 = t1 +t2 , f2 = t1 −t2 and f3 = t1 −t2 ∈ Q[t1 , t2 ] we have Implicit( f1 , f2 , f3 ) = hx2 − x3 i whereas Implicit(ψ2 ( f1 ), ψ2 ( f2 ), ψ2 ( f3 )) = hx1 − x3 , x2 − x3 i
⊆
Z/h2i[x1 , x2 , x3 ]
From Remarks 3.3 and 3.10, we see that in cases such as this, where the modular inputs do not satisfy the condition that Implicit(· · · ) be principal, our Algorithms 3.2 and 3.9 will just return the first polynomial they encounter in the computation of Implicit(ψ p ( f1 ), . . . , ψ p ( fn )). Remark 5.4 (Finitely many unsuitable primes). Condition (a) is satisfied if and only if p divides the least common denominator for all the fi ; clearly there are only finitely many such primes. Condition (b) is satisfied if and only if p divides the least common multiple of the integer contents of the leading form of each fi ; again, clearly there are only finitely many such primes. Remark 5.5 (Finitely many bad primes). Clearly condition (B) covers only finitely many primes. For condition (A) we consider what happens when Algorithm 3.9 runs. We have a faithful modular implicitization if and only if the check for a linear dependency in step Direct-2.3 actually finds one on the same iteration that it would have been found while computing over Q. This will happen only if there was no linear dependency in any previous iteration; in other words, if the matrix had been of full rank in the penultimate iteration; and this happens for all primes except those which divide the numerators of all maximal minors — there are clearly only finitely many such primes. Remark 5.6. Only finitely many primes are good but not very-good. By definition a prime is good but not very-good if it divides the numerator of some coefficient of g, or equivalently if it divides the least common multiple of the numerators of the coefficients of g. Clearly only finitely many primes do so. In conclusion, only finitely many primes are not very-good. 13
Remark 5.7 (Detecting bad primes). We do not have an absolute means of detecting bad primes, but given the implicitizations modulo two different primes we can sometimes detect that one of them is surely bad (without being certain that the other is good). What we can say depends on which algorithm we used to compute the implicitizations — we must use the same algorithm for both modular computations! If we run Algorithm 3.2 with a bad prime p to produce the output g p then we know that deg(g p ) ≤ deg(g). Thus if we run Algorithm 3.2 with two different primes p1 and p2 , and if deg(g p1 ) < deg(g p2 ) then surely p1 is a bad prime. Note that even if deg(g p ) = deg(g), we need not have g p = ψ p (g) as shown by the non-principal example in 5.3 above. If we run Algorithm 3.9 with a bad prime p to produce the output g p then we know that LPP(g p ) σ LPPσ (g). Let T 2 be a term of gcalc of maximal weighted degree; then deg∗ (T 2 ) > deg∗ (g). Note that T 1 and T 2 could be the same term. Since step ModImplicit-5.4 succeeded in reconstructing gcalc more than half the modular implicitizations had non-zero coefficients for the term T 1 , and similarly for the term T 2 . So at least one modular implicitization had non-zero coefficients for both T 1 and T 2 , but this g p cannot have been produced by Algorithm 3.9 because it has LPPσ (g p ) ≥σ T 1 >σ LPPσ (g), and it cannot have been produced by Algorithm 3.2 because deg∗ (g p ) ≥ deg∗ (T 2 ) > deg∗ (g). Thus gcalc is just a scalar multiple of g. 15
Termination: The HRR algorithm in [1] for fault-tolerant rational reconstruction guarantees to produce the correct output when the product of the good primes is sufficiently greater than the square of the product of the bad primes (see Corollary 3.2 in that article). As there are only finitely many bad primes (see Remark 5.5), the product of the good primes chosen in the Main Loop will eventually become arbitrarily large compared to the square of the product of all bad primes (which is an upper bound for the square of the product of all bad primes encountered in the Main Loop). Thus the reconstruction in step ModImplicit-5.4 will eventually produce gcalc = g. Remark 5.11. We can use the comments in Remark 5.7 to discard some bad primes. If we use Algorithm 3.9 to compute g p then we can insert the following step: ModImplicit-5.2a If deg(g p ) < deg(gcrt ) then go to step 5.1. If deg(gcrt ) < deg(g p ) then set gcrt = g p and π = p; go to step 5.1. If we computed g p with Algorithm 3.2 then we can insert the following step: ModImplicit-5.2a If deg(g p ) < deg(gcrt ) then go to step 5.1. If deg(gcrt ) < deg(g p ) then set gcrt = g p and π = p; go to step 5.1. Remark 5.12. Since each g p is defined only up to a scalar multiple, we normalize the polynomial by making it monic; this guarantees that for every good prime p, the corresponding polynomial g p is equal to ψ p (g). Remark 5.13. The key ingredient for reconstructing the rational coefficients is a fault-tolerant rational reconstruction procedure (e.g. see [1] and [7]). Here we chose the HRR algorithm in [1] because it requires fewer primes (and therefore fewer costly modular implicitizations) when reconstructing unbalanced fractions (i.e. different size of numerator and denominator). Indeed, in our experiments the coefficients of the implicitizations almost always had denominators much smaller than the numerators. In all our tests, the time actually spent in the reconstruction of the coefficients is negligible compared with the cost of computing the implicitization, so a reconstruction method which requires fewer primes is the better choice. 6. Examples and Timings In this section we show the merits of our algorithms. The symbol K is used to denote either the field F32003 or the field Q. The examples are of different types. Subsection 6.1 contains statistics related to examples taken from the literature, and Table 1 shows that, with only the exception of Example 6.7, they are computed in almost no time. We found only two examples which defeated us, Examples 5.2 and 5.3 in [10]; we suspect they are essentially incalculable because the implicitizations are almost certainly polynomials of high degree (over 100) with very many terms (over 100000). Subsection 6.2 contains our examples. Some of them have a huge output, for instance some of them produce output polynomials with more that 4000 power-products in their support. The small number in the column related to characteristic 0 in Table 2 is the number of moduli used in Algorithm 5.10. A horizontal line in the middle of the tables separates examples with polynomial parametrizations from examples with rational parametrization. 16
The experiments were performed by a MacBook Pro 2.9GHz Intel Core i7, using our implementation in CoCoA 5. The symbol ∞ in the tables means that the computation was interrupted after 20 minutes, and 0 means that the computation takes less than 0.001 seconds. 6.1. Examples from the Literature Here we collect examples taken from some papers mentioned in the references. Example 6.1. ([13], Example 3.4) In the polynomial ring K[t0 , t1 ] we let f1 = t04 ,
f2 = 6t02 t12 − 4t14 ,
f3 = 4t03 t1 − 4t0 t13
Example 6.2. ([18], Example 3.1) In the polynomial ring K[t1 , t2 , t3 ] we let f1 = t1 t22 − t2 t32
f2 = t1 t2 t3 + t1 t32 ,
Example 6.3. ([14], Enneper’s Surface, Table 4) f1 = t − 31 t3 + s2 t,
f3 = 2t1 t32 − 2t2 t32 ,
f4 = t1 t22
In the polynomial ring K[s, t] we let
f2 = 2 − 13 s3 + st2 ,
f3 = t2 − s2
Example 6.4. ([19], Example 1.22) In the polynomial ring K[s, t] we let f1 = s5 − st3 − t,
f2 = st2 − s,
f3 = s4 − t2
Example 6.5. ([12], Example 3.3.2) In the polynomial ring K[s, t, u] we let f1 f2 f3 f4
= s2 t + 2t3 + s2 u + 4stu + 4t2 u + 3su2 + 2tu2 + 2u3 , = −s3 − 2st2 − 2s2 u − stu + su2 − 2tu2 + 2u3 , = −s3 − 2s2 t − 3st2 − 3s2 u − 3stu + 2t2 u − 2su2 − 2tu2 , = s3 + s2 t + t3 + s2 u + t2 u − su2 − tu2 − u3
Example 6.6. ([12], Example 3.3.4) In the polynomial ring K[s, t] we let f1 f2 f3 f4
= s3 − 6s2 t − 5st2 − 4s2 u + 4stu − 3t2 u, = −s3 − 2s2 t − st2 − 5s2 u − 3stu − 6t2 u, = −4s3 − 2s2 t + 4st2 − 6t3 + 6s2 u − 6stu − 2t2 u, = 2s3 − 6s2 t + 3st2 − 6t3 − 3s2 u − 4stu + 2t2 u
Example 6.7. ([20], Example 13 p. 913) In the polynomial ring K[s, t] we let f1 = s3 + 3t3 − 3s2 − 6t2 + 6s + 3t − 1, f2 = 3s3 + t3 − 6s2 + 3s + 3t, f3 = −3s3 t3 − 3s3 t2 + 15s2 t3 + 6s3 t − 18s2 t2 − 15st3 + 9s2 t + 27st2 − 3s2 −18st − 3t2 + 3s + 3t
Example 6.8. ([10], Example 5.1) In the field K(s, t) we let f1 =
st6 +2
, 2 6
2+s t
f2 =
st5 −3st3 2+s2 t6
17
,
f3 =
st4 +5s2 t6 2+s2 t6
Example 6.9. ([10], Example 5.4) In the field K(s, t) we let f1 = f3 =
3s21 s2 −s21 −3s1 s2 −s1 +s2 +s21 +s22 +s21 s22 3s21 s2 −2s1 s22 −s21 +s1 s2 −3s1 −s2 +4−s22
f2 =
,
2s21 s22 −3s21 s2 −s21 +s1 s2 +3s1 −3s2 +2−s22 3s21 s2 −2s1 s22 −s21 +s1 s2 −3s1 −s2 +4−s22
,
2s21 s22 −3s21 s2 −2s1 s22 +s21 +5s1 s2 −3s1 −3s2 +4−s22 3s21 s2 −2s1 s22 −s21 +s1 s2 −3s1 −s2 +4−s22
Example 6.10. ([15], Example 3 and [14] Table 4, Bohemian Dome) f1 =
1−t2 1+t2
f2 =
,
1+2t+t2 −s2 −s2 t2 +2ts2 (1+t2 )(1+s2 )
Example 6.11. ([14], Table 4, Sine Surface) f1 =
2t 1+t2
,
f2 =
f3 =
,
In the field K(s, t) we let
2s 1+s2
In the field K(s, t) we let
2s , (1+s2 )
f3 =
2 2s 1−t 1+s2 1+t2
+
2 2t 1−s 1+t2 1+s2
TABLE 1 Examples Ex 6.1 Ex 6.2 Ex 6.3 Ex 6.4 Ex 6.5 Ex 6.6 Ex 6.7 Ex 6.8 Ex 6.9 Ex 6.10 Ex 6.11
ElimTH 32003 0 0 0 0.273 0 0 1.196 0 0 0 0
ElimTH 0 0.009 0.007 0.028 0.597 0.021 0.228 16.278 0.060 0.943 0.011 0.012
Direct 32003 0 0 0 0.031 0 0 0.159 0 0 0 0
Direct 0 0.003 0.002 0.026 0.118 0.070 0.083 7.707 0.032 0.934 0.004 0.010
Len 6 9 57 319 13 56 715 41 161 7 7
6.2. Our Examples Example 6.12. In the polynomial ring K[t] we let f1 = t15 − 3t2 − t + 1,
f2 = t23 + t11 + t3 − t − 2
Example 6.13. In the polynomial ring K[s, t] we let f1 = st5 − st3 − t,
f2 = s3 − st − t2 − 1,
f3 = s2 t2 − s
Example 6.14. In the polynomial ring K[s, t] we let f1 = s7 − st3 − t,
f2 = st3 − s,
f3 = s13 − t2
Example 6.15. In the polynomial ring K[s, t, u] we let f1 = s2 − st − tu,
f2 = st2 − su, 18
f3 = s3 − t2 + u,
f4 = s + u2
Example 6.16. In the polynomial ring K[s, t, u] we let f1 = s3 − t2 + u,
f2 = s3 − t2 + u2 + s + u,
f3 = s5 − tu,
f4 = st2 − su
f4 = t2 − su,
f5 = s3 + t − u − w
Example 6.17. In the polynomial ring K[s, t, u, w] we let f1 = s2 − t2 + w,
f2 = s2 − u − w,
f3 = s2 − tu,
Example 6.18. In the polynomial ring K[s, t, u, w] we let f1 = s2 − t − u + w,
f2 = t2 − u − w,
f4 = u2 − sw,
f3 = s − tu,
f5 = s2 + t − u − w2
Example 6.19. In the polynomial ring K[s, t, u, v, w] we let f1 = s2 − t − u, f2 = u2 − sw, f3 = s2 − v,
f4 = u2 − v − w, f5 = t − u2 , f6 = v2 − w
Example 6.20. In the polynomial ring K[s, t, u, v, w] we let f1 = s3 − u2 − t − 3s − u + w, f2 = u2 − sw − 11, f5 = u2 + 7s + t, f6 = v2 + s2 − s − t − w
f3 = s2 − 5u − v
f4 = u2 − s − v − w,
Example 6.21. In the polynomial ring K[s, t, u] we let f1 = s3 − s2 − t2 + 3s − 21, f2 = t5 − s5 + st4 − st + t2 − s − t − 21, f3 = t3 − 2t2 s − 5ts2 − t2 + 5s − 12u, f4 = s + t − u Example 6.22. In the field K(t) we let 2t2 −t−3 1+t17
f1 =
f2 =
t4 −t+1 t2 −t−1
Example 6.23. In the field K(s, t) we let f1 =
s3 −t t2 −s−t
s−t , s3 −2
f2 =
,
s s2 +t
f3 =
Example 6.24. In the field K(s, t) we let f1 =
s2 −t2 −s t2 −s−t
f2 =
,
s−t−4 , s3 −2t−5
f3 =
s−2 s2 +t
Example 6.25. In the field K(t1 , t2 , t3 ) we let f1 =
t1 t3 −t22 t2 −t3
,
f2 =
−t2 +t3 −4 , t1 −2t2 −5
t1 −2
f3 =
t12 +t3
f4 =
,
t3 t1 +t3
Example 6.26. In the field K(s, t, u) we let f1 =
s3 −t−u , t2 −s−t
f2 =
t−u , s3 −2
f3 =
s2 s2 +t
,
f4 =
u s2 +t
Example 6.27. In the field K(s, t, u, v) we let f1 = f4 =
s−t−u , (t2 −s−t−u−v)(s+u) s+u−v , ((t2 −s−t−u−v)(s+u)
f2 = f5 =
t3 −v2 (t2 −s−t−u−v)(s+u)
,
s2 −5u−6v (t2 −s−t−u−v)(s+u)
19
f3 =
u−v , (t2 −s−t−u−v)(s+u)
TABLE 2 Examples Ex 6.12 Ex 6.13 Ex 6.14 Ex 6.15 Ex 6.16 Ex 6.17 Ex 6.18 Ex 6.19 Ex 6.20 Ex 6.21 Ex 6.22 Ex 6.23 Ex 6.24 Ex 6.25 Ex 6.26 Ex 6.27
ElimTH 32003 0.1 2.1 ∞ 20.3 ∞ 1.4 60.8 2.2 5.0 10.2 0.1 0.6 0.6 10.4 63.3 116.4
ElimTH 0 (5) 0.9 (3) 6.9 ∞ (5) 55.7 ∞ (3) 4.8 ∞ (3) 9.3 (6) 71.5 (11) 121.0 (4) 1.370 (2) 2.8 (3) 13.4 (3) 159.1 (2) 141.7 (6) 761.4
Direct 32003 0 0.1 8.41 0.9 58.4 9.1 228.0 47.3 ∞ 36.4 0.1 1.1 2.1 64.8 46.2 202.7
Direct
Len
0 (5) 0.3 (3) 0.4 (5) 58.2 (5) 3.4 (3) 204.1 (3) 27.9 ∞ (3) 148.9 ∞ (11) 418.5 (4) 1.2 (2) 3.8 (3) 17.9 (3) 335,0 (2) 101.6 (6) 1214.4
176 471 6398 1705 4304 1763 9360 5801 6701 2356 62 57 115 189 149 2692
7. References References [1] J. Abbott, Fault-Tolerant Modular Reconstruction of Rational Numbers, arXiv:1303.2965v2 (2015). [2] John Abbott and Anna Maria Bigatti CoCoALib: a C++ library for doing Computations in Commutative Algebra. Available at http://cocoa.dima.unige.it/cocoalib [3] John Abbott, Anna Maria Bigatti, Giovanni Lagorio CoCoA-5: a system for doing Computations in Commutative Algebra. Available at http://cocoa.dima.unige.it [4] J. Abbott, A. Bigatti, M. Kreuzer, L. Robbiano, Computing Ideals of Points, J. Symb. Comput. 30 (4) (2000), 341–356. [5] J. Abbott, M. Bronstein, T. Mulders, Fast Deterministic Computation of Determinants of Dense Matrices Proc. ISSAC 1999, (1999), 197–204 [6] J. Abbott, M. Kreuzer, L. Robbiano, Computing zero-dimensional Schemes, J. Symb. Comput. 39 (2005), 31–49. [7] J. Böhm, W. Decker, C. Fieker, G. Pfister, The Use of Bad Primes in Rational Reconstruction Math. Comp. 84 (2015), 3013–3027 [8] B. Buchberger, Groebner Bases: An Algorithmic Method in Polynomial Ideal Theory, in: (N.K. Bose, Ed.) Multidimensional Systems Theory. D. Reidel Publ. Comp. Pp. (1985), 184–232. [9] B. Bastl and F. Je˘zek, Comparison of implicitization methods, J. Geom. Graph. 9 (2005), 11–29. [10] N. Botbol and A. Dickenstein, Implicitization of rational hypersurfaces via linear syzygies: a practical overview arXiv:1502.00890v1 [11] L. Busé and T.L. Ba, Matrix-based implicit representations of rational algebraic curves and applications Comput. Aided Geom. Design 27 (9) (2010), 681–699. [12] L. Busé and M. Chardin, Implicitizing rational hypersurfaces using approximation complexes, J. Symbolic Comput. 40 (4/5) (2005), 1150–1168. [13] C. d’Andrea, Moving curve ideals for rational plane parametrizations, LNCS 8942 (2015), 30–49. [14] I. Emiris, T. Kalinka, C. Konakis, Implicitization of curves and surfaces using predicted support, in: (ACM New York Ed.) Proceedings of the 2011 International workshop on Symbolic-Numeric Computation, (2012) 137–146. [15] I. Emiris, C. Konakis, Z. Zafeirakopoulos, Minkowski Decomposition and Geometric Predicates in Sparse Implicitization in: (ACM New York Ed.) ISSAC ’15, Proceedings of the 2015 International workshop on Symbolic and Algebraic Computation, (2015) 157–164.
20
[16] M. Kreuzer and L. Robbiano, Computational Commutative Algebra 1, Springer, Heidelberg 2000. [17] M. Kreuzer and L. Robbiano, Computational Commutative Algebra 2, Springer, Heidelberg 2005. [18] F. Orecchia and I. Ramella, A new algorithm for implicitizing a parametric algebraic surface, Intern. J. Pure Appl. Maths. 98 (4) (2015), 471–475 [19] L. Robbiano, Hyperplane sections, Gröbner bases, and Hough transforms, J. Pure Appl. Algebra 219 (6), (2015), 2434–2448. [20] D. Wang, A simple method for implicitizing rational curves and surfaces, J. Symbolic Comput. 38 (1) (2004), 899–914. [21] H. Zassenhaus, On Hensel Factorization I, J. Number Theory, vol. 1, (1969), 291–311
21