\chapter*{Preface}
\Sym is a computer algebra package devoted to representation theory,
invariant theory and combinatorics of finite symmetric groups
and related classes of groups (like the alternating groups, wreath
products of symmetric or alternating groups, but also finite and
infinite linear groups and other classes of groups). It is meant as
a tool for the scientist working on representation theory or on its
applications in mathematics, physics or chemistry.
\medskip
The aim was to develop a system that can be run on any computer which
contains a C-compiler, whatever the operating system is.
\medskip
The development started with a program devoted to the Littlewood-Richardson
Rule, for which the method of Schubert polynomials was used.
Procedures for the evaluation and
decomposition of characters were added, and in particular programs for
the evaluation of irreducible matrix representations were implemented, both for the
ordinary and
for the modular case.
\medskip
Symmetric group representation theory is an interesting playground for
all kinds of symbolic calculations since its results are mostly formulated
in terms of sequences of natural numbers or of tableaux. The programs
are written in an object oriented way that allows to avoid the
implementation of an extra language on top of the procedures. We
wanted to keep the usability of programming tools like optimizer,
debugger, profiler and so on.
\medskip
\Sym provides routines for handling in particular the following
mathematical structures:
\begin{itemize}
\item Ordinary irreducible and Brauer characters as well as decomposition
numbers of symmetric groups,
\item ordinary irreducible characters of alternating groups,
\item ordinary irreducible characters of wreath products of symmetric
groups,
%\item Foulkes' characters of symmetric groups,
\item ordinary and modular irreducible matrix representations of
symmetric groups,
\item ordinary irreducible polynomial representations of general
linear groups $GL_m(\comp),$
\item multivariate polynomials and in particular Schubert
polynomials, also zonal polynomials,
\item Schur polynomials as well as several other series
of symmetric polynomials together with base change matrices,
\item cycle indicator polynomials for combinatorial enumeration,
\item the ordinary group algebra of the symmetric groups.
%\item standard bideterminants.
\end{itemize}
Using these structures and appropriate procedures, you can evaluate
irreducible characters, and decompose reducible ones. You can do
combinatorial enumeration to some extent, and you can also apply
symmetry adapted bases by an application of irreducible matrix
representations, which can be evaluated explicitly.
For these procedures you can use
\begin{itemize}
\item integer arithmetic, including long integers which are used
automatically and if necessary,
\item cyclotomic fields, which are necessary, for example, if you
want to evaluate characters of alternating groups.
\end{itemize}
\medskip
At present for modular purposes only primes fields of prime characteristics
are used and necessary. Later on this will be extended.
\medskip
The following pages contain a brief description how \Sym can be installed and
how the inexperienced but interested beginner who has not much knowledge in
programming, in computer systems like UNIX or DOS, or in programming languages
like C, can make his first steps towards a systematic use of \Sym.
This is the content of the first two chapters. After that we give more details.
In the third chapter we describe how object oriented programming works so
that the interested reader can start writing his own programs in this style.
The third chapter also contains a review of the main topics that can be
treated using \Sym.
The definitions of the most important objects can be found in the fourth
chapter together with the corresponding main routines for handling these
objects.
The fifth chapter contains an index of the available
functions listed lexicographically and seperated into sections that contain
their definition.
\medskip
The experienced reader may immediately start using \Sym by installing
it from the
diskette, reading the file $install.doc$ first and then the documentation
files which are the files with names ending by $.doc.$ A good part of this
documentation is also contained in the present manual.
\medskip
Our aim was to put the reader of these pages in a position that
she or he should be able to continue playing and more seriously working
while reading from time to time in the documentation files which are
available in \Sym. It is our hope that she or he then might like this
tool and find it useful
in his or her own research on finite groups and their applications. Moreover
we expect a feed-back or even an extension of \Sym which then can be added
to a further release of this computeralgebra system.
\medskip
At present, \Sym contains programs written by M.~Bauch, C.~Carr\'e, U.~Eidt,
P.~Frank, Th.~F\"urbringer, A.~Golembiowski, R.~Ha\-ger, M.~Hain,
A.~Kerber, I.~Klein, A.~Kohnert, A.~Lascoux,
Th.~Leitner, T.~McDonough, C.~Precetti,
N. Sch\"uler, F.~St\"ot\-zer, W.~Weber.
\bigskip
Bayreuth,\ \today\hfill{A. Kerber, A. Kohnert}