11 Multivariate Polynomials



Similar documents
Gröbner Bases and their Applications

3 Monomial orders and the division algorithm

fg = f g Ideals. An ideal of R is a nonempty k-subspace I R closed under multiplication by elements of R:

Reduction Modulo Ideals and Multivariate Polynomial Interpolation

Continued Fractions and the Euclidean Algorithm

Quotient Rings and Field Extensions

8 Divisibility and prime numbers

Math 4310 Handout - Quotient Vector Spaces

MATH10212 Linear Algebra. Systems of Linear Equations. Definition. An n-dimensional vector is a row or a column of n numbers (or letters): a 1.

Lecture 3: Finding integer solutions to systems of linear equations

Algebra 3: algorithms in algebra

Vector and Matrix Norms

WRITING PROOFS. Christopher Heil Georgia Institute of Technology

COMP 250 Fall 2012 lecture 2 binary representations Sept. 11, 2012

MCS 563 Spring 2014 Analytic Symbolic Computation Wednesday 9 April. Hilbert Polynomials

So let us begin our quest to find the holy grail of real analysis.

15. Symmetric polynomials

Notes on Complexity Theory Last updated: August, Lecture 1

26 Integers: Multiplication, Division, and Order

(a) Write each of p and q as a polynomial in x with coefficients in Z[y, z]. deg(p) = 7 deg(q) = 9

Lecture 1: Course overview, circuits, and formulas

Formal Languages and Automata Theory - Regular Expressions and Finite Automata -

CS 3719 (Theory of Computation and Algorithms) Lecture 4

Chapter 3. Cartesian Products and Relations. 3.1 Cartesian Products

CONTENTS 1. Peter Kahn. Spring 2007

8 Primes and Modular Arithmetic

I. GROUPS: BASIC DEFINITIONS AND EXAMPLES

Number Theory. Proof. Suppose otherwise. Then there would be a finite number n of primes, which we may

U.C. Berkeley CS276: Cryptography Handout 0.1 Luca Trevisan January, Notes on Algebra

God created the integers and the rest is the work of man. (Leopold Kronecker, in an after-dinner speech at a conference, Berlin, 1886)

Lecture 13 - Basic Number Theory.

ECE 842 Report Implementation of Elliptic Curve Cryptography

Some facts about polynomials modulo m (Full proof of the Fingerprinting Theorem)

Basics of Polynomial Theory

Systems of Linear Equations

MATRIX ALGEBRA AND SYSTEMS OF EQUATIONS

3. Mathematical Induction

Solving Systems of Linear Equations

Computing divisors and common multiples of quasi-linear ordinary differential equations

Linear Codes. Chapter Basics

Reading 13 : Finite State Automata and Regular Expressions

DIFFERENTIABILITY OF COMPLEX FUNCTIONS. Contents

CHAPTER 5. Number Theory. 1. Integers and Division. Discussion

Finite dimensional topological vector spaces

The Geometry of Polynomial Division and Elimination

1. Prove that the empty set is a subset of every set.

Zeros of Polynomial Functions

Lecture 2: Universality

Chapter 4, Arithmetic in F [x] Polynomial arithmetic and the division algorithm.

CSE373: Data Structures and Algorithms Lecture 3: Math Review; Algorithm Analysis. Linda Shapiro Winter 2015

Practice with Proofs

HOMEWORK 5 SOLUTIONS. n!f n (1) lim. ln x n! + xn x. 1 = G n 1 (x). (2) k + 1 n. (n 1)!

Computability Theory

it is easy to see that α = a

11 Ideals Revisiting Z

Notes on Factoring. MA 206 Kurt Bryan

Number Theory Hungarian Style. Cameron Byerley s interpretation of Csaba Szabó s lectures

Notes 11: List Decoding Folded Reed-Solomon Codes

Notes on Determinant

MATH 22. THE FUNDAMENTAL THEOREM of ARITHMETIC. Lecture R: 10/30/2003

FUNCTIONAL ANALYSIS LECTURE NOTES: QUOTIENT SPACES

CS 103X: Discrete Structures Homework Assignment 3 Solutions

5 Homogeneous systems

7. Some irreducible polynomials

CHAPTER SIX IRREDUCIBILITY AND FACTORIZATION 1. BASIC DIVISIBILITY THEORY

by the matrix A results in a vector which is a reflection of the given

