%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%
%W  intro.tex             GAP documentation                  Bettina Eick
%%
%H  $Id: intro.tex,v 1.9 2003/10/24 12:05:36 werner Exp $
%%

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\Chapter{Introduction}

This package contains various algorithms related to finite dimensional 
nilpotent associative algebras. We first give a brief introduction to 
these algebras and then an overview of the main algorithms.
\medskip

{\bf Associative algebras and nilpotency}

Let $A$ be an associative algebra of dimension $d$ over a field $F$.
Let $\{b_1, \ldots, b_d\}$ be a basis for $A$. We identify the 
element $x_1 b_1 + \ldots + x_d b_d$ of $A$ with the element 
$(x_1, \ldots, x_d)$ of $F^d$. The multiplication of $A$ can then 
be described by a *structure constants table*: a 3-dimensional array 
with entries $a_{i,j,k} \in F$ satisfying that
$$b_i b_j = \sum_{k=1}^d a_{i,j,k} b_k.$$
\medskip

An associative algebra $A$ is *nilpotent* if its *power series* terminates
at the trivial ideal of $A$; that is
$$ A > A^2 > \ldots > A^c > A^{c+1} = \{0\} $$
where $A^j$ is the ideal of $A$ generated by all products of length 
at least $j$. The length $c$ of the power series is also called the 
*class* of $A$ and the dimension of $A/A^2$ is the *rank* of $A$. Note
that $A$ is generated by $dim(A/A^2)$ elements. Clearly, $A$ does not 
contain a multiplicative identity. 
\medskip

For computational purposes we describe a nilpotent associative algebra by 
a weighted basis and a description of the corresponding structure constants 
table. A basis of a nilpotent associative algebra $A$ is *weighted* if
there is a sequence of weights $(w_1, \ldots, w_d)$ so that
$$A^j = \langle b_i \mid w_i \geq j \rangle.$$
Note that $A A^j = A^{j+1}$ for every $j$. Thus it is possible to choose
all basis elements of weight at least 2 so that $b_i = b_k b_l$ holds for
some $k$ and $l$, where $b_k$ is of weight 1 and $b_l$ is of weight $w_i-1$. 
This feature allows an effective description of $A$ via a *nilpotent 
structure constants table*. This contains the structure constants 
$a_{i,j,k}$ for all $i$ with $w_i = 1$ and $1 \leq j,k \leq d$. For $i$ 
with $w_i > 1$ it either contains a description as $b_i = b_k b_l$ or the 
structure constants $a_{i,j,k}$ for $1 \leq j,k \leq d$. It may also 
contain both or some partial overlap of these informations.
\medskip

{\bf Isomorphisms and Automorphisms}

Let $A$ be a finite dimensional nilpotent associative algebra over a 
finite field. This package contains an implementation of the methods 
in \cite{Eic07} which allow the determination of the automorphism group 
$Aut(A)$ and a *canonical form* $Can(A)$. 

The automorphism group is given by generators and it represented as a
subgroup of $GL(dim(A), F)$. Also the order of $Aut(A)$ is available.

A canonical form $Can(A)$ for $A$ is a nilpotent structure constants 
table for $A$ which is unique for the isomorphism type of $A$; 
that is, two algebras $A$ and $B$ are isomorphic if and only if $Can(A) 
= Can(B)$ holds. Hence the canonical form can be used to solve the 
isomorphism problem. 
\medskip

{\bf The modular isomorphism problem}

The modular isomorphism problem asks whether $\F G \cong \F H$ implies
that $G \cong H$ for two $p$-groups $G$ and $H$ and $\F$ the field with $p$
elements. This problem is still open, despite various efforts towards
proving the claim or finding counterexamples to it. 

Computational approaches have been used to investigate the modular isomorphism
problem. Based on an algorithm by Roggenkamp and Scott \cite{RS93}, Wursthorn
\cite{Wur93} described an algorithm for checking the modular isomorphism
problem; that is, he described an algorithm for checking whether two modular
group algebras $\F G$ and $\F H$ are isomorphic. This algorithm has been
implemented in C by Wursthorn and has been used applied to the groups of
order dividing $2^7$ without finding a counterexample, see \cite{BKRW99}.
\medskip

This package contains an implementation of the new algorithm described in
\cite{Eic07} for checking isomorphism of modular group algebras. It is based
on the fact that the Jacobson radical $J(FG)$ is nilpotent if $FG$ is a 
modular group algebra. Hence the automorphism group and canonical form 
algorithm of this package apply and can be used to solve the isomorphism
problem for modular group algebras.

The methods of this package have been used to check the modular isomorphism
problem for the groups of order dividing $3^6$ and $2^8$ (\cite{Eic07}) and
for the groups of order $2^9$ (\cite{EKo11}).
\medskip

{\bf A nilpotent quotient algorithm}

Given a finitely presented associative algebra $A$ over an arbitrary
field $F$, this package contains an algorithm to determine a nilpotent
structure constants table for the class-$c$ nilpotent quotient of $A$. 
See \cite{Eic11} for details on the underlying algorithm.
\medskip

{\bf Kurosh Algebras}

Let $F(d,F)$ denote the free non-unital associative algebra on $d$ 
generators over the field $F$. Then 
$$A(d,n,F) = F(d,F) / \langle \langle w^n \mid w \in F(d,F) \rangle \rangle$$
is the *Kurosh Algebra* on $d$ generators of exponent $n$ over the field
$F$. Kurosh Algebras can be considered as an algebra-theoretic analogue to 
Burnside groups. 

This package contains a method that allows to determine $A(d,n,F)$ for
given $d$, $n$, $F$. This can also be used to determine $A(d,n,F)$ for all
fields of a given characteristic. We refer to \cite{Eic11} for details on
the algorithms.

This package also contains a database of Kurosh Algebras that have been
determined with the methods of this package. 

