The

GAP-package is very good in working with finite

fields or Abelian extensions of the Rational numbers, but sooner or

later we will need to use the coordinate ring or function field of an

affine variety for which it is hopeless. On the other hand, there is an

excellent free package to do these calculations : Singular.

So, the ideal situation for us would be to be able to access Singular

from *within* GAP. Fortunately, Marco Costantini and Willem de

Graaf have written such an interface. Here is how to get in working

under OS X : One has to download two files from the Singular Mac OS X download page : *
Singular-2-0-4-ppcMac-darwin.tar.gz* and

*Singular-2-0-4-share.tar.gz*. Once they are on your desktop you

can follow the instructions on the

*INSTALL.html*file in the 2-0-4

Folder of the expanded

*Singular-2-0-4-ppcMac-darwin*. Keep the

*tar*red version and open the INSTALL-file in your browser (to be

able to copy and paste) and open up the

*Terminal.*Do the analog

thing to

cd /usr/local sudo tar -pxf /Users/lieven/Desktop/Singular-2-0-4-ppcMac-darwin.tar sudo tar -pxf /Users/lieven/Desktop/Singular-2-0-4-share.tar

Then

follow the instructions making the symbolic links and you have Singular

working. The next step is to go to the GAP Packages page and go to the

package Singular for full documentation.

To use *Singular* in a GAP-session, here is an example

gap> LoadPackage("singular"); The GAP interface to Singular true gap> StartSingular(); I Started Singular (version 2004) gap> SetInfoLevel( InfoSingular, 2 ); gap> G:= SymmetricGroup( 3 );; gap> R:= PolynomialRing( GF(2), 3 );; gap> GeneratorsOfInvariantRing( R, G ); [ x_1 x_2 x_3, x_1*x_2 x_1*x_3 x_2*x_3, x_1*x_2*x_3 ] gap> I:= Ideal( R, last );; gap>GroebnerBasis( I ); I running GroebnerBasis... I done GroebnerBasis. [ x_1 x_2 x_3, x_2^2 x_2*x_3 x_3^2, x_3^3 ] gap>