scispace - formally typeset
BookDOI

Ideals, Varieties, and Algorithms

David A. Cox, +2 more
- 01 Jan 1997 - 
- Vol. 101, Iss: 6, pp 582
Reads0
Chats0
TLDR
In the Groebner package, the most commonly used commands are NormalForm, for doing the division algorithm, and Basis, for computing a Groebners basis as mentioned in this paper. But these commands require a large number of variables.
Abstract
(here, > is the Maple prompt). Once the Groebner package is loaded, you can perform the division algorithm, compute Groebner bases, and carry out a variety of other commands described below. In Maple, a monomial ordering is called a monomial order. The monomial orderings lex, grlex, and grevlex from Chapter 2 are easy to use in Maple. Lex order is called plex (for “pure lexicographic”), grlex order is called grlex, and grevlex order is called tdeg (for “total degree”). Be careful not to confuse tdeg with grlex. Since a monomial order depends also on how the variables are ordered, Maple needs to know both the monomial order you want (plex, grlex or tdeg) and a list of variables. For example, to tell Maple to use lex order with variables x > y > z, you would need to input plex(x,y,z). The Groebner package also knows some elimination orders, as defined in Exercise 5 of Chapter 3, §1. To eliminate the first k variables from x1, . . . , xn, one can use the monomial order lexdeg([x 1,. . .,x k],[x {k+1},. . . ,x n]) (remember that Maple encloses a list inside brackets [. . .]). This order is the elimination order of Bayer and Stillman described in Exercise 6 of Chapter 3, §1. The Maple documentation for the Groebner package also describes how to use certain weighted orders, and we will explain below how matrix orders give us many more monomial orderings. The most commonly used commands in the Groebner package are NormalForm, for doing the division algorithm, and Basis, for computing a Groebner basis. NormalForm has the following syntax:

read more

Content maybe subject to copyright    Report

Ideals, Varieties and Algorithms
David Cox, John Little, Donal O’Shea
Appendix C
Computer Algebra Systems
§2. Maple (updated March 3, 2010)
Our discussion applies to Maple 13. For us, the most important part of Maple is the
Groebner packa ge, though there is also the PolynomialIdeals package that will be discussed
later in the section.
To have access to the commands in the Groebner package, type:
> with(Groebner)
(here, > is the Maple prompt). Once the Groebner packa ge is loaded, you can perform the
division algorithm, compute Groebner bases, and carry out a variety of ot her commands
described b elow.
In Maple, a monomial ordering is called a monomial order. The monomial orderings
lex, grlex, and g rev lex from Chapter 2 are easy to use in Maple. Lex order is called plex
(for “pure lex icographic”), grlex order is called grlex, and grevlex order is called tdeg
(for “total degree”). Be careful not to confuse tdeg with grlex. Since a monomial order
depends also on how the variables are ordered, Maple needs to know both the monomial
order you want (plex, grlex or tdeg) and a li st of variables. For example, to tel l Maple
to use lex order wit h variables x > y > z, you would need to input plex(x,y,z).
The Groebner package also knows some elimination orders, as defined in Exercise 5 of
Chapter 3, §1. To eliminate the first k variables from x
1
, . . . , x
n
, one can use the monomial
order lexdeg([x 1,. . . ,x k],[x {k+1},. . . ,x n]) (remember that Maple encloses a list
inside brackets [. . . ]). This order is the elimination order of Bayer and Stillman described
in Exercise 6 of Chapter 3, §1.
The Maple documentation for the Groebner package also describes how to use certain
weighted orders, and we will explain below how matrix orders give us many more monomial
orderings.
The most commonly used commands in the Groebner package are NormalForm, for
doing the division algorithm, and Basis, for computing a Groebner basis. NormalForm
has the following syntax:
> NormalForm(f,polylist,monomialorder)
The output is the remainder of f on division by the polynomials in the list polylist using
the monomial ordering specified by monomialorder. For exa mple, to divide x
3
+ 3y
2
by
x
2
+ y a nd x + 2xy using grevlex order with x > y, one would enter:
> NormalForm(x^3+3*y^2,[x^2+y,x+2*x*y],tdeg(x,y))
1

