<<

Appendix A Some Concepts from Algebra

This appendix contains precise statements of various algebraic facts and definitions used in the text. For students who have had a course in abstract algebra, much of this material will be familiar. For students seeing these terms for the first time, keep in mind that the abstract concepts defined here are used in the text in very concrete situations.

§1 Fields and Rings

We first give a precise definition of a field.

Definition 1. A field consists of a set k and two binary operations “+” and “·” de- fined on k for which the following conditions are satisfied: (i) (a+b)+ = a+(b+c) and (a·b)·c = a·(b·c) for all a, b, c ∈ k (associativity). (ii) a + b = b + a and a · b = b · a for all a, b ∈ k (commutativity). (iii) a · (b + c)=a · b + a · c for all a, b, c ∈ k (distributivity). (iv) There are 0, 1 ∈ k such that a + 0 = a · 1 = a for all a ∈ k (identities). (v) Given a ∈ k, there is b ∈ k such that a + b = 0 (additive inverses). (vi) Given a ∈ k, a = 0, there is c ∈ k such that a · c = 1 (multiplicative inverses).

The fields most commonly used in the text are Q, R, and C. In the exercises to §1 of Chapter 1, we mention the field F2 which consists of the two elements 0 and 1. Some more complicated fields are discussed in the text. For example, in §3 of Chapter 1, we define the field k(t1,...,tm) of rational functions in t1,...,tm with coefficients in k. Also, in §5 of Chapter 5, we introduce the field k(V) of rational functions on an irreducible variety V. If we do not require multiplicative inverses, then we get a commutative ring.

Definition 2. A commutative ring consists of a set R and two binary operations “+” and “·” defined on R for which the following conditions are satisfied:

© Springer International Publishing Switzerland 2015 593 D.A. Cox et al., Ideals, Varieties, and Algorithms, Undergraduate Texts in Mathematics, DOI 10.1007/978-3-319-16721-3 594 Appendix A Some Concepts from Algebra

(i) (a + b)+c = a +(b + c) and (a · b) · c = a · (b · c) for all a, b, c ∈ R (associativity). (ii) a + b = b + a and a · b = b · a for all a, b ∈ R (commutativity). (iii) a · (b + c)=a · b + a · c for all a, b, c ∈ R (distributivity). (iv) There are 0, 1 ∈ R such that a + 0 = a · 1 = a for all a ∈ R (identities). (v) Given a ∈ R, there is b ∈ R such that a + b = 0 (additive inverses). Note that any field is obviously a commutative ring. Other examples of commu- tative rings are the integers Z and the polynomial ring k[x1,...,xn]. The latter is the most commonly used ring in the book. In Chapter 5, we construct two other com- mutative rings: the coordinate ring k[V] of polynomial functions on an affine variety V and the quotient ring k[x1,...,xn]/I, where I is an ideal of k[x1,...,xn]. A special case of commutative rings are the integral domains. Definition 3. A commutative ring R is an integral domain if whenever a, b ∈ R and a · b = 0, then either a = 0orb = 0. A zero divisor in a commutative ring R is a nonzero element a ∈ R such that a · b = 0 for some nonzero b ∈ R. Hence integral domains have no zero divisors. Any field is an integral domain, and the polynomial ring k[x1,...,xn] is an integral domain. In Chapter 5, we prove that the coordinate ring k[V] of a variety V is an integral domain if and only if V is irreducible. Finally, we note that the concept of ideal can be defined for any ring. Definition 4. Let R be a commutative ring. A subset I ⊆ R is an ideal if it satisfies: (i) 0 ∈ I. (ii) If a, b ∈ I, then a + b ∈ I. (iii) If a ∈ I and b ∈ R, then b · a ∈ I. Note how this generalizes the definition of ideal given in §4 of Chapter 1.

§2 Unique Factorization

Definition 1. Let k be a field. A polynomial f ∈ k[x1,...,xn] is irreducible over k if f is nonconstant and is not the product of two nonconstant polynomials in k[x1,...,xn]. This definition says that if a nonconstant polynomial f is irreducible over k, then up to a constant multiple, its only nonconstant factor is f itself. Also note that the concept of irreducibility depends on the field. For example, x2 +1 is irreducible over Q and R, but over C we have x2 + 1 =(x − i)(x + i). Every nonconstant polynomial is a product of irreducible polynomials as follows.

Theorem 2. Every nonconstant f ∈ k[x1,...,xn] can be written as a product f = f1 ·f2 ···fr of irreducibles over k. Further, if f = g1 ·g2 ···gs is another factorization into irreducibles over k, then r = s and the gi’s can be permuted so that each fi is a nonzero constant multiple of gi. §3 Groups 595

The final assertion of the theorem says that unique factorization holds in the polynomial ring k[x1,...,xn]. Proof. The proof of Theorem 2 is by induction on the number of variables. The base case k[x1] is covered in §5 of Chapter 1. Now suppose that k[x1,...,xn−1] has unique factorization. The key tool for proving unique factorization in k[x1,...,xn] is Gauss’s Lemma, which in our situation can be stated as follows.

Proposition 3. Let k(x1,...,xn−1) be the field of rational functions in x1,...,xn−1. If f ∈ k[x1,...,xn] is irreducible and has positive degree in xn, then f is irreducible in k(x1,...,xn−1)[xn]. This follows from Proposition 5 of Section 9.3 of DUMMIT and FOOTE (2004) since k[x1,...,xn−1] has unique factorization. Combining Proposition 3 with unique factorization in the rings k[x1,...,xn−1] and k(x1,...,xn−1)[xn], it is straightforward to prove that k[x1,...,xn] has unique factorization. See Theorem 7 of Section 9.3 of DUMMIT and FOOTE (2004)forthe details. 

For polynomials in Q[x1,...,xn], there are algorithms for factoring into irre- ducibles over Q. A classical algorithm due to Kronecker is discussed in Theorem 4.8 of MINES,RICHMAN, and RUITENBERG (1988), and a more efficient method is given in Section 16.6 of VON ZUR GATHEN and GERHARD (2013). Most computer algebra systems have a command for factoring polynomials in Q[x1,...,xn]. Factoring polynomials in R[x1,...,xn] or C[x1,...,xn] is much more difficult.

§3 Groups

A group can be defined as follows. Definition 1. A group consists of a set G and a binary operation “·” defined on G for which the following conditions are satisfied: (i) (a · b) · c = a · (b · c) for all a, b, c ∈ G (associativity). (ii) There is 1 ∈ G such that 1· a = a · 1 = a for all a ∈ G (identity). (iii) Given a ∈ G, there is b ∈ G such that a · b = b · a = 1 (inverses). A simple example of a group is given by the integers Z under addition. Note Z is not a group under multiplication. A more interesting example comes from linear algebra. Let k be a field and define

GL(n, k)={A | A is an invertible n × n matrix with entries in k}.

From linear algebra, we know that the product AB of two invertible matrices A and B is again invertible. Thus, matrix multiplication defines a binary operation on GL(n, k), and it is easy to verify that all of the group axioms are satisfied. In Chapter 7, we will need the notion of a subgroup. 596 Appendix A Some Concepts from Algebra

Definition 2. Let G be a group. A nonempty subset H ⊆ G is called a subgroup if it satisfies: (i) 1 ∈ H. (ii) If a, b ∈ H, then a · b ∈ H. (iii) If a ∈ H, then a−1 ∈ H, where a−1 is the inverse of a in G.

One important group is the symmetric group Sn.Letn be a positive integer and consider the set

Sn = {σ : {1,..., n}→{1,...,n}|σ is one-to-one and onto}.

Then composition of functions turns Sn into a group. Since an element σ ∈ Sn permutes the numbers 1 through n, we call σ a permutations. Note that Sn has n! elements. A transposition is an element of Sn that interchanges two numbers in {1,...,n} and leaves all other numbers unchanged. Every permutation is a product of transpo- sitions, though not in a unique way. The sign of a permutation is defined to be  +1ifσ is a product of an even number of transpositions, sgn(σ)= −1ifσ is a product of an odd number of transpositions.

One can show that sgn(σ) is well-defined. Proofs of these assertions about Sn can be found in Section 3.5 of DUMMIT and FOOTE (2004).

§4 Determinants

In linear algebra, one usually encounters the determinant det(A) of an n × n matrix A with entries in a field such as R or C. Typical formulas are   a11 a12 det = a11a22 − a12a21 a21 a22 and ⎛ ⎞       a11 a12 a13 ⎝ ⎠ a22 a23 a21 a23 a21 a22 det a21 a22 a23 = a11 det − a12 det + a13 det , a32 a33 a31 a33 a31 a32 a31 a32 a33 which simplifies to

a11a22a33 − a11a23a32 − a12a21a33 + a12a23a31 + a13a21a32 + a13a22a31.

In Chapters 3 and 8, we will use determinants whose entries are polynomials. Fortunately, the theory of determinants works for n × n matrices with entries in a §4 Determinants 597 commutative ring, such as a polynomial ring. In this generality, the above formulas can be extended to express the determinant of an n × n matrix as a sum of n! terms indexed by permutations σ ∈ Sn, where the sign of the term is sgn(σ) from §3.More precisely, we have the following result.

Proposition 1. If A =(aij) is an n × n matrix with entries in a commutative ring, then det(A)= sgn(σ)a1σ(1) ···anσ(n).

σ∈Sn Proofs of all properties of determinants stated here can be found in Section 11.4 of DUMMIT and FOOTE (2004). A second fact about determinants we will need concerns the solution of a linear system of n equations in n unknowns. In matrix form, the system is written

AX = b, where A =(aij) is the n × n coefficient matrix, b is an n × 1 column vector, and X is the column vector whose entries are the unknowns x1,...,xn. Assume that we are working over a field and A is invertible. Then det(A) = 0 and A−1 exists. Furthermore, the system AX = b has the unique solution given by X = A−1b. However, rather than finding the solution by Gaussian elimination as done in most linear algebra courses, we need a formula for the solution.

Proposition 2 (Cramer’s Rule). Suppose we have a system of equations AX = b over a field. If A is invertible, then the unique solution is given by

det(M ) x = i , i det(A) where Mi is the matrix obtained from A by replacing its i-th column with b.

We use Propositions 1 and 2 to prove properties of resultants in Chapter 3, §6 and Chapter 8, §7. We also use Proposition 2 in the proof of the Projective Extension Theorem given in Chapter 8, §5. When we apply Cramer’s rule in these proofs, the entries of A and b will typically be polynomials and the field will be the associated field of rational functions. We end with a fact about cofactors. The (i, j)-cofactor of an n × n matrix A is i+j cij =(−1) det(Aij), where Aij is the (n − 1) × (n − 1) matrix obtained from A by deleting row i and column j.AlsoletIn be the n × n identity matrix.

Proposition 3. Let A be an n × n matrix with entries in a commutative ring, and let B be the transpose of the matrix of cofactors (cij). Then

BA = AB = det(A)In.

Proposition 3 is used in our treatment of Noether normalization in Chapter 5, §6. Appendix B Pseudocode

Pseudocode is commonly used in mathematics and computer science to present algorithms. In this appendix, we will describe the pseudocode used in the text. If you have studied a programming language, you may see a similarity between our pseudocode and the language you studied. This is no accident, since programming languages are also designed to express algorithms. The syntax, or “grammatical rules,” of our pseudocode will not be as rigid as that of a programming language since we do not require that it run on a computer. However, pseudocode serves much the same purpose as a programming language. As indicated in the text, an algorithm is a specific set of instructions for perform- ing a particular calculation with numerical or symbolic information. Algorithms have inputs (the information the algorithm will work with) and outputs (the informa- tion that the algorithm produces). At each step of an algorithm, the next operation to be performed must be completely determined by the current state of the algorithm. Finally, an algorithm must always terminate after a finite number of steps. Whereas a simple algorithm may consist of a sequence of instructions to be per- formed one after the other, most algorithms also use the following special structures: • Repetition structures, which allow a sequence of instructions to be repeated. These structures are also known as loops. The decision whether to repeat a group of instructions can be made in several ways, and our pseudocode includes differ- ent types of repetition structures adapted to different circumstances. • Branching structures, which allow the possibility of performing different seq- uences of instructions under different circumstances that may arise as the algorithm is executed. These structures, as well as the rest of the pseudocode, will be described in more detail in the following sections.

© Springer International Publishing Switzerland 2015 599 D.A. Cox et al., Ideals, Varieties, and Algorithms, Undergraduate Texts in Mathematics, DOI 10.1007/978-3-319-16721-3 600 Appendix B Pseudocode §1 Inputs, Outputs, Variables, and Constants

We always specify the inputs and outputs of our algorithms on two lines before the start of the algorithm proper. The inputs and outputs are given by symbolic names in usual mathematical notation. Sometimes, we do not identify what type of information is represented by the inputs and outputs. In this case, their meaning should be clear from the context of the discussion preceding the algorithm. Variables (information stored for use during execution of the algorithm) are also identified by symbolic names. We freely introduce new variables in the course of an algorithm. Their types are determined by the context. For example, if a new variable called a appears in an instruction, and we set a equal to a polynomial, then a should be treated as a polynomial from that point on. Numerical constants are specified in usual mathematical notation. The two words true and false are used to represent the two possible truth values of an assertion.

§2 Assignment Statements

Since our algorithms are designed to describe mathematical operations, by far the most common type of instruction is the assignment instruction. The syntax is

:= .

The symbol := is the assignment operator in many computer languages. The mean- ing of this instruction is as follows. First, we evaluate the expression of the right of the assignment operator, using the currently stored values for any variables that appear. Then the result is stored in the variable on the left-hand side. If there was a previously stored value in the variable on the left-hand side, the assignment erases it and replaces it with the computed value from the right-hand side. For example, if a variable called i has the numerical value 3, and we execute the instruction

i := i + 1, the value 3 + 1 = 4 is computed and stored in i. After the instruction is executed, i will contain the value 4.

§3 Looping Structures

Three different types of repetition structures are used in the algorithms given in the text. They are similar to the ones used in many languages. The most general and most frequently used repetition structure in our algorithms is the WHILE structure. The syntax is §3 Looping Structures 601

WHILE DO . Here, is a sequence of instructions. In a WHILE structure, the action is the group of statements to be repeated. We always indent this sequence of instructions. The end of the action is signaled by a return to the level of indentation used for the WHILE statement itself. The after the WHILE is an assertion about the values of variables, etc., that is either true or false at each step of the algorithm. For instance, the condi- tion i ≤ s AND divisionoccurred = false appears in a WHILE loop in the division algorithm from Chapter 2, §3. When we reach a WHILE structure in the execution of an algorithm, we deter- mine whether the condition is true or false.Ifitistrue, then the action is performed once, and we go back and test the condition again. If it is still true, we repeat the action once again. Continuing in the same way, the action will be repeated as long as the condition remains true. When the condition becomes false (at some point during the execution of the action), that iteration of the action will be completed, and then the loop will terminate. To summarize, in a WHILE loop, the condition is tested before each repetition, and that condition must be true for the repetition to continue. A second repetition structure that we use on occasion is the REPEAT structure. A REPEAT loop has the syntax

REPEAT UNTIL .

Reading this as an English sentence indicates its meaning. Unlike the condition in a WHILE, the condition in a REPEAT loop tells us when to stop. In other words, the action will be repeated as long as the condition is false. In addition, the action of a REPEAT loop is always performed at least once since we only test the condition after doing the sequence of instructions representing the action. As with a WHILE structure, the instructions in the action are indented. The final repetition structure that we use is the FOR structure. We use the syntax

FOR each s in S DO to represent the instruction: “perform the indicated action for each element s ∈ S.” Here S is a finite set of objects and the action to be performed will usually depend on which s we are considering. The order in which the elements of S are considered is not important. Unlike the previous repetition structures, the FOR structure will necessarily cause the action to be performed a fixed number of times (namely, the number of elements in S). 602 Appendix B Pseudocode §4 Branching Structures

We use only one type of branching structure, which is general enough for our pur- poses. The syntax is