minimal polyonomial Example

Polynomial Invariants

Some Polynomial Theorems. John Kennedy Mathematics Department Santa Monica College 1900 Pico Blvd. Santa Monica, CA

Mathematics Course 111: Algebra I Part IV: Vector Spaces

Factoring & Primality

LEARNING OBJECTIVES FOR THIS CHAPTER

Discrete Mathematics, Chapter 4: Number Theory and Cryptography

14.1 Rent-or-buy problem

FACTORING POLYNOMIALS IN THE RING OF FORMAL POWER SERIES OVER Z

Math 319 Problem Set #3 Solution 21 February 2002

Solving Systems of Linear Equations

Handout NUMBER THEORY

1 if 1 x 0 1 if 0 x 1

k, then n = p2α 1 1 pα k

Discrete Mathematics and Probability Theory Fall 2009 Satish Rao, David Tse Note 2

C H A P T E R Regular Expressions regular expression

Solution to Homework 2

SUM OF TWO SQUARES JAHNAVI BHASKAR

Operations on ideals in polynomial rings

The Goldberg Rao Algorithm for the Maximum Flow Problem

1 Homework 1. [p 0 q i+j p i 1 q j+1 ] + [p i q j ] + [p i+1 q j p i+j q 0 ]

Every Positive Integer is the Sum of Four Squares! (and other exciting problems)

2.1 Complexity Classes

How To Prove The Dirichlet Unit Theorem

The last three chapters introduced three major proof techniques: direct,

Math 223 Abstract Algebra Lecture Notes

Basic Algorithms In Computer Algebra

Applied Algorithm Design Lecture 5

Short Programs for functions on Curves

The Division Algorithm for Polynomials Handout Monday March 5, 2012

Transcription:

CS 487: Intro. to Symbolic Computation Winter 2009: M. Giesbrecht Script 11 Page 1 (These lecture notes were prepared and presented by Dan Roche.) 11 Multivariate Polynomials References: MC: Section 16.6 and Chapter 21 lgorithms for Computer lgebra (Geddes, Czapor, Labahn): Section 3.4 and Chapter 10 Ideals, Varieties, and lgorithms (Cox, Little, O Shea): Chapters 1 & 2 Solving a linear system is the same as finding a solution to a system of degree-1 multivariate polynomial equations. That is, given an n n matrix and a n 1 vector b, solving x = b for x is the same as finding a set of values for the variables x 1, x 2,..., x n that satisfy the set of equations { i1 x 1 + i2 x 2 + + in x n = b i } 1 i n. But what if we want to solve a system of non-linear multivariate polynomial equations? Such systems arise frequenty in various engineering and physical science applications. We start with some basic terminology for multivariate polynomials: Definition 11.1. Let F be a field and n N. Every exponent vector e = (e 1, e 2,..., e n ) N n defines a monomial in F[x 1, x 2,..., x n ]: x e = x e 1 1 xe 2 2 xen n. term in F[x 1, x 2,..., x n ] is the product of a nonzero coefficient c F \ {0} and a monomial, i.e. c x e. polynomial f F[x 1, x 2,..., x n ] is a finite sum of terms. We write #f for the number of terms in f. The max degree of a monomial is the largest exponent: maxdeg x e := e = max 1 i n e i. The max degree of a polynomial is the largest max degree of a term that appears in the polynomial. 11.1 Representations The choice of what data structure we use to represent objects is always of crucial importance in computer science. In mathematical computing, there is a tendency to ignore this and focus only on the mathematical structures at hand. Our computer algebra system (e.g. Maple) will usually make a default choice for us, but it isn t always the best. Let s examine a few options for representing multivatiate polynomials. 11.1.1 Completely Dense Representation This is the extension of the usual dense univariate polynomial representation that we have covered extensively: Definition 11.2. The completely dense representation of a multivariate polynomial f F[x 1, x 2,..., x n ] with deg xi f < d i for i = 1,..., n is a d 1 d 2 d n array with entries in F, such that the entry at index i = (i 1, i 2,..., i n ) is the coefficient of x i in f. 1

