GAP 4.8.9 installation with standard packages -- copy to your CoCalc project to get it
\section{The structure of relevant files}12There are two file types related to CARAT, {\rm matrix\_TYP} and {\rm3bravais\_TYP}. Both of them consist of a set of matrices, combined4in different ways. Firstly we describe the format of matrices which5CARAT is able to read.67\subsection{Format of a single matrix in CARAT}89A matrix in a CARAT file is represented by a headline which gives10information about the dimension of the matrix and the body, which11carries the entries of the matrix in question.1213The headline has the format14\begin{verbatim} NxM % comment \end{verbatim}15for a matrix which has $N$ rows and $N$ columns. All characters in this16line behind {\rm \%} are ignored. There are some abbreviations allowed, and17these are {\rm N} for {\rm NxN}, {\rm Nd0} for an $N \times N$ scalar matrix,18{\rm Nd1} for an $N \times N$ diagonal matrix, and {\rm Nx0} for an $N\times19N$ symmetric matrix.2021The body consists of the entries of the matrix. Two numbers are separated22by any combination of spaces, newlines or tabulators.2324For simplicity of the description a couple of examples are given, the left25side of these discribing the input, and the right hand side stating it's26meaning.2728\bigskip29\begin{minipage}{6cm}30\begin{verbatim}313x2 % this will be ignored321 2333 4345 635\end{verbatim}36\end{minipage}\hfill37\begin{minipage}{5cm}38$\left( \begin{array}{cc} 1 & 2\\393 & 4\\405 & 6 \end{array}\right)$41\end{minipage}\\4243\bigskip44\begin{minipage}{6cm}45\begin{verbatim}463471 2 3484 5 6497 8 950\end{verbatim}51\end{minipage}\hfill52\begin{minipage}{5cm}53$\left( \begin{array}{ccc} 1 & 2 & 3\\544 & 5 & 6\\557 & 8 & 9\end{array}\right)$56\end{minipage}\\57\bigskip58\begin{minipage}{6cm}59\begin{verbatim}603d1 % and also this611 -1 262\end{verbatim}63\end{minipage}\hfill64\begin{minipage}{5cm}65$ \left( \begin{array}{ccc} 1 & 0 & 0\\660 & -1& 0\\670 & 0 & 2\end{array}\right)$68\end{minipage}\\6970\bigskip71\begin{minipage}{6cm}72\begin{verbatim}732d074475\end{verbatim}76\end{minipage}\hfill77\begin{minipage}{5cm}78$ \left( \begin{array}{cc} 4 & 0\\790 & 4\end{array}\right)$80\end{minipage}8182\bigskip83All files which are read by CARAT programs consist of a sequence of84one or more of these matrices, sometimes with a header line describing85to meaning of all these matrices (see below).8687\subsection{\rm matrix\_TYP}8889Some programs in CARAT will read/output more than one matrix. Therefore90we created a file type which is called {\rm matrix\_TYP} and describes91a sequence of matrices.9293Files of this type will simply begin with $\sharp N$, where $N$ is the94number of matrices in the file. If CARAT reads such a file, it will95read exactly $N$ matrices and will ignore the rest of the file.9697Now we give an example of a file consisting of $3$ matrices of dimension $4$98which generate a bravais group of Order $384$ (which is isomorphic to99$C_2 \wr S_4$).100\begin{verbatim}101#31024 % generator103-1 0 0 01040 1 0 01050 0 1 01060 0 0 11074 % generator1080 1 0 01091 0 0 01100 0 1 01110 0 0 11124 % generator1131 0 0 01140 0 0 11150 1 0 01160 0 1 0117\end{verbatim}118119120\subsection{\rm bravais\_TYP}121122Sometimes it is convenient not only to give matrices which generate a123group, but feed programs more information, ie.\ the order of the group,124it's normalizer in $GL_n(\Z)$.125126Therefore the header line of a file of {\rm bravais\_TYP} takes the127following form:128\begin{verbatim}129\sharp gN\ fM\ zO\ nP\ cQ130\end{verbatim}131This will cause programs to read $N+M+O+P+Q$ matrices, and interpret132the first $N$ matrices as those generating the group, the next $M$133to be a $\Z$-basis of the form space, $O$ matrices representing ``centerings'',134$P$ matrices which form a generating set for the normalizer (in $GL_n(\Z)$)135modulo the group, and finally $Q$ matrices which generated it's centralizer136(again in $GL_n(\Z)$).137138It is possible to omit one or more of these letter, which will cause139programs to think that the described components are not know.140141Here are some legal header lines given142\begin{verbatim}143#g2 f2 n3144145#g2 n4146147#g2 n4148\end{verbatim}149Note: Although it is possible to omit components, it is NOT possible to switch150them.151152The end of a {\rm bravais\_TYP} file states the order of the group. This153component is also optional, and takes the following form:154\begin{displaymath}155p_1^{n_1}\ \ast\ p_2^n2\ \dots\ \ast p_m^{n_m} = N\%156\end{displaymath}157where $\prod_i p_i^{m_i} = N$ is the order of the described group.158159\subsection{A format for finitely presented Groups}160161Some programs we need or generate a presentation for a finite group.162CARAT reads them in form of a matrix, which will be interpreted in the163following way:164\begin{itemize}165\item The biggest entry in modulus is the number of generators of166the free group.167\item Each ROW of the matrix represents a relation, ie. a word in168the generators of the free group. A word169$w=x_{i_1}^{\epsilon_1} \cdot x_{i_2}^{\epsilon_2} \cdots170x_{i_n}^{\epsilon_n}$ with $\epsilon_j \in \{-1,1\}$ translate171into a row of the matrix by $\epsilon_1 i_1\ espilon_2 i_2\ \dots\172\epsilon_n i_n$.173\end{itemize}174175Again we just give two examples for CARAT presentations (which both176are presentations for the $A_5$).177178\bigskip179\begin{verbatim}1803x101811 1 0 0 0 0 0 0 0 01822 2 2 0 0 0 0 0 0 01831 2 1 2 1 2 1 2 1 2184\end{verbatim}185Meaning:186\begin{displaymath}187\langle x_1,x_2 | x_1\cdot x_1=1,\ x_2 \cdot x_2\cdot x_2=1,\188x_1\cdot x_2 \cdots x_1 \cdot x_2 = (x_1 \cdot x_2)^5 = 1189\rangle190\end{displaymath}191192\bigskip193\begin{verbatim}1943x10195\end{verbatim}196197198