IF THEN ELSE .

The meaning is as follows. If the condition is true at the time the IF is reached, action1 is performed (once only). Otherwise (that is, if the condition was false), action2 is performed (again, once only). The instructions in action1 and action2 are indented, and the ELSE separates the two sequences of instructions. The end of action2 is signaled by a return to the level of indentation used for the IF and ELSE statements. In this branching structure, the truth or falsity of the condition selects which action to perform. In some cases, we omit the ELSE and action2, i.e.,

IF THEN .

This form is equivalent to

IF THEN ELSE .

§5 Output Statements

As already mentioned, the first two lines of our algorithms give its input and output. We also always include a RETURN statements with the syntax

RETURN to indicate precisely where the final output of the algorithm is returned. Most of the time, the RETURN statement is the last line of the algorithm. Appendix C Computer Algebra Systems

This appendix will discuss several computer algebra systems that can be used in conjunction with this book. Our comments here are addressed both to new users, including students, and to instructors considering which system might be most ap- propriate for use in a course. We will consider , Mathematica, Sage, and the specialized systems CoCoA, , and in detail. In their different ways, these are all amazingly powerful programs, and our brief discussions will not do justice to their true capabilities. Readers should not expect a complete, gen- eral introduction to any of these systems, instructions for downloading them, details about how those systems might be installed in computer labs, or what other software might be used in conjunction with them. Instead, we will assume that you already know or can access local or online documentation from the web sites indicated be- low concerning: • How to enter and exit the program, save work and continue it in a later session. • How to enter commands, execute them, and refer to the results generated by previous commands in an interactive session. • If applicable, how to insert comments or other annotations in the worksheet or notebook interfaces provided in general-purpose systems such as Maple, Mathe- matica, and Sage. • How to work with lists. For example, in the Gröbner basis command, the input contains a list of polynomials, and the output is another list which a Gröbner basis for the ideal generated by the polynomials in the input list. You should be able to find the length of a list and extract polynomials from a list. • How to save results to an external file as text. This can be important, especially when output fills more than one computer screen. You should be able to save output in a file and examine it or print it out for further study. • More advanced users will probably also want to know how to create and read in external files containing sequences of input commands or code for procedures. For courses taught from this book with a laboratory component, we suggest that instructors may find that an efficient way to get students up to speed is to use a first lab meeting to cover aspects of the particular computer algebra being used.

© Springer International Publishing Switzerland 2015 603 D.A. Cox et al., Ideals, Varieties, and Algorithms, Undergraduate Texts in Mathematics, DOI 10.1007/978-3-319-16721-3 604 Appendix C Computer Algebra Systems §1 General Purpose Systems: Maple, Mathematica, Sage

The systems discussed in this section—Maple, Mathematica, and Sage—include components for computations of Gröbner bases and other operations on polyno- mial ideals. However, this is only a very small part of their functionality. They also include extensive facilities for numerical computation, for generating high quality graphics, and for many other types of symbolic computation. They also incorporate programming languages to automate multistep calculations and create new proce- dures. In addition, they have sophisticated notebook or worksheet user interfaces that can be used to generate interactive documents containing input commands, out- put and text annotations.

Maple

Maple is one of the leading commercial systems of this type. The Maplesoft web site http://www.maplesoft.com includes, among many other things, information about the different versions available and the full electronic documentation for the system. For us, the most important part of Maple is the Groebner package. Our discussion applies to the versions of this package distributed starting with Maple 11. As of summer 2014, the current version is MAPLE18 (2014). To have access to the commands in the Groebner package, the command with(Groebner) must be executed before any of the following commands. (Note: In the current ver- sion of the worksheet interface, no input prompt is generated and commands need not be terminated with semicolons. The user can toggle back and forth between in- ert text for comments and input commands using “buttons” in the Maple window. If desired, a previous version of the interface can also be used. There each input line is marked with an input prompt [> and commands generating visible output are ter- minated with semicolons.) In any case, once the Groebner package is loaded, you can perform the division algorithm, compute Gröbner bases, and carry out a variety of other commands described below. The definition of a monomial order in Maple always involves an explicit list of variables. All of the monomial orders discussed in Chapter 2 and Chapter 3 are provided, together with general mechanisms for specifying others. With x > y > z, for instance, • lex order is specified by plex(x,y,z), • grlex order is specified by grlex(x,y,z) and • grevlex order is specified by tdeg(x,y,z). The lexdeg command provides a mechanism for specifying elimination orders. For example, lexdeg([x_1,...,x_k],[x_{k+1},...,x_n]) specifies an or- der that eliminates x_1,...,x_k leaving polynomials in x_{k+1},...,x_n.The idea is similar to (but not exactly the same as) the elimination orders discussed in Exercise 6 of Chapter 3, §1. Weight orders as in Exercise 10 of Chapter 2, §4, §1 General Purpose Systems: Maple, Mathematica, Sage 605 and general matrix orders are also available. The documentation for the Groebner package gives full information about the syntax of these declarations. The basic commands in Maple’s Groebner package are NormalForm for doing the division algorithm and Basis, for computing Gröbner bases. The syntax for the NormalForm command is NormalForm(f,polylist,order,options) where f is the dividend polynomial and polylist is the list of divisors. No options need be specified. The output is the remainder on division. If the quotients on divi- sion are required, then an option as follows: NormalForm(f,polylist,order,’Q’) instructs Maple to return the list of quotients as the value of the variable Q. That list is not shown automatically, but can be seen by entering the variable name Q as a command on a subsequent line. The syntax of the Basis command is similar: Basis(polylist,order,options) The output will be a reduced Gröbner basis (in the sense of Chapter 2, §7) except for clearing denominators. Optional inputs can be used to specify the algorithm used to compute the Gröbner basis (see the discussion at the end of Chapter 10, §4), to compute a transformation matrix giving the Gröbner basis polynomials as combinations of the inputs, or to specify the characteristic of the coefficient field. If no characteristic is specified, it is taken to be zero by default, and computations are done over Q with no limitation on the sizes of coefficients. As an example of how this all works, consider the command gb := Basis([xˆ2 + y,2*x*y + yˆ2],plex(x,y)) This computes a list which is a Gröbner basis for the ideal x2 + y, 2xy + y2 in Q[x, y] using lex order with x > y and assigns it the symbolic name gb. With an additional option as follows: gb := Basis([xˆ2 + y,2*x*y + yˆ2],plex(x,y),characteristic=p) where p is a specific prime number, the computation is done in the ring of poly- nomials in x, y with coefficients in the finite field of integers modulo p.Thesame option works in NormalForm as well. To tell Maple that a certain variable is in the base field (a “parameter”), simply omit it from the variable list in the monomial order specification. Thus Basis([v*xˆ2 + y,u*x*y + yˆ2],plex(x,y)) will compute a Gröbner basis for vx2 + y, uxy + y2 in Q(u, v)[x, y] using lex order with x > y. In each case, the answer is reduced up to clearing denominators (so the leading coefficients of the Gröbner basis are polynomials in u and v). √ The symbol I is a predefined constant in Maple, equal to the imaginary unit i = −1. Computations of Gröbner bases over Q(i) can be done simply by including I at the appropriate places in the coefficients of the input polynomials. (This also explains why trying to use the name I for the list of generators of an ideal will cause an error.) Coefficients in other algebraic extensions of Q (or other base fields) can be included either by means√ of radical expressions or RootOf expressions. Thus, for instance, to include a 2 in a coefficient of a polynomial, we could simply enter 606 Appendix C Computer Algebra Systems the polynomial using 2ˆ(1/2) or RootOf(uˆ2 - 2) in the appropriate location. We refer the reader to Maple’s documentation for the details. Other useful commands in the Groebner package include • LeadingTerm, LeadingMonomial, LeadingCoefficient whichtakeasin- put a polynomial and a monomial order and return the indicated information. The names of these commands follow the terminology used in this text. • SPolynomial, which computes the S-polynomial of two polynomials with re- spect to a monomial order. Note: the results here can differ from those in this text by constant factors since Maple does not divide by the leading coefficients. • IsProper, which uses the consistency algorithm from Chapter 4, §1 to deter- mine if a set of polynomial equations has a solution over an algebraically closed field. • IsZeroDimensional which uses the finiteness algorithm from Chapter 5, §3 to determine if a system of polynomial equations has only a finite number of solutions over an algebraically closed field. • UnivariatePolynomial, which given a variable and a set of generators for an ideal computes the polynomial of lowest degree in the variable which lies in the ideal (the generator of the corresponding elimination ideal). • HilbertPolynomial, which computes the Hilbert polynomial of a homoge- neous ideal as defined in Chapter 9. A related command HilbertSeries com- putes the Hilbert-Poincaré series for a homogeneous ideal defined in Chapter 10, §2. These commands are also defined for nonhomogeneous ideals and compute the corresponding asymptotic polynomial and generating function for the first difference of the affine Hilbert function. We should mention that Maple also includes a PolynomialIdeals package containing a number of commands closely related to the content of this text and with functionality overlapping that of the Groebner package to some extent. The basic data structure for the PolynomialIdeals package is a polynomial ideal, de- fined as follows: with(PolynomialIdeals) J := K:= (The < and > from the keyboard act as  and .) PolynomialIdeals contains im- plementations of the algorithms developed in Chapters 2–4 for ideal membership, radical membership, ideal containment, operations such as sums, products, inter- sections, ideal quotients and saturation, and primary decomposition. Much of this is based on the routines in the Groebner package, but the PolynomialIdeals package is set up so that users need only understand the higher-level descriptions of the ideal operations and not the underlying algorithms. For example, Intersect(J,K) computes the intersection of the two ideals defined above. §1 General Purpose Systems: Maple, Mathematica, Sage 607 Mathematica

Mathematica is the other leading commercial system in this area. The web site http:// www.wolfram.com/mathematica contains information about the different versions available and the full electronic documentation for the system. As of summer 2014, the current version is MATHEMATICA10 (2014). There is no special package to load in order to compute Gröbner bases: the basic commands are part of the Mathematica kernel. Mathematica knows most of the basic monomial orderings considered in Chapter 2. Lex order is called Lexicographic, grlex is called DegreeLexicographic and grevlex is called DegreeReverseLexicographic. The monomial order is specified by including a MonomialOrder option within the Mathematica commands described below. If you omit the MonomialOrder option, Mathematica will use lex as the default. Mathematica can also use weight orders as described in the comments at the end of the exercises to Chapter 2, §4. Since a monomial order also depends on how the variables are ordered, Math- ematica also needs to know a list of variables in order to specify the monomial order you want. For example, to tell Mathematica to use lex order with variables x > y > z, you would input {x,y,z} (Mathematica uses braces {...} for lists and square brackets [...] to delimit the inputs to a command or function). For our purposes, important Mathematica commands are PolynomialReduce and GroebnerBasis. PolynomialReduce implements a variant of the division algorithm from Chapter 2 that does not necessarily respect the ordering of the list of divisors. This means that the quotients and the remainder may differ from the ones computed by our algorithm, though the quotients and remainders still satisfy the conditions of Theorem 3 of Chapter 2, §3. The syntax is as follows: In[1]:= PolynomialReduce[f,polylist,varlist,options] (The input prompt In[1]:= is generated automatically by Mathematica.) This computes quotients and a remainder of the polynomial f by the polynomials in polylist, using the monomial order specified by varlist and the optional MonomialOrder declaration. For example, to divide x3 +3y2 by x2 +y and 2xy+y2 using grlex order with x > y, one would enter: In[2]:= PolynomialReduce[xˆ3 + 3yˆ2,{xˆ2 + y,2xy + yˆ2}, {x,y},MonomialOrder -> DegreeLexicographic] The output is a list with two entries: the first is a list of the quotients and the second is the remainder. The command for computing Gröbner bases has the following syntax: In[3]:= GroebnerBasis[polylist,varlist,options] This computes a Gröbner basis for the ideal generated by the polynomials in polylist with respect to the monomial order given by the MonomialOrder option with the variables ordered according to varlist. The answer is a reduced Gröbner basis (in the sense of Chapter 2, §7), except for clearing denominators. As an exam- ple of how GroebnerBasis works, consider In[4]:= gb = GroebnerBasis[{xˆ2 +y,2xy + yˆ2},{x,y}] The output is a list (assigned to the symbolic name gb) which is a Gröbner basis for 608 Appendix C Computer Algebra Systems the ideal x2 + y, 2xy + y2⊆Q[x, y] using lex order with x > y. We omitted the MonomialOrder option since lex is the default. If you use polynomials with integer or rational coefficients in GroebnerBasis or PolynomialReduce, Mathematica will assume that you are working over the field Q. There is no limitation on the size of the coefficients. Another possible co- efficient√ field is the Gaussian rational numbers Q(i)={a + bi | a, b ∈ Q}, where i = −1(Mathematica uses I to denote the imaginary unit). To compute a Gröbner basis over a finite field with p elements (where p is a prime number), you need to include the option Modulus -> p in the GroebnerBasis command. This option also works in PolynomialReduce. Mathematica can also work with coefficients that lie in a rational function field. The strategy is that the variables in the base field (the “parameters”) should be omit- ted from the variable list in the input, and then one sets the CoefficientDomain option to RationalFunctions. For example, the command: In[5]:= GroebnerBasis[{v xˆ2 + y,u x y + yˆ2},{x,y}, CoefficientDomain -> RationalFunctions] will compute a Gröbner basis for vx2 + y, uxy + y2⊆Q(u, v)[x, y] using lex order with x > y.TheCoefficientDomain option is also available for remainders using PolynomialReduce. Here are some other useful Mathematica commands: • MonomialList, which lists the terms of a polynomial according to the mono- mial order. Using this, MonomialList[f,vars,monomialorder][[1]] can be used to pick out the leading term. • Eliminate, which uses the Elimination Theorem from Chapter 3, §1 to elimi- nate variables from a system of equations. • Solve, which attempts to find all solutions of a system of equations. Mathematica also allows some control over the algorithm used to produce a Gröb- ner basis. For instance, it is possible to specify that the Gröbner walk basis conver- sion algorithm mentioned in Chapter 10 will be used via the Method option in the GroebnerBasis command. Further descriptions and examples can be found in the electronic documentation at http://www.wolfram.com/mathematica.

Sage

Sage is a free and open-source under continual develop- ment since its initial release in 2005. As of summer 2014, the latest version is STEIN ET AL.(2014). The leader of the Sage project is William Stein of the University of Washington; hundreds of other mathematicians have contributed code and packages. The source code, as well as and Mac OS X binary executables are available for download from the web site http://sagemath.org; a version of Sage that runs on Windows systems in combination with the VirtualBox virtualiza- tion software is also available there. The design of Sage is rather different from that of other packages we discuss in this appendix in that Sage has been built to provide a common front end for pre- existing open-source packages, including in particular the Singular system described §1 General Purpose Systems: Maple, Mathematica, Sage 609 in §2 below. Sage provides a browser-based notebook interface allowing users to create interactive documents. It also incorporates command constructs based on features of the Python programming language. It is intended to be comparable in power and scope to the commercial packages Maple and Mathematica. But it also has particular strengths in computational algebra and number theory because of its development history and the other packages it subsumes. To do Gröbner basis computations in Sage, one must first define a polynomial ring that contains all polynomials involved and that specifies the monomial order to be used. For instance, to compute a Gröbner basis for the ideal I = x2 + y, 2xy + y2⊆Q[x, y] with respect to the lex order with x > y, we could proceed as follows. First define the ring with an input command like this: R. = PolynomialRing(QQ,order=’lex’) (the QQ is Sage’s built-in field of rational numbers and the order of the variables is determined by their ordering in the ring definition). There are many other equivalent ways to do this too; Sage’s syntax is very flexible. Then the ideal I can be defined with the command I = Ideal(xˆ2 + y,2*x*y + yˆ2) and the Gröbner basis can be computed and displayed via the command I.groebner_basis() The syntax here is the same as that of the object-oriented features of Python. The last part of this, the .groebner_basis(), indicates that we are applying a function, or “method” defined for all objects that are ideals in polynomial rings that have been defined, and requiring no other input. In the notebook interface, pressing the TAB key on an input line with the partial command I. will generate a listing of all methods that can be applied to an object of the type of the object I. This can be helpful if you are unsure of the correct syntax for the command you want or what operations are permitted on an object. Sage’s polynomial ring definition mechanism is very general. The field of co- efficients can be any finitely generated extension of Q or a finite field. The finite field with p elements for a prime p is denoted GF(p)—this would replace the QQ in the definition of the polynomial ring if we wanted to work√ over that finite field instead. Algebraic elements, including the imaginary unit i = −1, may be defined via the NumberField command, while fields of rational functions may be defined via the FractionField command. For example, suppose we√ wanted to work with polynomials in variables x, y with coefficients in the field Q( 2). Here is one way to construct the ring we want. The first step, or something equivalent, is necessary to define the variable in the polynomial used in the definition of the number field; every object used in a Sage session must be defined in√ the context of some structure previously defined. The rt2 is the symbolic name for 2 in the field F: R. = PolynomialRing(QQ) F. = NumberField(zˆ2 - 2) R. = PolynomialRing(F) Then we could define ideals in the ring R, compute Gröbner bases, etc. Compu- tations over Q(i) can be done in the√ same way by using NumberField with the polynomial z2 + 1 satisfied by i = −1. 610 Appendix C Computer Algebra Systems

