%% for a long time these were red and blue by default, %% now black, but keep variables to overwrite \definecolor{FuncColor}{rgb}{0.0,0.0,0.0} %% strange name because of pdflatex bug: \definecolor{Chapter }{rgb}{0.0,0.0,0.0} \definecolor{DarkOlive}{rgb}{0.1047,0.2412,0.0064}
% 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,}} %% were never documented, give conflicts with some additional packages
\newcommand{\GAP}{\textsf{GAP}}
%% nicer description environments, allows long labels \usepackage{enumitem} \setdescription{style=nextline}
\hypersetup{pdftitle= SmallClassNr } \markright{\scriptsize\mbox{}\hfill SmallClassNr \hfill\mbox{}}
{\Huge\textbf{ Library of finite groups with small class number\mbox{}}}\\ \vfill
{\Huge 1.4.2 \mbox{}}\\[1cm]
{ 11 October 2025 \mbox{}}\\[1cm] \mbox{}\\[2cm]
{\Large\textbf{ Sam Tertooy\\ \mbox{}}}\\ \hypersetup{pdfauthor= Sam Tertooy\\
} \end{center}\vfill
\newpage\setcounter{page}{2}
{\small \section*{Abstract} \logpage{[ 0, 0, 1 ]}
The \textsf{SmallClassNr} package provides access to finite groups with small class number. Currently,
it contains the finite groups of class number at most 14. \mbox{}}\\[1cm]
{\small \section*{Copyright} \logpage{[ 0, 0, 2 ]}
{\copyright} 2022{\textendash}2025 Sam Tertooy
The \textsf{SmallClassNr} package is free software, it may be redistributed and/or modified under the
terms and conditions of the \href{ https://www.gnu.org/licenses/old-licenses/gpl-2.0.en.html} {GNU Public License Version 2} or (at your option) any later version. \mbox{}}\\[1cm]
{\small \section*{Acknowledgements} \logpage{[ 0, 0, 3 ]}
This documentation was created using the \textsf{GAPDoc} and \textsf{AutoDoc} packages. \mbox{}}\\[1cm] \newpage
\def\contentsname{Contents\logpage{[ 0, 0, 4 ]}}
\tableofcontents \newpage
\chapter{\textcolor{Chapter }{The SmallClassNr package}}\label{Chapter_The_PackageName_package} \logpage{[ 1, 0, 0 ]} \hyperdef{L}{X7EC4E71A8078695B}{}
{
This is the manual for the \textsf{GAP} 4 package \textsf{SmallClassNr} version 1.4.2, developed by Sam Tertooy. \section{\textcolor{Chapter }{Installation}}\label{Chapter_The_PackageName_package_Section_Installation} \logpage{[ 1, 1, 0 ]} \hyperdef{L}{X8360C04082558A12}{}
{
If you are using \textsf{GAP} version 4.15.0 or newer, then \textsf{SmallClassNr} should be installed by default.
If this is not the case, but the \textsf{PackageManager} package is installed and loaded, you can install \textsf{SmallClassNr} from within a \textsf{GAP} session using \texttt{InstallPackage} (\textbf{PackageManager: InstallPackage}). \begin{Verbatim}[commandchars=!@|,fontsize=\small,frame=single,label=Example]
!gapprompt@gap>| !gapinput@InstallPackage( "SmallClassNr" );|
...
true \end{Verbatim}
Alternatively, you can download \textsf{SmallClassNr} as a .tar.gz archive \href{https://github.com/stertooy/SmallClassNr/releases/download/v1.4.2/SmallClassNr-1.4.2.tar.gz} {here}. After extracting, you should place it in a suitable \texttt{pkg} folder. For example, on a Debian\texttt{\symbol{45}}based Linux distribution
(e.g. Ubuntu, Mint), you can place it in \texttt{\$HOME/.gap/pkg} (recommended) which makes it available for just yourself, or in the \textsf{GAP} installation directory (\texttt{gap\texttt{\symbol{45}}X.Y.Z/pkg}) which makes it available for all users.
You can use the following command to efficiently install the package for
yourself: \begin{Verbatim}[commandchars=!@A,fontsize=\small,frame=single,label=Command]
wget -qO - https://[...].tar.gz | tar xzf - --one-top-level=$HOME/.gap/pkg \end{Verbatim}
}
\section{\textcolor{Chapter }{Loading}}\label{Chapter_The_PackageName_package_Section_Loading} \logpage{[ 1, 2, 0 ]} \hyperdef{L}{X861ED1338181C66D}{}
{
Once installed, loading \textsf{SmallClassNr} can be done by using \texttt{LoadPackage} (\textbf{Reference: LoadPackage}). \begin{Verbatim}[commandchars=!@|,fontsize=\small,frame=single,label=Example]
!gapprompt@gap>| !gapinput@LoadPackage( "SmallClassNr" );|
...
true \end{Verbatim}
}
\section{\textcolor{Chapter }{Citing}}\label{Chapter_The_PackageName_package_Section_Citing} \logpage{[ 1, 3, 0 ]} \hyperdef{L}{X7A178B0587668C3E}{}
{
If you use the \textsf{SmallClassNr} package in your research, we would love to hear about your work via an email
to the address\href{mailto://sam.tertooy@kuleuven.be} {\texttt{sam.tertooy@kuleuven.be}}. If you have used the \textsf{SmallClassNr} package in the preparation of a paper and wish to refer to it, please cite it
as described below.
In Bib{\TeX}: \begin{Verbatim}[commandchars=!|B,fontsize=\small,frame=single,label=BibTeX]
@misc{SCN1.4.2, author = {Tertooy, Sam}, title = {{SmallClassNr,
Library of finite groups with small class number,
Version 1.4.2}},
note = {GAP package}, year = {2025},
howpublished = {\url{https://stertooy.github.io/SmallClassNr}}
} \end{Verbatim}
In Bib{\LaTeX}: \begin{Verbatim}[commandchars=!|B,fontsize=\small,frame=single,label=BibLaTeX]
@software{SCN1.4.2, author = {Tertooy, Sam}, title = {SmallClassNr},
subtitle = {Library of finite groups with small class number},
version = {1.4.2},
note = {GAP package}, year = {2025},
url = {https://stertooy.github.io/SmallClassNr}
} \end{Verbatim}
}
\section{\textcolor{Chapter }{Support}}\label{Chapter_The_PackageName_package_Section_Support} \logpage{[ 1, 4, 0 ]} \hyperdef{L}{X7B689C0284AC4296}{}
{
If you encounter any problems, please submit them to the \href{https://github.com/stertooy/SmallClassNr/issues} {issue tracker}. If you have any questions on the usage or functionality of \textsf{SmallClassNr}, you may contact me via email at \href{mailto://sam.tertooy@kuleuven.be} {\texttt{sam.tertooy@kuleuven.be}}. }
}
\chapter{\textcolor{Chapter }{Classification}}\label{Chapter_Classification} \logpage{[ 2, 0, 0 ]} \hyperdef{L}{X8053C9E57C4C5F94}{}
{
The \emph{class number} $k(G)$ of a group $G$ is the number of conjugacy classes of $G$. In 1903, Landau proved in \cite{land03-a} that for every $n \in\mathbb{N}$, there are only finitely many finite groups with exactly $n$ conjugacy classes. The \textsf{SmallClassNr} package provides access to the finite groups with class number at most $14$.
These groups were classified in the following papers: \begin{itemize} \item $k(G) \leq 5$, by Miller in \cite{mill11-a} and independently by Burnside in \cite{burn11-a} \item $k(G) = 6,7$, by Poland in \cite{pola68-a} \item $k(G) = 8$, by Kosvintsev in \cite{kosv74-a} \item $k(G) = 9$, by Odincov and Starostin in \cite{os76-a} \item $k(G) = 10,11$, by Vera L{\a'o}pez and Vera L{\a'o}pez in \cite{ll85-a} (1) \item $k(G) = 12$, by Vera L{\a'o}pez and Vera L{\a'o}pez in \cite{ll86-a} (2) \item $k(G) = 13, 14$, by Vera L{\a'o}pez and Sangroniz in \cite{vs07-a} \end{itemize}
(1) In \cite{ll85-a}, three distinct groups of the form $(C_5 \times C_5) \rtimes C_4$ order $100$ with class number $10$ are given. However, only two such groups exist, being the ones with \texttt{IdClassNr} equal to \texttt{[10,25]} and \texttt{[10,26]}.
(2) In \cite{ll86-a}, only 48 groups with class number 12 are listed. The three missing groups are
provided in the appendix of \cite{vs07-a}. These are the groups with \texttt{IdClassNr} equal to \texttt{[12,13]}, \texttt{[12,16]} and \texttt{[12,39]}. }
\chapter{\textcolor{Chapter }{The Small Class Number Library}}\label{Chapter_The_Small_Class_Number_Library} \logpage{[ 3, 0, 0 ]} \hyperdef{L}{X7D2B74F9802686C1}{}
{
\subsection{\textcolor{Chapter }{SmallClassNrGroup}} \logpage{[ 3, 1, 1 ]}\nobreak \hyperdef{L}{X7F0BD3117CA1B4FE}{}
{\noindent\textcolor{FuncColor}{$\triangleright$\enspace\texttt{SmallClassNrGroup({\mdseries\slshape k, i})\index{SmallClassNrGroup@\texttt{SmallClassNrGroup}} \label{SmallClassNrGroup}
}\hfill{\scriptsize (function)}}\\ \textbf{\indent Returns:\ }
the \mbox{\texttt{\mdseries\slshape i}}\texttt{\symbol{45}}th finite group of class number\mbox{\texttt{\mdseries\slshape k}} in the library.
Alternatively, the pair \texttt{[ \mbox{\texttt{\mdseries\slshape k}}, \mbox{\texttt{\mdseries\slshape i}} ]} can be given as a single argument \mbox{\texttt{\mdseries\slshape id}}. If the group is solvable, it is given as a PcGroup whose Pcgs is a
SpecialPcgs. If the group is not solvable, it will be given as a permutation
group of minimal permutation degree and with a minimal generating set. }
\begin{Verbatim}[commandchars=!@|,fontsize=\small,frame=single,label=Example]
!gapprompt@gap>| !gapinput@G := SmallClassNrGroup( 6, 4 );|
<pc group of size 18 with 3 generators>
!gapprompt@gap>| !gapinput@NrConjugacyClasses( G );|
6
!gapprompt@gap>| !gapinput@IsDihedralGroup( G );|
true \end{Verbatim}
\subsection{\textcolor{Chapter }{SmallClassNrGroupsAvailable}} \logpage{[ 3, 1, 2 ]}\nobreak \hyperdef{L}{X79C6FA9D850D3AB1}{}
{\noindent\textcolor{FuncColor}{$\triangleright$\enspace\texttt{SmallClassNrGroupsAvailable({\mdseries\slshape k})\index{SmallClassNrGroupsAvailable@\texttt{SmallClassNrGroupsAvailable}} \label{SmallClassNrGroupsAvailable}
}\hfill{\scriptsize (function)}}\\ \textbf{\indent Returns:\ } \texttt{true} if the finite groups of class number\mbox{\texttt{\mdseries\slshape k}} are available in the library, and \texttt{false} otherwise.
\subsection{\textcolor{Chapter }{AllSmallClassNrGroups}} \logpage{[ 3, 1, 3 ]}\nobreak \hyperdef{L}{X87052993834D10C5}{}
{\noindent\textcolor{FuncColor}{$\triangleright$\enspace\texttt{AllSmallClassNrGroups({\mdseries\slshape arg})\index{AllSmallClassNrGroups@\texttt{AllSmallClassNrGroups}} \label{AllSmallClassNrGroups}
}\hfill{\scriptsize (function)}}\\ \textbf{\indent Returns:\ }
all finite groups with certain properties as specified by \mbox{\texttt{\mdseries\slshapearg}}.
The arguments must come in pairs consisting of a function and a value (or list
of possible values). At least one of the functions must be \texttt{NrConjugacyClasses}. Missing functions will be interpreted as \texttt{NrConjugacyClasses}, missing values as \texttt{true}. }
\begin{Verbatim}[commandchars=!@|,fontsize=\small,frame=single,label=Example]
!gapprompt@gap>| !gapinput@L1 := AllSmallClassNrGroups( [3..5], IsNilpotent );|
[ <pc group of size 3 with 1 generator>,
<pc group of size 4 with 2 generators>,
<pc group of size 4 with 2 generators>,
<pc group of size 5 with 1 generator>,
<pc group of size 8 with 3 generators>,
<pc group of size 8 with 3 generators> ]
!gapprompt@gap>| !gapinput@List( L1, NrConjugacyClasses );|
[ 3, 4, 4, 5, 5, 5 ]
!gapprompt@gap>| !gapinput@L2 := AllSmallClassNrGroups( IsSolvable, true, NrConjugacyClasses, 6 );|
[ <pc group of size 6 with 2 generators>,
<pc group of size 12 with 3 generators>,
<pc group of size 12 with 3 generators>,
<pc group of size 18 with 3 generators>,
<pc group of size 18 with 3 generators>,
<pc group of size 36 with 4 generators>,
<pc group of size 72 with 5 generators> ]
!gapprompt@gap>| !gapinput@ForAll( L2, G -> IsSolvable( G ) and NrConjugacyClasses( G ) = 6 );|
true \end{Verbatim}
\subsection{\textcolor{Chapter }{OneSmallClassNrGroup}} \logpage{[ 3, 1, 4 ]}\nobreak \hyperdef{L}{X7AD22E3083C09796}{}
{\noindent\textcolor{FuncColor}{$\triangleright$\enspace\texttt{OneSmallClassNrGroup({\mdseries\slshape arg})\index{OneSmallClassNrGroup@\texttt{OneSmallClassNrGroup}} \label{OneSmallClassNrGroup}
}\hfill{\scriptsize (function)}}\\ \textbf{\indent Returns:\ }
one finite group with certain properties as specified by \mbox{\texttt{\mdseries\slshape arg}}.
The arguments must come in pairs consisting of a function and a value (or list
of possible values). At least one of the functions must be \texttt{NrConjugacyClasses}. Missing functions will be interpreted as \texttt{NrConjugacyClasses}, missing values as \texttt{true}. }
\begin{Verbatim}[commandchars=!@|,fontsize=\small,frame=single,label=Example]
!gapprompt@gap>| !gapinput@H := OneSmallClassNrGroup( 6, IsAbelian );|
<pc group of size 6 with 2 generators>
!gapprompt@gap>| !gapinput@IsCyclic( H );|
true
!gapprompt@gap>| !gapinput@K := OneSmallClassNrGroup( 10, IsSolvable, true, IsNilpotent, false );|
<pc group of size 28 with 3 generators>
!gapprompt@gap>| !gapinput@NrConjugacyClasses( K ) = 10 and IsSolvable( K ) and not IsNilpotent( K );|
true \end{Verbatim}
\subsection{\textcolor{Chapter }{NrSmallClassNrGroups}} \logpage{[ 3, 1, 5 ]}\nobreak \hyperdef{L}{X84004D087859AF4F}{}
{\noindent\textcolor{FuncColor}{$\triangleright$\enspace\texttt{NrSmallClassNrGroups({\mdseries\slshape arg})\index{NrSmallClassNrGroups@\texttt{NrSmallClassNrGroups}} \label{NrSmallClassNrGroups}
}\hfill{\scriptsize (function)}}\\ \textbf{\indent Returns:\ }
the number of finite groups with certain properties as specified by \mbox{\texttt{\mdseries\slshape arg}}.
The arguments must come in pairs consisting of a function and a value (or list
of possible values). At least one of the functions must be \texttt{NrConjugacyClasses}. Missing functions will be interpreted as \texttt{NrConjugacyClasses}, missing values as \texttt{true}. }
\subsection{\textcolor{Chapter }{IteratorSmallClassNrGroups}} \logpage{[ 3, 1, 6 ]}\nobreak \hyperdef{L}{X7D2BB4B379563D9A}{}
{\noindent\textcolor{FuncColor}{$\triangleright$\enspace\texttt{IteratorSmallClassNrGroups({\mdseries\slshape arg})\index{IteratorSmallClassNrGroups@\texttt{IteratorSmallClassNrGroups}} \label{IteratorSmallClassNrGroups}
}\hfill{\scriptsize (function)}}\\ \textbf{\indent Returns:\ }
an iterator that iterates over the finite groups with properties as specified
by \mbox{\texttt{\mdseries\slshape arg}}. The arguments must come in pairs consisting of a function and a value (or
list of possible values). At least one of the functions must be \texttt{NrConjugacyClasses}. Missing functions will be interpreted as \texttt{NrConjugacyClasses}, missing values as \texttt{true}.
}
\begin{Verbatim}[commandchars=!@|,fontsize=\small,frame=single,label=Example]
!gapprompt@gap>| !gapinput@iter := IteratorSmallClassNrGroups( IsSolvable, false, 11 );|
<iterator>
!gapprompt@gap>| !gapinput@for G in iter do Print( Size( G ), "\n" ); od;|
336
720
720
1344
1344
1512
2448
29120 \end{Verbatim}
\subsection{\textcolor{Chapter }{IdClassNr}} \logpage{[ 3, 1, 7 ]}\nobreak \hyperdef{L}{X8651368082BCE413}{}
{\noindent\textcolor{FuncColor}{$\triangleright$\enspace\texttt{IdClassNr({\mdseries\slshape G})\index{IdClassNr@\texttt{IdClassNr}} \label{IdClassNr}
}\hfill{\scriptsize (attribute)}}\\ \textbf{\indent Returns:\ }
the \textsf{SmallClassNr} ID of \mbox{\texttt{\mdseries\slshape G}}, i.e. a pair \texttt{[ \mbox{\texttt{\mdseries\slshape k}}, \mbox{\texttt{\mdseries\slshape i}} ]} such that \mbox{\texttt{\mdseries\slshape G}} is isomorphic to \texttt{SmallClassNrGroup( \mbox{\texttt{\mdseries\slshape k}}, \mbox{\texttt{\mdseries\slshape i}} )}.
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung ist noch experimentell.