# Introduction

Constructive methods in algebra and algebraic geometry are gaining more and more importance with the availability of computers and computer algebra softwares. Since its first version (see [1]), CASA has been designed to perform computations and utilize reasoning about algebraic and geometrical objects in classical affine and projective spaces over algebraically closed fields of characteristic zero. More precisely, the field has to be a computable field in the sense of the underlying computer algebra system Maple, i.e. all the arithmetic operations have to be available in the system. Usually, the field of computation is the rational numbers Q or a finite algebraic extension thereof.

Recently, new coding theoretic algorithms have been included. They require computations over finite fields.

Several people have contributed to the system in one way or another (see [2], [3], [1], [4], [5], [6], [6], [7], [8], [9], [10], [11], [12], [13], [14], [15], [16], [17], [18], [19], [20], [21], [22], [23], [24]).

The names of the main contributors are Klaus Aigner, Harald Deischinger, Ruediger Gebauer, Hong Gu, Michaela Hackl, Ralf Hemmecke (current coordinator), Erik Hillgarter, Michael Kalkbrener, Michal Mnuk, J. Rafael Sendra, Peter Stadelmeyer, Quoc-Nam Tran, Bernhard Wall, Geert Van de Weyer, Franz Winkler (director).

In the system, an algebraic set (a central notion in algebraic geometry) can be represented in four different ways:

• Implicit representation: An algebraic set is the set of common zeros of a system of polynomial equations. To give an algebraic set in implicit form means to give finitely many polynomials.
• Projected representation: As a consequence of the primitive element theorem every irreducible d-dimensional algebraic set in n-dimensional space is, after a suitable linear transformation of coordinates, birationally projectable onto an irreducible d-dimensional algebraic set in (d+1)-dimensional space, which can be specified by a single polynomial in d+1 variables. This can be generalized to unmixed-dimensional algebraic sets. An algebraic set in projected form is given by a polynomial and a tuple of rational functions (specifying the birational mapping).
• Parametric representation: Some irreducible algebraic sets can be parametrized by rational functions. An algebraic set in parametric form is given by a tuple of rational functions that parametrizes the algebraic set.
• Representation by places: All algebraic curves can be locally parametrized by a set of power series that are convergent around a point of the curve. An algebraic curve is given by places if for each branch passing through a certain point on the algebraic set a tuple of power series that parametrizes the algebraic set around the point is specified.

The system provides a variety of operations on algebraic sets. As the efficiency of these operations is tightly bound to the way algebraic sets are represented, conversion routines are provided to support various views on one object, to deepen the understanding of its principles, and to speed up algorithms working on algebraic sets. CASA also works with the polynomial ideals corresponding to these geometric objects.

The basic operations available in CASA include:

• ideal theoretic operations (union, intersection),
• creating algebraic sets in different representations,
• generating curves of fixed multiplicities at given points,
• intersection, union, and difference of algebraic sets,
• computation of tangent cones and tangent spaces,
• computation of the dimension of an algebraic set,
• decomposition into irreducible components,
• transformations of algebraic sets to hypersurfaces,
• computation of the singularities, genus, neighborhood graphs and adjoint curves of an algebraic curve.

Besides these basic operations, the following more advanced operations are available:

• rational parametrization of rational curves over an optimal extension field of coefficients,
• implicitization of parametrically given algebraic sets,
• Puiseux series expansions,
• multivariate resultants,
• Groebner bases of ideals and modules,
• Groebner walk,
• hybrid methods for finding solutions of an arbitrary system of equations,
• computation of rational points on conics,
• offset curves,
• plotting both explicitly and implicitly given curves and surfaces,
• computation of syzygy-bases,
• computation of multivariate polynomial codes and algebraic geometric codes.

The major goal of CASA is to provide a comfortable, easy to use, efficient, flexible, and mathematically exact working environment for computational algebra and constructive algebraic geometry where all basic theoretical concepts map easily to available data structures.

CASA is built on the kernel of Maple and is fully independent of the operating system; hence, it can be used on every hardware where Maple is running.