  
  [1X3 Development History[0X
  
  
  [1X3.1 Versions of the package[0X
  
  The  first  version  of  the package, written for [5XGAP[0m 3, formed part of Anne
  Heyworth's thesis [Hey99] in 1999, but was not made generally available.
  
  Version, [5Xkan[0m 0.91, was prepared to run under [5XGAP[0m 4.4.6, in July 2005.
  
  Version, [5Xkan[0m 0.94, differed in two significant ways.
  
  --    This manual is prepared using the [5XGAPDoc[0m package.
  
  --    The  test file [11Xkan/tst/kan\_manual.tst[0m sets the [10XAssertionLevel[0m to [10X0[0m to
        avoid recursion in the [5XAutomata[0m package.
  
  Version  0.95,  of 9th October 2007, just fixed file protections and added a
  [11XCHANGES[0m file.
  
  Version 0.96 was required because the [5Xkan[0m website moved with the rest of the
  Mathematics website at Bangor.
  
  Version  0.97,  of November 18th 2008, deleted temporary fixes which were no
  longer needed once version 1.12 of [5XAutomata[0m became available.
  
  
  [1X3.2 What needs doing next?[0X
  
  There are too many items to list here, but some of the most important are as
  follows.
  
  --    Implement iterators and enumerators for double cosets.
  
  --    At  present  the  methods for [10XDoubleCosetsNC[0m and [10XRightCosetsNC[0m in this
        package  return  automata,  rather  than  lists  of  cosets  or  coset
        enumerators. This needs to be fixed.
  
  --    Provide methods for operations such as [10XDoubleCosetRepsAndSizes[0m.
  
  --    Convert the rest of the original [5XGAP[0m 3 version of [5Xkan[0m to [5XGAP[0m 4.
  
  [1X3.2-1 DoubleCosetsAutomaton[0m
  
  [2X> DoubleCosetsAutomaton( [0X[3XG, U, V[0X[2X ) ________________________________[0Xoperation
  [2X> RightCosetsAutomaton( [0X[3XG, V[0X[2X ) ____________________________________[0Xoperation
  
  Alternative  methods for [10XDoubleCosetsNC(G,U,V)[0m and [10XRightCosetsNC(G,V)[0m [13Xshould
  be[0m  provided  in  the  cases  where the group [10XG[0m has a rewriting system or is
  known  to  be  infinite.  At  present the functions [10XRightCosetsAutomaton[0m and
  [10XDoubleCosetsAutomaton[0m return minimized automata, and [10XIterators[0m for these are
  not yet available.
  
  [4X---------------------------  Example  ----------------------------[0X
    [4X[0X
    [4Xgap> F := FreeGroup(2);;[0X
    [4Xgap> rels := [ F.2^2, (F.1*F.2)^2 ];;[0X
    [4Xgap> G4 := F/rels;;[0X
    [4Xgap> genG4 := GeneratorsOfGroup( G4 );;[0X
    [4Xgap> a := genG4[1];  b := genG4[2];;[0X
    [4Xgap> U := Subgroup( G4, [a^2] );;[0X
    [4Xgap> V := Subgroup( G4, [b] );;[0X
    [4Xgap> dc4 := DoubleCosetsAutomaton( G4, U, V );;[0X
    [4Xgap> Print( dc4 );[0X
    [4XAutomaton("det",5,"HKaAbB",[ [ 2, 2, 2, 5, 2 ], [ 2, 2, 1, 2, 1 ], [ 2, 2, 2, \[0X
    [4X2, 3 ], [ 2, 2, 2, 2, 2 ], [ 2, 2, 2, 2, 2 ], [ 2, 2, 2, 2, 2 ] ],[ 4 ],[ 1 ])\[0X
    [4X;;[0X
    [4Xgap> rc4 := RightCosetsAutomaton( G4, V );;[0X
    [4Xgap> Print( rc4 );[0X
    [4XAutomaton("det",6,"HKaAbB",[ [ 2, 2, 2, 6, 2, 2 ], [ 2, 2, 1, 2, 1, 1 ], [ 2, \[0X
    [4X2, 3, 2, 2, 3 ], [ 2, 2, 2, 2, 5, 5 ], [ 2, 2, 2, 2, 2, 2 ], [ 2, 2, 2, 2, 2, \[0X
    [4X2 ] ],[ 4 ],[ 1 ]);;[0X
    [4X[0X
  [4X------------------------------------------------------------------[0X
  