CS 487: Intro. to Symbolic Computation Winter 2009: M. Giesbrecht Script 11 Page 2 When comparing polynomial representations, we will assume that each coefficient is stored in a single machine word. This is useful even when coefficients take up more space, since we might reasonably suppose then that each coefficient is represented by a pointer to the actual storage, and the size of the coefficient storage will be the same no matter what the polynomial representation scheme is. Under this model, the size of the completely dense representation is d 1 d 2 d n ; if m N such that m > maxdeg f, this is at most m n. The completely dense representation allows constant-time access to any coefficient, and all fast methods for dense univariate arithmetic are easily applied. Note that if the array is stored contiguously in row-major order, the representation of f(x 1, x 2,..., x n ) is the same as that for the dense univariate polynomial over F[y] given by ( ) f y d 2d 3 d n, y d 3d 4 d n,..., y dn, y. If we set the dimensions high enough to make room for the result, converting from multivariate to univariate in this fashion is the most obvious way of using fast univariate arithmetic methods for multivariate computation (known as Kronecker substitution ). 11.1.2 Recursive Dense Representation This is similar to the completely dense representation, except that zero polynomials are trimmed from the storage. Definition 11.3. polynomial f F[x 1, x 2,..., x n ] is stored in the recursive dense representation as either: f, if n = 0 (since this means f F), null pointer, if f = 0, or dense array (f 0, f 1, f 2,...), where f = f 0 +f 1 x n +f 2 x 2 n + and each f i F[x 1, x 2,..., x n 1 ] is also stored in the recursive dense representation. Consider the size of the recursive dense representation. ssuming, as before, that each coefficient in F can be stored with a single machine word, and letting deg xi f < d i for each i, the following is an upper bound of the recursive dense representation, easily proven by induction: ((((d 1 + 1) d 2 + 1) ) d n 1 + 1) d n = n n i=1 j=i Under the reasonable assumption that each variable x i occurs in at least one term of f, each d i 2. This means the above expression is always less than 2d 1 d 2 d n, and hence is never twice as large as the size of the completely dense representation. polynomial with a single term will have size d 1 + d 2 + + d n in the recursive dense representation. If t = #f is the total number of terms in f, the total size is at most (d 1 + d 2 + + d n )t. The following theorem summarizes these two bounds. Theorem 11.4. Let f F[x 1, x 2,..., x n ] and m, t N such that m > maxdeg f and t = #f. Then the size of the recursive dense representation of f is bounded above by min(2m n, mnt). d j 2

CS 487: Intro. to Symbolic Computation Winter 2009: M. Giesbrecht Script 11 Page 3 So the recursive dense representation can be exponentially smaller than the completely dense one. Unfortunately, the recursive dense size is dependent on the order of the indeterminates, as illustrated in the following example. Example. Let m N be arbitrary and f = y m 1 + xy m 1 + x 2 y m 1 + + x m 1 y m 1. (Notice that m > maxdeg f.) If we treat f as over the ring F[x, y], then the recursive dense representation corresponds to the m-tuple (0, 0,, 0, 1 + x + x 2 + + x m 1 ). The total size in this case is 2m. On the other hand, if we reverse the variable order so that f F[y, x], the representation corresponds to (y m 1, y m 1,..., y m 1 ), with total size m 2. In fact, the preceding example is as bad as it can get, in terms of variance in size between different variable orderings. Theorem 11.5. Let f F[x 1, x 2,..., x n ] with max degree maxdeg f < m. If a, b N are the sizes of the recursive dense representations of f under two different orderings of the n variables, then a mb. Unfortunately, with the smaller size comes a higher cost of computation. Coefficient access costs O(n) in the recursive dense representation. Polynomial arithmetic again reduces (this time recursively) to the univariate case, but operation speed can be slightly greater due to branching (checking whether polynomials are zero). 11.1.3 Sparse Representation This corresponds to the default representation of polynomials in most computer algebra systems such as Maple. Definition 11.6. Let f F[x 1, x 2,..., x n ] Write f = c 1 x e 1 + c 2 x e 2 + + c t x e 3, with each c i F \ {0} and all the e i s distinct elements of N n. Then the sparse representation of f is list of t coefficient-exponent tuples, specifically ((c 1, e 1 ), (c 2, e 2 ),..., (c t, e t )). Notice that the exponents in this case could be very large, and so we should account for their length in this representation. Writing t = #f and maxdeg f < m, the size of the sparse representation is thus O(nt log m). gain, this could be exponentially smaller than the size of the recursive dense representation. s usual, we pay for the decreased representation size with increased operation costs. Typically, operations on sparse polynomials are counted in terms of the number of monomial comparisons required. (The cost of each comparison depends on the specific monomial order chosen, but is usually O(n log m).) Naïvely, coefficient access then costs O(t) and addition of two polynomials with s and t terms costs O(st) monomial comparisons. If the terms are stored in some sorted order, however, arithmetic becomes more efficient. Using binary search, coefficient access costs O(log t), and addition is equivalent to merging two sorted lists, at cost O(s + t) monomial comparisons. Multiplication of sparse polynomials with s and t terms can be performed by adding (merging) t intermediate products of s terms each. If we always merge polynomials with the same number of terms, this can be performed with O(st log t) monomial comparisons. 3