The base field here is the rational numbers Q. To get the quotients in the division algo-
rithm, add an optional letter, say Q, as the fourth argument to NormalForm:
> NormalForm(f,polylist,monomialorder,Q)
This outputs the remainder as before, but if you ask Maple the value of Q, it will return
the list of quotients in the division algorithm.
As you might expect, Basis computes a Groebner basis, and the syntax is as follows:
> Basis(polylist,monomialorder)
This computes a Groebner basis for the ideal generated by the polynomials in polylist
with respect to the monomial ordering specified by monomialorder. The answer is a
reduced Groebner basis (in the sense of Chapter 2, §7), except for clearing denominators.
As an example of how gbasis works, consider the command:
> gb := Basis([x^2+y,2*x*y+y^2],plex(x,y))
This computes a list (and gives it the symbolic name gb) which is a Groebner basis for
the ideal hx
2
+ y, 2x y + y
2
i Q[x, y] using lex order w ith x > y. If you want to express
the Groebner basis in terms of the polynomials in polylist, use Basis with the following
optional argument:
> Basis(polylist,monomialorder,output=extended)
The output will be a pair (G,C) where G is the Groebner basis and C is a matrix of
polynomials that expresses G in terms of polylist.
If you use polynomials with integer or rational coefficients in NormalForm or Basis,
Maple will assume that you are working over the field Q. Note that there is no limitation
on the size of the coefficients. Another possible coefficient field is the field of Gaussian
rational numbers Q(i) = {a + bi : a, b Q}, where i =
1. Note that Maple uses I
to denote
1. To compute a Groebner basis over a finite field with p elements ( w here
p is a prime number), you need t o include the option characteristic=p in the Basis
command. (This option also works in NormalForm.)
Maple can also work with coefficients that lie in ratio nal function fields. To tell Maple
that a certain variable is in the base field (a “parameter”), you simply omit it from the
variable list in the input. Thus, the command:
> Basis([v*x^2+y,u*x*y+y^2],plex(x,y))
will compute a Groebner basis for hvx
2
+ y, uxy + y
2
i Q(u, v)[x, y] for lex order with
x > y. The answer is reduced up to clearing denominators (so the leading coefficients of
the Groebner basis are pol ynomials in u and v). (This also works in NormalForm.)
The Groebner packa ge can work with matrix orders, where a mat r ix is rega rded as a
list of lists. Suppose that [u
1,. . .,u n] is a matrix, where each u i = [u
i1
,. . .,u
in
] is
a vector in Q
n
, where the entries of u
1 are positive. Then define x
α
> x
β
if
u
1 ·α > u 1 ·β, or u 1 · α = u 1 · β and u 2 · α > u 2 · β, or . . . ,
with ties (if any) broken by reverse lex. Orders of this type are discussed (from a slightly
different point of view) in the remarks following Exercise 12 o f Chapter 2, §4.
To see how such an order can be entered into Maple, suppo se that we assign weights
1, 2, 3 to the vari ables x, y, z, so t hat the monomial x
a
y
b
z
c
has weighted degree a + 2b + 3c.
2

