% generated by GAPDoc2LaTeX from XML source (Frank Luebeck)
\documentclass[11pt]{report}
\usepackage{a4wide}
\sloppy
\pagestyle{myheadings}
\usepackage{amssymb}
\usepackage[latin1]{inputenc}
\usepackage{makeidx}
\makeindex
\usepackage{color}
\definecolor{DarkOlive}{rgb}{0.1047,0.2412,0.0064}
\definecolor{FireBrick}{rgb}{0.5812,0.0074,0.0083}
\definecolor{RoyalBlue}{rgb}{0.0236,0.0894,0.6179}
\definecolor{RoyalGreen}{rgb}{0.0236,0.6179,0.0894}
\definecolor{RoyalRed}{rgb}{0.6179,0.0236,0.0894}
\definecolor{LightBlue}{rgb}{0.8544,0.9511,1.0000}
\definecolor{Black}{rgb}{0.0,0.0,0.0}
\definecolor{FuncColor}{rgb}{1.0,0.0,0.0}
%% strange name because of pdflatex bug:
\definecolor{Chapter }{rgb}{0.0,0.0,1.0}

\usepackage{fancyvrb}

\usepackage{pslatex}

\usepackage[
        a4paper=true,bookmarks=false,pdftitle={Written with GAPDoc},
        pdfcreator={LaTeX with hyperref package / GAPDoc},
        colorlinks=true,backref=page,breaklinks=true,linkcolor=RoyalBlue,
        citecolor=RoyalGreen,filecolor=RoyalRed,
        urlcolor=RoyalRed,pagecolor=RoyalBlue]{hyperref}