To define a rational function field Q(a) as the coefficient field, we may proceed like this: P. = PolynomialRing(F) K = FractionField(P) R. = PolynomialRing(K) √ These constructions can even be combined to produce fields such as Q( 2)(a). However, it is important to realize that Sage makes use of the program Singular, whose coefficient fields are not quite√ this general. For ideals in polynomial rings with coefficients in a field like Q( 2)(a), Sage falls back to its own slower Gröbner basis routines. General monomial orders, including all of those discussed in the text, can be specified in Sage. We have seen how to specify lex orders above. Graded lex orders are obtained with order = ’deglex’, while graded reverse lex orders use order = ’degrevlex’. Various weight orders as in Exercise 10 of Chapter 2, §4, and general matrix orders are also available. Most of the other basic operations we have discussed are provided in Sage as methods that are defined on ideals or individual polynomials. For instance, the lead- ing term, leading monomial, and leading coefficient of a polynomial f are computed by f.lt(), f.lm(), and f.lc(), respectively. If G is a Gröbner basis for an ideal I and f is a polynomial in the ring containing I, then the remainder on division by G is computed by f.reduce(G) If desired, the list of quotients in the division can be recovered using (f - f.reduce(G)).lift(G) The computation of S-polynomials can be done by using an “educational” imple- mentation of the basic Buchberger algorithm that is made accessible through the command from sage.rings.polynomial.toy_buchberger import spol Then to compute the S-polynomial of f and g,usespol(f,g). Other useful methods defined on ideals include: • .gens(), which returns the list of generators of the ideal. One caution: As in Python, all lists are indexed starting from 0 rather than 1. • .elimination_ideal(varlist), where varlist is the list of variables to be eliminated, • .hilbert_polynomial(), defined only for homogeneous ideals, • .hilbert_series(), defined only for homogeneous ideals, • .primary_decomposition() All of the “real work” in these computations in Sage is being done by Singular, but comparing the form of the commands here with those in the section on Singu- lar below shows that the Sage syntax is different. In effect, the Sage input is being translated for presentation to Singular, and results are passed back to Sage. In par- ticular, the output of these commands are Sage objects and can be used by parts of the Sage system outside of Singular. It is also possible to communicate directly with Singular if that is desired. In our experience, though, the Python-esque Sage syntax is somewhat easier to work with for many purposes. §2 Special Purpose Programs: CoCoA, Macaulay2, Singular 611 §2 Special Purpose Programs: CoCoA, Macaulay2, Singular

Unlike the systems discussed in §1, the programs discussed in this section were developed primarily for use by researchers in and commuta- tive algebra. With some guidance, though, beginners can also make effective use of them. These systems offer minimal numerical computation and graphics (at best) and the current versions feature text-based user interfaces. They also tend to provide direct access to less of the infrastructure of Gröbner basis computations such as S- polynomials, remainders on division by general sets of divisors, and so on. But like the general purpose programs, they incorporate complete programming languages so it is possible to extend their basic functionality by creating new procedures. These programs tend to be much more powerful within their limited application domain since they include a number of more advanced algorithms and more sophisticated higher-level constructs.

CoCoA

CoCoA (for “Computations in Commutative Algebra”) is a free, open-source com- puter algebra system for polynomial computations. Versions for systems, Mac OS X, and Windows are available from http://cocoa.dima.unige.it. All documenta- tion is also posted there. As of summer 2014, the current standard version is AB- BOTT ET AL.(2014). CoCoA-5 involved a major redesign of many features of the system and a new C++ library of underlying functions. This means that some as- pects of the new system and its documentation are still under development and may change in the future. Previous versions of CoCoA-4 are also available for a num- ber of operating systems. The development of CoCoA is currently led by Lorenzo Robbiano, John Abbott, Anna Bigatti, and Giovanni Lagorio, of the University of Genoa in Italy. Many other current and former members of the CoCoA team have participated in this effort. A large number of advanced algorithms and contributed packages are provided. To do Gröbner basis computations in CoCoA, one must first define a polynomial ring that contains all polynomials involved and that specifies the monomial order to be used. For instance, to compute a Gröbner basis for I = x2 +y, 2xy+y2⊆Q[x, y] with respect to the lex order with x > y, we could proceed as follows. First define the ring with an input command like this: use R ::= QQ[x,y], Lex; (all CoCoA commands end with a semicolon and the double colon is correct for use ring specifications). This sets the current ring (called R) to the polynomial ring with coefficient field equal to the predefined field QQ (that is, the field of rational numbers Q). The ordering of the variables is determined by the order within the list. Then the ideal I can be defined with the command I := ideal(xˆ2 + y,2*x*y + yˆ2); Unlike older versions of CoCoA, the new version does require explicit asterisks for multiplication. The Gröbner basis can be computed and displayed via the command 612 Appendix C Computer Algebra Systems

GBasis(I); If the results are to be saved and used later under a different name, an assignment GB := GBasis(I); could be used. A separate command ReducedGBasis is provided for reduced Gröb- ner bases. CoCoA’s polynomial ring definition mechanism is quite flexible. Coefficients in a field of rational functions over Q or over a finite field may also be defined as fol- lows. For example, suppose we wanted to work with polynomials in variables x, y with coefficients in the field Q(a). Here is one way to construct the ring we want: K := NewFractionField(NewPolynomialRing(QQ,["a"])); use R ::= K[x,y]; Note that this use did not specify a monomial order. The default is grevlex, which can also be specified explicitly as DegRevLex. The grlex order is DegLex. Elim- ination orders are specified as Elim(vars), where vars are the variables to be eliminated (either a single variable or a range of variables in the list defining the current ring), indicated like this: use R ::= QQ[x,y,z,w], Elim(x..y); This would define one of the elimination orders considered in Exercise 11 in Chap- ter 2, §4 eliminating x, y in favor of z, w. General monomial orders, including all of the others discussed in the text, can be specified in CoCoA by means of matrices. Many of the other basic operations we have discussed are provided in CoCoA as functions that are defined on ideals or individual polynomials. For instance, what we call the leading term (including the coefficient) is LM(f) in CoCoA, while LT(f) or LPP(f) compute the what we call the leading monomial. LC(f) is the leading coefficient. The command NF(f,I) computes the remainder on division of a poly- nomial f with respect to a Gröbner basis for I. A Gröbner basis for the ideal will be computed in order to carry this out if that has not been done previously. Other useful commands defined on ideals include: • intersect(I,J) computes the intersection of the ideals I and J. • colon(I,J) computes the quotient ideal I : J. ∞ • saturate(I,J) computes the saturation I : J of I with respect to J. • elim(X,I) computes an elimination ideal, where X is a variable, range of vari- ables, or list of variables to be eliminated. • HilbertFunction(R/I) computes a representation of the Hilbert function of R/I. This is intended for homogeneous ideals. If I is not homogeneous, then the output is the Hilbert function of LT(I). • HilbertPoly(R/I) computes a representation of the Hilbert polynomial of R/I. This behaves the same way as HilbertPoly if I is not a homogeneous ideal. • HilbertSeries(R/I) gives a representation of the Hilbert-Poincaré series of R/I as defined in Chapter 10, §2. This is defined only for homogeneous ideals. • PrimaryDecomposition(I) is available but is implemented only for square- free monomial ideals at the current time. §2 Special Purpose Programs: CoCoA, Macaulay2, Singular 613 Macaulay2

Macaulay2 is a free, open-source computer algebra system for computations in alge- braic geometry and commutative algebra. Versions for most Unix systems, Mac OS X, and Windows (the last running under the Cygwin operating system virtualization software) may be downloaded from the Macaulay2 web site http://www.math.uiuc. edu/Macaulay2. Complete electronic documentation is also available there. As of summer 2014, the current version is GRAYSON and STILLMAN (2013). Macaulay2 has been developed by Daniel Grayson of the University of Illinois and of Cornell University; a number of packages extending the basic function- ality of the system have been contributed by other mathematicians. Macaulay2 has a special emphasis on computations in algebraic geometry, specif- ically computations of syzygies, free resolutions of modules over polynomial rings, and information about varieties that can be derived from those computations. Much of this is beyond the scope of this book, but all of it is based on the Gröbner ba- sis computations we discuss and enough of that infrastructure is accessible to make Macaulay2 useful for courses based on this text. To do Gröbner basis computations in Macaulay2, one must first define a polyno- mial ring that contains all the polynomials involved and the monomial order to be used. For instance, to compute a Gröbner basis for the ideal I = x2 +y, 2xy+y2⊆ Q[x, y] with respect to the lex order with x > y, we could proceed as follows. First define the ring with an input command like this: i1 : R = QQ[x,y,MonomialOrder=>Lex] (the i1 represents the input prompt; executing this command will generate two lines of output labeled o1 showing the name R and its type PolynomialRing). The QQ is Macaulay2’s notation for the field Q. The order on the ring variables is specified by the ordering of the list in the square brackets. The ideal I can be defined with the command i2 : I = ideal(xˆ2 + y,2*x*y + yˆ2) Then i3 : gens gb I computes the required Gröbner basis and presents the result as a matrix of polyno- mials with one row. There are many options that can be specified to control how the computation is performed and what algorithms are used. The remainder on division of a polynomial f by a Gröbner basis for an ideal I is computed by i4:f%I in Macaulay2. If a Gröbner basis for I has already been computed it is used, other- wise it is computed in order to find the unique remainder. General monomial orders, including all of those discussed in the text, can be specified in Macaulay2. Grevlex orders are the default. We have seen how to spec- ify lex orders above, while grlex orders are obtained with MonomialOrder=>GLex. The elimination orders from Exercise 11 in Chapter 2, §4 are specified like this: MonomialOrder=>Elimination n, where n is the number of variables to elimi- nate (from the start of the list). Various weight orders as in Exercise 11 of Chapter 2, 614 Appendix C Computer Algebra Systems

§4, and product orders are also available. These can be combined in very flexible ways giving orders equivalent to any matrix order. Macaulay2 allows very general coefficient fields in polynomial rings. For in- stance, to define the ring of polynomials Q(u, v)[x, y] with coefficients in the field Q(u, v) and the grlex order with x > y we could proceed as follows: i5 : R = QQ[u,v] i6 : K = frac(R) (this computes the field of fractions of the ring R, that is the field Q(u, v) of rational functions in u, v). Then the ring we want is i7 : S = K[x,y,MonomialOrder=>GLex] The coefficient field of a polynomial ring can also be a finite field. Use ZZ/p for the field of integers modulo the prime p, for instance. Finite extensions of known fields can be specified like this. For√ instance suppose we wanted to use polynomials with coefficients in the field Q( 2). We could use: i8 : A = QQ[rt2]/(rt2ˆ2 - 2) (as the notation seems to indicate, this is a quotient ring of the polynomial ring in one variable modulo the ideal generated by the polynomial rt2ˆ2 - 2). Then i9 : L = toField(A) “converts” this to a field that can be used as the coefficient field for a new polynomial ring. The field Q(i) could be defined in a similar way. The leading term, leading monomial, and leading coefficient of a polynomial with respect to the current monomial order are computed by commands leadTerm, leadMonomial, and leadCoefficient.TheleadTerm function can also be ap- plied to an ideal I and the output will be a set of generators for the monomial ideal LT(I). If we have ideals I,J in the current ring, Macaulay2 allows us to compute the sum as I+J, the ideal product as I*J, the ideal quotient as quotient(I,J),the saturation as saturate(I,J), and the intersection as intersect(I,J). Other useful commands include: • radical for the radical of an ideal. • primaryDecomposition for primary decomposition. • hilbertFunction(m,I) for a value of the Hilbert function. • hilbertPolynomial(I,Projective=>false) gives the Hilbert polynomial in the form we have discussed. • hilbertSeries computes the Hilbert-Poincaré series from Chapter 10, §2.

Singular

Singular is a free, open-source computer algebra system for polynomial computa- tions. Versions for most Unix systems, Mac OS X, and Windows may be down- loaded from http://www.singular.uni-kl.de. Complete documentation can also be found there. The version of Singular that runs on Windows systems uses the Cygwin operating system virtualization software. As of summer 2014, the current standard version is DECKER ET AL.(2012). The development of Singular has been directed §2 Special Purpose Programs: CoCoA, Macaulay2, Singular 615 by Wolfram Decker, Gert-Martin Greuel, Gerhard Pfister, and Hans Schönemann at the University of Kaiserslautern in Germany. Many other current and former mem- bers of the Singular team have also participated in this effort. Singular has a special emphasis on commutative algebra, algebraic geometry, and singularity theory. It provides usable features for certain numerical computations, but not the same level of support for those areas or for graphics found in general- purpose packages. Singular’s major strength is that it provides highly efficient im- plementations of its central algorithms (especially Gröbner basis computations in polynomial rings and standard basis computations in localizations, free resolutions, resultants, and so forth). A large number of advanced algorithms and contributed packages in the fields mentioned above, plus a procedural programming language with syntax similar to C are also provided. Interfaces with third-party software for convex geometry, tropical geometry and visualization, plus a comprehensive online manual and help resource are available. Assignment statements in Singular generally indicate the type of the result (if that has not been previously specified), then a name for the result, an equals sign, and the command specifying the procedure used to compute the result. To do Gröbner basis computations in Singular, one must first define a polynomial ring that contains all polynomials involved and that specifies the monomial order to be used. For instance, to compute a Gröbner basis of I = x2 +y, 2xy+y2⊆Q[x, y] with respect to lex order with x > y, we could proceed as follows. First define the ring with an input command like this: > ring r = 0, (x,y), lp; (the > represents the input prompt; all Singular commands end with a semicolon). This defines a ring called r with a coefficient field of characteristic zero (that is, the field Q). The (x,y) is the list of ring variables; the lp indicates the lexicographic order (with variables ordered as in the list). For a polynomial ring over a finite field with p elements (p a prime), just change the 0 in the ring definition to the p desired. General monomial orders, including all of those discussed in the text, can be specified in Singular. We have seen how to specify lex orders. Graded lex orders are obtained with Dp, while grevlex orders use dp. Various weight orders as in Exercise 10 of Chapter 2, §4, and general matrix orders are also available. Then the ideal I can be defined with the command > ideal i = x2 + y,2xy + y2; No special symbol is necessary to indicate the exponents, although the long form > ideal i = xˆ2 + y,2*x*y + yˆ2; is also recognized. The Gröbner basis can be computed and displayed via the command > groebner(i); If the results are to be saved and used later under a different name, an assignment like > ideal gi = groebner(i); could be used. A command > i = groebner(i); 616 Appendix C Computer Algebra Systems could also be used if we wanted to overwrite the name i. No type specification is needed there since i has already been defined as an ideal in the ring r. Singular’s polynomial ring definition mechanism is quite flexible. The field of coefficients can be any finite extension of Q or a finite field. Coefficients in a field of rational functions over Q or over a prime field may also be defined in the ring command. For example, suppose we√ wanted to work with polynomials in variables x, y with coefficients in the field Q( 2). Here is one way to construct the ring we want: > ring r = (0,a), (x,y), lp; > minpoly = a2 - 2; √ Then the name a represents 2 in the coefficient field. By changing the minpoly declaration we could also use Q(i) as coefficient field. The minpoly declaration should come immediately after the ring definition; also Singular does not check for irreducibility so this should be done manually before using a field definition of this type. Without the minpoly declaration, we would have the rational function field Q(a) as the field of coefficients. Any number of such symbolic parameters can be defined by placing their names in the list with the characteristic of the coefficient field. One limitation here is that it is not possible to define a polynomial ring whose coefficient field is a rational function field over a finite extension of Q. Most of the other basic operations we have discussed are provided in Singu- lar as functions that are defined on ideals or individual polynomials. For instance, the leading term, leading monomial, and leading coefficient of a polynomial f are computed by lead(f), leadmonom(f), and leadcoef(f) respectively. If G is a Gröbner basis for an ideal I and f is a polynomial in the ring containing I, then the remainder on division by G is computed by > reduce(f,G); If G is not a Gröbner basis, then a warning is generated since the remainder is not uniquely determined. Other useful commands defined on ideals include: • intersect(I,J) computes the intersection of the ideals I and J. ∞ • sat(I,J) computes the saturation I : J of I with respect to J. • eliminate(I,m) computes an elimination ideal, where m is a monomial con- taining the variables to be eliminated. • finduni(I) computes univariate polynomials in I for all the variables appear- ing, provided that I is zero-dimensional. • hilb(I) gives a representation of the Hilbert-Poincaré series defined in Chap- ter 10, §2. This is defined only for homogeneous ideals. • hilbPoly(I), computes a representation of the Hilbert polynomial. This is part of an external package, so the command LIB "poly.lib"; must be entered before it is accessible. This is defined only for homogeneous ideals. • Primary decompositions can be computed in several different ways using the functions in the primdec.lib library. We refer the interested reader to the Sin- gular documentation or to the book GREUEL and PFISTER (2008). §3 Other Systems and Packages 617 §3 Other Systems and Packages