CS 487: Intro. to Symbolic Computation Winter 2009: M. Giesbrecht Script 11 Page 4 11.2 Monomial Orderings The question remains as to how exactly we should order the monomials. The following conditions are sufficient for the correctness of the algorithms we present here, and also correspond to intuition. Definition 11.7. relation on exponent tuples in N n is an admissible monomial order iff it satisfies the following conditions: For any a, b N n with a b, either a b or b a. This means that is a total order. (0,..., 0) e for any e N n. (Note that (0,..., 0) corresponds to the monomial 1). This means that is a well order. For any a, b, c N n with a b, (a + c) (b + c) also. The most common admissible monomial order corresponds to the standard alphabetic ordering used in dictionaries. Definition 11.8. The pure lexicographic order lex is given by: (a 1, a 2,..., a n ) lex (b 1, b 2,..., b n ) iff there exists j {1, 2,..., n} such that a j < b j and for each i {1, 2,..., j 1}, a i = b i. We also use the symbol to apply the order to monomials and terms (not just exponent tuples). So, for instance, over F[x, y, z], x 2 y 3 z 4 lex x 4 z 2 and 1000xy 2 z 3 lex 3xy 2 z 8. There are many other monomial orderings used for various reasons, but for simplicity we will just concentrate on lex, and use to denote this ordering from now on. This leads to some more new terminology for multivariate polynomials. Definition 11.9. Let f F[x 1, x 2,..., x n ] and write f = t i=1 c ix e i, with t = #f and each c i F \ {0}. The multidegree of f, written mdeg f, is the largest exponent tuple under, that is, the unique e j such that e i e j for all i j. If mdeg f = e j for j {1,..., t}, then the leading term of f, denoted lt(f), is c i x e j. The leading coefficient of f, denoted lc(f), is c i, and the leading monomial of f, denoted lm(f), is x e j. Example. Let f F[x, y, z] with f = 2xy 2 z + 3y 5xy 3. Then f would be stored in the sorted sparse representation as ( 5xy 3, 2xy 2 z, 3y). This shows that mdeg(f) = (1, 3, 0), lt(f) = 5xy 3, lc(f) = 5, and lm(f) = xy 3. 11.3 Reduction and Normal Forms Consider a single step in the ordinary long division of two univariate polynomials, say f divided by g. We examine the leading terms of f and g. If deg f < deg g then we are done, so assume deg f deg g; this means that lm(g) divides lm(f) (since they are both just powers of the single indeterminate). So we write lt(f)/ lt(g) as the first term of the quotient, and proceed to compute h = f (lt(f)/ lt(g))g and then divide h by g. To generalize this process to multivariate polynomials, we first notice that for f, g F[x 1, x 2,..., x n ], lm(g) does not necessarily divide lm(f), even when mdeg g mdeg f. If, however, this condition does hold, then we can perform a single step of long division as above; this is called a reduction. 4