% write page numbers to a .pnr log file for online help
\newwrite\pagenrlog
\immediate\openout\pagenrlog =\jobname.pnr
\immediate\write\pagenrlog{PAGENRS := [}
\newcommand{\logpage}[1]{\protect\write\pagenrlog{#1, \thepage,}}
\newcommand{\Q}{\mathbb{Q}}
\newcommand{\R}{\mathbb{R}}
\newcommand{\C}{\mathbb{C}}
\newcommand{\Z}{\mathbb{Z}}
\newcommand{\N}{\mathbb{N}}
\newcommand{\F}{\mathbb{F}}

\newcommand{\GAP}{\textsf{GAP}}

\newsavebox{\backslashbox}
\sbox{\backslashbox}{\texttt{\symbol{92}}}
\newcommand{\bs}{\usebox{\backslashbox}}

\begin{document}

\logpage{[ 0, 0, 0 ]}
\begin{titlepage}
\begin{center}{\Huge \textbf{\textsf{Wedderga}}}\\[1cm]
\hypersetup{pdftitle=\textsf{Wedderga}}
\markright{\scriptsize \mbox{}\hfill \textsf{Wedderga} \hfill\mbox{}}
{\Large \textbf{Wedderburn Decomposition of Group Algebras}}\\[1cm]
{Version 4.2}\\[1cm]
{March 2007}\\[1cm]
\mbox{}\\[2cm]
{\large \textbf{Osnel Broche Cristo   }}\\
{\large \textbf{Alexander Konovalov    }}\\
{\large \textbf{Aurora Olivieri   }}\\
{\large \textbf{Gabriela Olteanu   }}\\
{\large \textbf{Ángel del Río    }}\\
\hypersetup{pdfauthor=Osnel Broche Cristo   ; Alexander Konovalov    ; Aurora Olivieri   ; Gabriela Olteanu   ; Ángel del Río    }
\end{center}\vfill

\mbox{}\\
{\mbox{}\\
\small \noindent \textbf{Osnel Broche Cristo   } --- Email: \href{mailto://osnelier@ime.usp.br}{\texttt{osnelier@ime.usp.br}}\\
 --- Address: \begin{minipage}[t]{8cm}\noindent
 Departamento de Matemática\\
 Instituto de Ciências Exatas\\
 Universidade Federal de Juiz de Fora\\
 Campus-Cidade Universitária, 36036-900, Juiz de Fora \end{minipage}
}\\
{\mbox{}\\
\small \noindent \textbf{Alexander Konovalov    } --- Email: \href{mailto://konovalov@member.ams.org}{\texttt{konovalov@member.ams.org}}\\
 --- Homepage: \href{http://www.cs.st-andrews.ac.uk/~alexk/}{\texttt{http://www.cs.st-andrews.ac.uk/\~{}alexk/}}\\
 --- Address: \begin{minipage}[t]{8cm}\noindent
 School of Computer Science, University of St Andrews\\
 Jack Cole Building, North Haugh,\\
 St Andrews, Fife, KY16 9SX, Scotland \end{minipage}
}\\
{\mbox{}\\
\small \noindent \textbf{Aurora Olivieri   } --- Email: \href{mailto://olivieri@usb.ve}{\texttt{olivieri@usb.ve}}\\
 --- Address: \begin{minipage}[t]{8cm}\noindent
 Departamento de Matemáticas\\
 Universidad Simón Bolívar\\
 Apartado Postal 89000, Caracas 1080-A, Venezuela \end{minipage}
}\\
{\mbox{}\\
\small \noindent \textbf{Gabriela Olteanu   } --- Email: \href{mailto://golteanu@um.es, olteanu@math.ubbcluj.ro}{\texttt{golteanu@um.es, olteanu@math.ubbcluj.ro}}\\
 --- Address: \begin{minipage}[t]{8cm}\noindent
 Departamento de Matemáticas, Universidad de Murcia\\
 30100 Murcia, Spain \end{minipage}
}\\
{\mbox{}\\
\small \noindent \textbf{Ángel del Río    } --- Email: \href{mailto://adelrio@um.es}{\texttt{adelrio@um.es}}\\
 --- Homepage: \href{http://www.um.es/adelrio}{\texttt{http://www.um.es/adelrio}}\\
 --- Address: \begin{minipage}[t]{8cm}\noindent
 Departamento de Matemáticas, Universidad de Murcia\\
 30100 Murcia, Spain \end{minipage}
}\\
\end{titlepage}

\newpage\setcounter{page}{2}
{\small 
\section*{Abstract}
\logpage{[ 0, 0, 1 ]}
 \index{Wedderga package@\textsf{Wedderga} package} The title ``\textsf{Wedderga}'' stands for ``\textsc{WEDDER}burn decomposition of \textsc{G}roup \textsc{A}lgebras. This is a \textsf{GAP} package to compute the simple components of the Wedderburn decomposition of
semisimple group algebras of finite groups over finite fields and over
subfields of finite cyclotomic extensions of the rational. It also contains
functions that produce the primitive central idempotents of semisimple group
algebras. Other functions of \textsf{Wedderga} allows to construct crossed products over a group with coefficients in an
associative ring with identity and the multiplication determined by a given
action and twisting. }\\[1cm]
{\small 
\section*{Copyright}
\logpage{[ 0, 0, 2 ]}
 {\copyright} 2006-2007 by Osnel Broche Cristo, Alexander Konovalov, Aurora Olivieri,
Gabriela Olteanu and Ángel del Río.

 \textsf{Wedderga} is free software; you can redistribute it and/or modify it under the terms of
the GNU General Public License as published by the Free Software Foundation;
either version 2 of the License, or (at your option) any later version. For
details, see the FSF's own site \href{http://www.gnu.org/licenses/gpl.html}{\texttt{http://www.gnu.org/licenses/gpl.html}}.

 If you obtained \textsf{Wedderga}, we would be grateful for a short notification sent to one of the authors.

 If you publish a result which was partially obtained with the usage of \textsf{Wedderga}, please cite it in the following form:

 O. Broche Cristo, A. Konovalov, A. Olivieri, G. Olteanu and Á. del Río. \emph{Wedderga --- Wedderburn Decomposition of Group Algebras, Version 4.2;} 2007 (\href{http://www.um.es/adelrio/wedderga.htm}{\texttt{http://www.um.es/adelrio/wedderga.htm}}). }\\[1cm]
{\small 
\section*{Acknowledgements}
\logpage{[ 0, 0, 3 ]}
 We all are very grateful to Steve Linton for communicating the package and to
the referee for careful testing \textsf{Wedderga} and useful suggestions. Also we acknowledge very much the members of the \textsf{GAP} team: Thomas Breuer, Alexander Hulpke, Frank Lübeck and many other colleagues
for helpful comments and advise. We would like also to thank Thomas Breuer for
the code of \texttt{PrimitiveCentralIdempotentsByCharacterTable} for rational group algebras. 

 On various stages the development of the Wedderga package was supported by the
following institutions: 
\begin{itemize}
\item University of Murcia;
\item Francqui Stichting grant ADSI107;
\item M.E.C. of Romania (CEEX-ET 47/2006);
\item D.G.I. of Spain;
\item Fundación Séneca of Murcia.
\end{itemize}
 We acknowledge with gratitude this support.

 }\\[1cm]
\newpage

\def\contentsname{Contents\logpage{[ 0, 0, 4 ]}}

\tableofcontents
\newpage

   
\chapter{\textcolor{Chapter }{Introduction}}\label{Intro}
\logpage{[ 1, 0, 0 ]}
{
  
\section{\textcolor{Chapter }{General aims of \textsf{Wedderga} package}}\label{IntroAims}
\logpage{[ 1, 1, 0 ]}
{
  The title ``\textsf{Wedderga}'' stands for ``\textsc{Wedder}burn decomposition of \textsc{g}roup \textsc{a}lgebras''. This is a \textsf{GAP} package to compute the simple components of the Wedderburn decomposition of
semisimple group algebras. So the main functions of the package returns a list
of simple algebras whose direct sum is isomorphic to the group algebra given
as input. 

 The methods implemented by the package produces the Wedderburn decomposition
of a group algebra $FG$ provided $G$ is a finite group and $F$ is either a finite field of characteristic coprime with the order of $G$, or an abelian number field (i.e. a subfield of a finite cyclotomic extension
of the rationals). 

 Other functions of \textsf{Wedderga} compute the primitive central idempotents of semisimple group algebras. 

 The package also provides functions to construct crossed products over a group
with coefficients in an associative ring with identity and the multiplication
determined by a given action and twisting.

 }

  
\section{\textcolor{Chapter }{Main functions of \textsf{Wedderga} package}}\label{IntroMain}
\logpage{[ 1, 2, 0 ]}
{
  The main functions of \textsf{Wedderga} are \texttt{WedderburnDecomposition} (\ref{WedderburnDecomposition}) and \texttt{WedderburnDecompositionInfo} (\ref{WedderburnDecompositionInfo}). 

 \texttt{WedderburnDecomposition} (\ref{WedderburnDecomposition}) computes a list of simple algebras such that their direct product is
isomorphic to the group algebra $FG$, given as input. Thus, the direct product of the entries of the output is the \emph{Wedderburn decomposition} (\ref{WedDec}) of $FG$. 

 If $F$ is an abelian number field then the entries of the output are given as matrix
algebras over cyclotomic algebras (see \ref{Cyclotomic}), thus, the entries of the output of \texttt{WedderburnDecomposition} (\ref{WedderburnDecomposition}) are realizations of the \emph{Wedderburn components} (\ref{WedDec}) of $FG$ as algebras which are \emph{Brauer equivalent} (\ref{Brauer}) to \emph{cyclotomic algebras} (\ref{Cyclotomic}). Recall that the Brauer-Witt Theorem ensures that every simple factor of a
semisimple group ring $FG$ is Brauer equivalent (that is represents the same class in the Brauer group of
its centre) to a cyclotomic algebra (\cite{Y}, \cite{O}). 

 The Wedderburn components of $FG$ are also matrix algebras over division rings which are finite extensions of
the field $F$. If $F$ is finite then, by the Wedderburn theorem, these division rings are finite
fields. In this case the output of \texttt{WedderburnDecomposition} (\ref{WedderburnDecomposition}) represents the factors of $FG$ as matrix algebras over finite extensions of the field $F$. 

 \pagebreak. 
\begin{Verbatim}[fontsize=\small,frame=single,label=Example]
  
  gap> QG := GroupRing( Rationals, SymmetricGroup(4) );
  <algebra-with-one over Rationals, with 2 generators>
  gap> WedderburnDecomposition(QG);
  [ Rationals, Rationals, ( Rationals^[ 3, 3 ] ), ( Rationals^[ 3, 3 ] ),
    <crossed product with center Rationals over CF(3) of a group of size 2> ]
  gap> FG := GroupRing( CF(5), SymmetricGroup(4) );
  <algebra-with-one over CF(5), with 2 generators>
  gap> WedderburnDecomposition( FG );
  [ CF(5), CF(5), ( CF(5)^[ 3, 3 ] ), ( CF(5)^[ 3, 3 ] ),
    <crossed product with center CF(5) over AsField( CF(5), CF(
      15) ) of a group of size 2> ]
  gap> FG := GroupRing( GF(5), SymmetricGroup(4) ); 
  <algebra-with-one over GF(5), with 2 generators>
  gap> WedderburnDecomposition( FG );
  [ ( GF(5)^[ 1, 1 ] ), ( GF(5)^[ 1, 1 ] ), ( GF(5)^[ 2, 2 ] ), 
    ( GF(5)^[ 3, 3 ] ), ( GF(5)^[ 3, 3 ] ) ]
  gap> FG := GroupRing( GF(5), SmallGroup(24,3) );
  <algebra-with-one over GF(5), with 4 generators>
  gap> WedderburnDecomposition( FG );
  [ ( GF(5)^[ 1, 1 ] ), ( GF(5^2)^[ 1, 1 ] ), ( GF(5)^[ 2, 2 ] ), 
    ( GF(5^2)^[ 2, 2 ] ), ( GF(5)^[ 3, 3 ] ) ]
  
\end{Verbatim}
 Instead of \texttt{WedderburnDecomposition} (\ref{WedderburnDecomposition}), that returns a list of \textsf{GAP} objects, \texttt{WedderburnDecompositionInfo} (\ref{WedderburnDecompositionInfo}) returns the numerical description of these objects. See Section \ref{NumDesc} for theoretical background. }

  
\section{\textcolor{Chapter }{Installation and system requirements}}\label{IntroInstall}
\logpage{[ 1, 3, 0 ]}
{
  \textsf{Wedderga} does not use external binaries and, therefore, works without restrictions on
the type of the operating system. It is designed for \textsf{GAP}4.4 and no compatibility with previous releases of \textsf{GAP}4 is guaranteed. 

 To use the \textsf{Wedderga} online help it is necessary to install the \textsf{GAP}4 package \textsf{GAPDoc} by Frank L\"ubeck and Max Neunh\"offer, which is available from the \textsf{GAP} site or from \href{http://www.math.rwth-aachen.de/~Frank.Luebeck/GAPDoc/}{\texttt{http://www.math.rwth-aachen.de/\~{}Frank.Luebeck/GAPDoc/}}. 

 \textsf{Wedderga} is distributed in standard formats (\texttt{zoo}, \texttt{tar.gz}, \texttt{tar.bz2}, \texttt{-win.zip}) and can be obtained from \href{http://www.um.es/adelrio/wedderga.htm}{\texttt{http://www.um.es/adelrio/wedderga.htm}}. To unpack the archive \texttt{wedderga-4.2.zoo} you need the program \texttt{unzoo}, which can be obtained from the \textsf{GAP} homepage \href{http://www.gap-system.org/}{\texttt{http://www.gap-system.org/}} (see section `Distribution'). To install \textsf{Wedderga}, copy this archive into the \texttt{pkg} subdirectory of your \textsf{GAP}4.4 installation. The subdirectory \texttt{wedderga} will be created in the \texttt{pkg} directory after the following command: 

 \texttt{unzoo -x wedderga-4.2.zoo} 

 }

 }

   
\chapter{\textcolor{Chapter }{Wedderburn decomposition}}\label{Decomp}
\logpage{[ 2, 0, 0 ]}
{
  
\section{\textcolor{Chapter }{Wedderburn decomposition}}\label{DecompDecomp}
\logpage{[ 2, 1, 0 ]}
{
  

\subsection{\textcolor{Chapter }{WedderburnDecomposition}}
\logpage{[ 2, 1, 1 ]}\nobreak
{\noindent\textcolor{FuncColor}{$\Diamond$\ \texttt{WedderburnDecomposition( FG )\index{WedderburnDecomposition@\texttt{WedderburnDecomposition}}
\label{WedderburnDecomposition}
}\hfill{\scriptsize (attribute)}}\\
\textbf{\indent Returns:\ }
 A list of simple algebras. 



 The input \mbox{\texttt{FG}} should be a group algebra of a finite group $G$ over the field $F$, where $F$ is either an abelian number field (i.e. a subfield of a finite cyclotomic
extension of the rationals) or a finite field of characteristic coprime with
the order of $G$. 

 The function returns the list of all \emph{Wedderburn components} (\ref{WedDec}) of the group algebra \mbox{\texttt{FG}}. If $F$ is an abelian number field then each Wedderburn component is given as a matrix
algebras of a \emph{cyclotomic algebra} (\ref{Cyclotomic}). If $F$ is a finite field then the Wedderburn components are given as matrix algebras
over finite fields. 

 }

 
\begin{Verbatim}[fontsize=\small,frame=single,label=Example]
  
  gap> WedderburnDecomposition( GroupRing( GF(5), DihedralGroup(16) ) );
  [ ( GF(5)^[ 1, 1 ] ), ( GF(5)^[ 1, 1 ] ), ( GF(5)^[ 1, 1 ] ),
    ( GF(5)^[ 1, 1 ] ), ( GF(5)^[ 2, 2 ] ), ( GF(5^2)^[ 2, 2 ] ) ]
  gap> WedderburnDecomposition( GroupRing( Rationals, DihedralGroup(16) ) );
  [ Rationals, Rationals, Rationals, Rationals, ( Rationals^[ 2, 2 ] ),
    <crossed product with center NF(8,[ 1, 7 ]) over AsField( NF(8,
      [ 1, 7 ]), CF(8) ) of a group of size 2> ]
  gap> WedderburnDecomposition( GroupRing( CF(5), DihedralGroup(16) ) );
  [ CF(5), CF(5), CF(5), CF(5), ( CF(5)^[ 2, 2 ] ),
    <crossed product with center NF(40,[ 1, 31 ]) over AsField( NF(40,
      [ 1, 31 ]), CF(40) ) of a group of size 2> ]
  
\end{Verbatim}
 The previous examples show that if $D_{16}$ denotes the dihedral group of order $16$ then the \emph{Wedderburn decomposition} (\ref{WedDec}) of $\F_5 D_{16}$, $\Q D_{16}$ and $\Q (\xi_5) D_{16}$ are respectively 
\[ \F_5 D_{16} = 4 \F_5 \oplus M_2( \F_5 ) \oplus M_2( \F_{25} ), \]
 
\[ \Q D_{16} = 4 \Q \oplus M_2( \Q ) \oplus (K(\xi_8)/K,t), \]
 and 
\[ \Q (\xi_5) D_{16} = 4 \Q (\xi_5) \oplus M_2( \Q (\xi_5) ) \oplus
(F(\xi_{40})/F,t), \]
 where $(K(\xi_8)/K,t)$ is a \emph{cyclotomic algebra} (\ref{Cyclotomic}) with the centre $K=NF(8,[ 1, 7 ])= \Q (\sqrt{2})$, $(F(\xi_{40})/F,t) = \Q (\sqrt{2},\xi_5)$ is a cyclotomic algebra with centre $F=NF(40,[ 1, 31 ])$ and $\xi_n$ denotes a $n$-th root of unity. 

 Two more examples: 
\begin{Verbatim}[fontsize=\small,frame=single,label=Example]
  
  gap> WedderburnDecomposition( GroupRing( Rationals, SmallGroup(48,15) ) );
  [ Rationals, Rationals, Rationals, Rationals, ( Rationals^[ 2, 2 ] ),
    <crossed product with center Rationals over CF(3) of a group of size 2>,
    ( CF(3)^[ 2, 2 ] ), <crossed product with center Rationals over CF(
      3) of a group of size 2>, <crossed product with center NF(8,
      [ 1, 7 ]) over AsField( NF(8,[ 1, 7 ]), CF(8) ) of a group of size 2>,
    <crossed product with center Rationals over CF(12) of a group of size 4> ]
  gap> WedderburnDecomposition( GroupRing( CF(3), SmallGroup(48,15) ) );
  [ CF(3), CF(3), CF(3), CF(3), ( CF(3)^[ 2, 2 ] ), ( CF(3)^[ 2, 2 ] ),
    ( CF(3)^[ 2, 2 ] ), ( CF(3)^[ 2, 2 ] ), ( CF(3)^[ 2, 2 ] ),
    <crossed product with center NF(24,[ 1, 7 ]) over AsField( NF(24,
      [ 1, 7 ]), CF(24) ) of a group of size 2>,
    ( <crossed product with center CF(3) over AsField( CF(3), CF(
      12) ) of a group of size 2>^[ 2, 2 ] ) ]
  
\end{Verbatim}
 In some cases, in characteristic zero, some entries of the output of \texttt{WedderburnDecomposition} (\ref{WedderburnDecomposition}) do not provide full matrix algebras over a \emph{cyclotomic algebra} (\ref{Cyclotomic}), but "fractional matrix algebras". That entry is not an algebra that can be
used as a \textsf{GAP} object. Instead is a pair form by a rational giving the "size" of the matrices
and a crossed product. See \ref{WedDec} for a theoretical explanation of this phenomenon. In this case a warning
message is displayed. 
\begin{Verbatim}[fontsize=\small,frame=single,label=Example]
  
  gap> QG:=GroupRing(Rationals,SmallGroup(240,89));
  <algebra-with-one over Rationals, with 2 generators>
  gap> WedderburnDecomposition(QG);
  Wedderga: Warning!!!
  Some of the Wedderburn components displayed are FRACTIONAL MATRIX ALGEBRAS!!!
  
  [ Rationals, Rationals, <crossed product with center Rationals over CF(
      5) of a group of size 4>, ( Rationals^[ 4, 4 ] ), ( Rationals^[ 4, 4 ] ),
    ( Rationals^[ 5, 5 ] ), ( Rationals^[ 5, 5 ] ), ( Rationals^[ 6, 6 ] ),
    <crossed product with center NF(12,[ 1, 11 ]) over AsField( NF(12,
      [ 1, 11 ]), NF(60,[ 1, 11 ]) ) of a group of size 4>,
    [ 3/2, <crossed product with center NF(8,[ 1, 7 ]) over AsField( NF(8,
          [ 1, 7 ]), NF(40,[ 1, 31 ]) ) of a group of size 4> ] ]  
  
\end{Verbatim}
  

\subsection{\textcolor{Chapter }{WedderburnDecompositionInfo}}
\logpage{[ 2, 1, 2 ]}\nobreak
{\noindent\textcolor{FuncColor}{$\Diamond$\ \texttt{WedderburnDecompositionInfo( FG )\index{WedderburnDecompositionInfo@\texttt{WedderburnDecompositionInfo}}
\label{WedderburnDecompositionInfo}
}\hfill{\scriptsize (attribute)}}\\
\textbf{\indent Returns:\ }
 A list with each entry a numerical description of a \emph{cyclotomic algebras} (\ref{Cyclotomic}). 



 The input \mbox{\texttt{FG}} should be a group algebra of a finite group $G$ over the field $F$, where $F$ is either an abelian number field (i.e. a subfield of a finite cyclotomic
extension of the rationals) or a finite field of characteristic coprime with
the order of $G$. 

 This function is a numerical counterpart of \texttt{WedderburnDecomposition} (\ref{WedderburnDecomposition}). 

 It returns a list formed by lists of length 2, 4 or 5. 

 The lists of length 2 are of the form 
\[ [n,F], \]
 where $n$ is a positive integer and $F$ is a field. It represents the $n\times n$ matrix algebra $M_n(F)$ over the field $F$.

 The lists of length 4 are of the form 
\[ [n,F,k,[d,\alpha,\beta]], \]
 where $F$ is a field and $n,k,d,\alpha,\beta$ are non negative integers, satisfying conditions mentioned in section \ref{NumDesc}. It represents the $n\times n$ matrix algebra $M_n(A)$ over the cyclic algebra 
\[ A=F(\xi_k)[u | \xi_k^u = \xi_k^{\alpha}, u^d = \xi_k^{\beta}), \]
 where $\xi_k$ is a primitive $k$-th root of unity. 

 The lists of length 5 are of the form 
\[ [n,F,k,[d_i,\alpha_i,\beta_i]_{i=1}^m, [\gamma_{i,j}]_{1\le i < j \le m} ], \]
 where $F$ is a field and $n,k,d_i,\alpha_i,\beta_i,\gamma_{i,j}$ are non negative integers. It represents the $n\times n$ matrix algebra $M_n(A)$ over the \emph{cyclotomic algebra} (\ref{Cyclotomic}) 
\[ A = F(\xi_k)[g_1,\ldots,g_m \mid \xi_k^{g_i} = \xi_k^{\alpha_i},
g_i^{d_i}=\xi_k^{\beta_i}, g_jg_i=\xi_k^{\gamma_{ij}} g_i g_j], \]
 where $\xi_k$ is a primitive $k$-th root of unity (see \ref{NumDesc}). 

 }

 
\begin{Verbatim}[fontsize=\small,frame=single,label=Example]
  
  gap> WedderburnDecompositionInfo( GroupRing( Rationals, DihedralGroup(16) ) );
  [ [ 1, Rationals ], [ 1, Rationals ], [ 1, Rationals ], [ 1, Rationals ],
    [ 2, Rationals ], [ 1, NF(8,[ 1, 7 ]), 8, [ 2, 7, 0 ] ] ]
  gap> WedderburnDecompositionInfo( GroupRing( CF(5), DihedralGroup(16) ) );
  [ [ 1, CF(5) ], [ 1, CF(5) ], [ 1, CF(5) ], [ 1, CF(5) ], [ 2, CF(5) ],
    [ 1, NF(40,[ 1, 31 ]), 8, [ 2, 7, 0 ] ] ]
  
\end{Verbatim}
 The interpretation of the previous example gives rise to the following \emph{Wedderburn decompositions} (\ref{WedDec}), where $D_{16}$ is the dihedral group of order 16 and $\xi_5$ is a primitive $5$-th root of unity. 
\[ \Q D_{16} = 4 \Q \oplus M_2( \Q ) \oplus M_2( \Q (\sqrt{2})). \]
 
\[ \Q (\xi_5) D_{16} = 4 \Q (\xi_5) \oplus M_2( \Q (\xi_5)) \oplus M_2( \Q
(\xi_5,\sqrt{2})). \]
 
\begin{Verbatim}[fontsize=\small,frame=single,label=Example]
  
  gap> F:=FreeGroup("a","b");;a:=F.1;;b:=F.2;;rel:=[a^8,a^4*b^2,b^-1*a*b*a];;
  gap> Q16:=F/rel;; QQ16:=GroupRing( Rationals, Q16 );;
  gap> QS4:=GroupRing( Rationals, SymmetricGroup(4) );;
  gap> WedderburnDecomposition(QQ16);
  [ Rationals, Rationals, Rationals, Rationals, ( Rationals^[ 2, 2 ] ),
    <crossed product with center NF(8,[ 1, 7 ]) over AsField( NF(8,
      [ 1, 7 ]), CF(8) ) of a group of size 2> ]
  gap> WedderburnDecomposition( QS4 );
  [ Rationals, Rationals, ( Rationals^[ 3, 3 ] ), ( Rationals^[ 3, 3 ] ),
    <crossed product with center Rationals over CF(3) of a group of size 2> ]
  gap> WedderburnDecompositionInfo(QQ16);
  [ [ 1, Rationals ], [ 1, Rationals ], [ 1, Rationals ], [ 1, Rationals ], 
    [ 2, Rationals ], [ 1, NF(8,[ 1, 7 ]), 8, [ 2, 7, 4 ] ] ]
  gap> WedderburnDecompositionInfo(QS4);  
  [ [ 1, Rationals ], [ 1, Rationals ], [ 3, Rationals ], [ 3, Rationals ], 
    [ 1, Rationals, 3, [ 2, 2, 0 ] ] ]
  
\end{Verbatim}
 In the previous example we computed the Wedderburn decomposition of the
rational group algebra $\Q Q_{16}$ of the quaternion group of order $16$ and the rational group algebra $\Q S_{4}$ of the symmetric group on four letters. For the two group algebras we used
both \texttt{WedderburnDecomposition} (\ref{WedderburnDecomposition}) and \texttt{WedderburnDecompositionInfo} (\ref{WedderburnDecompositionInfo}). 

 The output of \texttt{WedderburnDecomposition} (\ref{WedderburnDecomposition}) shows that 
\[ \Q Q_{16} = 4 \Q \oplus M_2( \Q ) \oplus A, \]
 
\[ \Q S_{4} = 2 \Q \oplus 2 M_3( \Q ) \oplus B, \]
 where $A$ and $B$ are \emph{crossed products} (\ref{CrossedProd}) with coefficients in the cyclotomic fields $\Q (\xi_8)$ and $\Q (\xi_3)$ respectively. This output can be used as a \textsf{GAP} object, but it does not give clear information on the structure of algebras $A$ and $B$. 

 The numerical information displayed by \texttt{WedderburnDecompositionInfo} (\ref{WedderburnDecompositionInfo}) means that 
\[ A = \Q (\xi|\xi^8=1)[g | \xi^g = \xi^7 = \xi^{-1}, g^2 = \xi^4 = -1], \]
 
\[ B = \Q (\xi|\xi^3=1)[g | \xi^g = \xi^2 = \xi^{-1}, g^2 = 1]. \]
 Both $A$ and $B$ are quaternion algebras over its centre which is $\Q (\xi+\xi^{-1})$ and the former is equal to $\Q (\sqrt{2})$ and $\Q$ respectively. 

 In $B$, one has $(g+1)(g-1)=0$, while $g$ is neither $1$ nor $-1$. This shows that $B=M_2( \Q )$. However the relation $g^2=-1$ in $A$ shows that 
\[ A=\Q (\sqrt{2})[i,g|i^2=g^2=-1,ig=-gi] \]
 and so $A$ is a division algebra with centre $\Q (\sqrt{2})$, which is a subalgebra of the algebra of Hamiltonian quaternions. This could
be deduced also using well known methods on cyclic algebras (see e.g. \cite{R}). 

 Next example shows the output of \texttt{WedderburnDecompositionInfo} for $\Q G$ and $\Q (\xi_3) G$, where $G=SmallGroup(48,15)$. The user can compare it with the output of \texttt{WedderburnDecomposition} (\ref{WedderburnDecomposition}) for the same group in the previous section. Notice that the last entry of the \emph{Wedderburn decomposition} (\ref{WedDec}) of $\Q G$ is not given as a matrix algebra of a cyclic algebra. However, the
corresponding entry of $\Q (\xi_3) G$ is a matrix algebra of a cyclic algebra. 
\begin{Verbatim}[fontsize=\small,frame=single,label=Example]
  
  gap> WedderburnDecompositionInfo( GroupRing( Rationals, SmallGroup(48,15) ) );
  [ [ 1, Rationals ], [ 1, Rationals ], [ 1, Rationals ], [ 1, Rationals ],
    [ 2, Rationals ], [ 1, Rationals, 3, [ 2, 2, 0 ] ], [ 2, CF(3) ],
    [ 1, Rationals, 6, [ 2, 5, 0 ] ], [ 1, NF(8,[ 1, 7 ]), 8, [ 2, 7, 0 ] ],
    [ 1, Rationals, 12, [ [ 2, 5, 9 ], [ 2, 7, 0 ] ], [ [ 9 ] ] ] ]
  gap> WedderburnDecompositionInfo( GroupRing( CF(3), SmallGroup(48,15) ) );
  [ [ 1, CF(3) ], [ 1, CF(3) ], [ 1, CF(3) ], [ 1, CF(3) ], [ 2, CF(3) ],
    [ 2, CF(3), 3, [ 1, 1, 0 ] ], [ 2, CF(3) ], [ 2, CF(3) ],
    [ 2, CF(3), 6, [ 1, 1, 0 ] ], [ 1, NF(24,[ 1, 7 ]), 8, [ 2, 7, 0 ] ],
    [ 2, CF(3), 12, [ 2, 7, 0 ] ] ]
  
\end{Verbatim}
 In some cases some of the first entries of the output of \texttt{WedderburnDecompositionInfo} (\ref{WedderburnDecompositionInfo}) are not integers and so the correspoding \emph{Wedderburn components} (\ref{WedDec}) are given as "fractional matrix algebras" of \emph{cyclotomic algebras} (\ref{Cyclotomic}). See \ref{WedDec} for a theoretical explanation of this phenomenon. In that case a warning
message will be displayed during the first call of \texttt{WedderburnDecompositionInfo}. 
\begin{Verbatim}[fontsize=\small,frame=single,label=Example]
  
  gap> QG:=GroupRing(Rationals,SmallGroup(240,89));
  <algebra-with-one over Rationals, with 2 generators>
  gap> WedderburnDecompositionInfo(QG);
  Wedderga: Warning!!! 
  Some of the Wedderburn components displayed are FRACTIONAL MATRIX ALGEBRAS!!!
  
  [ [ 1, Rationals ], [ 1, Rationals ], [ 1, Rationals, 10, [ 4, 3, 5 ] ],
    [ 4, Rationals ], [ 4, Rationals ], [ 5, Rationals ], [ 5, Rationals ],
    [ 6, Rationals ], [ 1, NF(12,[ 1, 11 ]), 10, [ 4, 3, 5 ] ],
    [ 3/2, NF(8,[ 1, 7 ]), 10, [ 4, 3, 5 ] ] ]
  
\end{Verbatim}
 The interpretation of the output in the previous example give rise to the
following \emph{Wedderburn decomposition} (\ref{WedDec}) of $\Q G$ for $G$ the small group $[240,89]$: 
\[ \Q G = 2 \Q \oplus 2 M_4( \Q ) \oplus 2 M_5( \Q ) \oplus M_6( \Q ) \oplus A
\oplus B \oplus C \]
 where 
\[ A = \Q (\xi_{10})[u|\xi_{10}^u = \xi_{10}^3, u^4 = -1], \]
 $B$ is an algebra of degree $(4*2 )/2 = 4 $ which is \emph{Brauer equivalent} (\ref{Brauer}) to 
\[ B_1 = \Q (\xi_{60})[u,v|\xi_{60}^u = \xi_{60}^{13}, u^4 = \xi_{60}^5,
\xi_{60}^v = \xi_{60}^{11}, v^2 = 1, vu=uv], \]
 and $C$ is an algebra of degree $(4*2)*3/4 = 6 $ which is \emph{Brauer equivalent} (\ref{Brauer}) to 
\[ C_1 = \Q (\xi_{60})[u,v|\xi_{60}^u = \xi_{60}^7, u^4 = \xi_{60}^5, \xi_{60}^v
= \xi_{60}^{31}, v^2 = 1, vu=uv]. \]
 The precise description of $B$ and $C$ requires the usage of "ad hoc" arguments. }

  
\section{\textcolor{Chapter }{Simple quotients}}\label{DecompSimple}
\logpage{[ 2, 2, 0 ]}
{
  

\subsection{\textcolor{Chapter }{SimpleAlgebraByCharacter}}
\logpage{[ 2, 2, 1 ]}\nobreak
{\noindent\textcolor{FuncColor}{$\Diamond$\ \texttt{SimpleAlgebraByCharacter( FG, chi )\index{SimpleAlgebraByCharacter@\texttt{SimpleAlgebraByCharacter}}
\label{SimpleAlgebraByCharacter}
}\hfill{\scriptsize (operation)}}\\
\textbf{\indent Returns:\ }
 A simple algebra. 



 The first input \mbox{\texttt{FG}} should be a \emph{semisimple group algebra} (\ref{Semisimple}) over a finite group $G$ and the second input should be an irreducible character of $G$.

 The output is a matrix algebra of a \emph{cyclotomic algebras} (\ref{Cyclotomic}) which is isomorphic to the unique \emph{Wedderburn component} (\ref{WedDec}) $A$ of \mbox{\texttt{FG}} such that $\chi(A)\ne 0$. }

 
\begin{Verbatim}[fontsize=\small,frame=single,label=Example]
  
  gap> A5 := AlternatingGroup(5);
  Alt( [ 1 .. 5 ] )
  gap> SimpleAlgebraByCharacter( GroupRing( Rationals , A5 ) , Irr( A5 ) [3] );
  ( NF(5,[ 1, 4 ])^[ 3, 3 ] )
  gap> SimpleAlgebraByCharacter( GroupRing( GF(7) , A5 ) , Irr( A5 ) [3] );
  ( GF(7^2)^[ 3, 3 ] )
  gap> G:=SmallGroup(128,100);
  <pc group of size 128 with 7 generators>
  gap> SimpleAlgebraByCharacter( GroupRing( Rationals , G ) , Irr(G)[19] );
  <crossed product with center NF(8,[ 1, 3 ]) over AsField( NF(8,[ 1, 3 ]), CF(
  8) ) of a group of size 2>
  
\end{Verbatim}
  

\subsection{\textcolor{Chapter }{SimpleAlgebraByCharacterInfo}}
\logpage{[ 2, 2, 2 ]}\nobreak
{\noindent\textcolor{FuncColor}{$\Diamond$\ \texttt{SimpleAlgebraByCharacterInfo( FG, chi )\index{SimpleAlgebraByCharacterInfo@\texttt{SimpleAlgebraByCharacterInfo}}
\label{SimpleAlgebraByCharacterInfo}
}\hfill{\scriptsize (operation)}}\\
\textbf{\indent Returns:\ }
 The numerical description of the output of \texttt{SimpleAlgebraByCharacter} (\ref{SimpleAlgebraByCharacter}). 



 The first input \mbox{\texttt{FG}} is a \emph{semisimple group algebra} (\ref{Semisimple}) over a finite group $G$ and the second input is an irreducible character of $G$. 

 The output is the numerical description \ref{NumDesc} of the \emph{cyclotomic algebra} (\ref{Cyclotomic}) which is isomorphic to the unique \emph{Wedderburn component} (\ref{WedDec}) $A$ of \mbox{\texttt{FG}} such that $\chi(A)\ne 0$. 

 See \ref{NumDesc} for the interpretation of the numerical information given by the output. }

 
\begin{Verbatim}[fontsize=\small,frame=single,label=Example]
  
  gap> G:=SmallGroup(144,11);
  <pc group of size 144 with 6 generators>
  gap> QG:=GroupRing(Rationals,G);
  <algebra-with-one over Rationals, with 6 generators>
  gap> SimpleAlgebraByCharacter( QG , Irr(G)[48] );
  <crossed product with center NF(36,[ 1, 17 ]) over AsField( NF(36,
  [ 1, 17 ]), CF(36) ) of a group of size 2>
  gap> SimpleAlgebraByCharacterInfo( QG , Irr(G)[48] );
  [ 1, NF(36,[ 1, 17 ]), 36, [ 2, 17, 18 ] ]
  
\end{Verbatim}
  

\subsection{\textcolor{Chapter }{SimpleAlgebraByStrongSP (for rational group algebra)}}
\logpage{[ 2, 2, 3 ]}\nobreak
{\noindent\textcolor{FuncColor}{$\Diamond$\ \texttt{SimpleAlgebraByStrongSP( QG, K, H )\index{SimpleAlgebraByStrongSP@\texttt{SimpleAlgebraByStrongSP}!for rational group algebra}
\label{SimpleAlgebraByStrongSP:for rational group algebra}
}\hfill{\scriptsize (operation)}}\\
\noindent\textcolor{FuncColor}{$\Diamond$\ \texttt{SimpleAlgebraByStrongSPNC( QG, K, H )\index{SimpleAlgebraByStrongSPNC@\texttt{SimpleAlgebraByStrongSPNC}!for rational group algebra}
\label{SimpleAlgebraByStrongSPNC:for rational group algebra}
}\hfill{\scriptsize (operation)}}\\
\noindent\textcolor{FuncColor}{$\Diamond$\ \texttt{SimpleAlgebraByStrongSP( FG, K, H, C )\index{SimpleAlgebraByStrongSP@\texttt{SimpleAlgebraByStrongSP}!for semisimple finite group algebra}
\label{SimpleAlgebraByStrongSP:for semisimple finite group algebra}
}\hfill{\scriptsize (operation)}}\\
\noindent\textcolor{FuncColor}{$\Diamond$\ \texttt{SimpleAlgebraByStrongSPNC( FG, K, H, C )\index{SimpleAlgebraByStrongSPNC@\texttt{SimpleAlgebraByStrongSPNC}!for semisimple finite group algebra}
\label{SimpleAlgebraByStrongSPNC:for semisimple finite group algebra}
}\hfill{\scriptsize (operation)}}\\
\textbf{\indent Returns:\ }
 A simple algebra. 



 In the three-argument version the input must be formed by a \emph{semisimple rational group algebra} \mbox{\texttt{QG}} (see \ref{Semisimple}) and two subgroups \mbox{\texttt{K}} and \mbox{\texttt{H}} of $G$ which form a \emph{strong Shoda pair} (\ref{SSPDef}) of $G$. 

 The three-argument version returns the Wedderburn component (\ref{WedDec}) of the rational group algebra \mbox{\texttt{QG}} realized by the strong Shoda pair (\mbox{\texttt{K}},\mbox{\texttt{H}}). 

 In the four-argument version the first argument is a semisimple finite group
algebra \mbox{\texttt{FG}}, \mbox{\texttt{(K,H)}} is a strong Shoda pair of $G$ and the fourth input data is either a generating $q$-cyclotomic class modulo [\mbox{\texttt{K}},\mbox{\texttt{H}}] or a representative of generating $q$-cyclotomic class modulo [\mbox{\texttt{K}},\mbox{\texttt{H}}] (see \ref{CyclotomicClass}). 

 The four-argument version returns the Wedderburn component (\ref{WedDec}) of the finite group algebra \mbox{\texttt{FG}} realized by the strong Shoda pair (\mbox{\texttt{K}},\mbox{\texttt{H}}) and the cyclotomic class \mbox{\texttt{C}} (or the cyclotomic class containing \mbox{\texttt{C}}). 

 The versions ended in NC does not check if (\mbox{\texttt{K}},\mbox{\texttt{H}}) is a strong Shoda pair of $G$. In the four-argument version it is also not checked whether \mbox{\texttt{C}} is either a generating $q$-cyclotomic class the index of \mbox{\texttt{H}} in \mbox{\texttt{K}} or an integer coprime with the index of \mbox{\texttt{H}} in \mbox{\texttt{K}}. }

 
\begin{Verbatim}[fontsize=\small,frame=single,label=Example]
  
  gap> F:=FreeGroup("a","b");; a:=F.1;; b:=F.2;;
  gap> G:=F/[ a^16, b^2*a^8, b^-1*a*b*a^9 ];; a:=G.1;; b:=G.2;;
  gap> K:=Subgroup(G,[a]);; H:=Subgroup(G,[]);;
  gap> QG:=GroupRing( Rationals, G );;
  gap> FG:=GroupRing( GF(7), G );;
  gap> SimpleAlgebraByStrongSP( QG, K, H );
  <crossed product over CF(16) of a group of size 2>
  gap> SimpleAlgebraByStrongSP( FG, K, H, [1,7] );
  ( GF(7)^[ 2, 2 ] )
  gap> SimpleAlgebraByStrongSP( FG, K, H, 1 );
  ( GF(7)^[ 2, 2 ] )
  
\end{Verbatim}
  

\subsection{\textcolor{Chapter }{SimpleAlgebraByStrongSPInfo (for rational group algebra)}}
\logpage{[ 2, 2, 4 ]}\nobreak
{\noindent\textcolor{FuncColor}{$\Diamond$\ \texttt{SimpleAlgebraByStrongSPInfo( QG, K, H )\index{SimpleAlgebraByStrongSPInfo@\texttt{SimpleAlgebraByStrongSPInfo}!for rational group algebra}
\label{SimpleAlgebraByStrongSPInfo:for rational group algebra}
}\hfill{\scriptsize (operation)}}\\
\noindent\textcolor{FuncColor}{$\Diamond$\ \texttt{SimpleAlgebraByStrongSPInfoNC( QG, K, H )\index{SimpleAlgebraByStrongSPInfoNC@\texttt{SimpleAlgebraByStrongSPInfoNC}!for rational group algebra}
\label{SimpleAlgebraByStrongSPInfoNC:for rational group algebra}
}\hfill{\scriptsize (operation)}}\\
\noindent\textcolor{FuncColor}{$\Diamond$\ \texttt{SimpleAlgebraByStrongSPInfo( FG, K, H, C )\index{SimpleAlgebraByStrongSPInfo@\texttt{SimpleAlgebraByStrongSPInfo}!for semisimple finite group algebra}
\label{SimpleAlgebraByStrongSPInfo:for semisimple finite group algebra}
}\hfill{\scriptsize (operation)}}\\
\noindent\textcolor{FuncColor}{$\Diamond$\ \texttt{SimpleAlgebraByStrongSPInfoNC( FG, K, H, C )\index{SimpleAlgebraByStrongSPInfoNC@\texttt{SimpleAlgebraByStrongSPInfoNC}!for semisimple finite group algebra}
\label{SimpleAlgebraByStrongSPInfoNC:for semisimple finite group algebra}
}\hfill{\scriptsize (operation)}}\\
\textbf{\indent Returns:\ }
 A numerical description of one simple algebra. 



 In the three-argument version the input must be formed by a \emph{semisimple rational group algebra} (\ref{Semisimple}) \mbox{\texttt{QG}} and two subgroups \mbox{\texttt{K}} and \mbox{\texttt{H}} of $G$ which form a \emph{strong Shoda pair} (\ref{SSPDef}) of $G$. It returns the numerical information describing the Wedderburn component (\ref{NumDesc}) of the rational group algebra \mbox{\texttt{QG}} realized by a the strong Shoda pair (\mbox{\texttt{K}},\mbox{\texttt{H}}). 

 In the four-argument version the first input is a semisimple finite group
algebra \mbox{\texttt{FG}}, \mbox{\texttt{(K,H)}} is a strong Shoda pair of $G$ and the fourth input data is either a generating $q$-cyclotomic class modulo the index of \mbox{\texttt{H}} in \mbox{\texttt{K}} or a representative of generating $q$-cyclotomic class modulo the index of \mbox{\texttt{H}} in \mbox{\texttt{K}} (\ref{CyclotomicClass}). It returns a pair of positive integers $[n,r]$ which represent the $n\times n$ matrix algebra over the field of order $r$ which is isomorphic to the Wedderburn component of \mbox{\texttt{FG}} realized by a the strong Shoda pair (\mbox{\texttt{K}},\mbox{\texttt{H}}) and the cyclotomic class \mbox{\texttt{C}} (or the cyclotomic class containing the integer \mbox{\texttt{C}}). 

 The versions ended in NC does not check if (\mbox{\texttt{K}},\mbox{\texttt{H}}) is a strong Shoda pair of $G$. In the four-argument version it is also not checked whether \mbox{\texttt{C}} is either a generating $q$-cyclotomic class modulo the index of \mbox{\texttt{H}} in \mbox{\texttt{K}} or an integer coprime with the index of \mbox{\texttt{H}} in \mbox{\texttt{K}}. }

 
\begin{Verbatim}[fontsize=\small,frame=single,label=Example]
  
  gap> F:=FreeGroup("a","b");; a:=F.1;; b:=F.2;;
  gap> G:=F/[ a^16, b^2*a^8, b^-1*a*b*a^9 ];; a:=G.1;; b:=G.2;;
  gap> K:=Subgroup(G,[a]);; H:=Subgroup(G,[]);; 
  gap> QG:=GroupRing( Rationals, G );;
  gap> FG:=GroupRing( GF(7), G );;
  gap> SimpleAlgebraByStrongSP( QG, K, H );
  <crossed product over CF(16) of a group of size 2>
  gap> SimpleAlgebraByStrongSPInfo( QG, K, H );
  [ 1, NF(16,[ 1, 7 ]), 16, [ [ 2, 7, 8 ] ], [  ] ]
  gap> SimpleAlgebraByStrongSPInfo( FG, K, H, [1,7] );
  [ 2, 7 ]
  gap> SimpleAlgebraByStrongSPInfo( FG, K, H, 1 );
  [ 2, 7 ]
  
\end{Verbatim}
 }

 }

   
\chapter{\textcolor{Chapter }{Strong Shoda pairs}}\label{SSP}
\logpage{[ 3, 0, 0 ]}
{
  
\section{\textcolor{Chapter }{Computing strong Shoda pairs}}\label{SSPSSP}
\logpage{[ 3, 1, 0 ]}
{
  

\subsection{\textcolor{Chapter }{StrongShodaPairs}}
\logpage{[ 3, 1, 1 ]}\nobreak
{\noindent\textcolor{FuncColor}{$\Diamond$\ \texttt{StrongShodaPairs( G )\index{StrongShodaPairs@\texttt{StrongShodaPairs}}
\label{StrongShodaPairs}
}\hfill{\scriptsize (attribute)}}\\
\textbf{\indent Returns:\ }
 A list of pairs of subgroups of the input group. 



 The input should be a finite group \mbox{\texttt{G}}. 

 Computes a list of representatives of the equivalence classes of \emph{strong Shoda pairs} (\ref{SSPDef}) of a finite group \mbox{\texttt{G}}. 

 }

 
\begin{Verbatim}[fontsize=\small,frame=single,label=Example]
  
  gap> StrongShodaPairs( SymmetricGroup(4) );
  [ [ Sym( [ 1 .. 4 ] ), Group([ (1,3)(2,4), (1,4)(2,3), (2,4,3), (1,2) ]) ],
    [ Sym( [ 1 .. 4 ] ), Group([ (1,3)(2,4), (1,4)(2,3), (2,4,3) ]) ],
    [ Group([ (1,2)(3,4), (1,3,2,4), (3,4) ]), Group([ (1,2)(3,4), (1,3,2,4) ])
       ],
    [ Group([ (1,2)(3,4), (3,4), (1,3,2,4) ]), Group([ (1,2)(3,4), (3,4) ]) ],
    [ Group([ (1,4)(2,3), (1,3)(2,4), (2,4,3) ]),
        Group([ (1,4)(2,3), (1,3)(2,4) ]) ] ]
  gap> StrongShodaPairs( DihedralGroup(64) );
  [ [ <pc group of size 64 with 6 generators>,
        Group([ f6, f5, f4, f3, f1, f2 ]) ],
    [ <pc group of size 64 with 6 generators>, Group([ f6, f5, f4, f3, f1*f2 ])
       ],
    [ <pc group of size 64 with 6 generators>, Group([ f6, f5, f4, f3, f2 ]) ],
    [ <pc group of size 64 with 6 generators>, Group([ f6, f5, f4, f3, f1 ]) ],
    [ Group([ f1*f2, f4*f5*f6, f5*f6, f6, f3, f3 ]),
        Group([ f6, f5, f4, f1*f2 ]) ],
    [ Group([ f6, f5, f2, f3, f4 ]), Group([ f6, f5 ]) ],
    [ Group([ f6, f2, f3, f4, f5 ]), Group([ f6 ]) ],
    [ Group([ f2, f3, f4, f5, f6 ]), Group([  ]) ] ]
  
\end{Verbatim}
 }

 
\section{\textcolor{Chapter }{Properties related with Shoda pairs}}\label{IsSSP}
\logpage{[ 3, 2, 0 ]}
{
  

\subsection{\textcolor{Chapter }{IsStrongShodaPair}}
\logpage{[ 3, 2, 1 ]}\nobreak
{\noindent\textcolor{FuncColor}{$\Diamond$\ \texttt{IsStrongShodaPair( G, K, H )\index{IsStrongShodaPair@\texttt{IsStrongShodaPair}}
\label{IsStrongShodaPair}
}\hfill{\scriptsize (operation)}}\\


 The first argument should be a finite group \mbox{\texttt{G}}, the second one a sugroup \mbox{\texttt{K}} of \mbox{\texttt{G}} and the third one a subgroup of \mbox{\texttt{K}}. 

 Returns \texttt{true} if (\mbox{\texttt{K}},\mbox{\texttt{H}}) is a \emph{strong Shoda pair} (\ref{SSPDef}) of \mbox{\texttt{G}}, and \texttt{false} otherwise. }

 
\begin{Verbatim}[fontsize=\small,frame=single,label=Example]
  
  gap> G:=SymmetricGroup(3);; K:=Group([(1,2,3)]);; H:=Group( () );;
  gap> IsStrongShodaPair( G, K, H );
  true
  gap> IsStrongShodaPair( G, G, H );
  false
  gap> IsStrongShodaPair( G, K, K );
  false
  gap> IsStrongShodaPair( G, G, K );
  true
  
\end{Verbatim}
 

\subsection{\textcolor{Chapter }{IsShodaPair}}
\logpage{[ 3, 2, 2 ]}\nobreak
{\noindent\textcolor{FuncColor}{$\Diamond$\ \texttt{IsShodaPair( G, K, H )\index{IsShodaPair@\texttt{IsShodaPair}}
\label{IsShodaPair}
}\hfill{\scriptsize (operation)}}\\


 The first argument should be a finite group \mbox{\texttt{G}}, the second a subgroup \mbox{\texttt{K}} of \mbox{\texttt{G}} and the third one a subgroup of \mbox{\texttt{K}}. 

 Returns \texttt{true} if (\mbox{\texttt{K}},\mbox{\texttt{H}}) is a \emph{Shoda pair} (\ref{SPDef}) of \mbox{\texttt{G}}.

 Note that every strong Shoda pair is a Shoda pair, but the converse is not
true. }

 
\begin{Verbatim}[fontsize=\small,frame=single,label=Example]
  
  gap> G:=AlternatingGroup(5);;
  gap> K:=AlternatingGroup(4);;
  gap> H := Group( (1,2)(3,4), (1,3)(2,4) );;
  gap> IsStrongShodaPair( G, K, H );
  false
  gap> IsShodaPair( G, K, H );
  true
  
\end{Verbatim}
 \newpage 

\subsection{\textcolor{Chapter }{IsStronglyMonomial}}
\logpage{[ 3, 2, 3 ]}\nobreak
{\noindent\textcolor{FuncColor}{$\Diamond$\ \texttt{IsStronglyMonomial( G )\index{IsStronglyMonomial@\texttt{IsStronglyMonomial}}
\label{IsStronglyMonomial}
}\hfill{\scriptsize (operation)}}\\


 The input \mbox{\texttt{G}} should be a finite group. 

 Returns \texttt{true} if \mbox{\texttt{G}} is a \emph{strongly monomial} (\ref{StMon}) finite group. }

 
\begin{Verbatim}[fontsize=\small,frame=single,label=Example]
  
  gap> S4:=SymmetricGroup(4);;
  gap> IsStronglyMonomial(S4);
  true
  gap> G:=SmallGroup(24,3);;
  gap> IsStronglyMonomial(G);
  false
  gap> IsMonomial(G);
  false
  gap> G:=SmallGroup(1000,86);;
  gap> IsMonomial(G);
  true
  gap> IsStronglyMonomial(G);
  false
  
\end{Verbatim}
 }

 }

   
\chapter{\textcolor{Chapter }{Idempotents}}\label{Idemp}
\logpage{[ 4, 0, 0 ]}
{
  
\section{\textcolor{Chapter }{Computing idempotents from character table}}\label{IdempotIrr}
\logpage{[ 4, 1, 0 ]}
{
  

\subsection{\textcolor{Chapter }{PrimitiveCentralIdempotentsByCharacterTable}}
\logpage{[ 4, 1, 1 ]}\nobreak
{\noindent\textcolor{FuncColor}{$\Diamond$\ \texttt{PrimitiveCentralIdempotentsByCharacterTable( FG )\index{PrimitiveCentralIdempotentsByCharacterTable@\texttt{PrimitiveCentralIdempotentsByCharacterTable}}
\label{PrimitiveCentralIdempotentsByCharacterTable}
}\hfill{\scriptsize (operation)}}\\
\textbf{\indent Returns:\ }
 A list of group algebra elements. 



 The input \mbox{\texttt{FG}} should be a semisimple group algebra. 

 Returns the list of primitive central idempotents of \mbox{\texttt{FG}} using the character table of $G$ (\ref{Idempotents}). }

 
\begin{Verbatim}[fontsize=\small,frame=single,label=Example]
  
  gap> QS3 := GroupRing( Rationals, SymmetricGroup(3) );;                 
  gap> PrimitiveCentralIdempotentsByCharacterTable( QS3 );
  [ (1/6)*()+(-1/6)*(2,3)+(-1/6)*(1,2)+(1/6)*(1,2,3)+(1/6)*(1,3,2)+(-1/6)*(1,3),
    (2/3)*()+(-1/3)*(1,2,3)+(-1/3)*(1,3,2), (1/6)*()+(1/6)*(2,3)+(1/6)*(1,2)+(1/
      6)*(1,2,3)+(1/6)*(1,3,2)+(1/6)*(1,3) ]
  gap> QG:=GroupRing( Rationals , SmallGroup(24,3) );
  <algebra-with-one over Rationals, with 4 generators>
  gap> FG:=GroupRing( CF(3) , SmallGroup(24,3) );
  <algebra-with-one over CF(3), with 4 generators>
  gap> pciQG := PrimitiveCentralIdempotentsByCharacterTable(QG);;
  gap> pciFG := PrimitiveCentralIdempotentsByCharacterTable(FG);;
  gap> Length(pciQG);
  5
  gap> Length(pciFG);
  7
  
\end{Verbatim}
 }

  
\section{\textcolor{Chapter }{Testing lists of idempotents for completeness}}\label{IdempotTesting}
\logpage{[ 4, 2, 0 ]}
{
  

\subsection{\textcolor{Chapter }{IsCompleteSetOfOrthogonalIdempotents}}
\logpage{[ 4, 2, 1 ]}\nobreak
{\noindent\textcolor{FuncColor}{$\Diamond$\ \texttt{IsCompleteSetOfOrthogonalIdempotents( R, list )\index{IsCompleteSetOfOrthogonalIdempotents@\texttt{IsCompleteSetOfOrthogonalIdempotents}}
\label{IsCompleteSetOfOrthogonalIdempotents}
}\hfill{\scriptsize (operation)}}\\


 The input should be formed by a unital ring \mbox{\texttt{R}} and a list \mbox{\texttt{list}} of elements of \mbox{\texttt{R}}. 

 Returns \texttt{true} if the list \mbox{\texttt{list}} is a complete list of orthogonal idempotents of \mbox{\texttt{R}}. That is, the output is \texttt{true} provided the following conditions are satisfied:

 $\cdot$ The sum of the elements of \mbox{\texttt{list}} is the identity of \mbox{\texttt{R}}, 

 $\cdot$ $e^2=e$, for every $e$ in \mbox{\texttt{list}} and 

 $\cdot$ $e*f=0$, if $e$ and $f$ are elements in different positions of \mbox{\texttt{list}}. 

 No claim is made on the idempotents being central or primitive. 

 Note that the if a non-zero element $t$ of \mbox{\texttt{R}} appears in two different positions of \mbox{\texttt{list}} then the output is \texttt{false}, and that the list \mbox{\texttt{list}} must not contain zeroes. }

 
\begin{Verbatim}[fontsize=\small,frame=single,label=Example]
  
  gap> QS5 := GroupRing( Rationals, SymmetricGroup(5) );;
  gap> idemp := PrimitiveCentralIdempotentsByCharacterTable( QS5 );;
  gap> IsCompleteSetOfOrthogonalIdempotents( QS5, idemp );
  true
  gap> IsCompleteSetOfOrthogonalIdempotents( QS5, [ One( QS5 ) ] );
  true
  gap> IsCompleteSetOfOrthogonalIdempotents( QS5, [ One( QS5 ), One( QS5 ) ] );
  false
  
\end{Verbatim}
 }

  
\section{\textcolor{Chapter }{Idempotents from Shoda pairs}}\label{IdempotShoda}
\logpage{[ 4, 3, 0 ]}
{
  

\subsection{\textcolor{Chapter }{PrimitiveCentralIdempotentsByStrongSP}}
\logpage{[ 4, 3, 1 ]}\nobreak
{\noindent\textcolor{FuncColor}{$\Diamond$\ \texttt{PrimitiveCentralIdempotentsByStrongSP( FG )\index{PrimitiveCentralIdempotentsByStrongSP@\texttt{PrimitiveCentralIdempotentsByStrongSP}}
\label{PrimitiveCentralIdempotentsByStrongSP}
}\hfill{\scriptsize (attribute)}}\\
\textbf{\indent Returns:\ }
 A list of group algebra elements. 



 The input \mbox{\texttt{FG}} should be a semisimple group algebra of a finite group $G$ whose coefficient field $F$ is either a finite field or the field $\Q$ of rationals. 

 If $ F = \Q $ then the output is the list of primitive central idempotents of the group
algebra \mbox{\texttt{FG}} realizable by strong Shoda pairs (\ref{SSPDef}) of $G$. 

 If $F$ is a finite field then the output is the list of primitive central idempotents
of \mbox{\texttt{FG}} realizable by strong Shoda pairs $(K,H)$ of $G$ and $q$-cyclotomic classes modulo the index of $H$ in $K$ (\ref{CyclotomicClass}). 

 If the list of primitive central idempotents given by the output is not
complete (i.e. if the group $G$ is not \emph{strongly monomial} (\ref{StMon})) then a warning is displayed. }

 
\begin{Verbatim}[fontsize=\small,frame=single,label=Example]
  
  gap> QG:=GroupRing( Rationals, AlternatingGroup(4) );;           
  gap> PrimitiveCentralIdempotentsByStrongSP( QG );
  [ (1/12)*()+(1/12)*(2,3,4)+(1/12)*(2,4,3)+(1/12)*(1,2)(3,4)+(1/12)*(1,2,3)+(1/
      12)*(1,2,4)+(1/12)*(1,3,2)+(1/12)*(1,3,4)+(1/12)*(1,3)(2,4)+(1/12)*
      (1,4,2)+(1/12)*(1,4,3)+(1/12)*(1,4)(2,3),
    (1/6)*()+(-1/12)*(2,3,4)+(-1/12)*(2,4,3)+(1/6)*(1,2)(3,4)+(-1/12)*(1,2,3)+(
      -1/12)*(1,2,4)+(-1/12)*(1,3,2)+(-1/12)*(1,3,4)+(1/6)*(1,3)(2,4)+(-1/12)*
      (1,4,2)+(-1/12)*(1,4,3)+(1/6)*(1,4)(2,3),
    (3/4)*()+(-1/4)*(1,2)(3,4)+(-1/4)*(1,3)(2,4)+(-1/4)*(1,4)(2,3) ]
  gap> QG := GroupRing( Rationals, SmallGroup(24,3) );;
  gap> PrimitiveCentralIdempotentsByStrongSP( QG );;
  Wedderga: Warning!!!
  The output is a NON-COMPLETE list of prim. central idemp.s of the input! 
  gap> FG := GroupRing( GF(2), Group((1,2,3)) );;
  gap> PrimitiveCentralIdempotentsByStrongSP( FG );
  [ (Z(2)^0)*()+(Z(2)^0)*(1,2,3)+(Z(2)^0)*(1,3,2), 
    (Z(2)^0)*(1,2,3)+(Z(2)^0)*(1,3,2) ]
  gap> FG := GroupRing( GF(5), SmallGroup(24,3) );; 
  gap> PrimitiveCentralIdempotentsByStrongSP( FG );;
  Wedderga: Warning!!!
  The output is a NON-COMPLETE list of prim. central idemp.s of the input! 
  
\end{Verbatim}
 

\subsection{\textcolor{Chapter }{PrimitiveCentralIdempotentsBySP}}
\logpage{[ 4, 3, 2 ]}\nobreak
{\noindent\textcolor{FuncColor}{$\Diamond$\ \texttt{PrimitiveCentralIdempotentsBySP( QG )\index{PrimitiveCentralIdempotentsBySP@\texttt{PrimitiveCentralIdempotentsBySP}}
\label{PrimitiveCentralIdempotentsBySP}
}\hfill{\scriptsize (function)}}\\
\textbf{\indent Returns:\ }
 A list of group algebra elements. 



 The input should be a rational group algebra of a finite group $G$. 

 Returns a list containing all the primitive central idempotents $e$ of the rational group algebra \mbox{\texttt{QG}} such that $\chi(e)\ne 0$ for some irreducible monomial character $\chi$ of $G$. 

 The output is the list of all primitive central idempotents of \mbox{\texttt{QG}} if and only if G is monomial, otherwise a warning message is displayed. }

 
\begin{Verbatim}[fontsize=\small,frame=single,label=Example]
  
  gap> QG := GroupRing( Rationals, SymmetricGroup(4) );
  <algebra-with-one over Rationals, with 2 generators>
  gap> pci:=PrimitiveCentralIdempotentsBySP( QG );
  [ (1/24)*()+(1/24)*(3,4)+(1/24)*(2,3)+(1/24)*(2,3,4)+(1/24)*(2,4,3)+(1/24)*
      (2,4)+(1/24)*(1,2)+(1/24)*(1,2)(3,4)+(1/24)*(1,2,3)+(1/24)*(1,2,3,4)+(1/
      24)*(1,2,4,3)+(1/24)*(1,2,4)+(1/24)*(1,3,2)+(1/24)*(1,3,4,2)+(1/24)*
      (1,3)+(1/24)*(1,3,4)+(1/24)*(1,3)(2,4)+(1/24)*(1,3,2,4)+(1/24)*(1,4,3,2)+(
      1/24)*(1,4,2)+(1/24)*(1,4,3)+(1/24)*(1,4)+(1/24)*(1,4,2,3)+(1/24)*(1,4)
      (2,3), (1/24)*()+(-1/24)*(3,4)+(-1/24)*(2,3)+(1/24)*(2,3,4)+(1/24)*
      (2,4,3)+(-1/24)*(2,4)+(-1/24)*(1,2)+(1/24)*(1,2)(3,4)+(1/24)*(1,2,3)+(-1/
      24)*(1,2,3,4)+(-1/24)*(1,2,4,3)+(1/24)*(1,2,4)+(1/24)*(1,3,2)+(-1/24)*
      (1,3,4,2)+(-1/24)*(1,3)+(1/24)*(1,3,4)+(1/24)*(1,3)(2,4)+(-1/24)*
      (1,3,2,4)+(-1/24)*(1,4,3,2)+(1/24)*(1,4,2)+(1/24)*(1,4,3)+(-1/24)*(1,4)+(
      -1/24)*(1,4,2,3)+(1/24)*(1,4)(2,3), (3/8)*()+(-1/8)*(3,4)+(-1/8)*(2,3)+(
      -1/8)*(2,4)+(-1/8)*(1,2)+(-1/8)*(1,2)(3,4)+(1/8)*(1,2,3,4)+(1/8)*
      (1,2,4,3)+(1/8)*(1,3,4,2)+(-1/8)*(1,3)+(-1/8)*(1,3)(2,4)+(1/8)*(1,3,2,4)+(
      1/8)*(1,4,3,2)+(-1/8)*(1,4)+(1/8)*(1,4,2,3)+(-1/8)*(1,4)(2,3), 
    (3/8)*()+(1/8)*(3,4)+(1/8)*(2,3)+(1/8)*(2,4)+(1/8)*(1,2)+(-1/8)*(1,2)(3,4)+(
      -1/8)*(1,2,3,4)+(-1/8)*(1,2,4,3)+(-1/8)*(1,3,4,2)+(1/8)*(1,3)+(-1/8)*(1,3)
      (2,4)+(-1/8)*(1,3,2,4)+(-1/8)*(1,4,3,2)+(1/8)*(1,4)+(-1/8)*(1,4,2,3)+(-1/
      8)*(1,4)(2,3), (1/6)*()+(-1/12)*(2,3,4)+(-1/12)*(2,4,3)+(1/6)*(1,2)(3,4)+(
      -1/12)*(1,2,3)+(-1/12)*(1,2,4)+(-1/12)*(1,3,2)+(-1/12)*(1,3,4)+(1/6)*(1,3)
      (2,4)+(-1/12)*(1,4,2)+(-1/12)*(1,4,3)+(1/6)*(1,4)(2,3) ]
  gap> IsCompleteSetOfPCIs(QG,pci);
  true
  gap> QS5 := GroupRing( Rationals, SymmetricGroup(5) );;
  gap> pci:=PrimitiveCentralIdempotentsBySP( QS5 );;
  Wedderga: Warning!!
  The output is a NON-COMPLETE list of prim. central idemp.s of the input!
  gap> IsCompleteSetOfPCIs( QS5 , pci );
  false
  
\end{Verbatim}
 The output of \texttt{PrimitiveCentralIdempotentsBySP} (\ref{PrimitiveCentralIdempotentsBySP}) contains the output of \texttt{PrimitiveCentralIdempotentsByStrongSP} (\ref{PrimitiveCentralIdempotentsByStrongSP}), possibly properly. 
\begin{Verbatim}[fontsize=\small,frame=single,label=Example]
  
  gap> QG := GroupRing( Rationals, SmallGroup(48,28) );;
  gap> pci:=PrimitiveCentralIdempotentsBySP( QG );;
  Wedderga: Warning!!
  The output is a NON-COMPLETE list of prim. central idemp.s of the input! 
  gap> Length(pci);    
  6
  gap> spci:=PrimitiveCentralIdempotentsByStrongSP( QG );;  
  Wedderga: Warning!!!
  The output is a NON-COMPLETE list of prim. central idemp.s of the input! 
  gap> Length(spci);
  5
  gap> IsSubset(pci,spci);          
  true
  gap> QG:=GroupRing(Rationals,SmallGroup(1000,86));
  <algebra-with-one over Rationals, with 6 generators>
  gap> IsCompleteSetOfPCIs( QG , PrimitiveCentralIdempotentsBySP(QG) );
  true
  gap> IsCompleteSetOfPCIs( QG , PrimitiveCentralIdempotentsByStrongSP(QG) );
  Wedderga: Warning!!!
  The output is a NON-COMPLETE list of prim. central idemp.s of the input!
  false
  
\end{Verbatim}
 }

 }

     
\chapter{\textcolor{Chapter }{Crossed products}}\label{Crossed}
\logpage{[ 5, 0, 0 ]}
{
  The package \textsf{Wedderga} provides functions to construct crossed products over a group with
coefficients in an associative ring with identity, and with the multiplication
determined by a given action and twisting (see \ref{CrossedProd} for definitions). This can be done using the function \texttt{CrossedProduct} (\ref{CrossedProduct}).

 Note that this function does not check the associativity conditions, so in
fact it is the NC-version of itself, and its output will be always assumed to
be associative. For all crossed products that appear in \textsf{Wedderga} algorithms their associativity follows from theoretical arguments, so the
usage of NC-method in the package is safe. If the user will try to construct a
crossed product with his own action and twisting, he/she should check the
associativity conditions himself/herself to make it sure that the result is
correct. 
\section{\textcolor{Chapter }{Construction of crossed products}}\label{CrossedConstruction}
\logpage{[ 5, 1, 0 ]}
{
  

\subsection{\textcolor{Chapter }{CrossedProduct}}
\logpage{[ 5, 1, 1 ]}\nobreak
{\noindent\textcolor{FuncColor}{$\Diamond$\ \texttt{CrossedProduct( R, G, act, twist )\index{CrossedProduct@\texttt{CrossedProduct}}
\label{CrossedProduct}
}\hfill{\scriptsize (attribute)}}\\
\textbf{\indent Returns:\ }
 Ring in the category \texttt{IsCrossedProduct}. 



 The input should be formed by: 

 * an associative ring \mbox{\texttt{R}}, 

 * a group \mbox{\texttt{G}}, 

 * a function \mbox{\texttt{act(RG,g)}} on two arguments: the crossed product \mbox{\texttt{RG}} and an element \mbox{\texttt{g}} in $G$. It must return a mapping from \mbox{\texttt{R}} to \mbox{\texttt{R}} which can be applied via the "\texttt{\^}" operation, and 

 * a function \mbox{\texttt{twist(RG,g,h)}} on three arguments: the crossed product \mbox{\texttt{RG}} and a pair of elements of \mbox{\texttt{G}}. It must return an invertible element of \mbox{\texttt{R}}. 

 

 Returns the crossed product of \mbox{\texttt{G}} over the ring \mbox{\texttt{R}} with action \mbox{\texttt{act}} and twisting \mbox{\texttt{twist}}. 

 The resulting crossed product belongs to the category \index{IsCrossedProduct@\texttt{IsCrossedProduct}} \texttt{IsCrossedProduct}, which is defined as a subcategory of \texttt{IsFLMLORWithOne}. }

 An example of the trivial action: 
\begin{Verbatim}[fontsize=\small,frame=single,label=Example]
  act := function(RG,a)
      return IdentityMapping( LeftActingDomain( RG ) );
  end;
\end{Verbatim}
 and the trivial twisting: 
\begin{Verbatim}[fontsize=\small,frame=single,label=Example]
  twist := function( RG , g, h )
      return One( LeftActingDomain( RG ) );
  end;
\end{Verbatim}
 Let $n$ be a positive integer and $\xi_n$ an $n$-th complex primitive root of unity. The natural action of the group of units
of $\Z_n$, the ring of integers modulo $n$, on $\Q (\xi_n)$ can be defined as follows: 
\begin{Verbatim}[fontsize=\small,frame=single,label=Example]
  act := function(RG,a)
      return ANFAutomorhism( LeftActingDomain( RG ) , Int( a ) );
  end;
\end{Verbatim}
 In the following example one constructs the Hamiltonian quaternion algebra
over the rationals as a crossed products of the group of units of the cyclic
group of order 2 over $\Q (i)=GaussianRationals$. One realizes the cyclic group of order 2 as the group of units of $\Z / 4 \Z$ and one uses the natural isomorphism $\Z / 4 \Z \rightarrow Gal( \Q (i)/ \Q )$ to describe the action. 

 
\begin{Verbatim}[fontsize=\small,frame=single,label=Example]
  
  gap> R := GaussianRationals;
  GaussianRationals
  gap> G := Units( ZmodnZ(4) );
  <group with 1 generators>
  gap> act := function(RG,g)
  > return ANFAutomorphism( LeftActingDomain(RG), Int(g) );
  > end;
  function( RG, g ) ... end
  gap> twist1 := function( RG, g, h )
  > if IsOne(g) or IsOne(h) then
  >    return One(LeftActingDomain(RG));
  > else
  >    return -One(LeftActingDomain(RG));
  > fi;
  > end;
  function( RG, g, h ) ... end
  gap> RG := CrossedProduct( R, G, act, twist1 );
  <crossed product over GaussianRationals of a group of size 2>
  gap> i := E(4) * One(G)^Embedding(G,RG); 
  (ZmodnZObj( 1, 4 ))*(E(4))
  gap> j := ZmodnZObj(3,4)^Embedding(G,RG); 
  (ZmodnZObj( 3, 4 ))*(1)
  gap> i^2;
  (ZmodnZObj( 1, 4 ))*(-1)
  gap> j^2;
  (ZmodnZObj( 1, 4 ))*(-1)
  gap> i*j+j*i;  
  <zero> of ...
  
\end{Verbatim}
 One can construct the following generalized quaternion algebra with the same
action and a different twisting 
\[ \Q (i,j|i^2=-1,j^2=-3,ji=-ij) \]
 
\begin{Verbatim}[fontsize=\small,frame=single,label=Example]
  
  gap> twist2:=function(RG,g,h)
  > if IsOne(g) or IsOne(h) then
  >     return One(LeftActingDomain( RG ));
  > else
  >     return -3*One(LeftActingDomain( RG ));
  > fi;
  > end;
  function( RG, g, h ) ... end
  gap> RG := CrossedProduct( R, G, act, twist2 );  
  <crossed product over GaussianRationals of a group of size 2>
  gap> i := E(4) * One(G)^Embedding(G,RG); 
  (ZmodnZObj( 1, 4 ))*(E(4))
  gap> j := ZmodnZObj(3,4)^Embedding(G,RG);  
  (ZmodnZObj( 3, 4 ))*(1)
  gap> i^2;                           
  (ZmodnZObj( 1, 4 ))*(-1)
  gap> j^2;                                
  (ZmodnZObj( 1, 4 ))*(-3)
  gap> i*j+j*i;                       
  <zero> of ...
  
\end{Verbatim}
 In the following example one shows how to construct the Hamiltonian quaternion
algebra over the rationals using the rationals as coefficient ring and the
Klein group as the underlying group. 
\begin{Verbatim}[fontsize=\small,frame=single,label=Example]
  
  gap> C2 := CyclicGroup(2);
  <pc group of size 2 with 1 generators>
  gap> G := DirectProduct(C2,C2);
  <pc group of size 4 with 2 generators>
  gap> act := function(RG,a)
  >     return IdentityMapping( LeftActingDomain(RG));
  > end;
  function( RG, a ) ... end
  gap> twist := function( RG, g , h )
  > local one,g1,g2,h1,h2,G;
  > G := UnderlyingMagma( RG );
  > one := One( C2 );
  > g1 := Image( Projection(G,1), g );
  > g2 := Image( Projection(G,2), g );
  > h1 := Image( Projection(G,1), h );
  > h2 := Image( Projection(G,2), h );
  > if g = One( G ) or h = One( G ) then return 1;
  >   elif IsOne(g1) and not IsOne(g2) and not IsOne(h1) and not IsOne(h2)
  >     then return 1;
  >   elif not IsOne(g1) and IsOne(g2) and IsOne(h1) and not IsOne(h2)
  >     then return 1;
  >   elif not IsOne(g1) and not IsOne(g2) and not IsOne(h1) and IsOne(h2)
  >     then return 1;
  >   else return -1;
  > fi;
  > end;
  function( RG, g, h ) ... end
  gap> HQ := CrossedProduct( Rationals, G, act, twist );
  <crossed product over Rationals of a group of size 4>
  
\end{Verbatim}
 Changing the rationals by the integers as coefficient ring one can construct
the Hamiltonian quaternion ring. 
\begin{Verbatim}[fontsize=\small,frame=single,label=Example]
  
  gap> HZ := CrossedProduct( Integers, G, act, twist );
  <crossed product over Integers of a group of size 4>
  gap> i := GeneratorsOfGroup(G)[1]^Embedding(G,HZ); 
  (f1)*(1)
  gap> j := GeneratorsOfGroup(G)[2]^Embedding(G,HZ);
  (f2)*(1)
  gap> i^2;
  (<identity> of ...)*(-1)
  gap> j^2; 
  (<identity> of ...)*(-1)
  gap> i*j+j*i;                                      
  <zero> of ...
  
\end{Verbatim}
 One can extract the arguments used for the construction of the crossed product
using the following attributes: 

 * \index{LeftActingDomain@\texttt{LeftActingDomain}} \texttt{LeftActingDomain} for the coefficient ring. 

 * \index{UnderlyingMagma@\texttt{UnderlyingMagma}} \texttt{UnderlyingMagma} for the underlying group. 

 * \index{ActionForCrossedProduct@\texttt{ActionForCrossedProduct}} \texttt{ActionForCrossedProduct} for the action. 

 * \index{TwistingForCrossedProduct@\texttt{TwistingForCrossedProduct}} \texttt{TwistingForCrossedProduct} for the twisting. 
\begin{Verbatim}[fontsize=\small,frame=single,label=Example]
    
  gap> LeftActingDomain(HZ);
  Integers
  gap> G:=UnderlyingMagma(HZ);
  <pc group of size 4 with 2 generators>
  gap> ac := ActionForCrossedProduct(HZ);
  function( RG, a ) ... end
  gap> List( G , x -> ac( HZ, x ) );
  [ IdentityMapping( Integers ), IdentityMapping( Integers ),
    IdentityMapping( Integers ), IdentityMapping( Integers ) ]
  gap> tw := TwistingForCrossedProduct( HZ );
  function( RG, g, h ) ... end
  gap> List( G, x -> List( G , y -> tw( HZ, x, y ) ) );
  [ [ 1, 1, 1, 1 ], [ 1, -1, -1, 1 ], [ 1, 1, -1, -1 ], [ 1, -1, 1, -1 ] ]  
  
\end{Verbatim}
 Some more examples of crossed products coming from the \emph{Wedderburn decomposition} (\ref{WedDec}) of group algebras. 
\begin{Verbatim}[fontsize=\small,frame=single,label=Example]
  
  gap> G := SmallGroup(32,50);
  <pc group of size 32 with 5 generators>
  gap> A := SimpleAlgebraByCharacter( GroupRing(Rationals,G), Irr(G)[17]) ;
  ( <crossed product with center Rationals over GaussianRationals of a group of \
  size 2>^[ 2, 2 ] )
  gap> SimpleAlgebraByCharacterInfo( GroupRing(Rationals,G), Irr(G)[17]) ;
  [ 2, Rationals, 4, [ 2, 3, 2 ] ]
  gap> B := LeftActingDomain(A);
  <crossed product with center Rationals over GaussianRationals of a group of si\
  ze 2>
  gap> L := LeftActingDomain(B);
  GaussianRationals
  gap> H := UnderlyingMagma( B );
  <group of size 2 with 2 generators>
  gap> Elements(H);
  [ ZmodnZObj( 1, 4 ), ZmodnZObj( 3, 4 ) ]
  gap> i := E(4) * One(H)^Embedding(H,B);
  (ZmodnZObj( 1, 4 ))*(E(4))
  gap> j := ZmodnZObj(3,4)^Embedding(H,B);
  (ZmodnZObj( 3, 4 ))*(1)
  gap> i^2;
  (ZmodnZObj( 1, 4 ))*(-1)
  gap> j^2;
  (ZmodnZObj( 1, 4 ))*(-1)
  gap> i*j+j*i;
  <zero> of ...
  gap> ac := ActionForCrossedProduct( B );
  function( RG, a ) ... end
  gap> tw := TwistingForCrossedProduct( B );
  function( RG, a, b ) ... end
  gap> List( H , x -> ac( B, x ) );
  [ IdentityMapping( GaussianRationals ), ANFAutomorphism( GaussianRationals,
      3 ) ]
  gap> List( H , x -> List( H , y -> tw( B, x, y ) ) );
  [ [ 1, 1 ], [ 1, -1 ] ]
  
\end{Verbatim}
 
\begin{Verbatim}[fontsize=\small,frame=single,label=Example]
  
  gap> QG:=GroupRing( Rationals, SmallGroup(24,3) );;
  gap> WedderburnDecomposition(QG);
  [ Rationals, CF(3), ( Rationals^[ 3, 3 ] ),
    <crossed product with center Rationals over GaussianRationals of a group of \
  size 2>, <crossed product with center CF(3) over AsField( CF(3), CF(
      12) ) of a group of size 2> ]
  gap> R:=WedderburnDecomposition( QG )[4];
  <crossed product with center Rationals over GaussianRationals of a group of si\
  ze 2>
  gap> IsCrossedProduct(R);
  true
  gap> IsAlgebra(R);
  true
  gap> IsRing(R);       
  true
  gap> LeftActingDomain( R );
  GaussianRationals
  gap> AsList( UnderlyingMagma( R ) );
  [ ZmodnZObj( 1, 4 ), ZmodnZObj( 3, 4 ) ]
  gap> Print( ActionForCrossedProduct( R ) ); Print("\n");
  function ( RG, a )
      local  cond, redu;
      cond := OperationRecord( RG ).cond;
      redu := OperationRecord( RG ).redu;
      return
       ANFAutomorphism( CF( cond ), Int( PreImagesRepresentative( redu, a ) ) );
  end
  gap> Print( TwistingForCrossedProduct( R ) ); Print("\n");                     
  function ( RG, a, b )
      local  orderroot, cocycle;
      orderroot := OperationRecord( RG ).orderroot;
      cocycle := OperationRecord( RG ).cocycle;
      return E( orderroot ) ^ Int( cocycle( a, b ) );
  end
  gap> IsAssociative(R);
  true
  gap> IsFinite(R);           
  false
  gap> IsFiniteDimensional(R);
  true
  gap> AsList(Basis(R));
  [ (ZmodnZObj( 1, 4 ))*(1), (ZmodnZObj( 3, 4 ))*(1) ] 
  gap> GeneratorsOfLeftOperatorRingWithOne(R);
  [ (ZmodnZObj( 1, 4 ))*(1), (ZmodnZObj( 3, 4 ))*(1) ]
  gap> One(R);
  (ZmodnZObj( 1, 4 ))*(1)
  gap> Zero(R);
  <zero> of ...
  gap> Characteristic(R);
  0
  gap> CenterOfCrossedProduct(R);
  Rationals
  
\end{Verbatim}
 Next example shows how one can use \texttt{CrossedProduct} (\ref{CrossedProduct}) to produce generalized quaternion algebras. Note that one can construct
quaternion algebras using \textsf{GAP} function \texttt{QuaternionAlgebra}. \index{Quaternion algebra} 
\begin{Verbatim}[fontsize=\small,frame=single,label=Example]
  
  gap> Quat := function(R,a,b)
  >
  > local G,act,twist;
  >
  > if not(a in R and b in R and a <> Zero(R) and b <> Zero(R) ) then
  > Error("<a>  and <b> must be non zero elements of <R>!!!");
  > fi;
  >
  > G := SmallGroup(4,2);
  >
  > act := function(RG,a)
  >     return IdentityMapping( LeftActingDomain(RG));
  > end;
  >
  > twist := function( RG, g , h )
  > local one,g1,g2;
  > one := One(G);
  > g1 := G.1;
  > g2 := G.2;
  > if   g = one or h = one then
  >   return One(R);
  > elif g = g1 then
  >   if h = g2 then
  >     return One(R);
  >   else
  >     return a;
  >   fi;
  > elif g = g2 then
  >   if h = g1 then
  >     return -One(R);
  >   elif h=g2 then
  >     return b;
  >   else
  >     return -b;
  >   fi;
  > else
  >   if h = g1 then
  >     return -b;
  >   elif h=g2 then
  >     return b;
  >   else
  >     return -a*b;
  >   fi;
  > fi;
  > end;
  > return CrossedProduct(R,G,act,twist);
  > end;
  function( R, a, b ) ... end
  gap> HQ := Quat(Rationals,2,3);
  <crossed product over Rationals of a group of size 4>
  gap> G := UnderlyingMagma(HQ);
  <pc group of size 4 with 2 generators>
  gap> tw := TwistingForCrossedProduct( HQ );
  function( RG, g, h ) ... end
  gap> List( G, x -> List( G, y -> tw( HQ, x, y ) ) );
  [ [ 1, 1, 1, 1 ], [ 1, 3, -1, -3 ], [ 1, 1, 2, 2 ], [ 1, 3, -3, -6 ] ]
  
\end{Verbatim}
 }

 
\section{\textcolor{Chapter }{Crossed product elements and their properties}}\label{CrossedElements}
\logpage{[ 5, 2, 0 ]}
{
  

\subsection{\textcolor{Chapter }{ElementOfCrossedProduct}}
\logpage{[ 5, 2, 1 ]}\nobreak
{\noindent\textcolor{FuncColor}{$\Diamond$\ \texttt{ElementOfCrossedProduct( Fam, zerocoeff, coeffs, elts )\index{ElementOfCrossedProduct@\texttt{ElementOfCrossedProduct}}
\label{ElementOfCrossedProduct}
}\hfill{\scriptsize (property)}}\\


 Returns the element $m_1*c_1 + ... + m_n*c_n$ of a crossed product, where \mbox{\texttt{elts}} $ = [ m_1, m_2, ..., m_n ]$ is a list of magma elements, \mbox{\texttt{coeffs}} $ = [ c_1, c_2, ..., c_n ]$ is a list of coefficients. The output belongs to the crossed product whose
elements lie in the family \mbox{\texttt{Fam}}. The zero element of the coefficient ring containing $c_i$ must be given as \mbox{\texttt{zerocoeff}}, and later can be obtained using \index{ZeroCoefficient@\texttt{ZeroCoefficient}}\texttt{ZeroCoefficient}. 

 The output will be in the category \index{IsElementOfCrossedProduct@\texttt{IsElementOfCrossedProduct}}\texttt{IsElementOfCrossedProduct}, which is a subcategory of \texttt{IsRingElementWithInverse}. It will have the presentation \index{IsCrossedProductObjDefaultRep@\texttt{IsCrossedProductObjDefaultRep}} \texttt{IsCrossedProductObjDefaultRep}. 

 Similarly to magma rings, one can obtain the list of coefficients and elements
with \texttt{CoefficientsAndMagmaElements} \index{CoefficientsAndMagmaElements}. 

 Also note from the example below and several other examples in this chapter
that instead of \texttt{ElementOfCrossedProduct} one can use \index{Embedding@\texttt{Embedding}}\texttt{Embedding} to embed into the crossed product elements of the coefficient ring and of the
underlying magma. }

 
\begin{Verbatim}[fontsize=\small,frame=single,label=Example]
  
  gap> QG := GroupRing( Rationals, SmallGroup(24,3) );
  <algebra-with-one over Rationals, with 4 generators>
  gap> R := WedderburnDecomposition( QG )[4];
  <crossed product with center Rationals over GaussianRationals of a group of si\
  ze 2>
  gap> H := UnderlyingMagma( R );;
  gap> fam := ElementsFamily( FamilyObj( R ) );;
  gap> g := ElementOfCrossedProduct( fam, 0, [ 1, E(4) ], AsList(H) );
  (ZmodnZObj( 1, 4 ))*(1)+(ZmodnZObj( 3, 4 ))*(E(4))
  gap> CoefficientsAndMagmaElements( g );    
  [ ZmodnZObj( 1, 4 ), 1, ZmodnZObj( 3, 4 ), E(4) ]
  gap> t := List( H, x -> x^Embedding( H, R ) );
  [ (ZmodnZObj( 1, 4 ))*(1), (ZmodnZObj( 3, 4 ))*(1) ]
  gap> t[1] + t[2]*E(4);  
  (ZmodnZObj( 1, 4 ))*(1)+(ZmodnZObj( 3, 4 ))*(E(4))
  gap> g = t[1] + E(4)*t[2];
  false
  gap> g = t[1] + t[2]*E(4);
  true
  gap> h := ElementOfCrossedProduct( fam, 0, [ E(4), 1 ], AsList(H) );     
  (ZmodnZObj( 1, 4 ))*(E(4))+(ZmodnZObj( 3, 4 ))*(1)
  gap> g+h;
  (ZmodnZObj( 1, 4 ))*(1+E(4))+(ZmodnZObj( 3, 4 ))*(1+E(4))
  gap> g*E(4);
  (ZmodnZObj( 1, 4 ))*(E(4))+(ZmodnZObj( 3, 4 ))*(-1)
  gap> E(4)*g;     
  (ZmodnZObj( 1, 4 ))*(E(4))+(ZmodnZObj( 3, 4 ))*(1)
  gap> g*h;
  (ZmodnZObj( 1, 4 ))*(2*E(4))
  
\end{Verbatim}
 }

 }

    
\chapter{\textcolor{Chapter }{Useful properties and functions}}\label{Auxiliar}
\logpage{[ 6, 0, 0 ]}
{
  
\section{\textcolor{Chapter }{Semisimple group algebras of finite groups}}\label{AuxiliarProperties}
\logpage{[ 6, 1, 0 ]}
{
  

\subsection{\textcolor{Chapter }{IsSemisimpleZeroCharacteristicGroupAlgebra}}
\logpage{[ 6, 1, 1 ]}\nobreak
{\noindent\textcolor{FuncColor}{$\Diamond$\ \texttt{IsSemisimpleZeroCharacteristicGroupAlgebra( KG )\index{IsSemisimpleZeroCharacteristicGroupAlgebra@\texttt{IsSemisimpleZeroCharacteristicGroupAlgebra}}
\label{IsSemisimpleZeroCharacteristicGroupAlgebra}
}\hfill{\scriptsize (property)}}\\


 The input must be a group ring. 

 Returns \texttt{true} if the input \mbox{\texttt{KG}} is a \emph{semisimple group algebra} (\ref{Semisimple}) over a field of characteristic zero (that is if $G$ is finite), and \texttt{false} otherwise. }

 
\begin{Verbatim}[fontsize=\small,frame=single,label=Example]
  
  gap> CG:=GroupRing( GaussianRationals, DihedralGroup(16) );;
  gap> IsSemisimpleZeroCharacteristicGroupAlgebra( CG );
  true
  gap> FG:=GroupRing( GF(2), SymmetricGroup(3) );;                    
  gap> IsSemisimpleZeroCharacteristicGroupAlgebra( FG );
  false
  gap> f := FreeGroup("a");
  <free group on the generators [ a ]>
  gap> Qf:=GroupRing(Rationals,f);
  <algebra-with-one over Rationals, with 2 generators>
  gap> IsSemisimpleZeroCharacteristicGroupAlgebra(Qf);
  false
  
\end{Verbatim}
 

\subsection{\textcolor{Chapter }{IsSemisimpleRationalGroupAlgebra}}
\logpage{[ 6, 1, 2 ]}\nobreak
{\noindent\textcolor{FuncColor}{$\Diamond$\ \texttt{IsSemisimpleRationalGroupAlgebra( KG )\index{IsSemisimpleRationalGroupAlgebra@\texttt{IsSemisimpleRationalGroupAlgebra}}
\label{IsSemisimpleRationalGroupAlgebra}
}\hfill{\scriptsize (property)}}\\


 The input must be a group ring. 

 Returns \texttt{true} if \mbox{\texttt{KG}} is a \emph{semisimple rational group algebra} (\ref{Semisimple}) and \texttt{false} otherwise. }

 
\begin{Verbatim}[fontsize=\small,frame=single,label=Example]
  
  gap> QG:=GroupRing( Rationals, SymmetricGroup(4) );;       
  gap> IsSemisimpleRationalGroupAlgebra( QG );       
  true
  gap> CG:=GroupRing( GaussianRationals, DihedralGroup(16) );;               
  gap> IsSemisimpleRationalGroupAlgebra( CG );                              
  false
  gap> FG:=GroupRing( GF(2), SymmetricGroup(3) );;
  gap> IsSemisimpleRationalGroupAlgebra( FG );
  false
  
\end{Verbatim}
 

\subsection{\textcolor{Chapter }{IsSemisimpleANFGroupAlgebra}}
\logpage{[ 6, 1, 3 ]}\nobreak
{\noindent\textcolor{FuncColor}{$\Diamond$\ \texttt{IsSemisimpleANFGroupAlgebra( KG )\index{IsSemisimpleANFGroupAlgebra@\texttt{IsSemisimpleANFGroupAlgebra}}
\label{IsSemisimpleANFGroupAlgebra}
}\hfill{\scriptsize (property)}}\\


 The input must be a group ring. 

 Returns \texttt{true} if \mbox{\texttt{KG}} is the group algebra of a finite group over a subfield of a cyclotomic
extension of the rationals and \texttt{false} otherwise. }

 
\begin{Verbatim}[fontsize=\small,frame=single,label=Example]
  
  gap> IsSemisimpleANFGroupAlgebra( GroupRing( NF(5,[4]) , CyclicGroup(28) ) );
  true
  gap> IsSemisimpleANFGroupAlgebra( GroupRing( GF(11) , CyclicGroup(28) ) );
  false
  
\end{Verbatim}
 

\subsection{\textcolor{Chapter }{IsSemisimpleFiniteGroupAlgebra}}
\logpage{[ 6, 1, 4 ]}\nobreak
{\noindent\textcolor{FuncColor}{$\Diamond$\ \texttt{IsSemisimpleFiniteGroupAlgebra( KG )\index{IsSemisimpleFiniteGroupAlgebra@\texttt{IsSemisimpleFiniteGroupAlgebra}}
\label{IsSemisimpleFiniteGroupAlgebra}
}\hfill{\scriptsize (property)}}\\


 The input must be a group ring. 

 Returns \texttt{true} if \mbox{\texttt{KG}} is a \emph{semisimple finite group algebra} (\ref{Semisimple}), that is a group algebra of a finite group $G$ over a field $K$ of order coprime with the order of $G$, and \texttt{false} otherwisse. }

 
\begin{Verbatim}[fontsize=\small,frame=single,label=Example]
  
  gap> FG:=GroupRing( GF(5), SymmetricGroup(3) );;
  gap> IsSemisimpleFiniteGroupAlgebra( FG );
  true
  gap> KG:=GroupRing( GF(2), SymmetricGroup(3) );; 
  gap> IsSemisimpleFiniteGroupAlgebra( KG ); 
  false
  gap> QG:=GroupRing( Rationals, SymmetricGroup(4) );;
  gap> IsSemisimpleFiniteGroupAlgebra( QG );
  false
  
\end{Verbatim}
 }

 
\section{\textcolor{Chapter }{Operations over group rings elements}}\label{AuxiliarOperations}
\logpage{[ 6, 2, 0 ]}
{
  

\subsection{\textcolor{Chapter }{Centralizer}}
\logpage{[ 6, 2, 1 ]}\nobreak
{\noindent\textcolor{FuncColor}{$\Diamond$\ \texttt{Centralizer( G, x )\index{Centralizer@\texttt{Centralizer}}
\label{Centralizer}
}\hfill{\scriptsize (operation)}}\\
\textbf{\indent Returns:\ }
 A subgroup of a group \mbox{\texttt{G}}. 



 The input should be formed by a finite group \mbox{\texttt{G}} and an element \mbox{\texttt{x}} of a group ring $FH$ whose underlying group $H$ contains \mbox{\texttt{G}} as a subgroup. 

 Returns the centralizer of \mbox{\texttt{x}} in \mbox{\texttt{G}}. 

 This operation adds a new method to the operation that already exists in \textsf{GAP}. }

 
\begin{Verbatim}[fontsize=\small,frame=single,label=Example]
  
  gap> D16 := DihedralGroup(16);
  <pc group of size 16 with 4 generators>
  gap> QD16 := GroupRing( Rationals, D16 );
  <algebra-with-one over Rationals, with 4 generators>
  gap> a:=QD16.1;b:=QD16.2;
  (1)*f1
  (1)*f2
  gap> e := PrimitiveCentralIdempotentsByStrongSP( QD16)[3];;
  gap> Centralizer( D16, a);
  Group([ f1, f4 ])
  gap> Centralizer( D16, b);
  Group([ f2 ])
  gap> Centralizer( D16, a+b);
  Group([ f4 ])
  gap> Centralizer( D16, e);
  Group([ f1, f2 ])
  
\end{Verbatim}
 

\subsection{\textcolor{Chapter }{OnPoints}}
\logpage{[ 6, 2, 2 ]}\nobreak
{\noindent\textcolor{FuncColor}{$\Diamond$\ \texttt{OnPoints( x, g )\index{OnPoints@\texttt{OnPoints}}
\label{OnPoints}
}\hfill{\scriptsize (operation)}}\\
\noindent\textcolor{FuncColor}{$\Diamond$\ \texttt{\texttt{\symbol{92}}{\^{}}( x, g )\index{^@\texttt{\texttt{\symbol{92}}{\^{}}}}
\label{^}
}\hfill{\scriptsize (operation)}}\\
\textbf{\indent Returns:\ }
 An element of a group ring. 



 The input should be formed by an element \mbox{\texttt{x}} of a group ring $FG$ and an element \mbox{\texttt{g}} in the underlying group $G$ of $FG$.

 Returns the conjugate $x^g = g^{-1} x g$ of \mbox{\texttt{x}} by \mbox{\texttt{g}}. Usage of \texttt{x{\textasciicircum}g} produces the same output. 

 This operation adds the new method to the operation that already exists in \textsf{GAP}. }

 The following example is a continuation of the example from the description of \texttt{Centralizer} (\ref{Centralizer}). 
\begin{Verbatim}[fontsize=\small,frame=single,label=Example]
  
  gap> List(D16,x->a^x=a);
  [ true, true, false, false, true, false, false, true, false, false, false,
    false, false, false, false, false ]
  gap> List(D16,x->e^x=e);
  [ true, true, true, true, true, true, true, true, true, true, true, true,
    true, true, true, true ]
  gap> ForAll(D16,x->a^x=a);
  false
  gap> ForAll(D16,x->e^x=e);
  true
  
\end{Verbatim}
 

\subsection{\textcolor{Chapter }{AverageSum}}
\logpage{[ 6, 2, 3 ]}\nobreak
{\noindent\textcolor{FuncColor}{$\Diamond$\ \texttt{AverageSum( RG, X )\index{AverageSum@\texttt{AverageSum}}
\label{AverageSum}
}\hfill{\scriptsize (operation)}}\\
\textbf{\indent Returns:\ }
 An element of a group ring. 



 The input must be composed of a group ring \mbox{\texttt{RG}} and a finite subset \mbox{\texttt{X}} of the underlying group $G$ of \mbox{\texttt{RG}}. The order of \mbox{\texttt{X}} must be invertible in the coefficient ring $R$ of \mbox{\texttt{RG}}. 

 Returns the element of the group ring \mbox{\texttt{RG}} that is equal to the sum of all elements of \mbox{\texttt{X}} divided by the order of \mbox{\texttt{X}}. }

 If \mbox{\texttt{X}} is a subgroup of $G$ then the output is an idempotent of $RG$ which is central if and only if \mbox{\texttt{X}} is normal in $G$. 
\begin{Verbatim}[fontsize=\small,frame=single,label=Example]
  
  gap> G:=DihedralGroup(16);;               
  gap> QG:=GroupRing( Rationals, G );;
  gap> FG:=GroupRing( GF(5), G );;
  gap> e:=AverageSum( QG, DerivedSubgroup(G) );
  (1/4)*<identity> of ...+(1/4)*f3+(1/4)*f4+(1/4)*f3*f4
  gap> f:=AverageSum( FG, DerivedSubgroup(G) ); 
  (Z(5)^2)*<identity> of ...+(Z(5)^2)*f3+(Z(5)^2)*f4+(Z(5)^2)*f3*f4
  gap> G=Centralizer(G,e);
  true
  gap> H:=Subgroup(G,[G.1]);
  Group([ f1 ])
  gap> e:=AverageSum( QG, H );
  (1/2)*<identity> of ...+(1/2)*f1
  gap> G=Centralizer(G,e);
  false
  gap> IsNormal(G,H);
  false
  
\end{Verbatim}
 }

 
\section{\textcolor{Chapter }{Cyclotomic classes}}\label{CC}
\logpage{[ 6, 3, 0 ]}
{
  

\subsection{\textcolor{Chapter }{CyclotomicClasses}}
\logpage{[ 6, 3, 1 ]}\nobreak
{\noindent\textcolor{FuncColor}{$\Diamond$\ \texttt{CyclotomicClasses( q, n )\index{CyclotomicClasses@\texttt{CyclotomicClasses}}
\label{CyclotomicClasses}
}\hfill{\scriptsize (operation)}}\\
\textbf{\indent Returns:\ }
 A partition of $[ 0 .. n ]$. 



 The input should be formed by two relatively prime positive integers. 

 Returns the list \mbox{\texttt{q}}-\emph{cyclotomic classes } (\ref{CyclotomicClass}) modulo \mbox{\texttt{n}}. }

 
\begin{Verbatim}[fontsize=\small,frame=single,label=Example]
  
  gap> CyclotomicClasses( 2, 21 );
  [ [ 0 ], [ 1, 2, 4, 8, 16, 11 ], [ 3, 6, 12 ], [ 5, 10, 20, 19, 17, 13 ],
    [ 7, 14 ], [ 9, 18, 15 ] ]
  gap> CyclotomicClasses( 10, 21 );
  [ [ 0 ], [ 1, 10, 16, 13, 4, 19 ], [ 2, 20, 11, 5, 8, 17 ],
    [ 3, 9, 6, 18, 12, 15 ], [ 7 ], [ 14 ] ]
  
\end{Verbatim}
 

\subsection{\textcolor{Chapter }{IsCyclotomicClass}}
\logpage{[ 6, 3, 2 ]}\nobreak
{\noindent\textcolor{FuncColor}{$\Diamond$\ \texttt{IsCyclotomicClass( q, n, C )\index{IsCyclotomicClass@\texttt{IsCyclotomicClass}}
\label{IsCyclotomicClass}
}\hfill{\scriptsize (operation)}}\\


 The input should be formed by two relatively prime positive integers \mbox{\texttt{q}} and \mbox{\texttt{n}} and a sublist \mbox{\texttt{C}} of $[ 0 .. n ]$. 

 Returns \texttt{true} if \mbox{\texttt{C}} is a \mbox{\texttt{q}}-\emph{cyclotomic class} (\ref{CyclotomicClass}) modulo \mbox{\texttt{n}} and \texttt{false} otherwise. }

 
\begin{Verbatim}[fontsize=\small,frame=single,label=Example]
  
  gap> IsCyclotomicClass( 2, 7, [1,2,4] );
  true
  gap> IsCyclotomicClass( 2, 21, [1,2,4] );
  false
  gap> IsCyclotomicClass( 2, 21, [3,6,12] );
  true
  
\end{Verbatim}
 }

 
\section{\textcolor{Chapter }{Other commands}}\label{Other}
\logpage{[ 6, 4, 0 ]}
{
  

\subsection{\textcolor{Chapter }{InfoWedderga}}
\logpage{[ 6, 4, 1 ]}\nobreak
{\noindent\textcolor{FuncColor}{$\Diamond$\ \texttt{InfoWedderga\index{InfoWedderga@\texttt{InfoWedderga}}
\label{InfoWedderga}
}\hfill{\scriptsize (info class)}}\\


 \texttt{InfoWedderga} is a special Info class for \textsf{Wedderga} algorithms. It has 3 levels: 0, 1 (default) and 2. To change info level to \texttt{k}, use command \texttt{SetInfoLevel(InfoWedderga, k)}. 

 In the example below we use this mechanism to see more details about the
Wedderburn components each time when we call \texttt{WedderburnDecomposition}. }

 
\begin{Verbatim}[fontsize=\small,frame=single,label=Example]
  
  gap> SetInfoLevel(InfoWedderga, 2);   
  gap> WedderburnDecomposition( GroupRing( CF(5), DihedralGroup( 16 ) ) );
  #I  Info version : [ [ 1, CF(5) ], [ 1, CF(5) ], [ 1, CF(5) ], [ 1, CF(5) ],
    [ 2, CF(5) ], [ 1, NF(40,[ 1, 31 ]), 8, [ 2, 7, 0 ] ] ]
  [ CF(5), CF(5), CF(5), CF(5), ( CF(5)^[ 2, 2 ] ), 
    <crossed product with center NF(40,[ 1, 31 ]) over AsField( NF(40,
      [ 1, 31 ]), CF(40) ) of a group of size 2> ]
  
\end{Verbatim}
 

\subsection{\textcolor{Chapter }{WEDDERGABuildManual}}
\logpage{[ 6, 4, 2 ]}\nobreak
{\noindent\textcolor{FuncColor}{$\Diamond$\ \texttt{WEDDERGABuildManual(  )\index{WEDDERGABuildManual@\texttt{WEDDERGABuildManual}}
\label{WEDDERGABuildManual}
}\hfill{\scriptsize (function)}}\\


 This function is used to build the manual in the following formats: DVI, PDF,
PS, HTML and text for online help. We recommend that the user should have a
recent and fairly complete {\TeX} distribution. Since \textsf{Wedderga} is distributed together with its manual, it is not necessary for the user to
use this function. Normally it is intended to be used by the developers only.
This is the only function of \textsf{Wedderga} which requires UNIX/Linux environment. }

 

\subsection{\textcolor{Chapter }{WEDDERGABuildManualHTML}}
\logpage{[ 6, 4, 3 ]}\nobreak
{\noindent\textcolor{FuncColor}{$\Diamond$\ \texttt{WEDDERGABuildManualHTML(  )\index{WEDDERGABuildManualHTML@\texttt{WEDDERGABuildManualHTML}}
\label{WEDDERGABuildManualHTML}
}\hfill{\scriptsize (function)}}\\


 This fuction is used to build the manual only in HTML format. This does not
depend on the availability of the {\TeX} installation and works under Windows and MacOS as well. Since \textsf{Wedderga} is distributed together with its manual, it is not necessary for the user to
use this function. Normally it is intended to be used by the developers only. }

 }

 }

   
\chapter{\textcolor{Chapter }{The basic theory behind \textsf{Wedderga}}}\label{Theory}
\logpage{[ 7, 0, 0 ]}
{
  In this chapter we describe the theory that is behind the algorithms used by \textsf{Wedderga}. 

 All the rings considered in this chapter are associative and have an identity. 

 We use the following notation: $\Q$ denotes the field of rationals and $\F_q$ the finite field of order $q$. For every positive integer $k$, we denote a complex $k$-th primitive root of unity by $\xi_k$ and so $\Q(\xi_k)$ is the $k$-th cyclotomic extension of $\Q$. 
\section{\textcolor{Chapter }{Group rings and group algebras}}\label{GroupRings}
\logpage{[ 7, 1, 0 ]}
{
  \index{group ring} Given a group $G$ and a ring $R$, the \emph{group ring} $RG$ over the group $G$ with coefficients in $R$ is the ring whose underlying additive group is a right $R-$module with basis $G$ such that the product is defined by the following rule 
\[ (gr)(hs)=(gh)(rs) \]
 for $r,s \in R$ and $g, h \in G$, and extended to $RG$ by linearity. 

 \index{group algebra} A \emph{group algebra} is a group ring in which the coefficient ring is a field. }

  
\section{\textcolor{Chapter }{Semisimple group algebras}}\label{Semisimple}
\logpage{[ 7, 2, 0 ]}
{
  \index{semisimple artinian ring} A ring $R$ is \emph{semisimple artinian} if it is a direct sum of simple left (alternatively right) ideals or
equivalently if $R$ is isomorphic to a direct product of simple algebras each one isomorphic to a
matrix ring over a division ring. 

 By Maschke's Theorem the group algebra $FG$ is semisimple artinian if and only if the group $G$ is finite and the characteristic of the coefficient field $F$ does not divide the order of $G$. }

  
\section{\textcolor{Chapter }{Wedderburn decomposition}}\label{WedDec}
\logpage{[ 7, 3, 0 ]}
{
  \index{Wedderburn decomposition} \index{Wedderburn components} If $R$ is a \emph{semisimple ring} (\ref{Semisimple}) then the \emph{Wedderburn decomposition} of $R$ is the decomposition of $R$ as a direct product of simple algebras. The factors of this Wedderburn
decomposition are called \emph{Wedderburn components} of $R$. Each Wedderburn component of $R$ is of the form $Re$ for $e$ a \emph{primitive central idempotent} (\ref{Idempotents}) of $R$. 

 Let $FG$ be a \emph{semisimple group algebra} (\ref{Semisimple}). If $F$ has positive characteristic, then the Wedderburn components of $FG$ are matrix algebras over finite extensions of $F$. If $F$ has zero characteristic then by the \emph{Brauer-Witt Theorem} \cite{Y}, the \emph{Wedderburn components} of $FG$ are \emph{Brauer equivalent} (\ref{Brauer}) to \emph{cyclotomic algebras} (\ref{Cyclotomic}). 

 The main functions of \textsf{Wedderga} compute the Wedderburn components of a semisimple group algebra $FG$, such that the coefficient field is either an abelian number field (i.e. a
subfield of a finite cyclotomic extension of the rationals) or a finite field.
In the finite case, the Wedderburn components are matrix algebras over finite
fields and so can be described by the size of the matrices and the size of the
finite field. 

 In the zero characteristic case each Wedderburn components $A$ is \emph{Brauer equivalent} (\ref{Brauer}) to a \emph{cyclotomic algebra} (\ref{Cyclotomic}) and therefore $A$ is a (possibly fractional) matrix algebras over \emph{cyclotomic algebras} and can be described numerically in one of the following three forms: 
\[ [n,K], \]
 
\[ [n,K,k,[d,\alpha,\beta]], \]
 
\[ [n,K,k,[d_i,\alpha_i,\beta_i]_{i=1}^m, [\gamma_{i,j}]_{1\le i < j \le n} ], \]
 where $n$ is the matrix size, $K$ is the centre of $A$ (a finite field extension of $F$) and the remaining data are integers whose interpretation is explained in \ref{NumDesc}. 

 In some cases (for the zero characteristic coefficient field) the size $n$ of the matrix algebras is not a positive integer but a positive rational
number. This is a consequence of the fact that the \emph{Brauer-Witt Theorem} \cite{Y} only ensures that each \emph{Wedderburn component} (\ref{WedDec}) of a semisimple group algebra is Brauer equivalent (\ref{Brauer}) to a \emph{cyclotomic algebra} (\ref{Cyclotomic}), but not necessarily isomorphic to a full matrix algebra of a cyclotomic
algebra. For example, a Wedderburn component $D$ of a group algebra can be a division algebra but not a cyclotomic algebra. In
this case $M_n(D)$ is a cyclotomic algebra $C$ for some $n$ and therefore $D$ can be described as $M_{1/n}(C)$ (see last Example in \texttt{WedderburnDecomposition} (\ref{WedderburnDecomposition})). 

 The main algorithm of \textsf{Wedderga} is based in a computational oriented proof of the Brauer-Witt Theorem due to
Olteanu \cite{O} which uses previous work by Olivieri, del Río and Simón \cite{ORS} for rational group algebras of \emph{strongly monomial groups} (\ref{StMon}). }

  
\section{\textcolor{Chapter }{Characters and primitive central idempotents}}\label{Idempotents}
\logpage{[ 7, 4, 0 ]}
{
  \index{primitive central idempotent} \index{field of character values} A \emph{primitive central idempotent} of a ring $R$ is a non-zero central idempotent $e$ which cannot be written as the sum of two non-zero central idempotents of $Re$, or equivalently, such that $Re$ is indecomposable as a direct product of two non-trivial two-sided ideals. 

 The \emph{Wedderburn components} (\ref{WedDec}) of a semisimple ring $R$ are the rings of the form $Re$ for $e$ running on the set of primitive central idempotents of $R$. 

 Let $FG$ be \emph{semisimple group algebra} (\ref{Semisimple}) and $\chi$ an irreducible character of $G$ (in an algebraic closure of $F$). Then there is a unique Wedderburn component $A=A_F(\chi)$ of $FG$ such that $\chi(A)\ne 0$. Let $e_F(\chi)$ denote the unique primitive central idempotent of $FG$ in $A_F(\chi)$, that is the identity of $A_F(\chi)$, i.e. 
\[ A_F(\chi)=FGe_F(\chi). \]
 The centre of $A_F(\chi)$ is $F(\chi)=F(\chi(g):g \in G)$, the \emph{field of character values} of $\chi$ over $F$. 

 The map $\chi \mapsto A_F(\chi)$ defines a surjective map from the set of irreducible characters of $G$ (in an algebraic closure of $F$) onto the set of Wedderburn components of $FG$. 

 Equivalently, the map $\chi \mapsto e_F(\chi)$ defines a surjective map from the set of irreducible characters of $G$ (in an algebraic closure of $F$) onto the set of primitive central idempontents of $FG$. 

 If the irreducible character $\chi$ of $G$ takes values in $F$ then 
\[ e_F(\chi) = e(\chi) = \frac{\chi(1)}{|G|} \sum_{g\in G} \chi(g^{-1}) g. \]


 In general one has 
\[ e_F(\chi) = \sum_{\sigma \in Gal(F(\chi)/F)} e(\sigma \circ \chi). \]


 }

  
\section{\textcolor{Chapter }{Central simple algebras and Brauer equivalence}}\label{Brauer}
\logpage{[ 7, 5, 0 ]}
{
  Let $K$ be a field. \index{central simple algebra@central simple algebra} A \emph{central simple $K$-algebra} is a finite dimensional $K$-algebra with center $K$ which has not non trivial proper ideals. Every central simple $K$-algebra is isomorphic to a matrix algebra $M_n(D)$ where $D$ is a division algebra (which is finite dimensional over $K$ and has centre $K$). The division algebra $D$ is unique up to $K$-isomorphisms. 

 \index{Brauer equivalence@(Brauer) equivalence} \index{equivalence (Brauer)@equivalence (Brauer)} Two central simple $K$-algebras $A$ and $B$ are said to be \emph{Brauer equivalent}, or simple \emph{equivalent}, if there is a division algebra $D$ and two positive integers $m$ and $n$ such that $A$ is isomorphic to $M_m(D)$ and $B$ is isomorphic to $M_n(D)$. 

 }

  
\section{\textcolor{Chapter }{Crossed Products}}\label{CrossedProd}
\logpage{[ 7, 6, 0 ]}
{
  \index{Crossed Product@Crossed Product} Let $R$ be a ring and $G$ a group. 

 \textsc{Intrinsecal definition}. A \emph{crossed product} \cite{P} of $G$ over $R$ (or with coefficients in $R$) is a ring $R*G$ with a decomposition into a direct sum of additive subgroups 
\[ R*G = \bigoplus_{g \in G} A_g \]
 such that for each $g,h$ in $G$ one has:

 * $A_1=R$ (here $1$ denotes the identity of $G$),

 * $A_g A_h = A_{gh}$ and 

 * $A_g$ has a unit of $RG$.

 \textsc{Extrinsecal definition}. Let $Aut(R)$ denote the group of automorphisms of $R$ and let $R^*$ denote the group of units of $R$.

 Let $a:G \rightarrow Aut(R)$ and $t:G \times G \rightarrow R^*$ be mappings satisfying the following conditions for every $g$, $h$ and $k$ in $G$: 

 (1) $a(gh)^{-1} a(g) a(h)$ is the inner automorphism of $R$ induced by $t(g,h)$ (i.e. the automorphism $x\mapsto t(g,h)^{-1} x t(g,h)$) and 

 (2) $t(gh,k) t(g,h)^k = t(g,hk) t(h,k)$, where for $g \in G$ and $x \in R$ we denote $a(g)(x)$ by $x^g$. 

 The \emph{crossed product} \cite{P} of $G$ over $R$ (or with coefficients in $R$), action $a$ and twisting $t$ is the ring 
\[ R*_a^t G = \bigoplus_{g\in G} u_g R \]
 where $\{u_g : g\in G \}$ is a set of symbols in one-to-one correspondence with $G$, with the addition and multiplication defined by 
\[ (u_g r) + (u_g s) = u_g(r+s), \quad (u_g r)(u_h s) = u_{gh} t(g,h) r^h s \]
 for $g,h \in G$ and $r,s\in R$, and extended to $R*_a^t G$ by linearity.

 The associativity of the product defined is a consequence of conditions (1)
and (2) \cite{P}.

 \textsc{Equivalence of the two definitions}. Obviously the crossed product of $G$ over $R$ defined using the extrinsecal definition is a crossed product of $G$ over $u_1 R$ in the sense of the first definition. Moreover, there is $r_0$ in $R^*$ such that $u_1r_0$ is the identity of $R*_a^t G$ and the map $r \mapsto u_1 r_0 r $ is a ring isomorphism $R \rightarrow u_1R $. 

 \index{Basis of units@Basis of units (for crossed product)} Conversely, let $R*G=\bigoplus_{g\in G} A_g$ be an (intrinsecal) crossed product and select for each $g\in G$ a unit $u_g\in A_g$ of $R*G$. This is called a \emph{basis of units for the crossed product} $R*G$. Then the maps $a:G \rightarrow Aut(R)$ and $t:G\times G \rightarrow R^*$ given by 
\[ r^g = u_g^{-1} r u_g, \quad t(g,h) = u_{gh}^{-1} u_g u_h \quad (g,h \in G, r
\in R) \]
 satisfy conditions (1) and (2) and $R*G = R*_a^t G$. 

 The election of a basis of units $u_g \in A_g$ determines the action $a$ and twisting $t$. If $\{u_g \in A_g : g \in G \}$ and $\{v_g \in A_g : g \in G \}$ are two sets of units of $R*G$ then $v_g = u_g r_g$ for some units $r_g$ of $R$. Changing the basis of units results in a change of action an twisting and so
change the extrinsecal definition of the crossed product but it does not
change the intrinsecal crossed product. 

 It is customary to select $u_1=1$. In that case $a(1)$ is the identity map of $R$ and $t(1,g)=t(g,1)=1$ for each $g$ in $G$. }

  
\section{\textcolor{Chapter }{Cyclic Crossed Products}}\label{CyclicCP}
\logpage{[ 7, 7, 0 ]}
{
  \index{Cyclic Crossed Product@Cyclic Crossed Product} Let $R*G=\bigoplus_{g \in G} A_g$ be a \emph{crossed product} (\ref{CrossedProd}) and assume that $G = < g > $ is cyclic. Then the crossed product can be given using a particularly nice
description. 

 Select a unit $u$ in $A_{g}$, and let $a$ be the automorphism of $R$ given by $r^a = u^{-1} r u$. 

 If $G$ is infinite then set $u_{g^k} = u^k$ for every integer $k$. Then 
\[ R*G = R[ u | ru = u r^a ], \]
 a skew polynomial ring. Therefore in this case $R*G$ is determined by 
\[ [ R, a ]. \]
 If $G$ is finite of order $d$ then set $u_{g^k} = u^k$ for $0 \le k < d$. Then $ b = u^d \in R $ and 
\[ R*G = R[ u | ru = u r^a, u^d = b ] \]
 Therefore, $R*G$ is completely determined by the following data: 
\[ [ R , [ d , a , b ] ] \]
 }

  
\section{\textcolor{Chapter }{Abelian Crossed Products}}\label{AbelianCP}
\logpage{[ 7, 8, 0 ]}
{
  \index{Abelian Crossed Product@Abelian Crossed Product} Let $R*G=\bigoplus_{g \in G} A_g$ be a \emph{crossed product} (\ref{CrossedProd}) and assume that $G$ is abelian. Then the crossed product can be given using a simple description. 

 Express $G$ as a direct sum of cyclic groups: 
\[ G = < g_1 > \times \cdots \times < g_n > \]
 and for each $i=1,\dots,n$ select a unit $u_i$ in $A_{g_i}$. 

 Each element $g$ of $G$ has a unique expression 
\[ g = g_1^{k_1} \cdots g_n^{k_n}, \]
 where $k_i$ is an arbitrary integer, if $g_i$ has an infinite order, and $0 \le k_i < d_i$, if $g_i$ has finite order $d_i$. Then one selects a basis for the crossed product by taking 
\[ u_g = u_{g_1^{k_1} \cdots g_n^{k_n}} = u_1^{k_1} \cdots u_n^{k_n}. \]
 

 * For each $i=1,\dots, n$, let $a_i$ be the automorphism of $R$ given by $r^{a_i} = u_i^{-1} r u_i$. 

 * For each $1 \le i < j \le n$, let $t_{i,j} = u_j^{-1} u_i^{-1} u_j u_i \in R$. 

 * If $g_i$ has finite order $d_i$, let $b_i=u_i^{d_i} \in R$. 

 Then 
\[ R*G = R[u_1,\dots,u_n | ru_i = u_i r^{a_i}, u_j u_i = t_{ij} u_i u_j,
u_i^{d_i} = b_i (1 \le i < j \le n) ], \]
 where the last relation vanish if $g_i$ has infinite order.

 Therefore $R*G$ is completely determined by the following data: 
\[ [ R , [ d_i , a_i , b_i ]_{i=1}^n, [ t_{i,j} ]_{1 \le i < j \le n} ]. \]
 }

  
\section{\textcolor{Chapter }{Classical crossed products}}\label{ClassCP}
\logpage{[ 7, 9, 0 ]}
{
  \index{ClassicalCP@Classical Crossed Product} A \emph{classical crossed product} is a crossed product $L*_a^t G$, where $L/K$ is a finite Galois extension, $G=Gal(L/K)$ is the Galois group of $L/E$ and $a$ is the natural action of $G$ on $L$. Then $t$ is a $2$-cocycle and the \emph{crossed product} (\ref{CrossedProd}) $L*_a^t G$ is denoted by $(L/K,t)$. The crossed product $(L/K,t)$ is known to be a central simple $K$-algebra \cite{R}. 

 }

  
\section{\textcolor{Chapter }{Cyclic Algebras}}\label{CycAlg}
\logpage{[ 7, 10, 0 ]}
{
  \index{Cyclic Algebra@Cyclic Algebra} A \emph{cyclic algebra} is a \emph{classical crossed product} (\ref{ClassCP}) $(L/K,t)$ where $L/K$ is a finite cyclic field extension. The cyclic algebras have a very simple
form. 

 Assume that $Gal(L/K)$ is generated by $g$ and has order $d$. Let $u=u_g$ be the basis unit (\ref{CrossedProd}) of the crossed product corresponding to $g$ and take the remaining basis units for the crossed product by setting $u_{g^i} = u^i$, ($ i = 0, 1, \dots, d-1 $). Then $a = u^n \in K$. The cyclic algebra is usually denoted by $(L/K,a)$ and one has the following description of $(L/K,t)$ 
\[ (L/K,t) = (L/K,a) = L[u| r u = u r^g, u^d = a ]. \]
 

 }

  
\section{\textcolor{Chapter }{Cyclotomic algebras}}\label{Cyclotomic}
\logpage{[ 7, 11, 0 ]}
{
  \index{Cyclotomic algebra@Cyclotomic algebra} A \emph{cyclotomic algebra} over $F$ is a \emph{classical crossed product} (\ref{ClassCP}) $(F(\xi)/F,t)$, where $F$ is a field, $\xi$ is a root of unity on an extension of $F$ and $t(g,h)$ is a root of unity for every $g$ and $h$ in $Gal(F(\xi)/F)$. 

 The \emph{Brauer-Witt Theorem} \cite{Y} asserts that every \emph{Wedderburn component} (\ref{WedDec}) of a group algebra is \emph{Brauer equivalent} (\ref{Brauer}) (over its centre) to a cyclotomic algebra. 

 }

  
\section{\textcolor{Chapter }{Numerical description of cyclotomic algebras}}\label{NumDesc}
\logpage{[ 7, 12, 0 ]}
{
  Let $A=(F(\xi)/F,t)$ be a \emph{cyclotomic algebra} (\ref{Cyclotomic}), where $\xi=\xi_k$ is a $k$-th root of unity. Then the Galois group $G=Gal(F(\xi)/F)$ is abelian and therefore one can obtain a simplified form for the description
of cyclotomic algebras as for any \emph{abelian crossed product} (\ref{AbelianCP}). 

 Then the $n$-by-$n$ matrix algebra $M_n(A)$ can be described numerically in one of the following forms: 

 * If $F(\xi)=F$, (i.e. $G=1$) then $A=M_n(F)$ and thus the only data needed to describe $A$ are the matrix size $n$ and the field $F$: 
\[ [n,F] \]
 

 * If $G$ is cyclic (but not trivial) of order $d$ then $A$ is a cyclic cyclotomic algebra 
\[ A = F(\xi) [ u | \xi u = u \xi^\alpha, u^d = \xi^\beta ] \]
 and so $M_n(A)$ can be described with the following data 
\[ [n,F,k,[d,\alpha,\beta]], \]
 where the integers $k$, $d$, $\alpha$ and $\beta$ satisfy the following conditions: 
\[ \alpha^d \equiv 1 \; mod \; k, \quad \beta(\alpha-1) \equiv 0 \; mod \; k \]
 

 * If $G$ is abelian but not cyclic then $M_n(A)$ can be described with the following data (see \ref{AbelianCP}): 
\[ [n,F,k,[d_i,\alpha_i,\beta_i]_{i=1}^m, [\gamma_{i,j}]_{1\le i < j \le m} ] \]
 representing the $n$-by-$n$ matrix ring over the following algebra: 
\[ A = F(\xi)[ u_1, \ldots, u_m \mid \xi u_i = u_i \xi^{\alpha_i}, \quad
u_i^{d_i}=\xi^{\beta_i}, \quad u_s u_r = \xi^{\gamma_{rs}} u_r u_s, \quad i =
1, \ldots, m, \quad 0 \le r < s \le m ] \]
 where 

 * $\{g_1,\ldots,g_m\}$ is an independent set of generators of $G$, 

 * $d_i$ is the order of $g_i$, 

 * $\alpha_i$, $\beta_i$ and $\gamma_{rs}$ are integers, and 
\[ \xi^{g_i} = \xi^{\alpha_i}. \]
 }

  
\section{\textcolor{Chapter }{Idempotents given by subgroups}}\label{IdempotentsSbgps}
\logpage{[ 7, 13, 0 ]}
{
  \index{$\varepsilon(K,H)$} \index{$e(G,K,H)$} \index{$e_C(G,K,H)$} Let $G$ be a finite group and $F$ a field whose characteristic does not divide the order of $G$. If $H$ is a subgroup of $G$ then set 
\[ \widehat{H} = |H|^{-1}\sum_{x \in H} x. \]
 The element $\widehat{H}$ is an idempotent of $FG$ which is central in $FG$ if and only if $H$ is normal in $G$. 

 If $H$ is a proper normal subgroup of a subgroup $K$ of $G$ then set 
\[ \varepsilon(K,H) = \prod_{L} (\widehat{H}-\widehat{L}). \]
 where $L$ runs on the minimal normal subgroups of $K$ containing $H$ properly. By convention, $\varepsilon(K,K)=\widehat{K}$. The element $\varepsilon(K,H)$ is an idempotent of $FG$. 

 If $H$ and $K$ are subgroups of $G$ such that $H$ is normal in $K$ then $e(G,K,H)$ denotes the sum of all different $G$-conjugates of $\varepsilon(K,H)$. The element $e(G,K,H)$ is central in $FG$. In general it is not an idempotent but if the different conjugates of $\varepsilon(K,H)$ are orthogonal then $e(G,K,H)$ is a central idempotent of $FG$. 

 If $(K,H)$ is a Shoda Pair (\ref{SPDef}) of $G$ then there is a non-zero rational number $a$ such that $ae(G,K,H))$ is a \emph{primitive central idempotent} (\ref{Idempotents}) of the rational group algebra $\Q G$. If $(K,H)$ is a strong Shoda pair (\ref{SSPDef}) of $G$ then $e(G,K,H)$ is a primitive central idempotent of $\Q G$. 

 Assume now that $F$ is a finite field of order $q$, $(K,H)$ is a strong Shoda pair of $G$ and $C$ is a cyclotomic class of $K/H$ containing a generator of $K/H$. Then $e_C(G,K,H)$ is a primitive central idempotent of $FG$ (see \ref{CyclotomicClass}). 

 }

  
\section{\textcolor{Chapter }{Shoda pairs}}\label{SPDef}
\logpage{[ 7, 14, 0 ]}
{
  Let $G$ be a finite group. \index{Shoda pair} A \emph{Shoda pair} of $G$ is a pair $(K,H)$ of subgroups of $G$ for which there is a linear character $\chi$ of $K$ with kernel $H$ such that the induced character $\chi^G$ in $G$ is irreducible. By \cite{S} or \cite{ORS}, $(K,H)$ is a Shoda pair if and only if the following conditions hold:

 * $H$ is normal in $K$, 

 * $K/H$ is cyclic and 

 * if $(K,g)\cap K \subseteq H$ for some $g \in G$ then $g \in K$. 

 \index{primitive central idempotent realized by a Shoda pair} If $(K,H)$ is a Shoda pair and $\chi$ is a linear character of $K\le G$ with kernel $H$ then the \emph{primitive central idempotent} (\ref{Idempotents}) of $\Q G$ associated to the irreducible character $\chi^G$ is of the form $e=e_\Q (\chi^G)=a e(G,K,H)$ for some $a \in \Q $ \cite{ORS} (see \ref{IdempotentsSbgps} for the definition of $e(G,K,H)$). In that case we say that $e$ is the \emph{primitive central idempotent realized by the Shoda pair} $(K,H)$ of $G$. 

 A group $G$ is monomial, that is every irreducible character of $G$ is monomial, if and only if every primitive central idempotent of $\Q G$ is realizable by a Shoda pair of $G$. 

 }

  
\section{\textcolor{Chapter }{Strong Shoda pairs}}\label{SSPDef}
\logpage{[ 7, 15, 0 ]}
{
  \index{strong Shoda pair} A \emph{strong Shoda pair} of $G$ is a pair $(K,H)$ of subgroups of $G$ satisfying the following conditions:

 * $H$ is normal in $K$ and $K$ is normal in the normalizer $N$ of $H$ in $G$, 

 * $K/H$ is cyclic and a maximal abelian subgroup of $N/H$ and 

 * for every $g \in G\setminus N$ , $\varepsilon(K,H)\varepsilon(K,H)^g=0$. (See \ref{IdempotentsSbgps} for the definition of $\varepsilon(K,H)$). 

 Let $(K,H)$ be a strong Shoda pair of $G$. Then $(K,H)$ is a Shoda pair (\ref{SPDef}) of $G$. Thus there is a linear character $\theta$ of $K$ with kernel $H$ such that the induced character $\chi=\chi(G,K,H)=\theta^G$ is irreducible. Moreover the \emph{primitive central idempotent} (\ref{Idempotents}) $e_{\Q }(\chi)$ of $\Q G$ realized by $(K,H)$ is $e(G,K,H)$, see \cite{ORS}. 

 \index{equivalent strong Shoda pairs} Two \emph{strong Shoda pairs} (\ref{SSPDef}) $(K_1,H_1)$ and $(K_2,H_2)$ of $G$ are said to be \emph{equivalent} if the characters $\chi(G,K_1,H_1)$ and $\chi(G,K_2,H_2)$ are Galois conjugate, or equivalently if $e(G,K_1,H_1)=e(G,K_2,H_2)$.

 The advantage of strong Shoda pairs with respect to Shoda pairs is that one
can describe the simple algebra $FGe_F(\chi)$ as a matrix algebra of a \emph{cyclotomic algebra} (\ref{Cyclotomic}, see \cite{ORS} for $F=\Q $ and \cite{O} for the general case). 

 More precisely, $\Q Ge(G,K,H)$ is isomorphic to $M_n(\Q (\xi)*_a^t N/K)$, where $\xi$ is a $[K:H]$-th root of unity, $N$ is the normalizer of $H$ in $G$, $n=[G:N]$ and $\Q (\xi)*_a^t N/K$ is a \emph{crossed product} (see \ref{CrossedProd}) with action $a$ and twisting $t$ given as follows: 

 Let $x$ be a fixed generator of $K/H$ and $\varphi : N/K \rightarrow N/H$ a fixed left inverse of the canonical projection $N/H\rightarrow N/K$. Then 
\[ \xi^{a(r)} = \xi^i, \mbox{ if } x^{\varphi(r)}= x^i \]
 and 
\[ t(r,s) = \xi^j, \mbox{ if } \varphi(rs)^{-1} \varphi(r)\varphi(s) = x^j, \]
 for $r,s \in N/K$ and integers $i$ and $j$, see \cite{ORS}. Notice that the cocycle is the one given by the natural extension 
\[ 1 \rightarrow K/H \rightarrow N/H \rightarrow N/K \rightarrow 1 \]
 where $K/H$ is identify with the multiplicative group generated by $\xi$. Furthermore the centre of the algebra is $\Q (\chi)$, the field of character values over $\Q $, and $N/K$ is isomorphic to $Gal(\Q (\xi)/\Q (\chi))$. 

 If the rational field is changed by an arbitrary ring $F$ of characteristic $0$ then the Wedderburn component $A_F(\chi)$, where $\chi = \chi(G,K,H)$ is isomorphic to $F(\chi)\otimes_{\Q (\chi)}A_\Q (\chi)$. Using the description given above of $A_\Q (\chi)=\Q G e(G,K,H)$ one can easily describe $A_F(\chi)$ as $M_{nd}(F(\xi)/F(\chi),t')$, where $d=[\Q (\xi): \Q(\chi)]/[F(\xi):F(\chi)]$ and $t'$ is the restriction to $Gal(F(\xi)/F(\chi))$ of $t$ (a cocycle of $N/K = Gal(\Q (\xi)/\Q (\chi))$). 

 }

  
\section{\textcolor{Chapter }{Strongly monomial characters and strongly monomial groups}}\label{StMon}
\logpage{[ 7, 16, 0 ]}
{
  \index{SMCh@strongly monomial character} Let $G$ be a finite group an $\chi$ an irreducible character of $G$.

 One says that $\chi$ is \emph{strongly monomial} if there is a \emph{strong Shoda pair} (\ref{SSPDef}) $(K,H)$ of $G$ and a linear character $\theta$ of $K$ of $G$ with kernel $H$ such that $\chi=\theta^G$.

 \index{SMG@strongly monomial group} The group $G$ is \emph{strongly monomial} if every irreducible character of $G$ is strongly monomial. 

 Strong Shoda pairs where firstly introduced by Olivieri, del Río and Simón who
proved that every abelian-by-supersolvable group is strongly monomial \cite{ORS}. The algorithm to compute the Wedderburn decomposition of rational group
algebras for strongly monomial groups was explained in \cite{OR}. This method was extended for semisimple finite group algebras by Broche
Cristo and del Río in \cite{BR} (see Section \ref{CyclotomicClass}). Finally, Olteanu \cite{O} shows how to compute the \emph{Wedderburn decomposition} (\ref{WedDec}) of an arbitrary semisimple group ring by making use of not only the strong
Shoda pairs of $G$ but also the strong Shoda pairs of the subgroups of $G$. }

  \pagebreak. 
\section{\textcolor{Chapter }{Cyclotomic Classes and Strong Shoda Pairs}}\label{CyclotomicClass}
\logpage{[ 7, 17, 0 ]}
{
  Let $G$ be a finite group and $F$ a finite field of order $q$, coprime with the order of $G$. 

 \index{cyclotomic class} Given a positive integer $n$, coprime with $q$, the $q$-\emph{cyclotomic classes} modulo $n$ are the set of residue classes module $n$ of the form 
\[ \{i,iq,iq^2,iq^3, \dots \} \]
 The $q$-cyclotomic classes module $n$ form a partition of the set of residue classes module $n$. 

 \index{generating cyclotomic class} A \emph{generating cyclotomic class } module $n$ is a cyclotomic class containing a generator of the additive group of residue
classes module $n$, or equivalently formed by integers coprime with $n$. 

 Let $(K,H)$ be a strong Shoda pair (\ref{SSPDef}) of $G$ and set $n=[K:H]$. Fix a primitive $n$-th root of the unity $\xi$ in some extension of $F$ and an element $g$ of $K$ such that $gH$ is a generator of $K/H$. Let $C$ be a generating $q$-cyclotomic class modulo $n$. Then set 
\[ \varepsilon_C(K,H) = [K:H]^{-1} \widehat{H} \sum_{i=0}^{n-1} tr(\xi^{-ci})g^i, \]
 where $c$ is an arbitrary element of $C$ and $tr$ is the trace map of the field extension $F(\xi)/F$. Then $\varepsilon_C(K,H)$ does not depend on the election of $c \in C$ and it is a \emph{primitive central idempotent} (\ref{Idempotents}) of $FK$. 

 \index{primitive central idempotent realized by a strong Shoda pair and a cyclotomic class} Finally, let $e_C(G,K,H)$ denote the sum of the different $G$-conjugates of $\varepsilon_C(K,H)$. Then $e_C(G,K,H)$ is a \emph{primitive central idempotent} (\ref{Idempotents}) of $FG$ \cite{BR}. We say that $e_C(G,K,H)$ is the primitive central idempotent realized by the strong Shoda pair $(K,H)$ of the group $G$ and the cyclotomic class $C$. 

 If $G$ is \emph{strongly monomial} (\ref{StMon}) then every primitive central idempotent of $FG$ is realizable by some \emph{strong Shoda pair} (\ref{SSPDef}) of $G$ and some cyclotomic class $C$ \cite{BR}. As in the zero characteristic case, this explain how to compute the \emph{Wedderburn decomposition} (\ref{WedDec}) of $FG$ for a finite semisimple algebra of a strongly monomial group (see \cite{BR} for details). For non strongly monomial groups the algorithm to compute the
Wedderburn decomposition just uses the Brauer characters. 

 }

 }

 \def\bibname{References\logpage{[ "Bib", 0, 0 ]}}

\bibliographystyle{alpha}
\bibliography{manual}

\def\indexname{Index\logpage{[ "Ind", 0, 0 ]}}


\printindex

\newpage
\immediate\write\pagenrlog{["End"], \arabic{page}];}
\immediate\closeout\pagenrlog
\end{document}