In addition to the computer algebra systems described in the previous sections, the following software may also be used for some or all the computations we have discussed. • The REDUCE system with the Groebner and Cali packages described in previous editions of this book is still available at http://reduce-algebra.com. • The computer algebra system Magma is designed for computations in commuta- tive algebra, group theory, number theory, and combinatorics. It has a very effi- cient implementation of Gröbner basis algorithms and functionality comparable to that of CoCoA, Macaulay2, and Singular. More information, documentation, and a web-based Magma “calculator” for small computations can be found at http://magma.maths.usyd.edu.au/magma. • For MATLAB users, the Symbolic Math Toolbox contains the Gröbner basis im- plementation from the MuPAD system. More information can be found at http:// www.mathworks.com/products/symbolic. • The FGb package incorporating the F4 algorithm discussed in Chapter 10, §3 is now standard in Maple, and is available in a standalone version callable from C programs at http://www-polsys.lip6.fr/~jcf/Software/FGb. Appendix D Independent Projects

Unlike the rest of the book, this appendix is addressed to the instructor. We will discuss several ideas for research papers or projects supplementing topics intro- duced in the text.

§1 General Comments

Independent projects in a course based on this text can be valuable in several ways: • They can help students to develop a deeper understanding of the ideas presented in the text by applying what they have learned. • They can expose students to further developments in subjects beyond what is discussed in the text. • They can give students more experience and sophistication as users of computer algebra systems. • Projects can be excellent opportunities for small groups of two or three students to work together and learn collaboratively. • More extensive and open-ended projects can even give students a taste of doing mathematical research. There is much more material in our book than can be covered in a single semester. So a project could simply be to learn a part of the text that was not covered in class. In this appendix, though, we will concentrate on additional topics beyond what is in this book. In most cases students would need to start by reading from additional sources and learn the mathematics involved. In some cases, the focus might then be on implementing algorithms and computing examples. In others, the primary goal might be to write an expository paper and/or give an oral presentation about what they have learned. The descriptions we give for each project area are rather brief. Although a few references are provided, most of the descriptions would need to be narrowed down and fleshed out before being given to students as assignments. The list is in no way

© Springer International Publishing Switzerland 2015 619 D.A. Cox et al., Ideals, Varieties, and Algorithms, Undergraduate Texts in Mathematics, DOI 10.1007/978-3-319-16721-3 620 Appendix D Independent Projects definitive or exhaustive, and users of the text are encouraged to contact the authors with comments or suggestions concerning these or other projects they have used.

§2 Suggested Projects

We discuss some ideas for more theoretical projects first, then indicate project topics where implementing algorithms in a computer algebra system might form a part of the project. Finally, we indicate some ideas for additional areas where the techniques we have discussed have been applied and that might form the basis for other projects. 1. The Complexity of the Ideal Membership Problem. In §10 of Chapter 2, we briefly discussed some of the worst-case complexity results concerning the computation of Gröbner bases and solving the ideal membership problem. The main purposes of this project would be to have students learn about the Mayr and Meyer examples, understand the double exponential growth of de- gree bounds for the ideal membership problem, and appreciate the implica- tions for computational algebra. A suggested first reference here is BAYER and STILLMAN (1988). For larger projects taking the ideas in different directions toward the frontier of research, the following sources may be useful. The arti- cle KOH (1998) shows that similar double exponential behavior can be obtained even with ideals generated by polynomials of total degree 2. The article SWAN- SON (2004) studies the algebraic structure of the Mayr-Meyer ideals in much greater detail and includes a list of questions aimed at identifying the precise features producing their behavior. This involves quite a few topics not discussed in our text (embedded primes, etc.) but studying this in a more extensive project might be an interesting way to motivate learning those additional topics in com- mutative algebra. Finally, ASCHENBRENNER (2004) discusses these complex- ity questions for ideals in polynomial rings with coefficients in Z rather than a field. 2. Symbolic Recipes for Solving Polynomial Systems. One of the applications of computing Gröbner bases with respect to lex and other elimination orders discussed in the text is finding the points in V(I) for zero-dimensional ideals I. However, for larger and more realistic problems, the polynomials in a lex Gröbner basis can have awkwardly large coefficients and these can become problematic if standard numerical root-finding techniques are applied to gener- ate approximations to the points in V(I). This is true especially in the higher dimensional analogs of the situation in Exercise 14 in Chapter 2, §7—systems that are often said to be in “shape lemma form.” So other symbolic recipes for computing the solutions of these systems have been developed, all of which make heavy use of linear algebra in the quotient ring C[x1,...,xn]/I, a finite di- mensional vector space over C. Chapter 2 of COX,LITTLE and O’SHEA (2005), Chapter 2 of DICKENSTEIN and EMIRIS (2005), or Chapter 2 of COHEN et. al. (1999) present the background about multiplication matrices, eigenval- ues, trace forms etc. that form the groundwork for these methods. Several differ- ent project topics could be generated from the material there. For example, one §2 Suggested Projects 621

project could simply be to learn how the linear algebra leads to the statement and proof of what is now often called Stickelberger’s Theorem—the statement that the eigenvalues of the multiplication matrix for a polynomial f give the values of f at the points in V(I)—Theorem (4.5) and Corollary (4.6) in Chapter 2, §4 of COX,LITTLE and O’SHEA (2005). Another project could deal with the application of these methods to real root counting and real root isolation for systems in several variables. Another very interesting project topic would be to investigate the idea of a rational univariate representation (RUR) for the solu- tions introduced in ROUILLIER (1999). An RUR expresses the coordinates of the points in V(I) as rational functions of the roots of an auxiliary polynomial equation where the variable is a so-called separating element—usually a linear combination of the coordinates—taking distinct values at the distinct points in V(I). The rational functions involved are typically significantly simpler than the polynomials in a lex Gröbner basis for the same ideal. Moreover the methods used to compute RUR’s come from the same circle of ideas about multiplication matrices on C[x1,...,xn]/I, their traces, and so forth. The Maple Groebner package contains a RationalUnivariateRepresentation command that can be used to compute realistic examples. 3. Gröbner Basis Conversion via FGLM. In Chapter 10, we gave a version of Buchberger’s algorithm that used Hilbert functions to convert a Gröbner basis with respect to one monomial order into a Gröbner basis for the same ideal with respect to another monomial order. We mentioned that there were other meth- ods known for these Gröbner basis conversions, including the FGLM algorithm for zero-dimensional ideals. A number of different project topics could be de- veloped in this area. The FGLM algorithm is also based on the vector space structure of the quotient C[x1,...,xn]/I discussed in topic 2 above; the original source is FAUGÈRE,GIANNI,LAZARD, and MORA (1993). See also Chapter 2ofCOX,LITTLE and O’SHEA (2005). This is now implemented in most of the computer algebra systems discussed in Appendix C but it is also a good programming exercise. Connections with the Buchberger-Möller algorithm for computing the vanishing ideal of a finite collection of points were developed in MARINARI,MÖLLER, and MORA (1993). 4. Singular Points, Dual Curves, , and other Geometric Applications. The geometrical material on singular points of curves and envelopes of families of curves discussed in §4 of Chapter 3 could be extended in several different directions to give interesting project topics. A first topic might involve learn- ing some of the theoretical tools needed for a more complete understanding of curve singularities: the Newton polygon, Puiseux expansions, resolution of singularities by quadratic transformations of the plane, etc. A good general ref- erence for this is BRIESKORN and KNÖRRER (1986). Another beautiful and classical topic here would be to study the construction of the dual curve of a projective , finding the implicit equation of the dual by elimination, and perhaps discussing the Plücker formulas for curves with only nodal and ordinary cuspidal singularities; FISCHER (2001) and BRIESKORN and KNÖR- RER (1986) are good sources for this. The of the family of normal 622 Appendix D Independent Projects

lines to a plane curve is also known as the of the curve, and these were studied intensively in classical differential and algebraic geometry, see for in- stance BRUCE and GIBLIN (1992). Evolutes also arise naturally in considering the critical points of the squared Euclidean distance function from a point to a curve. So they are closely connected to the question of finding the point on a curve closest to a given point—a typical constrained optimization problem. DRAISMA,HOROBET ¸,OTTAVIANI,STURMFELS, and THOMAS (2013) con- tains a beautiful discussion of the connection and introduces the Euclidean distance degree of a curve as a new invariant. That article also discusses far- reaching generalizations to analogous higher-dimensional situations and dis- cussions of many interesting applications of these ideas to areas such as geo- metric modeling, computer vision, and stability in control theory. Some of this is quite advanced, but this reference is a goldmine of interesting ideas. 5. Implicitization via Resultants. As mentioned in §6 of Chapter 3, resultants can be used for elimination of variables, and this means they are applicable to geometric problems such as implicitization. A nice project would be to report on the papers ANDERSON,GOLDMAN and SEDERBERG (1984a), ANDERSON, GOLDMAN, and SEDERBERG (1984b) and MANOCHA (1994).The resultants used in these papers differ from the resultants discussed in Chapter 3, where we defined the resultant of two polynomials. For implicitization, one needs the resultant of three or more polynomials, often called multipolynomial resultants. These resultants are discussed in COX,LITTLE and O’SHEA (2005). On a dif- ferent but related note, GALLET,RAHKOOY and ZAFEIRAKOPOULOS (2013) discusses the general problem of the relation between a univariate generator of an elimination ideal and elements of the elimination ideal computed by means of resultants. 6. The General Version of Wu’s Method. In our discussion of Wu’s method in geometric theorem proving in Chapter 6, §4, we did not introduce the gen- eral algebraic techniques (characteristic sets, the Wu-Ritt decomposition algo- rithm) that are needed for a general theorem prover. This project would involve researching and presenting these methods, and possibly considering their re- lations with other methods for elimination of variables. Implementing them in a computer algebra system would also be a possibility. See WANG (2001) for a discussion of characteristic sets and CHOU (1988) and WU (2001)for complete presentations of the relations with geometric theorem-proving. The article WU (1983) gives a summary. Also, AUBRY,LAZARD and MORENO MAZA (1999) compares different theories of triangular sets of polynomial equations including characteristic sets and JIN,LI and WANG (2013)givesa new algorithmic scheme for computing characteristic sets. 7. Molien’s Theorem. An interesting project could be built around Molien’s the- orem in invariant theory, which is mentioned in §3 of Chapter 7. This theorem gives an expression for the so-called Molien series of a finite matrix group G over C (that is, the generating function for the dimensions of the homogeneous components of the ring of invariants of G analogous to the Hilbert-Poincaré series studied in Chapter 10, §2): §2 Suggested Projects 623

∞ 1 1 dim(C[x ,...,x ]G)tm = . 1 n m |G| det(I − tg) m=0 g∈G

The algorithm given in STURMFELS (2008) can be used to find generators for G C[x1,...,xn] . This can be used to find the invariants of some larger groups than those discussed in the text, such as the rotation group of the cube in R3. Molien’s theorem is also discussed in Chapter 7 of BENSON and GROVE (1985) and Chapter 3 of DERKSEN and KEMPER (2002). 8. Computer Graphics and Vision. In §1 of Chapter 8, we used certain kinds of projections when we discussed how to draw a picture of a 3-dimensional object. These ideas are very important in computer graphics and computer vision. Sim- pler projects in this area could describe various projections that are commonly used in computer graphics and explain what they have to do with projective space. If you look at the formulas in Chapter 6 of FOLEY, VA N DAM,FEINER and HUGHES (1990), you will see certain 4× 4 matrices. This is because points in P3 have four . More extensive projects might also consider the triangulation problem in computer vision, which asks for a re- construction of a 3-dimensional object from several 2-dimensional images pro- duced by cameras viewing the object from different viewpoints. Techniques from algebraic geometry have been applied successfully to this question. The basic ideas are discussed in HEYDEN and ÅSTRÖM (1997) and the beautiful ar- ticle AHOLT,STURMFELS and THOMAS (2013) studies the resulting multiview ideals and varieties using tools such as universal Gröbner bases, multigraded Hilbert functions and Hilbert schemes. Needless to say, much of this is be- yond the scope of the topics discussed in this book but large parts of the article AHOLT,STURMFELS and THOMAS (2013) will be accessible because the pre- sentation is very concrete and smaller special cases can be computed explicitly. There are also connections with the article DRAISMA,HOROBET ¸,OTTAVIANI, STURMFELS, and THOMAS (2013) mentioned in topic 4 above in the case that the images are “noisy” and no exact reconstruction exists. In that case, the prob- lem is to determine a 3-dimensional structure that comes as close as possible to matching what is seen in the 2-dimensional images. 9. Gröbner Fans, Universal Gröbner Bases, Gröbner Basis Conversion via the Gröbner walk. How many different reduced Gröbner bases are there for any particular ideal? Is that collection finite or infinite? The so-called Gröbner fan of an ideal is a collection of polyhedral cones in Rn that provides a way to see that there are only finitely many different reduced Gröbner bases. Under- standing the Gröbner fan also gives a way to produce universal Gröbner bases for ideals—finite collections of polynomials that are simultaneously Gröbner bases for all possible monomial orderings. All of this is discussed, for instance, in Chapter 8 of COX,LITTLE and O’SHEA (2005) and STURMFELS (1996). One project topic would be simply to understand how all this works and pos- sibly to generate some examples. The software package gfan authored by A. Jensen is the current standard for these calculations and the Sage, Macaulay2, and Singular systems discussed in Appendix C incorporate interfaces to gfan. 624 Appendix D Independent Projects