CS 487: Intro. to Symbolic Computation Winter 2009: M. Giesbrecht Script 11 Page 5 Definition 11.10. For f, g, h F[x 1, x 2,..., x n ], we say f reduces to h with respect to g and write f h iff lm(g) lm(f) and g h = f lt(f) lt(g) g. Example. Let g = 3x 2 yz 3 + 5xyz 5. Then 15x 3 y 3 z 3 2x 3 z g 2x 3 z 25x 2 y 3 z 5 Having a whole family of polynomials, rather than a single g, can allow us to do more reductions. Definition 11.11. Let F[x 1, x 2,..., x n ] be a family of polynomials, and f, h F[x 1, x 2,..., x n ]. f h iff g such that f g h. f h iff h 1, h 2,... s.t. f h 1 h 2 h. Example. Let = {g 1, g 2, g 3 } F[x, y, z] with g 1 = x 2 y 2yz + 1 g 2 = xy 2 + 2x z 2 g 3 = y 2 z y 2 + 5 Now write f = 3x 2 y 2 + 7y 1. We have f g1 6y 2 z + 4y 1 g3 6y 2 + 4y 31 := h 1 f g2 6x 2 + 3xz 2 + 7y 1 := h 2 Note that both h 1 and h 2 cannot be reduced any further with respect to. Of course we have a name for this condition: Definition 11.12. Let F[x 1, x 2,..., x n ]. Then the set of normal forms with respect to, denoted N F, is the set of polynomials which cannot be reduced by any polynomial in. That is, N F = {f F[x 1, x 2,..., x n ] : h F[x 1, x 2,..., x n ] s.t. f h}. Since each reduction decreases the multidegree of the polynomial with respect to, it should be clear that for any f F[x 1, x 2,..., x n ] and a finite subset F[x 1, x 2,..., x n ], we can always find an h F[x 1, x 2,..., x n ] such that f h and h N F, just by repeatedly reducing f by elements of until we can t anymore. If we further specify some algorithmic way of choosing the order of reductions (say by ordering the polynomials in ), then the h we find will always be the same. Without giving a formal definition, let s assume some such algorithm is understood, and write N F (f) = h in this case. 5

CS 487: Intro. to Symbolic Computation Winter 2009: M. Giesbrecht Script 11 Page 6 11.4 Ideals and Bases Recall the notion of an ideal from algebra: Definition 11.13. Let R with operations (+, ) be a ring. n ideal I of R is a subset of R satisfying: a + b I, for all a, b I a r I, for all a I and r R Note that having some elements of R in an ideal requires that many other elements must be in the ideal also. Hence we have the following: Definition 11.14. subset S = {s 1, s 2,...} of a ring R is a generator for an ideal, which we denote as S or s 1, s 2,... : The set S is called a basis for the ideal S. S := {r 1 s 1 + r 2 s 2 + : r 1, r 2,... R}. Note that S is the smallest ideal in R which contains S. lso, a single ideal can have many different bases. For example, over Z, you can convince yourself that 4, 6 is just the set of even integers, and so is the same as 2. In fact, from the extended Euclidean algorithm, we can see that any ideal in Z is generated by a single integer, which is just the gcd of all the integers in the ideal. Here, we re interested in the ring F[x 1, x 2,..., x n ], where things are not so simple, and most ideals don t have a single-element basis. But it s not too bad: Theorem 11.15 (Hilbert, 1888). Every ideal I of F[x 1, x 2,..., x n ] has a finite basis. This is known as Hilbert s basis theorem and is crucial for the correctness of our methods here (but says nothing about the complexity because there s no concrete limit on the size of the basis). Now let s try an extend the idea of modular equivalence to multivariate polynomials. Over Z, a b mod m iff m (a b). This is the same as saying that (a b) m. So for f, h F[x 1, x 2,..., x n ] and F[x 1, x 2,..., x n ], we say that f h mod iff (f h). From this definition, it follows immediately that f h implies f h mod, and in particular f N F (f). 11.5 Gröbner Bases Consider the ideal membership problem: given polynomials f, g 1, g 2,..., g k F[x 1, x 2,..., x n ], can f be written as a sum of multiples of g i s, i.e. is f g 1, g 2,..., g k? Setting = {g 1,..., g k }, we know this is the case iff f 0 mod. nd clearly 0 N F. But there may be many elements of N F which are equivalent to f, and there is no guarantee that our deterministic strategy for choosing N F (f) will produce 0, or even that f 0. Gröbner bases provide such a guarantee. Definition 11.16. set G F[x 1, x 2,..., x n ] is a Gröbner Basis for an ideal I if and only if f, h N F G, f h mod I f = h. 6

