GAP 4.8.9 installation with standard packages -- copy to your CoCalc project to get it
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%1%%2%W guide.tex ANUPQ standalone documentation Eamonn O'Brien3%%4%%5%W Greg Gamble made a number of modifications: updated it for LaTeX2e;6%W added a table of contents, cross-references and an examples appendix;7%W updated the bibliography and Eamonn's address, improved some of the8%W descriptions, re-arranged it slightly and updated it for changes made9%W for Versions 1.5 and 1.6. The file needs to be latex-ed three times10%W to obtain a correct `.dvi' file.11%%12\documentclass[12pt]{article}13%14%page layout - A4 paper is 210mm by 297mm.15%16\hoffset -25truemm17\oddsidemargin=30truemm %18\evensidemargin=25truemm % inner margin of 30mm, outer 25mm19\textwidth=155truemm %20\voffset -25truemm21\topmargin=22truemm % top margin of 25mm22\headheight=0truemm % no head23\headsep=0truemm % no head24\textheight=246truemm % bottom margin of 25mm, page nos. inside25%26\def\pq{the $p$-quotient implementation}27\begin{document}28\title{A guide to the ANU {\it p}-Quotient Program\\Version 1.9}29\author{Eamonn O'Brien}30\date{January 2012}31\maketitle32\tableofcontents33\pagebreak3435\begin{abstract}36\addcontentsline{toc}{section}{\numberline{}Abstract}37The ANU {\it p}-Quotient Program (pq) provides access to implementations38of an algorithm to construct a power-commutator presentation (pcp) for39a {\it p}-group and of an algorithm to generate descriptions of40{\it p}-groups. It also allows access to an implementation41of an algorithm which can be used to construct a ``canonical"42pcp for a $p$-group and via this construction it allows a user43to determine whether two $p$-groups are isomorphic. The latter44can be used to generate a description of its automorphism group.45\end{abstract}4647\section{Program content}\label{sec:prog-content}48The ANU {\it p}-Quotient Program (pq) is named for the $p$-quotient algorithm49that it first implemented. Now, via menus it provides access to implementations50of all the following algorithms:5152\begin{enumerate}53\item54A \emph{$p$-quotient algorithm} to compute a power-commutator presentation55for a $p$-group. The algorithm implemented here is based on that56described in Newman and O'Brien (1996), Havas and Newman (1980),57and papers referred to there.5859Another description of the algorithm appears in Vaughan-Lee (1990b).60A FORTRAN implementation of this algorithm was programmed by61Alford \& Havas. The basic data structures of that implementation62are retained.6364The current implementation incorporates the following features:6566\begin{enumerate}67\item[a.]68collection from the left (see Vaughan-Lee, 1990b);69Vaughan-Lee's implementation of this collection70algorithm is used in the program;7172\item[b.]73an improved consistency algorithm (see Vaughan-Lee, 1982);7475\item[c.]76new exponent law enforcement and power routines;7778\item[d.]79closing of relations under the action of automorphisms;8081\item[e.]82some formula evaluation.83\end{enumerate}8485\item86A \emph{$p$-group generation algorithm} to generate descriptions of $p$-groups.87The algorithm implemented here is based on the algorithms described in88Newman (1977) and O'Brien (1990). A FORTRAN implementation of this89algorithm was earlier developed by Newman \& O'Brien.9091\item92A \emph{standard presentation algorithm} used to compute a canonical93power-commutator presentation of a $p$-group. The algorithm94implemented here is described in O'Brien (1994).9596\item97An algorithm which can be used to compute the \emph{automorphism group} of98a $p$-group. The algorithm implemented here is described in O'Brien (1995).99\end{enumerate}100101The pq program is written in traditional C and contains about10222000 lines of code.103It was developed in a SUN OS environment and has been ported successfully104to each of Solaris, AIX and Ultrix environments. The interface and105input/output facilities of the program are rudimentary. Interfaces106have been developed which allow parts of this program to be called107from within the computational group theory system {\sf GAP}.108This program is supplied as a package within {\sf GAP}.109The link from {\sf GAP} to pq is described in the manual110for {\sf GAP} 3.4 or in the manual found in the \texttt{doc} directory111in the case of the {\sf GAP}~4 package {\sf ANUPQ}; all of the112necessary code can be found in the \texttt{gap} directory of these113distributions.114The program is also distributed as part of Quotpic.115116Version 1.9 of the pq program (i.e.~the version you are currently reading117the documentation for) is configured to call {\sf GAP}, at least version1184.5, to compute stabilisers when needed.119120The FORTRAN version of this program was known as the121Nilpotent Quotient Program.122123\section{Installing pq}\label{sec:pq-install}124125To install pq just follow the instructions for installing the {\sf ANUPQ}126package, i.e. in the directory above, do:127128\begin{quote}129\verb|./configure|\\130\verb|make| \textit{TARGET} \verb|GAP=|\textit{GAPPATH}131\end{quote}132133If you are running Linux you may omit \textit{TARGET}. The path134\textit{GAPPATH} should be the path of a \emph{shell script} that runs135{\sf GAP} 4 with packages {\sf AutPGrp} (at least version 1.5) and136{\sf ANUPQ} (at least version 3.1)137installed. If the {\sf ANUPQ} and/or {\sf AutPGrp} packages are not installed138in the \texttt{pkg} directory of the {\sf GAP} 4 distribution, then139the \texttt{-l} option (last line of the \emph{shell script} previously140mentioned) \emph{must} be set to be a semicolon-separated list of141paths of the main {\sf GAP} directory and the path of the \texttt{pkg}142directory containing those packages of {\sf ANUPQ} and {\sf AutPGrp}143that are missing from the {\sf GAP} 4 distribution \texttt{pkg} directory.144145The pq program only needs {\sf GAP} for computing stabilisers when you146answer ``No'' (\texttt{0}) to the question147``\texttt{PAG-generating sequence for automorphism group?}''.148If you neglect to add: ``\verb|GAP=|\textit{GAPPATH}'' to the \verb|make|149command, never mind; the pq program first checks to see if the environment150variable \verb|ANUPQ_GAP_EXEC| is set. For \texttt{csh} doing:151152\begin{quote}153\verb|setenv ANUPQ_GAP_EXEC| \textit{GAPPATH}154\end{quote}155%156is essentially equivalent to including: \verb|GAP=|\textit{GAPPATH}157in the \verb|make| command. If you use a different shell just use the158appropriate syntax for setting environment variables for your shell.159160A good test for checking that you have installed pq correctly is to try161the example in Appendix~\ref{sec:pgrp-gen-eg}.162163\section{Organisation}164Access to the implementations of each algorithm mentioned in165Section~\ref{sec:prog-content} is provided via menus.166The \emph{$p$-quotient algorithm} machinery is provided by the167``Basic Menu for {\it p}-Quotient Program" and168the ``Advanced {\it p}-Quotient Menu";169access to the \emph{$p$-group generation algorithm} implementation is170provided via the main ``Menu for {\it p}-Group Generation'' and the171``Advanced Menu for {\it p}-Group Generation"; and finally the172\emph{standard presentation algorithm} and \emph{automorphism group algorithm}173implementations may be accessed via the ``Standard Presentation Menu".174175By default, the pq program opens with the Basic Menu [for {\it p}-Quotient176Program] (see~\ref{sec:basic-menu}), which provides ``basic'' options for177the {\it p}-Quotient algorithm and via options \texttt{8} and \texttt{9}178gives (immediate) access to two further menus,179namely the Advanced {\it p}-Quotient Menu180(see~\ref{sec:advanced-pq-menu}) and the (main)181Menu for {\it p}-Group Generation (see~\ref{sec:pgrp-gen-main-menu}),182respectively. The main Menu for {\it p}-Group Generation provides183access to a further menu: the Advanced Menu for {\it p}-Group Generation184(see~\ref{sec:pgrp-gen-advanced-menu}).185186If the pq program is invoked with the \texttt{-i} switch (see187Section~\ref{sec:runtime}), the program opens with the188Standard Presentation Menu (see Section~\ref{sec:stnd-pres-menu})189which gives one immediate access to the190standard presentation and automorphism group machinery191and via option \texttt{7} access to the Basic Menu192and hence the other menus.193194To cleanly exit the pq program one must retrace one's path through the menus195(by typing the number of the option that exits each menu or \texttt{0}).196Exiting the menu that the pq program opened with (either the Basic Menu197or the Standard Presentation Menu), exits the pq program.198199The Basic Menu, the main Menu for {\it p}-Group Generation and200the Standard Presentation Menu201are designed particularly for the new or occasional user;202levels of control by the user are low, but there is little203attendant risk of obtaining inaccurate information. The Advanced menus204are designed for the knowledgeable user with specialised needs; they205allow the user to make almost all decisions, provide little protection206and if pre-requisite information for an option to succeed207(e.g. a pc presentation for the group) is not in place, the pq will208invariably exit horribly.209210Each menu is discussed in more detail later. See211Section~\ref{sec:conventions} for the conventions212that apply to these menus.213214\pagebreak215\section{Runtime parameters}\label{sec:runtime}216The program may be invoked with the following runtime parameters:217218\enlargethispage*{1\baselineskip}219\begin{description}220221% An idea which may or may not be implemented222%\item[\texttt{-2}\hspace*{1em}]223% Gives the experimental Level 2 (non-menu) interface, which is224% being designed to supersede the usage of the other runtime parameter225% switches (except for \texttt{-v}) when pq is used with {\sf GAP} 4.226227\item[\texttt{-b}\hspace*{1em}]228A ``basic" format can be used to input a group presentation.229See~\ref{sec:basic-fmt}.230231\item[\texttt{-G}\hspace*{1em}]232This option is used by {\sf GAP} 4. It is essentially equivalent233to setting the switches \texttt{-g -i -k} simultaneously, except234that it uses {\sf GAP}'s iostream to direct requests to {\sf GAP}235to compute stabilisers when necessary.236237\item[\texttt{-g}\hspace*{1em}]238If groups are generated using $p$-group generation, then239their presentations are written to a file240in a {\sf GAP} compatible format.241The name of the file may be selected using the \texttt{-w} option;242the default is \texttt{GAP\_library}.243244\item[\texttt{-i}\hspace*{1em}]245This provides access to the Standard Presentation Menu,246which can be used to construct the standard presentation247of a given $p$-group.248249\item[\texttt{-k}\hspace*{1em}]250The presentation may be defined and supplied using certain251key words. Examples of this format can be found in those252files in the \texttt{examples} directory whose names commence with253\texttt{keywords\_}. This option cannot be used with \texttt{-b}.254255\item[\texttt{-s} {\it integer}]\ \\256All computations of power-commutator presentations occur257in an integer array, $y$ -- the space of this array, by258default 1000000, is set to {\em integer}. See the discussion259on strategies to minimise time and space later in this document.260261\item[\texttt{-v}\hspace*{1em}]262Gives the version of the ANU {\it p}-Quotient program and exits.263264\item[\texttt{-w} {\it file}]\ \\265Group descriptions are written in {\sf GAP}266format to {\em file}. \texttt{-g}267must be used in conjunction with this parameter.268269\end{description}270271If the program is compiled using the \texttt{RUN\_TIME} option, then272there are two additional runtime options:273274\begin{description}275276\item[\texttt{-c}\hspace*{1em}]277The maximum exponent-$p$ class to be considered.278279\item[\texttt{-d}\hspace*{1em}]280A bound on the number of defining generators.281282\end{description}283284\pagebreak285\section{Conventions}\label{sec:conventions}286\subsection{Menu Conventions}287288The following conventions apply for all menus.289\begin{itemize}290\item291Typing the integer identifying an option selects that option.292293\item294At a number of points in running the program, you will295be asked questions or prompted for input. A non-zero integer response296signifies a positive response to the question; a response of \texttt{0} (zero)297is a negative response.298In this guide, a ``Yes" means a non-zero integer response;299a ``No" is a zero response.300301\item302For each menu, the option \texttt{-1} lists the menu,303and \texttt{0} exits the menu.304To cleanly exit the pq program one must retrace one's path through the menus305(by typing the number of the option that exits each menu or \texttt{0}).306Exiting the menu that the pq program opened with (either the Basic Menu307or the Standard Presentation Menu), exits the pq program.308309\item If the program cannot open a file for any reason, it simply310reports this and if not running interactively exits.311312\item Input from the first occurrence of a ``\texttt{\#}" symbol to the313end of that line is interpreted as a comment and is ignored.314\end{itemize}315316Language used in the menus for the construction of the pcp317follows that used in Havas \& Newman (1980) and318Newman \& O'Brien (1996);319that in the {\it p}-group generation menus follows O'Brien (1990);320that in the standard presentation menu follows O'Brien (1994).321322\subsection{Word input}\label{sec:word-input}323324The performance of the program is significantly enhanced if325it can store the defining relations in their unexpanded form.326It is currently only possible to store a supplied relation in its327unexpanded form if the relation is either a power OR a commutator,328and the components of the power or commutator are only329defining generators or their inverses. Hence, it is frequently330appropriate for the user to introduce redundant generators into331the supplied presentation.332333There are two formats available for supplying334generators and relations: the ``default format''335(see Section~\ref{sec:def-fmt}) and the ``basic format''336(see Section~\ref{sec:basic-fmt}). Examples of the usage of both formats337can be found in the \texttt{examples} directory.338339\subsubsection{The default format for word input}\label{sec:def-fmt}340Under the default format, a user is prompted for a list of341generators, which must be supplied as a set.342The user is then prompted for a defining set of relations,343again supplied as a set.344345Any combination of relations and relators may be supplied.346Note, however, you may NOT use relations of the form $u = v = w$.347Relations are separated by commas, $\wedge$ is used for powers and348conjugation, \texttt{[} and \texttt{]} are used to indicate the beginning349and end of a commutator, and \texttt{1} is the identity of the group.350The following are examples of valid input for relations:351\newcommand{\wedg}{$\mathtt{\wedge}$}352\begin{flushleft}353\quad\verb|{x |{\wedg}\verb| 5 = [x, y, y], z |{\wedg}\verb| x = 1, z * y * x * z |{\wedg}\verb| -1 = 1}|\\354\quad\verb|{a3 * [a2, a1], a4 |{\wedg}\verb| a1 * a3 |{\wedg}\verb| a2 * [a2, a1 |{\wedg}\verb| -1, a4, a1 |{\wedg}\verb| 7] = 1}|355\end{flushleft}356357\subsubsection{The basic format for word input}\label{sec:basic-fmt}358The basic format is selected at start-up via the \texttt{-b} switch359(see Section~\ref{sec:runtime}).360In the pcp, the defining generators and the pcp generators are361labeled as positive integers; in each case they commence at 1.362Inverses of generators are labelled by the corresponding negative number.363364The format for word input is the following:365\begin{displaymath}366\textit{Exp}\; \textit{Gen}_1\; \textit{Gen}_2 \ldots \mathtt{;}367\end{displaymath}368where ``\textit{Exp}" is the exponent;369if $\textit{Gen}_i$ is a positive integer, it represents the corresponding370generator of the group; if it is a negative integer, it represents371the inverse of that generator. Word input is terminated by a ``\texttt{;}".372Entries in the word can be separated by any positive373number of spaces.374375Defining relations may only be supplied as relations -- not as relators.376Each side of the relation is supplied as a word using the above377format. Where the input is a power of a left-normed commutator, the378following simpler format may be used379\begin{displaymath}380\textit{Exp}\; \texttt{[} \textit{Gen}_1\; \textit{Gen}_2 \ldots \texttt{];}381\end{displaymath}382where \texttt{[} and \texttt{]} are used to indicate the beginning and end383of the commutator. As for the default format, entries in the commutator can384be separated by an optional number of spaces.385The identity word is indicated by supplying a word with exponent \texttt{0}386-- ``\texttt{0;}" is sufficient.387388Examples of acceptable input are the following:389\begin{itemize}390\item The input ``\texttt{5 2 1 -3 4;}"391represents the word $(2 \times 1 \times 3^{-1} \times 4)^5$.392\item The input ``\texttt{3 [2 1 1 3];}" represents393the commutator power $[2,\; 1,\; 1,\; 3]^3$.394\end{itemize}395Under the basic format, the program only accepts input of396either type in a word; you may not combine them. This may affect397how you supply the defining relations for the presentation.398399\subsubsection{Advanced menu word input}400Words are supplied as input to options to the Advanced menus401on a number of occasions. Usually,402these are words in the pcp generators of the group.403404Under the default format, the $n$ pcp generators of the group405are, for convenience, automatically labelled as406$\mathtt{x1, x2, \ldots, x}n$.407All words in the pcp generators are then supplied as words408in $\mathtt{x1, \ldots, x}n$, using the format prescribed above409for the defining relators. Word input is terminated by a ``\texttt{;}".410411A few options allow input involving the defining generators.412The $m$ defining generators of the group are also automatically413labelled as $\mathtt{x1, x2, \ldots, x}m$. All words in the defining414generators are then supplied as words in $\mathtt{x1, \ldots, x}m$,415using the format prescribed above for the defining relators.416As before, word input is terminated by a ``\texttt{;}".417418If you use the basic input format, then all words are419supplied as specified in the basic format discussion.420421\subsection{Input and output facilities}422Currently, facilities exist to save the computed presentation to file423and to later restore and restart the computation. The files are saved and424restored using the ``\texttt{fread}" and ``\texttt{fwrite}" facilities,425respectively.426For both save and restore, the user supplies a name for the file,427which can be any valid (UNIX or VMS) name. In the case of writing to file,428the program does not query the user before overwriting429an existing file -- it is the user's responsibility to prevent430such situations from occurring.431432\section{The {\it p}-Quotient implementation}433434\subsection{Basic Menu for {\it p}-Quotient Program}\label{sec:basic-menu}435The default opening menu obtained on running the program is listed below.436\begin{verbatim}437Basic Menu for p-Quotient Program438----------------------------------4391. Compute pc presentation4402. Save presentation to file4413. Restore presentation from file4424. Display presentation of group4435. Set print level4446. Calculate next class4457. Compute p-covering group4468. Advanced p-quotient menu4479. (Main) menu for p-group generation44810. Exit from p-quotient program449\end{verbatim}450We now discuss each of these options.451\begin{description}452\item[\texttt{1.\ Compute pc presentation}]\ \\453When you select this option, you will be given the following sequence454of prompts for input. [If you start the pq program with the \texttt{-k}455switch (see Section~\ref{sec:runtime}), you will not be prompted;456instead you must supply input in the form:457\begin{quote}458\textit{keyword} \textit{value}459\end{quote}460where \textit{value} is the input you would otherwise have been prompted461for. The last input for this option must also be terminated by a semicolon462(\texttt{;}). Some data have default values if omitted, and there is no463restriction on the order in which the data are supplied. The keyword464\textit{keyword} needed and default value if there is one, for the465corresponding \texttt{-k} input is given in square brackets after describing466each prompt (but not after describing the prompts obtained when the pq467program is called with \texttt{-b} --- the \texttt{-k} and \texttt{-b}468switches cannot be used together). Actually, only the first 3 letters469of each keyword are significant; so, in fact, \texttt{prime}, for example,470may be abbreviated to \texttt{pri}.]471%472\begin{description}473\item[\texttt{Input group identifier:}]\ \\474you may supply any sequence of characters,475excluding spaces, as a valid identifier for the group.476[keyword: \texttt{name}, default: \texttt{G}.]477\item[\texttt{Input prime:}]\ \\478supply the prime $p$ used in computing the {\it p}-quotient.479[keyword: \texttt{prime}.]480\item[\texttt{Input maximum class:}]\ \\481supply the maximum exponent-{\it p} class of the quotient to be constructed.482[keyword: \texttt{classbound}, default: \texttt{10}.]483\item[\texttt{Input print level:}]\ \\484see option \texttt{5} below.485[keyword: \texttt{outputlevel}, default: \texttt{1}.]486\end{description}487%488If the default format is used (i.e.\ pq was not called with the \texttt{-b}489switch) then you will be prompted as follows.490%491\begin{description}492\item[\texttt{Input generating set}]\hspace*{-0.5em}\verb| (in { }):|\\493supply generating set.494[keyword: \texttt{generators}.]495\item[\texttt{Input defining set of relations}]\hspace*{-0.5em}\verb| (in { }):|\\496supply defining set of relations.497[keyword: \texttt{relators}, default: \verb|{}|.]498\end{description}499%500Otherwise, if the basic format is used (i.e.\ pq was called with the501\texttt{-b} switch; see Section~\ref{sec:runtime}), you will not be502prompted; instead you must supply input in the) then you will be given the503following prompts.504%505\begin{description}506\item[\texttt{Input number of generators:}]\ \\507supply number of defining generators.508\item[\texttt{Input number of relations:}]\ \\509supply number of defining relations.510\end{description}511%512Then (i.e.\ with or without the \texttt{-b} switch) you will be prompted513%514\enlargethispage*{1\baselineskip}515\begin{description}516\item[\texttt{Input exponent law (0 if none):}]\ \\517if the group is to satisfy a particular exponent law, supply a positive518value for that exponent.519[keyword: \texttt{exponentlaw}, default: \texttt{0}.]520\end{description}521%522In the basic format case, you will finally also be prompted to input each523relation for the group (if any).524525\item[\texttt{2.\ Save presentation to file}]\ \\526prompts for file name, saves group presentation to file.527528\item[\texttt{3.\ Restore presentation from file}]\ \\529prompts for file name, restores group presentation from that file if it exists.530531\item[\texttt{4.\ Display presentation of group}]\ \\532displays group presentation;533detail depends on print level; if level is one, then display order534of group, otherwise display full pcp.535536\item[\texttt{5.\ Set print level}]\ \\537ranges from 0, providing no output, to 3;5381, the default, provides minimal output.539540\item[\texttt{6.\ Calculate next class}]\ \\541calculates pcp for quotient having one class greater than the542class of the existing group.543544\item[\texttt{7.\ Compute p-covering group}]\ \\545546\item[\texttt{8.\ Advanced p-quotient menu}]\ \\547provides access to the ``Advanced Menu" (intended for experts)548for user manipulation of the presentation.549550\item[\texttt{9.\ (Main) menu for p-group generation}]\ \\551provides access to the main menu for {\it p}-group generation.552553\item[\texttt{10.\ Exit from p-quotient program}]\ \\554causes the pq program to exit, or if pq was called with the \texttt{-i}555switch (see Section~\ref{sec:runtime}) exits to the Standard Presentation556Menu. Selecting option \texttt{0} performs the same function.557558\end{description}559560\subsection{Advanced {\it p}-Quotient Menu}\label{sec:advanced-pq-menu}561The advanced {\it p}-quotient menu, given below, is selected by562choosing option \texttt{8} from the Basic Menu (see~\ref{sec:basic-menu}).563564\begin{verbatim}565Advanced p-Quotient Menu566-------------------------5671. Do individual collection5682. Solve the equation ax = b for x5693. Calculate commutator5704. Display group presentation5715. Set print level5726. Set up tables for next class5737. Insert tails for some or all classes5748. Check consistency for some or all classes5759. Collect defining relations57610. Carry out exponent checks57711. Eliminate redundant generators57812. Revert to presentation for previous class57913. Set maximal occurrences for pcp generators58014. Set metabelian flag58115. Carry out an individual consistency calculation58216. Carry out compaction58317. Carry out echelonisation58418. Supply and/or extend automorphisms58519. Close relations under automorphism actions58620. Print structure of a range of pcp generators58721. Display automorphism actions on generators58823. Collect word in defining generators58924. Compute commutator of defining generators59025. Write presentation to file in GAP format59126. Write compact description of group to file59227. Evaluate certain formulae59328. Evaluate action specified on defining generators59429. Evaluate Engel (p - 1)-identity59530. Process contents of relation file59631. Exit to basic menu597\end{verbatim}598599\section{The {\it p}-Group Generation implementation}600\subsection{Required input}601The required input is the {\it p}-covering group of the starting group,602together with a description of the automorphism group of the {\it p}-covering603group.604Before you commence to construct descendants,605you should construct or restore its {\it p}-covering group,606using the appropriate options of the Basic Menu (see~\ref{sec:basic-menu}).607It is the user's responsibility to do this -- no check is performed.608609\subsection{The automorphism group description}\label{sec:autgp-desc}610You must also supply a description of its automorphism group,611which is done by selecting option \texttt{1} of either612of the menus for {\it p}-group generation613(see~\ref{sec:pgrp-gen-main-menu} or~\ref{sec:pgrp-gen-advanced-menu}).614This description is the action of each automorphism on each of the615pcp generators of the Frattini quotient of the group.616The action is described by a vector of exponents -- the length617of the vector is the number of pcp generators of the group,618its entries are the powers of each of these generators619which occur in the image.620621Where the automorphism group is soluble, a PAG-generating system should622be supplied which works up a composition series for the group via623cyclic factors of prime order. In such cases, the calculations may be624carried out completely within pq. If the soluble625group machinery is selected by the user, but a PAG-generating system is626not supplied, then the program will give wrong information.627628If the automorphism group is insoluble or a PAG-generating sequence629is not supplied, a call is made by the program to one {\sf GAP},630which computes stabilisers of particular orbit representatives.631If the automorphism group of any of the intermediate (reduced)632{\it p}-covering groups is found to be soluble, a PAG-generating sequence633is computed by {\sf GAP} and handed back to pq. The soluble machinery634is now automatically invoked for the rest of the computation.635636\subsection{Saving group descriptions}637The constructed groups of a particular class, $c$, are saved to a file,638whose name is obtained by concatenating:639\textit{starting-group-identifier} and $c$, where640\textit{starting-group-identifier} is the group identifier defined at option641\texttt{1} of the Basic Menu (see Section~\ref{sec:basic-menu})642e.g.~if you use the \texttt{-k} switch (see Section~\ref{sec:runtime})643when you started the pq program and settled for the default group identifier644\texttt{G} then for class 2, the groups will be saved to a file with name:645\texttt{G\_class2}. As before, the646program does not query the user before overwriting an existing file.647648\subsection{The (Main) Menu for {\it p}-Group Generation}649\label{sec:pgrp-gen-main-menu}650The main Menu for {\it p}-Group Generation, given below, is selected by651choosing option \texttt{9} from the Basic Menu (see~\ref{sec:basic-menu}).652\pagebreak653\begin{verbatim}654Menu for p-Group Generation655-----------------------------6561. Read automorphism information for starting group6572. Extend and display automorphisms6583. Specify input file and group number6594. List group presentation6605. Construct descendants6616. Advanced p-group generation menu6627. Exit to basic menu663\end{verbatim}664665We now describe the options given by this menu.666667\begin{description}668\item[\texttt{1.\ Read automorphism information for starting group}]\ \\669first prompts for the following:670\begin{description}671\item[\texttt{Input the number of automorphisms:}]\ \\672You must provide the number of automorphisms generating the automorphism673group of the starting group. Then you will be prompted for the action674of each automorphism on the pcp generators of the Frattini quotient of the675group, after which you will be prompted:676\item[\texttt{Input number of soluble generators for automorphism group:}]\ \\677If you enter a positive integer $n$ you will then be prompted for the678relative order of each of those $n$ automorphisms.679\end{description}680%681682\item[\texttt{2.\ Extend and display automorphisms}]\ \\683compute the extensions of these automorphisms to act on the pcp generators684of the {\it p}-covering group and display the results.685686\item[\texttt{3.\ Specify input file and group number}]\ \\687prompts for the input file name and the group number.688689\item[\texttt{4.\ List group presentation}]\ \\690display at output level 3 the presentation for the group.691692\item[\texttt{5.\ Construct descendants}]\ \\693we discuss this option in detail in Section~\ref{sec:constr-desc}.694695\item[\texttt{6.\ Advanced p-group generation menu}]\ \\696provides access to the ``Advanced Menu"697for user-controlled construction and manipulation.698699\item[\texttt{7.\ Exit to basic menu}]\ \\700returns the user to the Basic Menu (see~\ref{sec:basic-menu}).701Selecting option \texttt{0} performs the same function.702703\end{description}704705\subsection{Construct descendants option}\label{sec:constr-desc}706Here we discuss option \texttt{5} of the (main) {\it p}-group generation707menu (see~\ref{sec:pgrp-gen-main-menu}).708If you select this option you receive a number of questions or prompts709for input. Those prompts/questions are as follows.710\begin{description}711\item[\texttt{Input class bound on descendants:}]\ \\712you must supply a positive integer greater than the class713of the starting group, and which is an upper bound714on the class of the descendants constructed.715716\item[\texttt{Construct all descendants?}]\ \\717If you enter a ``Yes" response (by entering a non-zero integer)718you are asked:719\begin{description}720\item[\texttt{Set an order bound for descendants?}]\ \\721If you answer ``Yes" you are further prompted (if you answer722``No" (i.e.\ \texttt{0}) you are not so prompted):723\begin{description}724\item[\texttt{Input order bound on descendants:}]\ \\725and the integer order bound you input will apply in addition to726the class bound selected.727\end{description}728\end{description}729If you responded ``No" to the ``\texttt{Construct all descendants?}'' query730and the class increase is one you are prompted:731\begin{description}732\item[\texttt{Input step size:}]\ \\733and a positive integer is expected.734\end{description}735If you responded ``No" to the ``\texttt{Construct all descendants?}'' query736and the class increase is greater than one you are prompted as follows:737\begin{description}738\item[\texttt{Constant step size?}]\ \\739If you answer ``Yes" you are prompted:740\begin{description}741\item[\texttt{Input step size:}]\ \\742and a positive integer is expected.743\end{description}744If you answer ``No" to ``\texttt{Constant step size?}'' you are prompted:745\begin{description}746\item[\texttt{Input $n$ step sizes:}]\ \\747for some integer $n$, and you must enter $n$ positive748integers separated by spaces.749\end{description}750\end{description}751752\item[\texttt{PAG-generating sequence for automorphism group?}]\ \\753This determines the algorithm used in constructing the orbits754and stabilisers of representative allowable subgroups755(see~\ref{sec:min-time-space}).756Whether you answer ``Yes" or ``No" you are then asked:757758\item[\texttt{Default algorithm?}]\ \\759A ``Yes" here constructs immediate descendants using the smallest possible760characteristic initial segment subgroups in the {\it p}-multiplicator.761This minimises the degree of the permutation group constructed.762763If you answer ``No", then you will be prompted/asked:764\begin{description}765\item[\texttt{Rank of the initial segment subgroup?}]\ \\766If you want to proceed as in the default, respond ``\texttt{0}";767otherwise any positive value is accepted. If the value is768larger than the rank of the {\it p}-multiplicator, the program769takes this upper bound as the selected value. The initial segment770subgroup determined by this response is characteristically771closed by the program.772773If your answer to774``\texttt{PAG-generating sequence for automorphism group?}"775was a ``Yes", then776you will receive the following further question.777778\begin{description}779\item[\texttt{Space efficient computation?}]\ \\780By default, all of the permutations constructed are stored.781If you answer ``Yes", at any one time only one permutation is782stored, consequently reducing the amount of space significantly.783However, the time taken in computing the automorphism group784of each descendant is also significantly increased.785\end{description}786787Then you will prompted/asked the following:788789\begin{description}790\item[\texttt{Completely process terminal descendants?}]\ \\791By default, automorphism groups are computed for and descriptions of792capable groups only are saved to file.793If you wish to compute automorphism groups and save descriptions of794all descendants to file, then answer ``Yes". In this case,795for both terminal and capable groups, the automorphism group is796saved to file; if capable, the pcp of the {\it p}-covering group797is saved; if terminal, the pcp for the group.798799\item[\texttt{Input exponent law (0 if none):}]\ \\800If you wish to construct only those immediate descendants801which satisfy a particular exponent law, supply that exponent; if802you do not wish to enforce an exponent law, supply \texttt{0}.803804\item[\texttt{Enforce metabelian law?}]\ \\805If you answer ``Yes", you seek to ensure that all of the immediate806descendants constructed have the following property -- if any one of them807is used as a starting group to a later iteration, only the metabelian808immediate descendants (if any) of this group are constructed.809For this requirement to be enforceable, the starting group for810this iteration must also have that property. To ensure that the811starting group has that property, construct its $p$-covering group812after having first set the metabelian flag via option \texttt{14} of813the Advanced $p$-Quotient Menu (see~\ref{sec:advanced-pq-menu}).814\end{description}815\end{description}816817\item[\texttt{Do you want default output?}]\ \\818If you answer ``Yes", minimal output is displayed for each group:819its identifier, the ranks of its {\it p}-multiplicator and nucleus,820the number of its immediate descendants of each order, and, if there are any,821the number of its capable immediate descendants.822823For many applications, the default output obtained by ``Yes" is sufficient.824If not, then by answering ``No" you are asked whether you want the825default output for each of the following categories:826permutation group, orbits, group descriptions, automorphism group827descriptions, or if you want an algorithm trace. Answering ``No" to828any of these questions (except for the last)829leads to further questions, each requiring a ``Yes"/``No" answer,830about what additional information you desire831(or don't want) for the category. The following are the questions that832result from a ``No" response to ``\texttt{Do you want default output?}":833834\enlargethispage*{1\baselineskip}835\begin{description}836\item[\texttt{Do you want default permutation group output?}]\ \\837A ``No" leads to the further questions:838\begin{description}839\item[\texttt{Print degree of permutation group?}]840\item[\texttt{Print extended automorphisms?}]841\item[\texttt{Print automorphism matrices?}]842\item[\texttt{Print permutations?}]843\end{description}844\item[\texttt{Do you want default orbit output?}]\ \\845A ``No" leads to the further questions:846\begin{description}847\item[\texttt{Summary of orbit information?}]848\item[\texttt{Complete listing of orbits?}]849\end{description}850\item[\texttt{Do you want default group output?}]\ \\851A ``No" leads to the further questions:852\begin{description}853\item[\texttt{Print standard matrix of allowable subgroup?}]854\item[\texttt{Presentation of reduced p-covering groups?}]855\item[\texttt{Presentation of immediate descendants?}]856\item[\texttt{Print nuclear rank of descendants?}]857\item[\texttt{Print p-multiplicator rank of descendants?}]858\end{description}859\item[\texttt{Do you want default automorphism group output?}]\ \\860A ``No" leads to the further questions:861\begin{description}862\item[\texttt{Print commutator matrix?}]863\item[\texttt{Automorphism group description of descendants?}]864\item[\texttt{Automorphism group order of descendants?}]865\end{description}866\item[\texttt{Do you want algorithm trace output?}]\ \\867This last question is designed to permit868one to trace the intermediate stages of the algorithm.869\end{description}870\end{description}871872After the above dialogue, the pq binary will commence constructing873descendants. At the commencement of the application, each starting group874is checked to determine whether it meets the selected step size875order, and class criteria. If it does not, a message is displayed876stating that this starting group is invalid.877878%\newpage879\enlargethispage*{2\baselineskip}880\subsection{Advanced Menu for {\it p}-Group Generation}881\label{sec:pgrp-gen-advanced-menu}882\begin{verbatim}883Advanced Menu for p-Group Generation884-------------------------------------8851. Read automorphism information for starting group8862. Extend and display automorphisms8873. Specify input file and group number8884. List group presentation8895. Carry out intermediate stage calculation8906. Compute definition sets & find degree8917. Construct permutations of subgroups under automorphisms8928. Compute and list orbit information8939. Process all orbit representatives89410. Process individual orbit representative89511. Compute label for standard matrix of subgroup89612. Compute standard matrix for subgroup from label89713. Find image of allowable subgroup under automorphism89814. Find rank of closure of initial segment subgroup89915. List representative and orbit for supplied label90016. Write compact descriptions of generated groups to file90117. Find automorphism classes of elements of vector space90218. Exit to main p-group generation menu903\end{verbatim}904905\subsection{Strategies to minimise time and space}\label{sec:min-time-space}906Where a PAG-generating sequence is supplied (i.e.\ the question907``\texttt{PAG-generating sequence for automorphism group?}" is answered with908a ``Yes"; see~\ref{sec:constr-desc}), the minimum space909requirement is achieved by supplying ``\texttt{0}" and ``Yes",910respectively, to the questions:911``\texttt{Rank of the initial segment subgroup?}" and912``\texttt{Space efficient computation?}".913This space efficiency is achieved at the cost of some additional914time in computing the stabilisers of orbit representatives.915However, if you simply wish to compute orbits, it is the916best overall strategy, both from space and time considerations.917The ``efficient space" option is currently available only918where a PAG-generating sequence is supplied.919920In general, the most efficient time performance is obtained by921taking the default algorithm (answering ``Yes" to922``\texttt{Default algorithm?}; see~\ref{sec:constr-desc}). This also923gives significant space saving over most other strategies.924925As mentioned earlier, the workspace size used in computing pcps --926that is, the size of the array $y$ -- may be passed as a command927line argument to the program at invocation. Much of the storage used in the928implementation of {\it p}-group generation is separate from that929allocated for $y$. Hence, if the program is to be used to930generate group descriptions, it is probably sensible931to invoke the program with a workspace size of no more than932$100\;000$ rather than its default value, \texttt{PQSPACE}933(which is defined in the header file, \texttt{constants.h}).934See also the discussion on this point in the \texttt{README} file.935936\section{The Standard Presentation and\\ Automorphism Group implementation}937\label{sec:stnd-pres-menu}938The Standard Presentation Menu allows a user939to input a finite presentation for a group, to construct940a ``standard" presentation for a specified $p$-quotient of the group,941and also to construct a description of the automorphism group of the $p$-group.942To access this menu, you need to run the pq program943with the \texttt{-i} run-time parameter switch (see~\ref{sec:runtime}).944945The appropriate way to view the standard presentation algorithm is the946following.947The pcp constructed by supplying a finite presentation to948the $p$-quotient algorithm depends on the supplied presentation.949The standard presentation of a $p$-group obtained using950the standard presentation algorithm is independent of the951supplied presentation. Hence it allows us to determine whether952two $p$-groups are isomorphic.953954In its most general form, the ``standard" presentation955of a $p$-group is obtained by constructing a description of this956group using the $p$-group generation algorithm.957958The standard presentation of a class 1 $p$-quotient959is identical to that obtained from the $p$-quotient.960A user can choose to take the presentation returned961from the $p$-quotient implementation to class $k$962as an acceptable ``standard" presentation up to that963class and then proceed to standardise the presentation964from class $k + 1$ to some desired later class.965This is particularly relevant if the user is seeking966to verify that two groups are isomorphic.967It may turn out that the two pcps968constructed by \pq\ are identical up to class $k$.969Since the standardisation procedure is significantly more970expensive than a call to \pq, it makes sense in such971situations to begin to standardise only from class $k + 1$ onwards.972However, the user must supply as input a description973of the automorphism group of the class $k$ $p$-quotient974-- which may be more difficult to obtain for larger $k$.975976In checking for isomorphism, it also makes sense977to standardise each of the presentations,978class by class. The standard presentations979at the end of each class should be compared --980if they are distinct, then the groups are non-isomorphic.981In order to facilitate this, the program writes a982file containing necessary details of the standard presentation and the983automorphism group of the group up to the end of the specified class984-- this file can be used as input to the program later to985continue the standardisation procedure.986A generating set for a supplement to the inner automorphisms of the987group is stored there; each generator is described by an $n \times n$988matrix whose exponents represent the image of each of the $n$989pcp generators of the standard presentation.990991\begin{verbatim}992Standard Presentation Menu993-----------------------------9941. Supply start information9952. Compute standard presentation to supplied class9963. Save presentation to file9974. Display presentation9985. Set print level for construction9996. Compare two presentations stored in files10007. Call basic menu for p-Quotient program10018. Compute the isomorphism10029. Exit from program1003\end{verbatim}10041005We now describe each of these options.10061007\begin{description}1008\item[\texttt{1.\ Supply start information}]\ \\1009you must supply a finite presentation1010for the $p$-group; the queries are identical to that used in1011option \texttt{1} of the Basic Menu [for $p$-Quotient Program]1012(see~\ref{sec:basic-menu}). All of the valid formats for1013supplying a presentation can be accessed,1014using the \texttt{-b} or \texttt{-k} run-time switches1015(see Section~\ref{sec:runtime}).1016If the class supplied is $c$, then standardisation1017(selected under option \texttt{2}) begins at class $c + 1$ only.1018In general the supplied value for the class will be one --1019however, see the preceding discussion.1020A pcp for the class $c$ $p$-quotient of the group1021is now computed using the \pq.10221023\item[\texttt{2.\ Compute standard presentation to supplied class}]\ \\1024If, when selecting this option, you haven't previously selected1025option \texttt{1} to supply a finite presentation, then1026you will be prompted:1027%1028\begin{description}1029\item[\texttt{Enter input file name for group information:}]\ \\1030The assumption is that such a file containing the presentation and1031automorphism information for the $p$-group was generated from a previous1032run of the Standard Presentation algorithm. If you don't supply a1033valid filename the pq program bails out of option \texttt{2}.1034\end{description}1035%1036Whether or not you have previously selected option \texttt{1},1037you will then be prompted:1038\begin{description}1039\item[\texttt{Enter output file name for group information:}]\ \\1040The file whose name you choose can be used as input1041later to continue the construction of the standard pcp.1042Then you will be asked:1043\item[\texttt{Standardise presentation to what class?}]\ \\1044The start class is one greater than the class of the $p$-quotient1045selected using option \texttt{1} or that stored on the input file.1046Here you should specify the end class for the standardisation procedure.1047\end{description}1048If you selected option \texttt{1} to supply a finite presentation,1049you will now be prompted for automorphism information --1050in exactly the same manner as under option \texttt{1} of1051the main Menu for $p$-Group Generation (see~\ref{sec:pgrp-gen-main-menu}),1052and then also asked whether the supplied description1053is a PAG-generating sequence or not:1054\begin{description}1055\item[\texttt{PAG-generating sequence for automorphism group?}]1056\end{description}1057\item[\texttt{3.\ Save presentation to file}]\ \\1058\item[\texttt{4.\ Display presentation}]\ \\1059print out the standard presentation to the current class.10601061\item[\texttt{5.\ Set print level for construction}]\ \\1062ranges from 0 to 2.1063At print level 0, only timing information is printed.1064At print level 1, the standard presentation at the end1065of each class is also printed.1066At print level 2, full detail of the construction is1067reported. The default print level is 1.10681069\item[\texttt{6.\ Compare two presentations stored in files}]\ \\1070supply the names of two data files containing these1071presentations; a check will be run to determine if the1072presentations are identical.1073This comparison facility may be applied to any two1074pcps -- not just standard ones.10751076\item[\texttt{7.\ Call basic menu for p-Quotient program}]\ \\1077provides access to the Basic Menu for $p$-Quotient program1078(see~\ref{sec:basic-menu}).10791080\item[\texttt{8.\ Compute the isomorphism}]\ \\1081computes the mapping from the user-supplied generators1082to the generators for the standard presentation.10831084\item[\texttt{9.\ Exit from program}]\ \\1085causes the pq program to exit.1086Selecting option \texttt{0} performs the same function.10871088\end{description}10891090Various files, all having prefixes ``\texttt{ISOM\_}", are first created and1091then deleted by pq while executing the standard presentation algorithm.1092\section{Warning}1093Pay attention to the results, and where possible confirm1094their correctness with other established sources.10951096\pagebreak1097\appendix1098\section{Examples}1099\subsection{A Basic Menu example}1100The following example exercises options within the Basic Menu1101(see~\ref{sec:basic-menu}). When the pq program is used without any switches1102(see Section~\ref{sec:runtime}), it opens with the Basic Menu.1103\begin{verbatim}1104Basic Menu for p-Quotient Program1105----------------------------------11061. Compute pc presentation11072. Save presentation to file11083. Restore presentation from file11094. Display presentation of group11105. Set print level11116. Calculate next class11127. Compute p-covering group11138. Advanced p-quotient menu11149. (Main) menu for p-group generation111510. Exit from p-quotient program11161117Select option: 1 #we want to enter a pc presentation1118Input group identifier: 2gp #something meaningful1119Input prime: 2 #it's a 2-group1120Input maximum class: 61121Input print level (0-3): 1 #minimal output1122Input generating set (in { }): {a, b}1123Input defining set of relations (in { }): { [b, a, a], (a * b * a)^4 }1124Input exponent law (0 if none): 011251126Lower exponent-2 central series for 2gp11271128Group: 2gp to lower exponent-2 central class 1 has order 2^211291130Group: 2gp to lower exponent-2 central class 2 has order 2^511311132Group: 2gp to lower exponent-2 central class 3 has order 2^811331134Group: 2gp to lower exponent-2 central class 4 has order 2^1111351136Group: 2gp to lower exponent-2 central class 5 has order 2^1511371138Group: 2gp to lower exponent-2 central class 6 has order 2^191139Computation of presentation took 0.02 seconds11401141Select option: 2 #save option1142Enter output file name: 2GP #file name1143Presentation written to file11441145Select option: 0 #exit1146Exiting from ANU p-Quotient Program1147Total user time in seconds is 0.021148\end{verbatim}11491150This is essentially example \texttt{2gp} in the \texttt{examples} directory1151(except some of our \texttt{\#}\textit{comment}s are different).1152If the binary for the pq program is \texttt{pq}, then1153\begin{quote}1154\verb|pq < 2gp|1155\end{quote}1156executes the example non-interactively, with something similar to the above1157output to the screen, minus the menu. Note that1158the menus from the pq program are only displayed when it is used interactively.1159A script file for the pq program (like \texttt{2gp}) should contain the1160responses that the pq program will expect, in the correct sequence.11611162\subsection{A {\it p}-Group Generation example}\label{sec:pgrp-gen-eg}11631164The following example is essentially \verb|pga_3gp| from the1165\texttt{examples} directory, except again we have modified the comments,1166and we have also answered ``No'' to the ``PAG-generating sequence'' question,1167so that {\sf GAP} is called to compute stabilisers. If the pq binary is1168unable to find {\sf GAP} or finds {\sf GAP 3} instead of {\sf GAP} 4 the1169program will die horribly at this point. (See Section~\ref{sec:pq-install}1170if you run into problemsm, at this point.)11711172For this example (which generates all groups with lower exponent-3 series of1173shape 2-2-3-1), the pq program is invoked without any of the switches1174of Section~\ref{sec:runtime}.11751176\begin{verbatim}1177[..Basic Menu omitted here..]1178Select option: 1 #set up group presentation1179Input group identifier: c3c31180Input prime: 31181Input maximum class: 11182Input print level (0-3): 11183Input generating set (in { }): {a, b}1184Input defining set of relations (in { }): {}1185Input exponent law (0 if none): 011861187Lower exponent-3 central series for c3c311881189Group: c3c3 to lower exponent-3 central class 1 has order 3^21190Computation of presentation took 0.00 seconds11911192Select option: 7 #compute its 3-covering group11931194Group: c3c3 to lower exponent-3 central class 2 has order 3^51195Computation of 3-covering group took 0.00 seconds11961197Select option: 9 #enter p-group generation11981199Menu for p-Group Generation1200-----------------------------12011. Read automorphism information for starting group12022. Extend and display automorphisms12033. Specify input file and group number12044. List group presentation12055. Construct descendants12066. Advanced p-group generation menu12077. Exit to basic menu12081209Select option: 1 #to supply automorphisms1210Input the number of automorphisms: 51211Now enter the data for automorphism 11212Input 2 exponents for image of pcp generator 1: 2 01213Input 2 exponents for image of pcp generator 2: 0 21214Now enter the data for automorphism 21215Input 2 exponents for image of pcp generator 1: 0 21216Input 2 exponents for image of pcp generator 2: 1 01217Now enter the data for automorphism 31218Input 2 exponents for image of pcp generator 1: 1 21219Input 2 exponents for image of pcp generator 2: 2 21220Now enter the data for automorphism 41221Input 2 exponents for image of pcp generator 1: 1 01222Input 2 exponents for image of pcp generator 2: 2 11223Now enter the data for automorphism 51224Input 2 exponents for image of pcp generator 1: 2 01225Input 2 exponents for image of pcp generator 2: 0 11226Input number of soluble generators for automorphism group: 012271228Select option: 5 #to construct descendants1229Input class bound on descendants: 41230Construct all descendants? 0 #i.e. ``No''1231Constant step size? 0 #i.e. ``No''1232Input 3 step sizes: 2 3 11233PAG-generating sequence for automorphism group? 0 #i.e. ``No''1234Do you want default algorithm? 1 #i.e. ``Yes''1235Do you want default output? 1 #i.e. ``Yes''12361237**************************************************1238Starting group: c3c31239Order: 3^21240Nuclear rank: 312413-multiplicator rank: 31242Now calling GAP to compute stabiliser...1243true1244#I Order of GL subgroup is 481245#I No. of soluble autos is 01246#I dim U = 1 dim N = 3 dim M = 31247#I nice stabilizer with perm rep1248Now calling GAP to compute stabiliser...1249true1250#I Order of GL subgroup is 481251#I No. of soluble autos is 01252#I dim U = 1 dim N = 3 dim M = 31253#I nice stabilizer with perm rep1254# of immediate descendants of order 3^4 is 31255# of capable immediate descendants is 312561257**************************************************12583 capable groups saved on file c3c3_class212591260**************************************************1261Starting group: c3c3 #1;21262Order: 3^41263Nuclear rank: 212643-multiplicator rank: 31265Group c3c3 #1;2 is an invalid starting group12661267**************************************************1268Starting group: c3c3 #2;21269Order: 3^41270Nuclear rank: 312713-multiplicator rank: 41272# of immediate descendants of order 3^7 is 41273# of capable immediate descendants is 412741275**************************************************1276Starting group: c3c3 #3;21277Order: 3^41278Nuclear rank: 212793-multiplicator rank: 31280Group c3c3 #3;2 is an invalid starting group12811282**************************************************12834 capable groups saved on file c3c3_class312841285**************************************************1286Starting group: c3c3 #2;2 #1;31287Order: 3^71288Nuclear rank: 412893-multiplicator rank: 51290# of immediate descendants of order 3^8 is 161291# of capable immediate descendants is 1112921293**************************************************1294Starting group: c3c3 #2;2 #2;31295Order: 3^71296Nuclear rank: 312973-multiplicator rank: 41298# of immediate descendants of order 3^8 is 131299# of capable immediate descendants is 913001301**************************************************1302Starting group: c3c3 #2;2 #3;31303Order: 3^71304Nuclear rank: 313053-multiplicator rank: 41306# of immediate descendants of order 3^8 is 131307# of capable immediate descendants is 913081309**************************************************1310Starting group: c3c3 #2;2 #4;31311Order: 3^71312Nuclear rank: 313133-multiplicator rank: 41314# of immediate descendants of order 3^8 is 71315# of capable immediate descendants is 513161317**************************************************131834 capable groups saved on file c3c3_class41319Construction of descendants took 69.95 seconds13201321Select option: 0 #exit to basic menu (same as option 7)1322Exiting from p-group generation13231324Select option: 0 #exit program (same as option 9)1325Exiting from ANU p-Quotient Program1326Total user time in seconds is 69.951327\end{verbatim}13281329\subsection{A Standard Presentation Menu example}13301331The following example is similar to what is provided by the file \verb|2gp|1332in the \texttt{isom} directory, except we have added comments, we1333have not used the \texttt{-k} (keywords) runtime switch and to reduce the1334output we have only computed the standard presentation to class 3 (instead1335of class 10, as in the \verb|2gp| example).1336For this example, the pq program is invoked with the \texttt{-i} runtime1337switch (see Section~\ref{sec:runtime}), which gives us access to the1338Standard Presentation Menu (see Section~\ref{sec:stnd-pres-menu}).13391340\begin{verbatim}1341Standard Presentation Menu1342-----------------------------13431. Supply start information13442. Compute standard presentation to supplied class13453. Save presentation to file13464. Display presentation13475. Set print level for construction13486. Compare two presentations stored in files13497. Call p-Quotient menu13508. Compute the isomorphism13519. Exit from program13521353Select option: 1 #input group info.1354Input group identifier: G1355Input prime: 21356Input maximum class: 11357Input print level (0-3): 1 #just minimal output1358Input generating set (in { }): {a, b}1359Input defining set of relations (in { }): {a^4, b^4 = [b, a, a]}1360Input exponent law (0 if none): 013611362Lower exponent-2 central series for G13631364Group: G to lower exponent-2 central class 1 has order 2^21365Class 1 2-quotient and its 2-covering group computed in 0.02 seconds13661367Select option: 2 #for standard presentation1368Enter output file name for group information: 2gp-st1369Standardise presentation to what class? 31370Input the number of automorphisms: 21371Now enter the data for automorphism 11372Input 2 exponents for image of pcp generator 1: 0 11373Input 2 exponents for image of pcp generator 2: 1 11374Now enter the data for automorphism 21375Input 2 exponents for image of pcp generator 1: 0 11376Input 2 exponents for image of pcp generator 2: 1 01377PAG-generating sequence for automorphism group? 1 #i.e. ``Yes''1378Starting group has order 2^2; its automorphism group order is 613791380The standard presentation for the class 2 2-quotient is13811382Group: G #1;3 to lower exponent-2 central class 2 has order 2^513831384Non-trivial powers:1385.1^2 = .41386.2^2 = .513871388Non-trivial commutators:1389[ .2, .1 ] = .31390Its automorphism group has order 3841391Computing standard presentation for class 2 took 0.08 seconds13921393The standard presentation for the class 3 2-quotient is13941395Group: G #1;3 to lower exponent-2 central class 3 has order 2^813961397Non-trivial powers:1398.1^2 = .41399.2^2 = .51400.3^2 = .6 .81401.5^2 = .614021403Non-trivial commutators:1404[ .2, .1 ] = .31405[ .3, .1 ] = .61406[ .3, .2 ] = .71407[ .4, .2 ] = .81408[ .5, .1 ] = .6 .7 .81409Its automorphism group has order 40961410Computing standard presentation for class 3 took 0.12 seconds14111412Select option: 0 #exit (option 9 does this also)1413\end{verbatim}14141415\subsection{A keywords example}14161417To use keywords you must use the \texttt{-k} runtime switch1418(see Section~\ref{sec:runtime}). For this example we are again1419using the Standard Presentation Menu; so we also use the \texttt{-i} runtime1420switch. The example is \verb|2gp.com| from the \texttt{isom} directory.1421If the binary for the pq program is \texttt{pq}, then1422\begin{quote}1423\verb|pq -i -k < 2gp.com|1424\end{quote}1425in the \texttt{isom} directory yields something like the following output.1426(The keywords are used in option \texttt{1}; note the ``\texttt{;}''1427indicating all remaining data for that option should take default values.)14281429\begin{verbatim}1430[..Standard Presentation Menu omitted here..]14311432Select option: 1 #set up start information1433prime 2 #keyword `prime'1434class 2 #keyword `class'1435generators {a, b} #keyword `generators'1436relations {a^4, b^2 = [b, a, b]}; #keyword `relations' (NB: closing `;')14371438Lower exponent-2 central series for G14391440Group: G to lower exponent-2 central class 1 has order 2^214411442Group: G to lower exponent-2 central class 2 has order 2^41443Class 2 2-quotient and its 2-covering group computed in 0.00 seconds14441445Select option: 2 #standardise presentation1446Enter output file name for group information: Standard1447Standardise presentation to what class? 101448Input the number of automorphisms: 31449Now enter the data for automorphism 11450Input 4 exponents for image of pcp generator 1: 1 0 0 11451Input 4 exponents for image of pcp generator 2: 0 1 0 01452Now enter the data for automorphism 21453Input 4 exponents for image of pcp generator 1: 1 0 0 01454Input 4 exponents for image of pcp generator 2: 0 1 0 11455Now enter the data for automorphism 31456Input 4 exponents for image of pcp generator 1: 1 1 1 01457Input 4 exponents for image of pcp generator 2: 0 1 1 11458PAG-generating sequence for automorphism group? 11459Starting group has order 2^4; its automorphism group order is at most 9614601461The standard presentation for the class 3 2-quotient is14621463Group: G #1;2 to lower exponent-2 central class 3 has order 2^614641465Non-trivial powers:1466.1^2 = .41467.2^2 = .51468.3^2 = .614691470Non-trivial commutators:1471[ .2, .1 ] = .31472[ .3, .1 ] = .51473[ .3, .2 ] = .61474[ .4, .2 ] = .5 .61475Its automorphism group has order at most 3841476Computing standard presentation for class 3 took 0.05 seconds14771478The standard presentation for the class 4 2-quotient is14791480Group: G #1;1 to lower exponent-2 central class 4 has order 2^71481[..265 lines omitted here..]14821483The standard presentation for the class 10 2-quotient is14841485Group: G #1;4 to lower exponent-2 central class 10 has order 2^241486[..93 lines omitted here..]14871488Its automorphism group has order at most 257698037761489Computing standard presentation for class 10 took 0.27 seconds14901491Select option: 4 #display standard presentation for class 10 2-quotient14921493Group: G #1;4 to lower exponent-2 central class 10 has order 2^2414941495Non-trivial powers:1496.1^2 = .41497.2^2 = .5 .11 .13 .17 .241498.3^2 = .6 .7 .10 .11 .12 .13 .14 .17 .20 .21 .221499.5^2 = .8 .11 .19 .20 .211500.6^2 = .10 .14 .16 .18 .22 .23 .241501.7^2 = .10 .12 .21 .22 .241502.8^2 = .12 .151503.9^2 = .12 .17 .20 .22 .231504.10^2 = .15 .181505.11^2 = .15 .20 .241506.12^2 = .18 .211507.13^2 = .18 .241508.14^2 = .18 .231509.15^2 = .211510.17^2 = .2115111512Non-trivial commutators:1513[ .2, .1 ] = .31514[ .3, .1 ] = .51515[ .3, .2 ] = .61516[..71 lines omitted here..]1517[ .20, .2 ] = .2315181519Select option: 0 #exit1520Exiting from ANU p-Quotient Program1521Total user time in seconds is 1.131522\end{verbatim}15231524\subsection{A basic format Advanced {\it p}-Group Generation example}15251526With the following example we demonstrate both the use of the \texttt{-b}1527runtime switch (see Section~\ref{sec:runtime}) and we exercise an1528Advanced menu. To do something equivalent to what we give below,1529(assuming the pq binary is \texttt{pq}) do:1530\begin{quote}1531\verb|pq -b < pga_interactive|1532\end{quote}1533in the \texttt{examples} directory.15341535\begin{verbatim}1536[..Basic Menu omitted here..]1537Select option: 1 #set up group presentation1538Input group identifier: Nott #our group will be the Nottingham group1539Input prime: 51540Input maximum class: 31541Input print level (0-3): 1 #minimal output1542Input number of generators: 2 #this is the prompt we get with -b1543Input number of relations: 3 #(ditto)1544Input exponent law (0 if none): 015455 1; #this is the ``basic format'' (-b switch)1546The input word is 5 11547Input right-hand side of relation:15480;1549The input word is 01550Input left-hand side of relation:15515 2;1552The input word is 5 21553Input right-hand side of relation:15540;1555The input word is 01556Input left-hand side of relation:15571 [2 1 2];1558The input word is 1 [ 2 1 2 ]1559Input right-hand side of relation:15600; #the final ``basic format'' input needed1561The input word is 015621563Lower exponent-5 central series for Nott15641565Group: Nott to lower exponent-5 central class 1 has order 5^215661567Group: Nott to lower exponent-5 central class 2 has order 5^315681569Group: Nott to lower exponent-5 central class 3 has order 5^41570Computation of presentation took 0.00 seconds15711572Select option: 7 #compute 5-covering group15731574Group: Nott to lower exponent-5 central class 4 has order 5^81575Computation of 5-covering group took 0.00 seconds15761577Select option: 2 #save presentation1578Enter output file name: Nott1579Presentation written to file15801581Select option: 9 #to (Main) p-Group Generation Menu15821583Menu for p-Group Generation1584-----------------------------15851. Read automorphism information for starting group15862. Extend and display automorphisms15873. Specify input file and group number15884. List group presentation15895. Construct descendants15906. Advanced p-group generation menu15917. Exit to basic menu15921593Select option: 1 #define aut. group1594Input the number of automorphisms: 61595Now enter the data for automorphism 11596Input 4 exponents for image of pcp generator 1: 1 0 0 01597Input 4 exponents for image of pcp generator 2: 0 1 0 11598Now enter the data for automorphism 21599Input 4 exponents for image of pcp generator 1: 1 1 0 01600Input 4 exponents for image of pcp generator 2: 0 1 0 01601Now enter the data for automorphism 31602Input 4 exponents for image of pcp generator 1: 1 0 0 01603Input 4 exponents for image of pcp generator 2: 0 4 0 01604Now enter the data for automorphism 41605Input 4 exponents for image of pcp generator 1: 1 0 0 01606Input 4 exponents for image of pcp generator 2: 0 2 0 01607Now enter the data for automorphism 51608Input 4 exponents for image of pcp generator 1: 4 0 0 01609Input 4 exponents for image of pcp generator 2: 0 1 0 01610Now enter the data for automorphism 61611Input 4 exponents for image of pcp generator 1: 2 0 0 01612Input 4 exponents for image of pcp generator 2: 0 1 0 01613Input number of soluble generators for automorphism group: 016141615Select option: 5 #construct descendants1616Input class bound on descendants: 41617Construct all descendants? 0 #i.e. ``No''1618Input step size: 11619PAG-generating sequence for automorphism group? 1 #``Yes''1620Do you want default algorithm? 0 #``No''1621Rank of the initial segment subgroup? 41622Space efficient computation? 0 #``No''1623Completely process terminal descendants? 0 #``No''1624Input exponent law (0 if none): 01625Enforce metabelian law? 0 #``No''1626Do you want default output? 1 #``Yes''16271628**************************************************1629Starting group: Nott1630Order: 5^41631Nuclear rank: 116325-multiplicator rank: 41633# of immediate descendants of order 5^5 is 91634# of capable immediate descendants is 216351636**************************************************16372 capable groups saved on file Nott_class41638Construction of descendants took 0.02 seconds16391640Select option: 3 #restore group1641Enter input file name: Nott_class41642Which group? 116431644Select option: 6 #get Advanced p-Group Gen'n Menu16451646Advanced Menu for p-Group Generation1647-------------------------------------16481. Read automorphism information for starting group16492. Extend and display automorphisms16503. Specify input file and group number16514. List group presentation16525. Carry out intermediate stage calculation16536. Compute definition sets & find degree16547. Construct permutations of subgroups under automorphisms16558. Compute and list orbit information16569. Process all orbit representatives165710. Process individual orbit representative165811. Compute label for standard matrix of subgroup165912. Compute standard matrix for subgroup from label166013. Find image of allowable subgroup under automorphism166114. Find rank of closure of initial segment subgroup166215. List representative and orbit for supplied label166316. Write compact descriptions of generated groups to file166417. Find automorphism classes of elements of vector space166518. Exit to main p-group generation menu16661667Select option: 6 #find degree1668Input step size: 21669Rank of the initial segment subgroup? 31670Input exponent law (0 if none): 01671Degree of permutation group is 2516721673Select option: 7 #compute permutations1674PAG-generating sequence for automorphism group? 11675Space efficient computation? 01676Print automorphism matrices? 01677Print permutations? 01678Time to compute permutations is 0.00 seconds16791680Select option: 8 #compute orbits1681PAG-generating sequence for automorphism group? 1 #``Yes''1682Space efficient computation? 0 #``No''1683Summary of orbit information? 1 #``Yes''1684Complete listing of orbits? 0 #``No''1685Time to compute orbits is 0.00 seconds16861687Orbit Length Representative16881 5 116892 20 2169016911692Select option: 9 #compute stabilisers1693PAG-generating sequence for automorphism group? 1 #``Yes''1694Space efficient computation? 0 #``No''1695Completely process terminal descendants? 0 #``No''1696Input exponent law (0 if none): 01697Enforce metabelian law? 0 #``No''1698Print standard matrix of allowable subgroup? 0 #``No''1699Presentation of reduced p-covering groups? 0 #``No''1700Presentation of immediate descendants? 0 #``No''1701Print nuclear rank of descendants? 0 #``No''1702Print p-multiplicator rank of descendants? 0 #``No''1703Print commutator matrix? 0 #``No''1704Automorphism group description of descendants? 0 #``No''1705Automorphism group order of descendants? 0 #``No''1706Enter output file name: X1707Time to process representative is 0.02 seconds17081709Select option: 3 #restore reduced p-covering group1710Enter input file name: X1711Which group? 117121713Select option: 4 #display presentation17141715Group: Nott #1;1 to lower exponent-5 central class 5 has order 5^91716Class 117171 is defined on image of defining generator 117182 is defined on image of defining generator 21719Class 217203 is defined on [2, 1] = 2 11721Class 317224 is defined on [3, 1] = 2 1 11723Class 417245 is defined on [4, 1] = 2 1 1 11725Class 517266 is defined on [5, 1] = 2 1 1 1 117277 is defined on [5, 2] = 2 1 1 1 217288 is defined on 1^5 = 1 117299 is defined on 2^5 = 2 217301731Non-trivial powers:1732.1^5 = .81733.2^5 = .917341735Non-trivial commutators:1736[ .2, .1 ] = .31737[ .3, .1 ] = .41738[ .4, .1 ] = .51739[ .4, .2 ] = .71740[ .4, .3 ] = .7^41741[ .5, .1 ] = .61742[ .5, .2 ] = .717431744Select option: 5 #intermediate stage computation1745Input step size: 21746PAG-generating sequence for automorphism group? 1 #``Yes''1747Do you want default algorithm? 1 #``Yes''1748Do you want default output? 1 #``Yes''1749Input output file name: XX17501751**************************************************1752Starting group: Nott #1;11753Order: 5^51754Nuclear rank: 217555-multiplicator rank: 41756# of immediate descendants of order 5^7 is 401757# of capable immediate descendants is 51758Time for intermediate stage is 0.07 seconds17591760Select option: 0 #exit through 3 levels of menus1761Exiting from advanced p-group generation menu17621763Select option: 01764Exiting from p-group generation17651766Select option: 01767Exiting from ANU p-Quotient Program1768Total user time in seconds is 0.101769\end{verbatim}17701771\section{Changes}1772\begin{description}1773\item[\texttt{Version 1.9}]\ \\1774Fixes made to warnings in C code by Max Horn.1775\item[\texttt{Version 1.8}]\ \\1776\textsf{GAP} link code updated for \textsf{GAP} 4.4.1777\item[\texttt{Version 1.7}]\ \\1778Binomial coefficient algorithm modified to avoid overflow.1779\item[\texttt{Version 1.6}]\ \\1780In main Menu for {\it p}-Group Generation, when asking for1781automorphisms, now ask for the number of soluble automorphisms1782and their relative orders when there are any.1783\item[\texttt{Version 1.5}]\ \\1784Added the \texttt{-G} option for use with \textsf{GAP} and the1785\texttt{-v} option.1786\end{description}1787\pagebreak1788\section*{\centering References}1789\addcontentsline{toc}{section}{\numberline{}References}17901791\begin{description}1792\item George Havas and M.F.\ Newman (1980), ``Application of computers to1793questions like those of Burnside", {\it Burnside Groups} (Bielefeld, 1977),1794{\it Lecture Notes in Math.\ }{\bf 806}, pp.\ 211-230.1795Springer-Verlag, Berlin, Heidelberg, New York.17961797\item M.F.\ Newman (1977), ``Determination of groups of prime-power order",1798{\it Group Theory} (Canberra, 1975). {\it Lecture Notes in Math.\ }{\bf 573},1799pp.\ 73--84.1800Springer-Verlag.18011802\item M.F.\ Newman and E.A. O'Brien (1996),1803``Application of computers to questions like those of Burnside, {II}",1804{\it Internat.\ J.\ Algebra Comput}. {\bf 6}, 593-605.18051806\item E.A.\ O'Brien (1990), ``The {\it p}-group generation1807algorithm", {\it J.\ Symbolic Comput.} {\bf 9}, 677-698.18081809\item E.A.\ O'Brien (1994), ``Isomorphism testing1810for \mbox{{\it p}-groups}", {\it J. Symbolic Comput.} {\bf 17},1811133--147.18121813\item E.A.\ O'Brien (1995), ``Computing automorphism groups for1814{\it p}-groups", {\it Computational Algebra and Number Theory}1815(Sydney, 1992), pp.\ 83--90. Kluwer Academic Publishers, Dordrecht.18161817\item M.R. Vaughan-Lee (1982), ``An Aspect of the Nilpotent1818Quotient Algorithm", {\it Computational Group Theory}1819(Durham, 1982), pp. 76--83. Academic Press.18201821\item Michael Vaughan-Lee (1990a), ``The Restricted Burnside Problem",1822{\it London Mathematical Society monographs (New Ser.)} {\bf 5}.1823Clarendon Press, New York, Oxford.18241825\item M.R. Vaughan-Lee (1990b), ``Collection from the left",1826{\it J. Symbolic Comput.} {\bf 9}, 725--733.18271828\end{description}18291830%\vspace*{0.5cm}1831\noindent1832Eamonn A.\ O'Brien \\1833Department of Mathematics \\1834University of Auckland \\1835Private Bag 92019, Auckland, New Zealand18361837\vspace*{0.25cm}1838\noindent1839E-mail address: obrien@math.auckland.ac.nz18401841\vspace*{0.35cm}1842\noindent1843Last revised by Eamonn O'Brien: August 2001\hfil\break\noindent1844Revised February 2002 (v1.5 GG), February 2004 (v1.6 GG),\hfil\break1845\hspace*{2em}November 2011 (v1.9 MH), January 2012 (v1.9 GG)1846\end{document}184718481849