The structure of the Gröbner fan also gives the background needed for the other Gröbner basis conversion method that we mentioned in passing in Chapter 10, the so-called Gröbner walk algorithm. The original source for the Gröbner walk is COLLART,KALKBRENER and MALL (1998) and this algorithm is discussed in Section 5 of Chapter 8 in COX,LITTLE and O’SHEA (2005); more efficient versions such as the so-called fractal walk have been developed as well. Ver- sions of the walk have been implemented in several of the computer algebra systems mentioned in Appendix C, including Maple, Mathematica, Singular (hence Sage), and Magma. 10. Gröbner Covers. As we have seen in Chapter 6, many systems of polynomial equations that arise in applications naturally contain symbolic parameters ap- pearing in their coefficients. Understanding how and whether specializing those parameters to particular constant values changes the form of a Gröbner basis for the corresponding ideal and affects the number and form of the solutions of the system is often extremely important. Weispfenning’s theory of comprehen- sive Gröbner bases and his algorithm for computing them was the first major step here. WEISPFENNING (1992) is the original source for this; BECKER and WEISPFENNING (1993) gives a very brief description. More recently, the the- ory of Gröbner covers presented in MONTES and WIBMER (2010) has provided a way to find a simpler decomposition of the parameter space into segments on which the Gröbner bases of specializations have a constant “shape.” Projects in this area could have a theoretical orientation, or could focus on implemen- tation. As of July 2014 a package for the Singular computer algebra system is under development (see http://www-ma2.upc.edu/montes/). Another possi- bility for a larger project would be to include the article MONTES and RE- CIO (2014), which uses Gröbner covers to discover “missing hypotheses” for automatic discovery of theorems in elementary geometry, an extension of the automatic theorem proving considered in Chapter 6. 11. Gröbner Bases for Modules and Applications. The notion of an ideal I ⊆ r k[x1,...,xn] can be generalized to a submodule M ⊆ k[x1,...,xn] and there is a natural way to define term orders (touched on briefly in Chapter 10, §4) and Gröbner bases for modules. The basic definitions can be found in ADAMS and LOUSTAUNAU (1994), BECKER and WEISPFENNING (1993), COX,LITTLE and O’SHEA (2005), KREUZER and ROBBIANO (2000), and EISENBUD (1999). Indeed, even the theory of Gröbner bases for ideals naturally involves modules such as the module of syzygies on a set of generators for an ideal or their leading terms, so KREUZER and ROBBIANO (2000) develops the theory for ideals and for modules simultaneously. One possible project here would be to understand how this all works and how Buchberger’s algorithm generalizes to this setting. This is implemented, for example, in CoCoA, Macaulay2, Sage and Singular and it can be emulated via a standard trick in Maple [the idea is discussed in Ex- ercise 6 of Chapter 2, Section 5 in COX,LITTLE and O’SHEA (2005)]. Another project topic building on this would be the application of modules to the con- struction of multivariate polynomial splines—piecewise polynomial functions of a given degree on a given polyhedral decomposition of a region in Rn with §2 Suggested Projects 625

a given degree of smoothness. This is discussed in Chapter 8 of COX,LITTLE and O’SHEA (2005) and the sources cited there. Other applications that might be considered in a project include methods for multivariate Padé approximation [see FARR and GAO (2006) for the latest work on this] and related decoding al- gorithms for certain error control codes [see Chapter 9 in COX,LITTLE and O’SHEA (2005)]. 12. Border Bases. As we know from Chapter 5, if I is a zero-dimensional ideal, the monomials in the complement of LT(I) form a vector space basis for k[x1,...,xn]/I and linear algebra in those quotient rings has appeared in several of the project topics listed above. From work of Stetter, Möller and Mourrain, it is known there are other ways to find good monomial bases for k[x1,...,xn]/I yielding normal forms modulo I and special sets of generators for I that are different from the corresponding information obtained from any Gröbner basis. Moreover, some of these alternatives yield representations of k[x1,...,xn]/I that make it easier to compute good numerical approximations for the points in V(I). There is now a well-developed algebraic theory of border bases for I that parallels Gröbner basis theory, but with some interesting twists. Several inter- esting project topics here might involve presenting this theory or implement- ing border division and normal forms in a computer algebra system. Chapter 4 of DICKENSTEIN and EMIRIS (2005)—by Kehrein, Kreuzer, and Robbiano— contains an excellent summary of this theory. 13. Algebraic Statistics. The rapidly developing field of algebraic statistics is based on the idea that many statistical models (i.e., families of probability dis- tributions) for discrete data can be seen as algebraic varieties. Moreover the geometry of those varieties determines the behavior of parameter estimation and statistical inference procedures. A typical example is the family of bino- mial distributions. The probability that a binomial random variable X (based on n trials with success probability θ on each trial) takes value k ∈{0, 1,...,n} is   n p = P(X = k)= θk(1 − θ)n−k. k k

Viewing these as components of a curve parametrized by real θ satisfying 0 ≤ θ ≤ 1, we have a subset of the real points of a rescaled of degree n lying in the hyperplane defined by the equation p0+···+pn = 1. Given some number of observations we might want to estimate θ using maximum likelihood estimation, and this leads to a constrained opti- mization problem involving polynomial equations. A good introduction to the basics of model construction and experimental design can be found in PISTONE, RICCOMAGNO, and WYNN (2001). A discussion of algebraic techniques for maximum likelihood estimation appears in Chapter 2 of DRTON,STURMFELS, and SULLIVANT (2009). One of the main applications of these ideas so far has been in genomics. For students with the requisite background, the Jukes-Cantor models studied in Part I of PACHTER and STURMFELS (2005) could form the basis of a more extensive project. A different sort of application to design of 626 Appendix D Independent Projects

experiments can be found in Chapter 4 by Kehrein, Kreuzer, and Robbiano in DICKENSTEIN and EMIRIS (2005). This draws on the material on border bases discussed in the previous topic description. 14. Graph Coloring Problems and Sudoku. The final project idea we will pro- pose involves the use of polynomials and varieties to study the solution of var- ious graph coloring problems and related questions. The first discussion of this connection that we know of appears in BAYER (1982), which uses polynomial methods to solve the three-coloring problem for graphs. Section 2.7 of ADAMS and LOUSTAUNAU (1994) contains a discussion of this as well. More recently, a number of authors have presented applications of these ideas to the popu- lar Sudoku and similar puzzles. ARNOLD,LUCAS and TAALMAN (2010)dis- cusses different polynomial translations focusing on a 4×4 version of the usual Sudoku. Chapter 3 of DECKER and PFISTER (2013) presents one particular polynomial translation and gives Singular procedures for generating the rele- vant polynomial ideals and solving standard Sudoku puzzles. Several different sorts of projects would be possible here from more theoretical discussions to implementations of one or more approaches, comparisons between them, and so on. There are many other places where instructors can look for potential project top- ics for students, including the following: • COX,LITTLE and O’SHEA (2005) includes material on local rings, additional topics in algebraic coding theory, and applications to combinatorial enumeration problems and integer programming that could serve as the basis for projects. • ADAMS and LOUSTAUNAU (1994) contains sections on minimal polynomials of field extensions and integer programming. These could serve as the basis for interesting projects. • EISENBUD (1999) has a list of seven projects in section 15.12. These are more sophisticated and require more background in commutative algebra, but they also introduce the student to some topics of current interest in algebraic geometry. • KREUZER and ROBBIANO (2000) and KREUZER and ROBBIANO (2005) contain a large number of tutorials on various topics (usually at least one at the end of each section). These would be especially good for smaller-scale projects where the path to be followed by the student would be laid out in detail at the start. If you find good student projects different from those listed above, we would be interested in hearing about them. There are a lot of wonderful things one can do with Gröbner bases and algebraic geometry, and the projects described in this appendix barely scratch the surface. References

J. Abbott, A. Bigatti, G. Lagorio, CoCoA-5: A System for Doing Computations in Commutative Algebra (2014), available at http://cocoa.dima.unige.it W. Adams, P. Loustaunau, An Introduction to Gröbner Bases. Graduate Studies in Mathematics, vol. 3 (AMS, Providence, 1994) C. Aholt, B. Sturmfels, R. Thomas, A Hilbert scheme in computer vision. Can. J. Math. 65, 961–988 (2013) D. Anderson, R. Goldman, T. Sederberg, Implicit representation of parametric curves and surfaces. Comput. Vis. Graph. Image Des. 28, 72–84 (1984a) D. Anderson, R. Goldman, T. Sederberg, Vector elimination: a technique for the im- plicitization, inversion and intersection of planar parametric rational polynomial curves. Comput. Aided Geom. Des. 1, 327–356 (1984b) E. Arnold, S. Lucas, L. Taalman, Gröbner basis representations of sudoku. Coll. Math. J. 41, 101–112 (2010) M. Aschenbrenner, Ideal membership in polynomial rings over the integers. J. Am. Math. Soc. 17, 407–441 (2004) M.F. Atiyah, I.G. MacDonald, Introduction to Commutative Algebra (Addison- Wesley, Reading, MA, 1969) P. Aubry, D. Lazard, M. Moreno Maza, On the theories of triangular sets. J. Symb. Comput. 28, 105–124 (1999) J. Baillieul et al., Robotics. In: Proceedings of Symposia in Applied Mathematics, vol. 41 (American Mathematical Society, Providence, Rhode Island, 1990) A.A. Ball, The Parametric Representation of Curves and Surfaces Using Rational Polynomial Functions,inThe Mathematics of Surfaces, II, ed. by R.R. Martin (Clarendon Press, Oxford, 1987), pp. 39–61 D. Bayer, The division algorithm and the Hilbert scheme, Ph.D. thesis, Harvard University, 1982 D. Bayer, D. Mumford, What Can Be Computed in Algebraic Geometry?,inCom- putational Algebraic Geometry and Commutative Algebra, ed. by D. Eisenbud, L. Robbiano (Cambridge University Press, Cambridge, 1993), pp. 1–48 D. Bayer, M. Stillman, A criterion for detecting m-regularity. Invent. Math. 87, 1–11 (1987a)

© Springer International Publishing Switzerland 2015 627 D.A. Cox et al., Ideals, Varieties, and Algorithms, Undergraduate Texts in Mathematics, DOI 10.1007/978-3-319-16721-3 628 References

D. Bayer, M. Stillman, A theorem on refining division orders by the reverse lexico- graphic order. Duke J. Math. 55, 321–328 (1987b) D. Bayer, M. Stillman, On the Complexity of Computing Syzygies,inComputa- tional Aspects of Commutative Algebra, ed. by L. Robbiano (Academic Press, New York, 1988), pp. 1–13 T. Becker, V. Weispfenning, Gröbner Bases (Springer, New York-Berlin- Heidelberg, 1993) C.T. Benson, L.C. Grove, Finite Reflection Groups, 2nd edn. (Springer, New York- Berlin-Heidelberg, 1985) A. Bigatti, Computation of Hilbert-Poincaré series. J. Pure Appl. Algebra 119, 237–253 (1997) E. Brieskorn, H. Knörrer, Plane Algebraic Curves (Birkhäuser, Basel-Boston- Stuttgart, 1986) J.W. Bruce, P.J. Giblin, Curves and Singularities, 2nd edn. (Cambridge University Press, Cambridge, 1992) B. Buchberger, Ein algorithmus zum auffinden der basiselemente des restklassen- rings nach einem nulldimensionalen polynomideal, Doctoral Thesis, Mathemati- cal Institute, University of Innsbruck, 1965. English translation An algorithm for finding the basis elements of the residue class ring of a zero dimensional polyno- mial ideal by M.P. Abramson, J. Symb. Comput. 41, 475–511 (2006) B. Buchberger, Groebner Bases: An Algorithmic Method in Polynomial Ideal The- ory,inMultidimensional Systems Theory, ed. by N.K. Bose (D. Reidel Publish- ing, Dordrecht, 1985), pp. 184–232 M. Caboara, J. Perry, Reducing the size and number of linear programs in a dynamic Gröbner basis algorithm. Appl. Algebra Eng. Comm. Comput. 25, 99–117 (2014) J. Canny, D. Manocha, Algorithm for implicitizing rational parametric surfaces. Comput. Aided Geom. Des. 9, 25–50 (1992) S.-C. Chou, Mechanical Geometry Theorem Proving (D. Reidel Publishing, Dor- drecht, 1988) H. Clemens, A Scrapbook of Complex Curve Theory, 2nd edn. (American Mathe- matical Society, Providence, Rhode Island, 2002) A. Cohen, H. Cuypers, H. Sterk (eds.), Some Tapas of Computer Algebra (Springer, Berlin-Heidelberg-New York, 1999) S. Collart, M. Kalkbrener, D. Mall, Converting bases with the Gröbner walk. J. Symb. Comput. 24, 465–469 (1998) D. Cox, J. Little, D. O’Shea, Using Algebraic Geometry, 2nd edn. (Springer, New York, 2005) H.S.M. Coxeter, Regular Polytopes, 3rd edn. (Dover, New York, 1973) J.H. Davenport, Y. Siret, E. Tournier, Computer Algebra, 2nd edn. (Academic, New York, 1993) W. Decker, G.-M. Greuel, G. Pfister, H. Schönemann, Singular 3-1-6—A computer algebra system for polynomial computations (2012), available at http://www. singular.uni-kl.de W. Decker, G. Pfister, A First Course in Computational Algebraic Geometry.AIMS Library Series (Cambridge University Press, Cambridge, 2013) References 629

H. Derksen, G. Kemper, Computational Invariant Theory (Springer, Berlin- Heidelberg-New York, 2002) A. Dickenstein, I. Emiris (eds.), Solving Polynomial Equations (Springer, Berlin- Heidelberg-New York, 2005) J. Draisma, E. Horobe¸t, G. Ottaviani, B. Sturmfels, R. Thomas, The Euclidean dis- tance degree of an algebraic variety (2013). arXiv:1309.0049 [math.AG] M. Drton, B. Sturmfels, S. Sullivant, Lectures on Algebraic Statistics. Oberwohlfach Mathematical Seminars, vol. 39 (Birkhäuser, Basel-Boston-Berlin, 2009) T.W. Dubé, The structure of polynomial ideals and Gröbner bases. SIAM J. Comput. 19, 750–775 (1990) D. Dummit, R. Foote, Abstract Algebra, 3rd edn. (Wiley, New York, 2004) C. Eder, J. Faugère, A survey on signature-based Gröbner basis algorithms (2014). arXiv:1404.1774 [math.AC] D. Eisenbud, Commutative Algebra with a View Toward Algebraic Geometry,3d corrected printing (Springer, New York-Berlin-Heidelberg, 1999) D. Eisenbud, C. Huneke, W. Vasconcelos, Direct methods for primary decomposi- tion. Invent. Math. 110, 207–235 (1992) J. Farr, S. Gao, Gröbner bases and generalized Padé approximation. Math. Comp. 75, 461–473 (2006) J. Faugère, A new efficient algorithm for computing Gröbner bases (F4). J. Pure Appl. Algebra 139, 61–88 (1999) J. Faugère, Finding All the Solutions of Cyclic 9 Using Gröbner Basis Techniques,in Computer Mathematics (Matsuyama, 2001), Lecture Notes Ser. Comput., vol. 9 (World Scientific, River Edge, NJ, 2001), pp. 1–12 J. Faugère, A new efficient algorithm for computing Gröbner bases without reduc- tion to zero F5. In: Proceedings of ISSAC’02, Villeneuve d’Ascq, France,July 2002, 15–82; revised version from http://www-polsys.lip6.fr/~jcf/Publications/ index.html J. Faugère, P. Gianni, D. Lazard, T. Mora, Efficient change of ordering for Gröbner bases of zero-dimensional ideals. J. Symb. Comput. 16, 329–344 (1993) G. Fischer, Plane Algebraic Curves (AMS, Providence, Rhode Island, 2001) J. Foley, A. van Dam, S. Feiner, J. Hughes, Computer Graphics: Principles and Practice, 2nd edn. (Addison-Wesley, Reading, MA, 1990) W. Fulton, Algebraic Curves (W. A. Benjamin, New York, 1969) M. Gallet, H. Rahkooy, Z. Zafeirakopoulos, On Computing the Elimination Ideal Using Resultants with Applications to Gröbner Bases (2013). arXiv:1307.5330 [math.AC] J. von zur Gathen, J. Gerhard, Modern Computer Algebra, 3rd edn. (Cambridge University Press, Cambridge, 2013) C.F. Gauss, Werke, vol. III (Königlichen Gesellschaft der Wissenschaften zu Göttin- gen, Göttingen, 1876) R. Gebauer, H.M. Möller, On an Installation of Buchberger’s Algorithm,inCompu- tational Aspects of Commutative Algebra, ed. by L. Robbiano (Academic Press, New York, 1988), pp. 141–152 630 References

I. Gelfand, M. Kapranov, A. Zelevinsky, Discriminants, Resultants and Multidimen- sional Determinants (Birkhäuser, Boston, 1994) P. Gianni, B. Trager, G. Zacharias, Gröbner bases and primary decomposition of polynomial ideals,inComputational Aspects of Commutative Algebra, ed. by L. Robbiano (Academic Press, New York, 1988), pp. 15–33 A. Giovini, T. Mora, G. Niesi, L. Robbiano, C. Traverso, “One sugar cube, please,” or Selection Strategies in the Buchberger Algorithm, in ISSAC 1991, Proceedings of the 1991 International Symposium on Symbolic and Algebraic Computation, ed. by S. Watt (ACM Press, New York, 1991), pp. 49–54 M. Giusti, J. Heintz, La détermination des points isolés et de la dimension d’une var- iété algébrique peut se faire en temps polynomial,inComputational Algebraic Geometry and Commutative Algebra, ed. by D. Eisenbud, L. Robbiano (Cam- bridge University Press, Cambridge, 1993), pp. 216–256 L. Glebsky, A proof of Hilbert’s Nullstellensatz Based on Groebner bases (2012). arXiv:1204.3128 [math.AC] R. Goldman, Pyramid Algorithms: A Dynamic Programming Approach to Curves and Surfaces in Geometric Modeling (Morgan Kaufman, Amsterdam, Boston, 2003) D. Grayson, M. Stillman, Macaulay2, a Software System for Research (2013), ver- sion 1.6, available at http://www.math.uiuc.edu/Macaulay2/ G.-M. Greuel, G. Pfister, A Singular Introduction to Commutative Algebra, 2nd edn. (Springer, New York, 2008) P. Griffiths, Introduction to Algebraic Curves. Translations of Mathematical Mono- graphs, vol. 76 (AMS, Providence, 1989) P. Gritzmann, B. Sturmfels, Minkowski addition of polytopes: computational com- plexity and applications to Gröbner bases. SIAM J. Discrete Math. 6, 246–269 (1993) J. Harris, Algebraic Geometry, A First Course, corrected edition (Springer, New York, 1995) R. Hartshorne, Algebraic Geometry (Springer, New York, 1977) G. Hermann, Die Frage der endlich vielen schritte in der theorie der polynomideale, Math. Ann. 95, 736–788 (1926) A. Heyden, K. Åström, Algebraic properties of multilinear constraints. Math. Meth- ods Appl. Sci. 20, 1135–1162 (1997) D. Hilbert, Über die Theorie der algebraischen Formen, Math. Ann. 36, 473–534 (1890). Reprinted in Gesammelte Abhandlungen, vol. II (Chelsea, New York, 1965) D. Hilbert, Theory of Algebraic Invariants (Cambridge University Press, Cam- bridge, 1993) J. Hilmar, C. Smyth, Euclid meets Bézout: intersecting algebraic plane curves with the Euclidean algorithm. Am. Math. Monthly 117, 250–260 (2010) H. Hironaka, Resolution of singularities of an algebraic variety over a field of char- acteristic zero I, II. Ann. Math. 79, 109–203, 205–326 (1964) W.V.D. Hodge, D. Pedoe, Methods of Algebraic Geometry, vol. I and II (Cambridge University Press, Cambridge, 1968) References 631

M. Jin, X. Li, D. Wang, A new algorithmic scheme for computing characteristic sets. J. Symb. Comput. 50, 431–449 (2013) J. Jouanolou, Le formalisme du résultant. Adv. Math. 90, 117–263 (1991) M. Kalkbrener, Implicitization by Using Gröbner Bases, Technical Report RISC- Series 90-27 (University of Linz, Austria, 1990) K. Kendig, Elementary Algebraic Geometry, 2nd edn. (Dover, New York, 2015) F. Kirwan, Complex Algebraic Curves. London Mathematical Society Student Texts, vol. 23 (Cambridge University Press, Cambridge, 1992) F. Klein, Vorlesungen über das Ikosaeder und die Auflösung der Gleichungen vom Fünften Grade (Teubner, Leipzig, 1884). English Translation, Lectures on the Ikosahedron and the Solution of Equations of the Fifth Degree (Trubner, London, 1888). Reprinted by Dover, New York (1956) J. Koh, Ideals generated by quadrics exhibiting double exponential degrees. J. Al- gebra 200, 225–245 (1998) M. Kreuzer, L. Robbiano, Computational Commutative Algebra, vol. 1 (Springer, New York, 2000) M. Kreuzer, L. Robbiano, Computational Commutative Algebra, vol. 2 (Springer, New York, 2005) T. Krick, A. Logar, An Algorithm for the Computation of the Radical of an Ideal in the Ring of Polynomials,inApplied Algebra, Algebraic Algorithms and Error- Correcting Codes, ed. by H.F. Mattson, T. Mora, T.R.N. Rao. Lecture Notes in Computer Science, vol. 539 (Springer, Berlin, 1991), pp. 195–205 D. Lazard, Gröbner Bases, Gaussian Elimination and Resolution of Systems of Al- gebraic Equations,inComputer Algebra: EUROCAL 83, ed. by J.A. van Hulzen. Lecture Notes in Computer Science, vol. 162 (Springer, Berlin, 1983), pp. 146– 156 D. Lazard, Systems of Algebraic Equations (Algorithms and Complexity),inCom- putational Algebraic Geometry and Commutative Algebra, ed. by D. Eisenbud, L. Robbiano (Cambridge University Press, Cambridge, 1993), pp. 84–105 M. Lejeune-Jalabert, Effectivité des calculs polynomiaux, Cours de DEA 1984–85, Institut Fourier, Université de Grenoble I (1985) F. Macaulay, On some formulæin elimination. Proc. Lond. Math. Soc. 3, 3–27 (1902) D. Manocha, Solving systems of polynomial equations. IEEE Comput. Graph. Appl. 14, 46–55 (1994) Maple 18, Maplesoft, a division of Waterloo Maple Inc., Waterloo, Ontario (2014). http://www.maplesoft.com M. Marinari, H. Möller, T. Mora, Gröbner bases of ideals defined by functionals with an application to ideals of projective points. Appl. Algebra Eng. Comm. Comput. 4, 103–145 (1993) Mathematica 10, Wolfram Research, Inc., Champaign, Illinois (2014). http://www. wolfram.com/mathematica H. Matsumura, Commutative Ring Theory (Cambridge University Press, Cam- bridge, 1989) 632 References

E. Mayr, A. Meyer, The complexity of the word problem for commutative semi- groups and polynomial ideals. Adv. Math. 46, 305–329 (1982) R. Mines, F. Richman, W. Ruitenburg, A Course in Constructive Algebra (Springer, New York-Berlin-Heidelberg, 1988) B. Mishra, Algorithmic Algebra. Texts and Monographs in Computer Science (Springer, New York-Berlin-Heidelberg, 1993) H.M. Möller, F. Mora, Upper and Lower Bounds for the Degree of Groebner Bases, in EUROSAM 1984, ed. by J. Fitch. Lecture Notes in Computer Science, vol. 174 (Springer, New York-Berlin-Heidelberg, 1984), pp. 172–183 A. Montes, T. Recio, Generalizing the Steiner–Lehmus theorem using the Gröbner cover. Math. Comput. Simul. 104, 67–81 (2014) A. Montes, M. Wibmer, Gröbner bases for polynomial systems with parameters. J. Symb. Comput. 45, 1391–1425 (2010) D. Mumford, Algebraic Geometry I: Complex Projective Varieties, cCorrected 2nd printing (Springer, New York-Berlin-Heidelberg, 1981) L. Pachter, B. Sturmfels (eds.), Algebraic Statistics for Computational Biology (Cambridge University Press, Cambridge, 2005) R. Paul, Robot Manipulators: Mathematics, Programming and Control (MIT Press, Cambridge, MA, 1981) G. Pistone, E. Riccomagno, H. Wynn, Algebraic Statistics: Computational Commu- tative Algebra in Statistics. Monographs on Statistics and Applied Probability, vol. 89 (Chapman and Hall, Boca Raton, FL, 2001) L. Robbiano, On the theory of graded structures. J. Symb. Comp. 2, 139–170 (1986) F. Rouillier, Solving zero-dimensional systems through the rational univariate rep- resentation. Appl. Algebra Eng. Comm. Comput. 5, 433–461 (1999) P. Schauenburg, A Gröbner-based treatment of elimination theory for affine vari- eties. J. Symb. Comput. 42, 859–870 (2007) A. Seidenberg, Constructions in algebra. Trans. Am. Math. Soc. 197, 273–313 (1974) A. Seidenberg, On the Lasker–Noether decomposition theorem. Am. J. Math. 106, 611–638 (1984) J.G. Semple, L. Roth, Introduction to Algebraic Geometry (Clarendon Press, Oxford, 1949) I.R. Shafarevich, Basic Algebraic Geometry 1, 2, 3rd edn. (Springer, New York- Berlin-Heidelberg, 2013) L. Smith, Polynomial Invariants of Finite Groups (A K Peters, Wellesley, MA, 1995) W. Stein et al., Sage Mathematics Software, version 6.3. The Sage Development Team (2014), available at http://www.sagemath.org B. Sturmfels, Computing final polynomials and final syzygies using Buchberger’s Gröbner bases method. Results Math. 15, 351–360 (1989) B. Sturmfels, Gröbner Bases and Convex Polytopes. University Lecture Series, vol. 8 (American Mathematical Society, Providence, RI, 1996) B. Sturmfels, Algorithms in Invariant Theory, 2nd edn. Texts and Monographs in Symbolic Computation (Springer, New York-Vienna, 2008) References 633

I. Swanson, On the embedded primes of the Mayr-Meyer ideals. J. Algebra 275, 143–190 (2004) C. Traverso, Hilbert functions and the Buchberger algorithm. J. Symb. Comput. 22, 355–376 (1997) P. Ullrich, Closed-form formulas for projecting constructible sets in the theory of algebraically closed fields. ACM Commun. Comput. Algebra 40, 45–48 (2006) B. van der Waerden, Moderne Algebra, Volume II (Springer, Berlin, 1931). English translations, Modern Algebra, Volume II (F. Ungar Publishing, New York, 1950); Algebra, Volume 2 (F. Ungar Publishing, New York, 1970); and Algebra, Volume II (Springer, New York-Berlin-Heidelberg, 1991). The chapter on Elimination Theory is included in the first three German editions and the 1950 English trans- lation, but all later editions (German and English) omit this chapter R. Walker, Algebraic Curves (Princeton University Press, Princeton, 1950). Reprinted by Dover, 1962 D. Wang, Elimination Methods, Texts and Monographs in Symbolic Computation (Springer, Vienna, 2001) V. Weispfenning, Comprehensive Gröbner bases. J. Symb. Comput. 14, 1–29 (1992) F. Winkler, On the complexity of the Gröbner bases algorithm over K[x, y, z],in EUROSAM 1984, ed. by J. Fitch. Lecture Notes in Computer Science, vol. 174 (Springer, New York-Berlin-Heidelberg, 1984), pp. 184–194 W.-T. Wu, On the decision problem and the mechanization of theorem-proving in elementary geometry,inAutomated Theorem Proving: After 25 Years, ed. by W. Bledsoe, D. Loveland. Contemporary Mathematics, vol. 29 (American Mathe- matical Society, Providence, Rhode Island, 1983), pp. 213–234 W.-T. Wu, Mathematics Mechanization: Mechanical Geometry Theorem-Proving, Mechanical Geometry Problem-Solving and Polynomial Equations-Solving (Kluwer, Dordrecht, 2001) Index

Abbott, J., 611, 627 dimension (affine variety), 491 Adams, W., 218, 624, 626, 627 dimension (projective variety), 493 admissible geometric theorem, 322 division in k[x], 38–40, 54, 171, 241, 284, affine cone over a projective variety, see 288, 335 cone, affine division in k[x1,...,xn], 33, 62–70, 248, affine Dimension Theorem, see Theorem, 255, 280, 315, 335, 349, 355, 413, Affine Dimension 569, 582, 583 affine Hilbert function, see Hilbert function, Euclidean, 42–44, 95, 96, 161, 170, 171, affine 187, 462 affine Hilbert polynomial, see polynomial, F4, ix, 567–576, 590, 617 affine Hilbert F5, ix, 576, 580, 581, 585, 589 affine space, see space, affine FGLM, 564, 590, 621 affine transformation, see transformation, finiteness of solutions, 251, 606 affine Gaussian elimination (row reduction), 9, affine variety, see variety, affine 54, 94, 166, 548, 549, 567, 568, 570, Agnesi, M., 24 572, 575 Aholt, C., 623, 627 greatest common divisor, 41, 44, 187, 196 algebra over a field, 277 Gröbner walk, 564, 590, 608, 623 finitely generated, 277 Hilbert driven Buchberger, ix, 550–567, homomorphism, 278 590 reduced, 278 HPS (Hilbert-Poincaré series), 556–558 algebraic statistics, 625–626 ideal equality, 94 algebraically independent, 306, 327–329, ideal intersection, 193–195 333, 337, 507–511, 513 ideal membership, 97, 151, 184 algorithm ideal quotient, 205 algebra (subring) membership, 349, 369 improved Buchberger, 109–119 associated primes, 231 irreducibility, 218 Buchberger’s, 80, 90–97, 109–119, 413, least common multiple, 196 539–543, 548, 557–560 Matrix F5, 589 Closure Theorem, 225 polynomial implicitization, 135 computation in k[x1,...,xn]/I, 251 primality, 218 ComputeM (F4 SymbolicPreprocessing), primary decomposition, 231 571 projective closure, 419 consistency, 179 projective elimination, 429 degree by degree Buchberger (homoge- pseudodivision, 335–336 neous ideals), 542 radical generators, 184

© Springer International Publishing Switzerland 2015 635 D.A. Cox et al., Ideals, Varieties, and Algorithms, Undergraduate Texts in Mathematics, DOI 10.1007/978-3-319-16721-3 636 Index

radical ideal, 184 Caboara, M., 117, 628 radical membership, 184, 185, 325 Canny, J., 140, 628 rational implicitization, 139 centroid, 331–333, 343 regular s-reduction, 583, 591 chain resultant, 172 ascending, of ideals, 79, 80 Ritt’s decomposition, 337, 342, 622 descending, of varieties, 82, 212, 226, saturation, 206 409 signature-based Gröbner basis, 576, E1 characteristic of a field, see field tangent cone, 528 characteristic sets, 337, 342, 622 altitude, 322, 331 Chou, S.-C., 335, 338, 342, 343, 622, 628 Anderson, D., 140, 622, 627 circumcenter, 332 Arnold, E., 626, 627 cissoid, see curve, cissoid of Diocles ascending chain condition (ACC), 80, 82, classification of varieties, 238, 260, 275 92, 115, 202, 212, 409, 478, 572 Classification Theorem for Quadrics, see Aschenbrenner, M., 620, 627 Theorem, Normal Form, for Quadrics Åström, K., 623, 630 Clemens, H., 464, 628 Atiyah, M.F., 230, 627 closure Aubry, P., 622, 627 projective, 417–422, 431, 432, 439, 502, automatic geometric theorem proving, 505, 506, 536 319–343, 624 Zariski, 131, 199–205, 208, 209, 211, automorphism of a variety, 264 216, 219, 226, 282, 287, 531, 532, 537 Closure Theorem, 108, see Theorem, Closure Bézier, P., 21 CoCoA, see computer algebra systems, cubic, see cubic, Bézier CoCoA Baillieul, J., 314, 627 coefficient, 2 Ball, A.A., 27, 627 cofactor, 171, 280, 549, 597 Barrow, I., 24 Cohen, A., 620, 628 basis Collart, S., 564, 624, 628 minimal, 36, 74, 93 collinear, 321–323, 331, 332 minimal Gröbner, see Gröbner basis, colon ideal, see ideal, quotient minimal commutative ring, see ring, commutative of an ideal, see ideal, basis for complexity, 116–119, 255, 620 reduced Gröbner, see Gröbner basis, comprehensive Gröbner basis, see Gröbner reduced basis, comprehensive standard, 78 computer aided geometric design (CAGD), Bayer, D., x, 76, 117, 128, 540, 620, 626, 20–22 627 computer algebra systems Becker, T., 60, 83, 84, 116, 194, 218, 309, CoCoA, 184, 231, 495, 611–612, 624, 543, 624, 628 627 Benson, C.T., 357, 623, 628 FGb package, 617 Bernoulli, J., 24 gfan, 623 Bezout’s Theorem, see Theorem, Bezout Macaulay, 540 Bigatti, A., 557, 611, 627, 628 Macaulay2, 184, 231, 495, 613–614, 623, bihomogeneous polynomial, see polyno- 624, 630 mial, bihomogeneous Magma, 590, 617, 624 birationally equivalent varieties, 273–276, Maple, 231, 495, 560, 590, 604–606, 621, 302, 512, 514 624, 631 blow-up, 536–538 Mathematica, 607–608, 624, 631 Brieskorn, E., 464, 467, 621, 628 MATLAB, 617 Bruce, J.W., 143, 148, 152, 622, 628 REDUCE, 617 Buchberger’s Criterion, 86–88, 91, 92, Sage, 495, 608–610, 623, 624, 632 104–113, 568, 569, 573, 576, 584 Singular, 184, 231, 495, 590, 614–616, Buchberger, B., vii, 79, 116, 248, 314, 628 623, 624, 626, 628 Index 637 cone degenerate case of a geometric configura- affine, 405, 411, 412, 494, 498, 527, 536 tion, 324, 326, 327, 329, 334, 340, projectivized tangent, 537–538 466 tangent, 520, 527–534 degeneration, 467 configuration space, see space, configuration degree (of a robot) of a pair, 540, 569 congruence (mod I), 240 of a projective variety, 505–506 , 6, 27, 142, 437, 439 total, of a monomial, 2 consistency question, 11, 46, 179, 185 total, of a polynomial, 2 constructible set, 131, 226–228, 309 transcendence of a field extension, 513 control transcendence, of a field extension, 514 points, 21, 22, 28 weighted, of a monomial, 433, 436, 566 polygon, 21, 28 dehomogenization coordinate ring of a variety, see ring, coordinate (k[V]) of a polynomial, 399, 528, 543, 545, 590 coordinates derivative, formal, 47, 173, 247, 516, 523 homogeneous, 385, 388, 396 Derksen, H., 369, 370, 623, 629 Plücker, 445–447 descending chain condition (DCC), 82, 212, coset, 382, 383 226, 229, 409 Cox, D., 127, 170, 254, 462, 564, 566, 581, desingularization, 538 620–625, 628 determinant, 118, 163, 279, 312, 428, 445, Coxeter, H.S.M., 357, 628 525, 596–597 Cramer’s Rule, 165, 166, 171, 428, 597 trick, 280 criterion Vandermonde, 46 rewriting, 585, 589 Dickenstein, A., 127, 140, 625, 626, 629 sygygy, 585 Dickson’s Lemma, 72, 73, 75, 77 cross ratio, 331 difference of varieties, 199, 425 cube, 25–26, 357, 362–363, 372, 382, 623 dimension, ix, 3–11, 101, 117, 145, 249– cubic 252, 254–258, 260, 275, 287, 311, Bézier, 21, 27 318, 469–473, 477–514, 518–523, cubic, twisted, see curve, 533 curve at a point, 520, 533 cissoid of Diocles, 25–26 question, 11, 486–525 dual, 383, 464, 621 Dimension Theorem, see Theorem, family of, 147 Dimension folium of Descartes, 142 discriminant, 173, 353 four-leaved rose, 12, 154 division algorithm, see algorithm, division rational normal, 420–421, 625 in k[x] or k[x1,...,xn] , 24 dodecahedron, 363 twisted cubic, 8, 19–20, 31, 33, 36, 69, dominating map, see mapping, dominating 88, 181, 207, 264, 266, 267, 400, Draisma, J., 622, 623, 629 402–404, 406, 415–418, 420, 490, 505–507 Drton, M., 625, 629 cuspidal edge, 267 dual Cuypers, H., 620, 628 curve, see curve, dual projective plane, 395, 436 Davenport, J.H., 196, 628 projective space, 405, 445 Decker, W., 615, 626, 628 variety, 383 decomposition duality minimal primary, of an ideal, 229–230 of polyhedra, 363 minimal, of a variety, 215–216, 454, 473 projective principle of, 387 minimal, of an ideal, 216 Dubé, T., 116, 629 primary, 229–231, 606, 610, 612, 614, Dummit, D., 171, 173, 285, 352, 513, 616 595–597, 629 638 Index echelon matrix, 51–52, 79, 95–96, 447, 450, of finite (positive) characteristic, 188 547–549, 568–570, 572, 573 of fractions, 268, 511, 614 Eder, C., 577, 585, 587, 589, 629 of rational functions, 2, 15, 306, 336, 456, Eisenbud, D., 60, 184, 218, 624, 626, 629 612, 616 elimination ideal, see ideal, elimination of rational functions on V (k(V)), elimination order, see monomial ordering, 268–275, 413, 511–513 elimination final remainder (in Wu’s Method), 340 elimination step, 122 finite generation of invariants, 361, 368 Elimination Theorem, see Theorem, finite morphism, 287, 289 Elimination finiteness question, 11, 251–255, 606 elimination theory, 17 Finiteness Theorem, see Theorem, projective, 422 Finiteness Emiris, I., 127, 140, 625, 626, 629 Fischer, G., 464, 621, 629 Enneper surface, see surface, Enneper Foley, J., 623, 629 envelope, 147–152, 154–155, 621 folium of Descartes, see curve, folium of equivalence Descartes birational, 273–276, 302, 512 follows generically from, 328 projective, 437–444, 449, 451 follows strictly from, 325 error control coding theory, 625 Foote, R., 171, 173, 285, 352, 513, 595–597, Euclidean distance degree, 622 629 Euler line, 332, 333, 343 forward kinematic problem, see kinematic Euler’s formula, 405 problem of robotics, forward evolute, 622 Fulton, W., 462, 464, 629 extension step, 122 function Extension Theorem, 108, see Theorem, algebraic, 129 Extension coordinate, 258 defined by a polynomial, 3–4, 235–238, F4 algorithm, see algorithm, F4 257, 262–264, 507 F5 algorithm, see algorithm, F5 identity, xvi, 260, 270–273 factorization of polynomials, 47, 83, 186, polynomial, 479, 487 188, 193, 195, 236, 239, 276, 453, rational, 15, 136, 167, 268–275, 462 456, 458, 461, 463, 594, 595 function field, see field, of rational functions family of curves, see curve, family of on V (k(V)) Farr, J., 625, 629 Fundamental Theorem of Algebra, see Faugère, J.-C., ix, 564, 567, 574–577, 585, Theorem, Fundamental of Algebra 587, 589, 621, 629 Fundamental Theorem of Symmetric Poly- Feiner, S., 623, 629 nomials, see Theorem, Fundamental, Fermat’s Last Theorem, see Theorem, of Symmetric Polynomials Fermat’s Last FGLM algorithm, see algorithm, FGLM Gallet, M., 174, 622, 629 fiber of a mapping, 238, 281–283, 286–289, Gao, S., 625, 629 511 von zur Gathen, J., 40, 43, 46, 117, 127, field, 1, 593 595, 629 algebraically closed, 5, 34, 132, 159–160, Gauss, C.F., 348, 629 164, 168–170, 176–184, 199, 202– Gaussian elimination, see algorithm, 204, 207, 210–211, 405, 410–412, Gaussian elimination (row reduction) 414, 419, 426–427, 431–434, 442– Gebauer, R., 116, 629 444, 450, 460, 491, 493, 498–503, Gelfand, I., 170, 630 509–511, 524, 528 genomics, 625 finite,2,5,36 Geometric Extension Theorem, see infinite, 3–4, 36, 134, 138, 208, 284, 287, Theorem, Geometric Extension 408, 409, 507, 533 Gerhard, J., 40, 43, 46, 117, 127, 595, 629 of characteristic zero, 188, 355, 364, 365, gfan, see computer algebra systems, gfan 368, 373, 377, 615 Gianni, P., 184, 218, 564, 621, 629, 630 Index 639

Giblin, P.J., 143, 148, 152, 622, 628 Giovini, A., 116, 630 of rotations of cube, 362 Giusti, M., 117, 630 of rotations of tetrahedron, 363 GL(n, k), see group, general linear orbit of a point, 378 Glebsky, L., ix, 177, 630 orbit space, 378 Goldman, R., 27, 140, 622, 627, 630 projective linear group (PGL(n + 1, k)), graded lexicographic order, see monomial 448 ordering symmetric, 352, 356–357 graded reverse lexicographic order, see Grove, L.C., 357, 623, 628 monomial ordering gradient, 10, 145–146, 149 Harris, J., 447, 630 graph Hartshorne, R., 211, 287, 289, 630 coloring, 626 Heintz, J., 117, 630 of a function, 6, 134, 260, 264, 401, 434, Hermann, G., 184, 218, 630 444, 523 Heyden, A., 623, 630 Grassmannian, 447 Hilbert Basis Theorem, see Theorem, Grayson, D., 613, 630 Hilbert Basis greatest common divisor (gcd), 41–45, Hilbert driven Buchberger algorithm, see 186–187, 196 algorithm, Hilbert driven Buchberger Greuel, G.-M., 76, 184, 615, 628, 630 Hilbert function, 486–498, 552 Griffiths, P., 464, 630 affine, 487–491, 496 Gritzmann, P., 117, 630 Hilbert polynomial, see polynomial, Hilbert, Gröbner basis, 45, 78–128, 135–136, 610, 612, 614, 616 139–141, 149–160, 194–195, 205, affine, see polynomial, affine Hilbert 237–238, 244, 248–255, 269, 280, Hilbert, D., 370, 473, 630 305–310, 325–331, 342, 349–351, Hilbert-Poincaré series, 552–564, 610, 612, 369–370, 375, 376, 407, 410–411, 614, 616 416–419, 430–433, 490, 491, Hilmar, J., 462, 630 527–529, 604, 539–617, E1 Hironaka, H., 79, 630 and linear algebra, 546–548, 567 Hodge, W.V.D., 447, 630 below signature M, 584 homogeneous coordinates, see coordinates, comprehensive, 309, 624 homogeneous conversion, 551, 563, 590, 621, 624 homogeneous ideal, see ideal, homogeneous criteria for, 86–88, 111–113, 568, 584 homogeneous polynomial, see polynomial, dehomogenized, 544 homogeneous homogeneous, 540–543, 590 homogenization minimal, 92 of a polynomial, 181, 400, 495, 543, 562, module, 624 590 reduced, 93–94, 116, 179, 185, 221–225, of an ideal, 415–419, 494 407, 544, 551 (x0,...,xn)- of an ideal, 431–432 signature, 584 homomorphism, see ring, homomorphism specialization of, ix, 160, 220, 306–310, Horobe¸t, E., 622, 623, 629 315–316, 624 Hughes, J., 623, 629 universal, 623 Huneke, C., 184, 218, 629 Gröbner cover, ix, 309–310, 331 hyperboloid, see surface, hyperboloid of one Gröbner fan, 623 sheet Gröbner, W., 79 hyperplane, 399, 405, 438 group, 448, 595 at infinity, 397, 418 alternating, 363 hypersurface, 399 cyclic, 356 cubic, 399 finite matrix, 356 dimension of, 498 general linear (GL(n, k)), 356 nonsingular quadric, 442–444, 446 generators for, 359–360 quadric, 436–451 Klein four-, 360 quartic, 399 640 Index

quintic, 399 implicit representation, 16 tangent cone of, 527 implicitization, 17, 133–140, 551, 562–564 via resultants, 170, 622 icosahedron, 363 improved Buchberger algorithm, see ideal, 29 algorithm, improved Buchberger basis for, 31, 35 Inclusion-Exclusion Principle, 480, 484 binomial, 257 index of regularity, 489 colon, see ideal, quotient infinite descent, 276 complete intersection, 505 inflection point, see point, of inflection determinantal, 118, 421, 549 integer polynomial, see polynomial, integer elimination, 122–127, 425–434, 610, 612, integral domain, see ring, integral domain 616 integral element over a subring, 280, 381 generated by a set of polynomials, 29 invariance under a group, 360 Gröbner basis for, see Gröbner basis invariant polynomial, see polynomial, homogeneous, 407–408, 540–564 invariant homogenization, 415–419, 494 inverse kinematic problem, see kinematic homogenization of, 543 problem of robotics, inverse in a ring, 244, 594 irreducibility question, 218 intersection, 192, 413, 606, 612, 614, 616 irreducible irreducible, 229 components of a variety, see variety, maximal, 209 irreducible components of Maximum Principle, see Maximum ideal, see ideal, irreducible Principle for Ideals polynomial, see polynomial, irreducible monomial, 70–74, 469–483, 487–493, variety, see variety, irreducible 552–557 irredundant of a variety (I(V)), 32–35 intersection of ideals, 216 of leading terms (LT(I)), 76 primary decomposition, 229 of relations, 373 union of varieties, 215 P-primary, 229 isomorphic primary, 228–231 rings, 243 prime, 207–211, 216–218, 228–229, 373, varieties, 238, 260–265, 509 414 Isomorphism Theorem, see Theorem, principal, 41, 42, 82, 176, 245, 432 Isomorphism product, 191, 413, 614 isotropy subgroup, 382 projective elimination, 425–434 proper, 209–211 Jacobian matrix, see matrix, Jacobian quotient, 200, 425, 606, 612, 614 Jensen, A., 623 radical, 36, 182–184, 196, 216, 244, 253, Jin, M., 622, 631 259 √ see radical of ( I), 182, 409, 614 joint space, space, joint (of a robot) saturation, 202–205, 411, 425–429, 435, joints (of robots) 606, 612, 614, 616 ball, 296 sum of, 189, 413 helical (“screw”), 296 syzygy, 373 prismatic, 292 weighted homogeneous, 433, 436, 566 revolute, 292 ideal description question, 35, 49, 73, 77 “spin”, 304 ideal membership question, 35, 45, 49, 84, Jounanolou, J., 170, 631 97–98, 151, 184, 620 Jukes-Cantor models, 625 ideal–variety correspondence, 232 affine, 183, 408 Kalkbrener, M., 139, 564, 624, 628, 631 on V, 259 Kapranov, M., 170, 630 projective, 408 Kehrein, A., 625, 626 Implicit Function Theorem, see Theorem, Kemper, G., 369, 370, 623, 629 Implicit Function Kendig, K., 504, 522, 523, 631 Index 641 kinematic problem of robotics manifold, 523 forward, 294, 297–302 Manocha, D., 127, 140, 622, 628, 631 inverse, 294, 304–314 Maple, see computer algebra systems, kinematic redundancy, 318 Maple kinematic singularity, 311–314 mapping Kirwan, F., x, 462, 464, 631 dominating, 514 Klein four-group, see group, Klein four- identity, 260, 270–273 Klein, F., 357, 631 polynomial, 234 Knörrer, H., 464, 467, 621, 628 projection, 129, 234, 282, 286 Koh, J., 620, 631 pullback, 262, 274 Koszul syzygy, see syzygy, Koszul rational, 269–274, 302 Kreuzer, M., 60, 76, 543, 624–626, 631 regular, 234 Krick, T., 184, 631 Segre, 421, 443, 444, 449 stereographic projection, 23, 275 Lagorio, G., 611, 627 Marinari, M., 621, 631 Lagrange interpolation polynomial, see Mathematica, see computer algebra systems, polynomial, Lagrange interpolation Mathematica Lagrange multipliers, 9–10, 99 matrix Lasker-Noether Theorem, see Theorem, echelon, see echelon matrix Lasker-Noether group, 355–357 Lazard, D., 117, 127, 546, 564, 621, 622, Jacobian, 310–312, 522 627, 629, 631 permutation, 356 leading coefficient, 60 row reduced echelon, see echelon matrix leading monomial, 60 Sylvester, 162–163 leading term, 38, 60 Matsumura, H., 533, 631 in a vector (signature), 578, 581 Maximum Principle for Ideals, 223, 226 leading terms, ideal of, see ideal, of leading Mayr, E., 117, 632 terms (LT(I)) least common multiple (LCM), 84, 196 Meyer, A., 117, 632 Lejeune-Jalabert, M., x, 631 Mines, R., 184, 218, 595, 632 lexicographic order, see monomial ordering minimal basis, see basis, minimal Li, X., 622, 631 Mishra, B., 342, 632 line mixed order, see monomial ordering affine, 3, 389 module, 566, 580, 589, 591, 624 at infinity, 389, 453 Möller, H., 116, 621, 625, 629, 631, 632 limit of, 530 Molien’s Theorem, see Theorem, Molien’s projective, 389, 399, 402, 436, 444, 445 monic polynomial, see polynomial, monic secant, 529–533 monomial, 2 tangent, 143, 145–146 monomial ideal, see ideal, monomial Little, J., 127, 170, 254, 462, 564, 566, 581, monomial ordering, 54–60, 73–74, 407, 620–625, 628 604, 607, 609, 611, 613, 615 local property, 462, 515 elimination, 76, 123, 128, 281, 562 locally constant, 462 graded, 416, 488, 489, 491, 541, 543, Logar, A., 184, 631 551, 574 Loustaunau, P., 218, 624, 626, 627 graded lexicographic (grlex), 58 Lucas, S., 626, 627 graded reverse lexicographic (grevlex), 58, 117 Macaulay, F., 170, 631 inverse lexicographic (invlex), 61 Macaulay2, see computer algebra systems, lexicographic (lex), 56–58, 98–101, Macaulay2 122–123, 135, 139, 156–160, 177, MacDonald, I.G., 230, 627 194, 205, 308, 347–348, 551, 574 Magma, see computer algebra systems, mixed, 75 Magma product, 75, 308, 309 Mall, D., 564, 624, 628 weight, 75–76 642 Index

Montes, A., ix, 309, 331, 624, 632 order, see monomial ordering Mora, F., 116, 632 order (of a group), 356 Mora, T., 116, 564, 621, 629–631 orthocenter, 331 Moreno Maza, M., 622, 627 Ottaviani, G., 622, 623, 629 Mourrain, B., 625 multidegree (multideg), 60 Pachter, L., 625, 632 multinomial coefficient, 371 Pappus’s Theorem, see Theorem, Pappus’s multiplicity parametric representation, 14–17, 234 of a root, 47, 144 polynomial, 16, 134, 563 of a singular point, 153 rational, 15, 138, 266 of intersection, 144–146, 458–462 parametrization, 15 Mumford, D., 117, 522, 536, 627, 632 partial solution, 123, 125, 129 partition, 240, 309 Newton identities, 352, 354–355 path connected, 462, 465 Newton polygon, 621 Paul, R., 314, 632 Newton–Gregory interpolating polynomial, Pedoe, D., 447, 630 see polynomial, Newton–Gregory pencil interpolating of curves, 406 Newton-Raphson root finding, 127 of hypersurfaces, 406 Niesi, G., 116, 630 of lines, 395 nilpotent, 244, 278 of surfaces, 260 Noether normalization, 284–287, 510 of varieties, 260 Noether Normalization Theorem, see permutation, 163, 346 Theorem, Noether Normalization sign of, 163, 596, 597 Noether’s Theorem, see Theorem, Noether’s Perry, J., 117, 628 Noether, E., 366 perspective, 386, 390, 392, 395 nonsingular Pfister, G., 76, 184, 615, 626, 628, 630 point, see point, nonsingular PGL(n + 1, k), see group, projective linear quadric, see quadric hypersurface, group (PGL(n + 1, k)) nonsingular Pistone, G., 625, 632 normal form, 83 plane Normal Form for Quadrics, see Theorem, affine, 3 Normal Form, for Quadrics Euclidean, 319 normal pair selection strategy, 116 projective, 385–392, 451 Nullstellensatz, 34, 35, 108, 131, 184, 203, Plücker coordinates, see coordinates, 221, 252, 254, 259, 329, 419, 519, 529 Plücker Hilbert’s, 5, 179, 181, 183, 184, 200, 333 point in k[V], 259 critical, 102, 622 Projective Strong, 411–412, 494 Fermat, of a triangle, 334 Projective Weak, 410–411, 427, 454, 502 nonsingular, 146, 152, 462, 519, 520, Strong, 183, 325, 410, 412, 491 522–523, 525 Weak, ix, 176–180, 210, 211, 252, 260, of inflection, 153 410 singular, 8, 143–146, 151–153, 155, 402, numerical solutions, 127, 255 449, 519–522, 525–526, 533 vanishing, 387 O’Shea, D., 127, 170, 254, 462, 564, 566, polyhedron 581, 620–625, 628 duality, 363 octahedron, 363 regular, 357, 363 operational space (of a robot), see space, polynomial configuration (of a robot) affine Hilbert, 489–491, 494–496, 505 orbit bihomogeneous, 433–434, 436 G-, 378, 381 elementary symmetric, 346–348 of a point, 378 Hilbert, 493–495, 606 space, 378, 381 homogeneous, 351 Index 643

homogeneous component of, 351 rank of, 440 integer, 163 singular, 448 invariant, 358 quotient irreducible, 185, 594–595 field, see field, of fractions Lagrange interpolation, 97 ideal, see ideal, quotient linear part, 516 vector space, 486 monic, 583 quotients on division, 62–66, 83, 413, 605, Newton–Gregory interpolating, 485 607, 610 partially homogeneous, 424 reduced, 47 radical S-, 85–88, 90–92, 104, 109–116, 194, generators of, 184 220, 257, 315, 413, 539–543, ideal, see ideal, radical 546–548, 558–564, 567, 569, 573, membership, see algorithm, radical 576–580, 606, 610 membership square-free, 47 of an ideal, see ideal, radical of symmetric, 346 Rakhooy, H., 174, 622, 629 weighted homogeneous, 433, 436, 566 rank polynomial map, see mapping, polynomial deficient, 311 PostScript, 22 maximal, 311 power sums, 351–352, 366–368 of a matrix, 9, 311, 441 primality question, 218 of a quadric, 440, 441 primary decomposition, see decomposition, rational primary function, see function, rational primary decomposition question, 231 mapping, see mapping, rational primary ideal, see ideal, primary univariate representation, 621 prime ideal, see ideal, prime variety, see variety, rational principal ideal domain (PID), 41, 176, 245 real projective plane, 386, 388–390 product order, see monomial ordering Recio, T., 331, 624, 632 projection mapping, see mapping, projection recursive, 225, 556 projective closure, see closure, projective REDUCE, see computer algebra systems, projective elimination ideal, see ideal, REDUCE projective elimination reduced Gröbner basis, see Gröbner basis, projective equivalence, see equivalence, reduced projective regular sequence, 504, 589 , see line, projective regularity, index of, see index of regularity projective plane, see plane, projective Relative Finiteness Theorem, see Theorem, projective space, see space, projective Relative Finiteness projective variety, see variety, projective remainder on division, 38, 62–68, 70, 83–84, projectivized tangent cone, see cone, 86, 91–92, 94, 98, 104, 107, 109, 172, projectivized tangent 248–251, 269, 349–350, 369–370, pseudocode, 38, 599–602 376, 413, 541, 546, 558–564, 567, pseudodivision, see algorithm, pseudodivi- 569, 577–580, 605, 607, 610, 612, sion 613, 616 successive, 337 representation pseudoquotient, 336 lcm, 107, 221 pseudoremainder, 336 standard, 104, 549, 569, 573, 576 Puiseux expansions, 621 resultant, 161–168, 451, 454–460, 462, 622 pullback mapping, see mapping, pullback multipolynomial, 140, 170, 622 pyramid of rays, 390 Reynolds operator, 365–366 Python (programming language), 609 Riccomagno, E., 625, 632 Richman F., 184, 218, 595, 632 quadric hypersurface, 399, 436–451 , 397, 403 nonsingular, 442–444, 446 ring over R, 442, 448 commutative, 3, 236, 242, 359, 593 644 Index

coordinate (k[V]), 257–269, 277–278, configuration (of a robot), 294 286, 287, 359, 377–378, 381, joint (of a robot), 294 507–509, 594 orbit, 378, 381 finite over a subring, 279, 381 projective, 388–392, 396 finitely generated over a subring, 288 quotient vector, 486 homomorphism, 243, 374, 508, 544 tangent, 516–521 integral domain, 236–237, 258, 268, 511, specialization of Gröbner basis, see Gröbner 594 basis, specialization of isomorphism, 243, 244, 247, 258, s-reduction (signature reduction), 581–582 264–265, 270, 273–274, 285–287, s-reduced vector, 583 374, 376–378, 507, 509, 512 stabilizer, 382 G of invariants (k[x1,...,xn] ), 358, 359 standard basis, see basis, standard polynomial ring (k[x1,...,xn]), 3 Stein, W., 608, 632 quotient (k[x1,...,xn]/I), 240–247, 374, stereographic projection, see mapping, 383, 505, 594, 621, 625 stereographic projection Robbiano, L., 60, 76, 116, 543, 611, Sterk, H., 620, 628 624–626, 630–632 Stetter, H., 625 robotics, 10–11, 291–314 Stillman, M., 76, 117, 128, 540, 613, 620, Roth, L., 447, 632 627, 630 Rouillier, F., 621, 632 Sturmfels, B., x, 117, 330, 369, 370, 372, row reduced echelon matrix, see echelon 622, 623, 625, 627, 629, 630, 632 matrix subalgebra (subring), 287, 349, 359, 369 Ruitenburg, W., 184, 218, 595, 632 subdeterminants, 421, 549 subgroup, 596 Sage, see computer algebra systems, Sage subvariety, 258 saturation, see ideal, saturation Sudoku, 626 Schönemann, H., 615, 628 sugar, 116 Schauenburg, P., ix, 157, 224, 227, 632 Sullivant, S., 625, 629 secant line, see line, secant surface Sederberg, T., 140, 622, 627 Enneper, 141 Segre map, see mapping, Segre hyperboloid of one sheet, 270 Segre variety, see variety, Segre quadric, 237, 421, 443, 448 Seidenberg, A., 184, 218, 632 ruled, 103, 444 Semple, J.G., 447, 632 tangent, 19–20, 101, 133, 135–136, Shafarevich, I.R., 504, 521, 522, 632 233–234, 535 sign of a permutation, see permutation, sign Veronese, 239, 421, 433 of Whitney umbrella, 141 signature Gröbner basis, see Gröbner basis, S-vector, 583 signature Swanson, I., 620, 633 signature of a vector, 580, 581 Sylvester matrix, see matrix, Sylvester Singular, see computer algebra systems, symmetric group, see group, symmetric Singular symmetric polynomial, see polynomial, singular locus, 521, 524, 525 symmetric singular point, see point, singular syzygy, 580 singular quadric, see quadric hypersurface, Koszul, 581, 586 singular on leading terms, 110 Siret, Y., 196, 628 Smith, L., 370, 632 Taalman, L., 626, 627 Smyth, C., 462, 630 tangent cone, see cone, tangent solving polynomial equations, 49, 98, 255, tangent line to a curve, see line, tangent 620 tangent space to a variety, see space, tangent S-polynomial, see polynomial, S- Taylor series, 552 space Taylor’s formula, 517, 534 affine, 3 term in a vector of polynomials, 578 Index 645 tetrahedron, 363 Theorem twisted cubic Affine Dimension, 491 curve, see curve, twisted cubic Bezout’s, x, 451–467 tangent surface of, see surface, tangent Circle, of Apollonius, 322, 330, 339–342 Closure, 131–132, 140, 142, 199–200, Ullrich, P., 227, 633 219–228, 282, 289, 434, 509, 510 unique factorization of polynomials, 595 Dimension, 493 uniqueness question in invariant theory, 361, Elimination, 122–124, 126, 128, 373, 376 135–136, 150, 152, 194, 423, 430 unirational variety, see variety, unirational Extension, 125–127, 132, 136–170, 379, 422 van Dam, A., 623, 629 Fermat’s Last, 13 van der Waerden, B., 170, 633 Finiteness, 251, 278, 281, 283 Vandermonde determinant, see determinant, Fundamental, of Algebra, 4, 178 Vandermonde Fundamental, of Symmetric Polynomials, variety 347–351 affine, 5 Geometric Extension, 130–131, 422–423, irreducible, 206–218, 237, 239, 258, 267, 432 268, 326, 327, 337, 377, 409, 413, Geometric Noether Normalization, 418, 453, 503 286–287 irreducible components of, 215–227, Geometric Relative Finiteness, 282–283 326–328, 409 Hilbert Basis, 31, 77, 80–82, 175, 176, linear, 9, 399 216, 218, 245, 368, 371, 407, 431 minimum principle, 228 Implicit Function, 318, 523 of an ideal (V(I)), 81, 408 Intermediate Value, 462, 465 projective, 398 Isomorphism, 247, 374, 524 rational, 273 Lasker-Noether, 229–230 reducible, 236 Molien’s, 368, 622 Segre, 421–422 Noether Normalization, 284–285, 287 subvariety of, 258 Noether’s, 366, 371 unirational, 17 Normal Form, for Quadrics, 439–444 zero-dimensional, 252 Pappus’s, 332, 333, 343, 393, 466 Vasconcelos, W., 184, 218, 629 Pascal’s Mystic Hexagon, 463, 465, 466 Veronese surface, see surface, Veronese Polynomial Implicitization, 134 Projective Extension, 426–429, 597 Walker, R., 458, 462, 633 Rational Implicitization, 138 Wang, D., 342, 622, 631, 633 Relative Finiteness, 280–281, 283, 511 weight order, see monomial ordering Thomas, R., 622, 623, 627, 629 weighted homogeneous ideal, see ideal, Tournier, E., 196, 628 weighted homogeneous Trager, B., 184, 218, 630 weighted homogeneous polynomial, see transcendence degree, see degree, polynomial, weighted homogeneous transcendence of a field extension Weispfenning, V., 60, 83, 84, 116, 194, 218, transformation 309, 543, 624, 628, 633 affine, 303 well-ordering, 56, 66, 73, 347, 575, 590 projective linear, 437 Whitney umbrella, see surface, Whitney quadratic, 621 umbrella transposition, 596 Wibmer, M., ix, 309, 624, 632 Traverso, C., 116, 550, 630, 633 Wiles, A., 13 triangular form (system of equations), Winkler, F., 117, 633 337–339 Wu’s Method, 335–343, 622 triangulation problem (computer vision), Wu, W.-T., 343, 622, 633 623 Wynn, H., 625, 632 646 Index

Zacharias, G., 184, 218, 630 dense, 510 Zafeirakopoulos, Z., 174, 622, 629 dense set, 200, 211, 216, 221, 510 Zariski Zelevinsky, A., 170, 630 closure, see closure, Zariski zero divisor in a ring, 500, 504, 594