Next: Using GRÖBNER in Your Up: How to Use GRÖBNER Previous: Input and Output

## Sample Session

In this section we show how one can actually compute a Gröbner basis using GRÖBNER\ together with the supplied I/O library and the sample application program. This application repeats the following steps in a loop:

1. Reading in a set of polynomials from a file or from the terminal by means of the routines provided by the I/O library,
2. Computing a Gröbner basis of this set by one of the variants of the Gröbner bases algorithm\ contained in GRÖBNER,
3. Printing intermediate results to the screen or to a file according to the selected trace level (see Section 1.6), and
4. Printing of the Gröbner basis to the screen or to a file by means of the routines provided by the I/O library.

Suppose we want to compute the Gröbner basis of the set

over the rational numbers w.r.t. the purely lexical ordering induced by a<x<y<z.

```unix% groebner
Starting SACLIB with 4000000 cells in memory
Path for Input-file: /usr/users/wwindste/Groebner/input

Type input-file name ( <RETURN> = stdin, ? = help):

Path for Output-file: /usr/users/wwindste/Groebner/input

Output-file name ( <RETURN> = stdout, ? = help):

***********************************************************
Input File:  stdin
***********************************************************
***********************************************************
Output File: stdout
***********************************************************

+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Current Compiled Version:

Coefficient Domain: Rational Numbers
Term Ordering: Purely Lexicographic Ordering
Pair Ordering: Purely Lexicographic Ordering
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

=========================
WELCOME TO GROEBNER
by RISC-Linz Institute
Good Luck ...
=========================

Compute GROEBNER BASIS (Crude Version) ........... 1
Compute GROEBNER BASIS (Criteria) ................ 2
Compute GROEBNER BASIS (Reduce All) .............. 3
Compute GROEBNER BASIS (Small Pair Set) .......... 4
EXIT ............................................. 0

xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
Groebner Basis with Reduce All
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
Initializing Global Variables for GROEBNER ...

Initializing Global Variables for GROEBNER-IO ...

Enter ring-variables in ascending order ( ? for help): a,x,y,z;

***********************************************************
Number of Variables: 4
Ring Variables: z > y > x > a
***********************************************************

Enter Polynomial Set (? for help):

{z^2 - a*x^2 - a*y^2, x*z - 2*z + x*y, x^2 - y}

{

2
- y + x ,

z x - 2 z + y x,

2    2     2
z  - y a - x a

}

Groebner Basis =

{

6     6      5       4       3       2
x a - x  - 4 x a + 5 x a - 4 x a + 4 x a,

2
y - x ,

1  5    1  5   1  4    1  4   1  3    1  3   1  2
z + - x a - - x  - - x a - - x  + - x a - - x  - - x a
8       8      4       4      8       2      4

}

User Time: 0.016667
System Time: 0.000000

Compute GROEBNER BASIS (Crude Version) ........... 1
Compute GROEBNER BASIS (Criteria) ................ 2
Compute GROEBNER BASIS (Reduce All) .............. 3
Compute GROEBNER BASIS (Small Pair Set) .......... 4
EXIT ............................................. 0

*****************
Bye
*****************
unix%```

Suppose we now want to compute the Gröbner basis of G over the rational numbers w.r.t. the total degree lexical ordering induced by x<y<z. We want to treat a as a constant (a parameter). This implies that we must use rational functions in a as the coefficient domain. The ordering of pairs (see Section 5.2) should be left unchanged.

We are also interested in some intermediate results, namely we wish to be informed

• in case of zero reduction,
• about application of the criteria, and
Thus, we have to adjust the setup in the following respects:
• Term ordering (see Section 5.1),
• Coefficient domain (see Section 4.2), and
• Granularity of tracing (see Section 1.6).

First, we have to edit the relevant lines in the respective setup-files (see Section 2.8, in particular figures 2 to 4). Then we have to re-compile GRÖBNER and, since the change of the coefficient domain affects I/O as well, the I/O library. Finally, we re-compile the application program and start it.

