SEGRE: a script for the REDUCE package CALI


R. Achilles and D. Aliffi, Segre: a script for the REDUCE package CALI, Bologna, 1999-2001.

The algebraic module SEGRE extends (and requires) CALI [H.-G. Gräbe: CALI - A REDUCE package for commutative algebra, Version 2.2.1 (1995). Available through the REDUCE library redlib@rand.org] and provides convenient procedures for calculations in multiplicity theory, intersection theory, and singularity theory. Based on a procedure for the computation of the leading coefficients of Hilbert polynomials of multigraded rings, it contains procedures for the calculation of

  1. mixed multiplicities;
  2. Tworzewski's extended index of intersection [P. Tworzewski: Intersection theory in complex analytic geometry. Ann. Polon. Math. 62 (1995), 177-191];
  3. the multiplicity sequence or generalized Samuel multiplicity of [R. Achilles and M. Manaresi: Multiplicities of a bigraded ring and intersection theory. Math. Ann. 309 (1997), 573-591];
  4. the Segre numbers of Gaffney-Gassler [T. Gaffney and R. Gassler: Segre numbers and hypersurface singularities. J. Algebraic Geom. 8 (1999), 695-736];
  5. Lê numbers (and, in particular, Milnor numbers) [D.B. Massey: Lê cycles and hypersurface singularities. Lecture Notes Math. 1615, Springer-Verlag, Berlin-Heidelberg, 1995].
In fact, 5. is a special case of 4., and 2. and 4. are special cases of 3.; see [R. Achilles and S. Rams: Intersection numbers, Segre numbers and generalized Samuel multiplicities. Arch. Math. (Basel) 77 (2001), 391-398].

If you want to use the script SEGRE, you will need the computer algebra system REDUCE together with the package CALI of H.-G. Gräbe. CALI and its user documentation cali.tex are included in the REDUCE distribution. Download segre.red in the working directory of REDUCE, compile it and load it as a package. The commands in a REDUCE session are:

          faslout "segre"$
          load_package cali$
          in "segre.red"$
          faslend$
          % Then in order to use SEGRE, it must be loaded:
          load_package segre; 
Alternatively, you can simply read in segre.red:
          load_package cali;
          in "c:\scripts\segre.red"$
Here it is assumed that you have saved segre.red in the directory scripts on c. The script SEGRE has been written for our private use only, and so it lacks of a manual. But you have at least a minimum of help by the help() function of SEGRE. Typing
          help();
lists all functions or procedures of CALI and SEGRE and
          help(b);
all procedures beginning with "b": bettinumbers blowup bin bavula. The command
          help(blowup);
gives then a short description of the procedure blowup, which in the case of CALI commands has been taken from H.-G. Gräbe's file cali.tex.

We provide the script SEGRE and four sample sessions, demonstrating and testing the facilities of SEGRE:

This script is still under (sporadic) development, and feedback is welcome.


last updated 8 November 2011, Rüdiger Achilles