GAP 4.8.9 installation with standard packages -- copy to your CoCalc project to get it
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%1%%2%W intro.tex FGA documentation Christian Sievers3%%4%Y 2003 - 20125%%67%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%8\Chapter{Introduction}910\atindex{FGA}{@{\FGA}|indexit}1112%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%13\Section{Overview}1415This manual describes the {\FGA} (*Free Group Algorithms*) package,16a {\GAP} package for computations with finitely generated subgroups of17free groups.1819This package allows you to (constructively) test membership and20conjugacy, and to compute free generators, the rank, the index,21normalizers, centralizers, and intersections22where the groups involved are finitely generated subgroups of free groups.23%24In addition, it provides generators and a finite presentation for the25automorphism group of a finitely generated free group and allows to26write any such automorphism as word in these generators.2728See Chapter "Functionality of the FGA Package" for details.2930Chapter "Installing and Loading the FGA Package" explains31how to install and load the {\FGA} package.3233%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%34\Section{Implementation and background}3536The methods which are used work mainly with inverse finite automata,37a variation of an idea known from theoretical computer science.38An inverse finite automaton is a finite state automaton over a39symmetric alphabet, i.e. one in which every letter has an inverse,40such that each transition between two states for a letter corresponds41to a transition in the opposite direction for the inverse letter.4243Most of these techniques are described in Chapter 4 of \cite{Sims94},44where the same concept is called coset automaton.45The method to obtain this automaton is called basic coset enumeration,46and in fact it is coset enumeration where only important cosets are47defined. Here a coset <Gg> is called important when there48are words <w> and <v> such that <wv> is reduced and denotes an element49of <G> and <w> denotes an element of <Gg>.5051In \cite{BirgetEtAl00}, the connection between finitely generated52subgroups of free groups and inverse finite automata is used to transfer53results about the space complexity of problems concerning inverse finite54automata to analogous results about finitely generated subgroups of free55groups.5657Chapter 6 of \cite{Sims94} describes the Reidemeister-Schreier58procedure and a variant called extended coset enumeration which yields59a presentation in the given generators. The {\FGA} package uses a60variation thereof for its constructive membership test: it leaves out the61part of the algorithm that fills in relations and interprets the62resulting extended coset table differently.63This algorithm might be called extended basic coset enumeration.6465Some word oriented algorithms in the {\FGA} package use basic facts about66free groups. These can, for example, be found in \cite{LyndonSchupp77}.6768The presentation of the automorphism groups follows \cite{Neumann33}.69The algorithm for writing an automorphism in the generators works70first at the level of Nielsen generators and uses relations from71\cite{Nielsen}.7273The theoretical background for most of this implementation is74explained in \cite{Sievers03}.7576%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%77\Section{Integration of the package}7879The {\FGA} package mainly installs new methods for operations that are80already known to {\GAP}. They overlap with methods in the {\GAP}81library in the case of groups of finite index. In this case, {\GAP}s82methods are usually faster, and the {\FGA} package tries to recognize83such cases and to refer to {\GAP}.8485The methods of the {\FGA} package will only be selected when the groups86involved know they are finitely generated. This may not always be the87case for groups that were not created by methods of the {\FGA}88package. In such a case you will get a `no method found' error, or89{\GAP} may try a coset enumeration that stops with the message90`the coset enumeration has defined more than 256000 cosets'.91You may then call `GeneratorsOfGroup', and try again.9293Please inform the package author if you observe any remaining problems.9495%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%96\Section{License}9798Like the {\GAP} system itself, the {\FGA} package is free software;99you can redistribute it and/or modify it under the terms of the GNU100General Public License as published by the Free Software Foundation;101either version 2 of the License, or (at your option) any later102version.103104This package is distributed in the hope that it will be useful, but105WITHOUT ANY WARRANTY; without even the implied warranty of106MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU107General Public License for more details.108109You can find the GNU General Public License in the file `COPYING' of110the {\FGA} package, and also in the file `GPL' in the `etc' directory111of the main {\GAP} distribution, or see112\URL{http://www.gnu.org/licenses/gpl.html}.113114%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%115%%116%E117118119