```unix% cd Groebner/GROEBNER/include
unix% vi GB.to.setup
unix% vi GB.coef.setup
unix% vi trace.setup
unix% cd ../src
unix% make
unix% cd ../../GROEBNER-IO/src
unix% make
unix% cd ../../APP
unix% make
unix% groebner
Starting SACLIB with 4000000 cells in memory

Path for Input-file: /usr/users/wwindste/Groebner/input

Type input-file name ( <RETURN> = stdin, ? = help):

Path for Output-file: /usr/users/wwindste/Groebner/input

Output-file name ( <RETURN> = stdout, ? = help):

***********************************************************
Input File:  stdin
***********************************************************
***********************************************************
Output File: stdout
***********************************************************

+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Current Compiled Version:

Coefficient Domain: Rational Functions
Term Ordering: Total Degree Lexicographic Ordering
Pair Ordering: Purely Lexicographic Ordering
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

=========================
WELCOME TO GROEBNER
by RISC-Linz Institute
Good Luck ...
=========================

Compute GROEBNER BASIS (Crude Version) ........... 1
Compute GROEBNER BASIS (Criteria) ................ 2
Compute GROEBNER BASIS (Reduce All) .............. 3
Compute GROEBNER BASIS (Small Pair Set) .......... 4
EXIT ............................................. 0

xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
Groebner Basis with Small Pair Set
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
Initializing Global Variables for GROEBNER ...
Initializing Global Variables for GROEBNER-IO ...

Enter ring-variables in ascending order ( ? for help): x,y,z;
Enter field-variables (terminated by ";"): a;

***********************************************************
Number of Variables: 3
Ring Variables: z > y > x
Field Variables: a
***********************************************************

Enter Polynomial Set (? for help):

{z^2 - a*x^2 - a*y^2, x*z - 2*z + x*y, x^2 - y}

{

2
x  - y,

z x + y x - (2) z,

2        2        2
z  - (a) y  - (a) x

}

Product Criterion
New polynomial:
[1 1 0]
Product Criterion
Zero-reduction
New polynomial:
[0 2 1]
Product Criterion
Chain Criterion
New polynomial:
[0 3 0]
Product Criterion
Product Criterion
Product Criterion
Zero-reduction
Zero-reduction
Zero-reduction
Zero-reduction
Groebner Basis =

{

2
x  - y,

z x + y x - (2) z,

2
z y + y  + (2) y x - (4) z,

2        2
z  - (a) y  - (a) y,

2    2 a + 2  2   a - 4         8        2 a
y x - ------- y  + ----- y x + ----- z - ----- y,
a - 1       a - 1       a - 1     a - 1

2                                                     2
3    3 a  + 13 a  2       12 a               32 a          4 a  + 4 a
y  - ------------ y  - ------------ y x + ------------ z - ------------ y
2                 2                  2                2
a  - 2 a + 1      a  - 2 a + 1       a  - 2 a + 1     a  - 2 a + 1

}

User Time: 0.216667
System Time: 0.000000

Compute GROEBNER BASIS (Crude Version) ........... 1
Compute GROEBNER BASIS (Criteria) ................ 2
Compute GROEBNER BASIS (Reduce All) .............. 3
Compute GROEBNER BASIS (Small Pair Set) .......... 4
EXIT ............................................. 0

*****************
Bye
*****************
unix%```

The trace during the calculation is to be interpreted as follows: The first S-polynomial need not be reduced because it reduces to zero by the ``Product Criterion'', the next S-polynomial reduces to a polynomial whose leading term is z y (it has the exponent list [1 1 0]), the fourth S-polynomial reduces to zero, which could not be detected by any of the criteria, the seventh S-polynomial reduces to zero by the ``Chain Criterion'', and so on.

Next: Using GRÖBNER in Your Up: How to Use GRÖBNER Previous: Input and Output

windsteiger wolfgang
Thu Sep 3 14:50:07 MDT 1998