  
  [1X1 [33X[0;0YIntroduction[133X[101X
  
  
  [1X1.1 [33X[0;0YOverview[133X[101X
  
  [33X[0;0YThis manual describes the [5XFGA[105X ([13XFree Group Algorithms[113X) package, a [5XGAP[105X package
  for computations with finitely generated subgroups of free groups.[133X
  
  [33X[0;0YThis  package  allows you to (constructively) test membership and conjugacy,
  and   to   compute  free  generators,  the  rank,  the  index,  normalizers,
  centralizers,  and  intersections  where  the  groups  involved are finitely
  generated  subgroups of free groups. In addition, it provides generators and
  a  finite  presentation  for  the automorphism group of a finitely generated
  free  group  and  allows  to  write  any  such automorphism as word in these
  generators.[133X
  
  [33X[0;0YSee Chapter [14X'[33X[0;0YFunctionality of the FGA package[133X'[114X for details.[133X
  
  [33X[0;0YChapter [14X'[33X[0;0YInstalling and loading the FGA package[133X'[114X explains how to install and
  load the [5XFGA[105X package.[133X
  
  
  [1X1.2 [33X[0;0YImplementation and background[133X[101X
  
  [33X[0;0YThe  methods  which  are  used  work  mainly with inverse finite automata, a
  variation  of  an  idea  known from theoretical computer science. An inverse
  finite automaton is a finite state automaton over a symmetric alphabet, i.e.
  one  in which every letter has an inverse, such that each transition between
  two  states  for  a  letter  corresponds  to  a  transition  in the opposite
  direction for the inverse letter.[133X
  
  [33X[0;0YMost  of  these  techniques are described in Chapter 4 of [Sim94], where the
  same  concept is called coset automaton. The method to obtain this automaton
  is called basic coset enumeration, and in fact it is coset enumeration where
  only  important cosets are defined. Here a coset [3XGg[103X is called important when
  there  are words [3Xw[103X and [3Xv[103X such that [3Xwv[103X is reduced and denotes an element of [3XG[103X
  and [3Xw[103X denotes an element of [3XGg[103X.[133X
  
  [33X[0;0YIn  [BMMW00],  the  connection  between finitely generated subgroups of free
  groups  and  inverse  finite  automata is used to transfer results about the
  space complexity of problems concerning inverse finite automata to analogous
  results about finitely generated subgroups of free groups.[133X
  
  [33X[0;0YChapter  6  of  [Sim94]  describes the Reidemeister-Schreier procedure and a
  variant called extended coset enumeration which yields a presentation in the
  given  generators.  The  [5XFGA[105X  package  uses  a  variation  thereof  for  its
  constructive  membership  test: it leaves out the part of the algorithm that
  fills  in  relations  and  interprets  the  resulting  extended  coset table
  differently.   This   algorithm   might   be  called  extended  basic  coset
  enumeration.[133X
  
  [33X[0;0YSome  word oriented algorithms in the [5XFGA[105X package use basic facts about free
  groups. These can, for example, be found in [LS77].[133X
  
  [33X[0;0YThe  presentation  of the automorphism groups follows [Neu33]. The algorithm
  for  writing  an  automorphism in the generators works first at the level of
  Nielsen generators and uses relations from [Nie24].[133X
  
  [33X[0;0YThe  theoretical  background for most of this implementation is explained in
  [Sie03].[133X
  
  
  [1X1.3 [33X[0;0YIntegration of the package[133X[101X
  
  [33X[0;0YThe  [5XFGA[105X package mainly installs new methods for operations that are already
  known  to  [5XGAP[105X.  They overlap with methods in the [5XGAP[105X library in the case of
  groups  of  finite index. In this case, [5XGAP[105Xs methods are usually faster, and
  the [5XFGA[105X package tries to recognize such cases and to refer to [5XGAP[105X.[133X
  
  [33X[0;0YThe  methods  of  the  [5XFGA[105X  package  will  only  be selected when the groups
  involved  know  they are finitely generated. This may not always be the case
  for  groups  that  were not created by methods of the [5XFGA[105X package. In such a
  case  you  will  get  a  [10Xno  method  found[110X  error,  or  [5XGAP[105X  may try a coset
  enumeration  that  stops  with the message [10Xthe coset enumeration has defined
  more than 256000 cosets[110X. You may then call [10XGeneratorsOfGroup[110X, and try again.[133X
  
  [33X[0;0YPlease inform the package author if you observe any remaining problems.[133X
  
  
  [1X1.4 [33X[0;0YLicense[133X[101X
  
  [33X[0;0YLike  the  [5XGAP[105X  system  itself,  the  [5XFGA[105X  package is free software; you can
  redistribute  it  and/or modify it under the terms of the GNU General Public
  License  as  published  by the Free Software Foundation; either version 2 of
  the License, or (at your option) any later version.[133X
  
  [33X[0;0YThis  package is distributed in the hope that it will be useful, but WITHOUT
  ANY  WARRANTY;  without  even  the  implied  warranty  of MERCHANTABILITY or
  FITNESS  FOR  A  PARTICULAR  PURPOSE. See the GNU General Public License for
  more details.[133X
  
  [33X[0;0YYou  can  find the GNU General Public License in the file [10XCOPYING[110X of the [5XFGA[105X
  package,  and  also  in  the  file  [10XGPL[110X in the [10Xetc[110X directory of the main [5XGAP[105X
  distribution, or see [7Xhttp://www.gnu.org/licenses/gpl.html[107X.[133X
  