Then consider the monomia l o rdering that first compares weighted degree and then breaks
ties using lex order with x > y > z. This is implemented in Maple by first defining the
matrix M to be
> M := [[1,2,3],[1,0,0],[0,1,0]]
Then computations with this monomial order can be done by using ’matrix’(M,[x,y,z])
as the monomialorder in NormalForm or Basis. It is also possible to give this monomial
order a symbolic name using the MonomialOrder command, which requires the Ore
algebra
packa ge. The documentation for MonomialOrder explains how this i s done.
Some other useful Maple commands i n the Groebner package are:
LeadingCoefficient, LeadingMonomial, and LeadingTerm, which compute LC(f ),
LM(f ), and LT(f) for a polynomial f.
SPolynomial, which computes the S-polynomial S(f, g) of two polynomials.
IsProper, which uses the consistency algorithm from Chapter 4 , §1 to determine if a
system of p olynomial equations has a sol ution over an algebraically closed field.
IsZeroDimensional, which uses the finiteness algorithm from Chapter 5, §3 to de-
termine if a system of polynomial equations has finitely many solutions over an alge-
braically closed field.
UnivariatePolynomial, which given a variable and a list of polynomials, computes
the polynomial of lowest degree in the given variable which lies in the ideal generated
by the polynomials.
HilbertPolynomial, which given a list of polynomial, computes
a
HP
I
(s)
a
HP
I
(s1)
in the notation of Chapter 9, §3, where I is the ideal generated by the polynomial s.
When I is homogenous, Theorem 12 of Chapter 9, §3 shows that HilbertPolynomial
computes the Hilbert poly nomial HP
I
(s). A related command is HilbertSeries,
which for a homogeneous ideal computes the Hilbert series as defined in Exercise 24
of Chapter 6, §4 of COX, LITTLE, and O’SHEA (19 98).
There is also a Solve command which attempts to find a ll solutions of a system of equa-
tions. Maple has an excellent on-line help system that should make it easy to master t hese
(and other) Maple commands in the Groebner package.
As already mentioned, Maple has the PolynomialIdeals package, which manipulates
ideals in a polynomial ring. To load the package, type
> with(PolynomialIdeals)
Then an ideal such as J = hx
2
+ y, x y
2
i Q[x, y] is entered by typing
> J := <x^2+y,x-y^2>
Since Maple uses I to denote
1, an ideal can’t be named I unless you issue a
command such as
> interface(imaginaryunit=
i)
This makes Maple use i for
1 and makes I available for the name of an ideal.
Some useful Maple commands in the PolynomialIdeals package are:
IdealMembership tests ideal membership as discussed in Chapter 2, §8.
EliminationIdeal computes the elimination ideals discussed in Chapter 3, §1.
3

RadicalMembership tests radical membership as discussed in Chapter 4, §2. Related
commands are IsRadical (test if an ideal is radical) and Radical (compute the ra dical
of an ideal).
Intersect computes the intersection of two ideals discussed in Chapter 4, §3.
Quotient computes the ideal quotient I : J discussed in Chapter 4, §4. The related
command Saturate computes the saturation I : J
.
PrimaryDecomposition computes the primary decomposition of an ideal as discussed
in Chapter 4, §7. A related command is PrimeDecomposition, which computes the
prime decompo sition of the radical of an ideal. This can be useful for solving systems
of equations.
The PolynomialIdeals package contains many other commands that are useful dealing with
polynomial ideals.
Finally, we should mention the existence of a Maple package written by Albert Lin and
Philippe Loustaunau of George Mason University (with subsequent modificatio ns by David
Cox and Will Gryc of Amherst College and Chris Wensley of the University of Bangor,
Wales) which complements the Groebner package. In this package, the program div
alg
gives the quotients in the division algorithm, and the program mxgb computes a Groebner
basis to gether with a matrix telling how to express the Groebner basis in terms of the
given pol ynomials. This package is slow compared to the Groebner package, but can be
used for ma ny of the simpler examples in the book. There is also a Maple worksheet which
explains how to use the package. Copies of t he package and worksheet can be obtained
from http://www.cs.amherst.edu/~dac/iva.html.
4
Citations
More filters
MonographDOI

Planning Algorithms: Introductory Material

TL;DR: This coherent and comprehensive book unifies material from several sources, including robotics, control theory, artificial intelligence, and algorithms, into planning under differential constraints that arise when automating the motions of virtually any mechanical system.
Journal ArticleDOI

Semidefinite programming

TL;DR: A survey of the theory and applications of semidefinite programs and an introduction to primaldual interior-point methods for their solution are given.
Book

Lectures on Discrete Geometry

Jiri Matousek
TL;DR: This book is primarily a textbook introduction to various areas of discrete geometry, in which several key results and methods are explained, in an accessible and concrete manner, in each area.
BookDOI

Galois theory of linear differential equations

TL;DR: In this paper, a large number of aspects are presented: algebraic theory especially differential Galois theory, formal theory, classification, algorithms to decide solvability in finite terms, monodromy and Hilbert's 21st problem, asymptotics and summability, inverse problem and linear differential equations in positive characteristic.
Book

A Singular Introduction to Commutative Algebra

TL;DR: A singular introduction to commutative algebra as mentioned in this paper is one of the most widely used works in algebraic geometry, with a broad coverage of theoretical topics in the portions of the algebra closest to algebraic geometrical geometry.