CS 487: Intro. to Symbolic Computation Winter 2009: M. Giesbrecht Script 11 Page 7 This implies immediately that for any f F[x 1, x 2,..., x n ], there is only one choice for N F G (f), regardless of the order of reductions. nd it also proves that G is actually a basis for I: for any h I, since h 0 mod I and 0 N F G, h 0, which means that h G. G Since the choice of N F G (f) is unique, we now have a canonical normal form for polynomials modulo I. So having a finite Gröbner Basis for an ideal I gives us a way to determine whether f g mod I for any f, g F[x 1, x 2,..., x n ], and in particular solves the ideal membership problem. But how can we compute a finite Gröbner basis for an ideal I = f 1, f 2,..., f k? We ll breifly outline the approach taken by Bruno Buchberger, who actually coined the term Gröbner Basis in his 1965 Ph.D. thesis. We start with the following definition: Definition 11.17. Let f, g F[x 1, x 2,..., x n ]\{0} and u = lcm(lt(f), lt(g)). Then the s-polynomial of f and g is s-poly(f, g) = u lt(f) f u lt(g) g. Intuitively, s-poly(f, g) is the smallest polynomial in f, g with the leading terms of f and g stripped out. s-polynomials also give a straightworward test for Gröbner bases: Theorem 11.18 (MC, Theorem 21.31). G F[x 1, x 2,..., x n ] is a Gröbner basis for the ideal G iff N F G (s-poly(g 1, g 2 )) = 0 for all g 1, g 2 G. See the book for a proof. Given a finite set G F[x 1, x 2,..., x n ], Buchberger s algorithm to compute a Gröbner basis for the ideal G is based around this theorem. Choose the first pair g i, g j G in the basis such that N F G (s-poly(g i, g j )) 0. If no such pair exists, then G is a Gröbner basis and we are done. Otherwise, add N F G (s-poly(g i, g j )) to G and repeat. (This is presented more formally as lgorithm 21.33 in MC.) Example. Let s use Buchberger s algorithm to find a Gröbner basis for {g 1, g 2 } with g 1 = 3x 2 y + 5y z, g 2 = yz. Initially there is just one pair of polynomials in the basis. So compute N F G (s-poly(g 1, g 2 )) = N F G (5yz z 2 ) = z 2 So set g 3 = z 2 (dividing out the content) and update G = G g 3. Then we just need to confirm that N F G (s-poly(g 1, g 3 )) = N F G (5yz 2 z 3 ) = 0, N F G (s-poly(g 2, g 3 )) = N F G (0) = 0. So {g 1, g 2, g 3 } is a Gröbner basis for the original set G. Theorem 11.19. Buchberger s algorithm terminates. Proof. Let M i be the ideal generated by the leading monomials of G after the i th iteration. Since each new polynomial added to G is in normal form, each M i M i+1. Hence we have an ascending chain of ideals. By Hilbert s basis theorem, the ideal i 0 M i has a finite basis, say G. We must have G M i for some i 0. But then M i = M i+1, a contradiction unless there are only i iterations. 7

CS 487: Intro. to Symbolic Computation Winter 2009: M. Giesbrecht Script 11 Page 8 Unfortunately, Gröbner bases can be very large, especially under the lexicographical ordering. We can reduce the size of G somewhat by removing any basis element that is not in N F G, and further reduction is possible by so-called interior reductions that do not always involve the leading monomials. We ve already seen how a Gröbner basis allows us to test ideal membership and equivalence modulo an ideal. nother very useful application is solving a multivariate polynomial system. Consider the system S = (f i = v i ) i=1,2,...,k with each f i F[x 1, x 2,..., x n ] and v i F. This is of course equivalent to the system (f i v i = 0) i=1,2,...,k, so without loss of generality assume each v i = 0. Let G be a Gröbner basis for the ideal generated by {f i : i = 1,..., k}, under the pure lexicographical ordering lex. I claim (without proof) that if the system is zero-dimensional (i.e. it has finitely many solutions), then G contains a polynomial which only contains x n, one containing only x n 1 and x n, and so forth. There is a name for such a set: Definition 11.20. set T = {t 1, t 2,..., t n } F[x 1, x 2,..., x n ] is a triangular set iff t i F[x i, x i+1,..., x n ] for i = 1, 2,..., n. With this triangular set, we can solve the univariate polynomial t n for x n, then use backsubstitution into t n 1 to solve for x n 1, and so forth. So Gröbner bases can be used to solve zero-dimensional systems of multivariate polynomials. It is worth noting that Buchberger s algorithm has been more or less superceded by more efficient approaches, especially the F4 and F5 algorithms by Jean-Charles Faugère. There are alternative methods to compute triangular sets for a given polynomial system as well. 8