  
  [1X3 [33X[0;0YDevelopment History[133X[101X
  
  
  [1X3.1 [33X[0;0YVersions of the package[133X[101X
  
  [33X[0;0YThe  first  version  of  the package, written for [5XGAP[105X 3, formed part of Anne
  Heyworth's thesis [Hey99] in 1999, but was not made generally available.[133X
  
  [33X[0;0YVersion 0.91 was prepared to run under [5XGAP[105X 4.4.6, in July 2005.[133X
  
  [33X[0;0YVersion 0.94 differed in two significant ways.[133X
  
  [30X    [33X[0;6YThe manual was produced using the [5XGAPDoc[105X package.[133X
  
  [30X    [33X[0;6YThe  test  file  [11Xkan/tst/kan_manual.tst[111X set the [10XAssertionLevel[110X to [10X0[110X to
        avoid recursion in the [5XAutomata[105X package.[133X
  
  [33X[0;0YVersion  1.11,  of December 2014 was required when the [5XKan[105X website moved yet
  again. At the same time a bitbucket repository for the package was started.[133X
  
  [33X[0;0Y[5XKan[105X became an accepted [5XGAP[105X package in May 2015.[133X
  
  [33X[0;0YVersion  1.28,  of  May 2017, saw a great many changes to the examples, with
  the  various rewriting systems used to perform reduction of words to reduced
  form.[133X
  
  
  [1X3.2 [33X[0;0YWhat needs doing next?[133X[101X
  
  [33X[0;0YThere are too many items to list here, but some of the most important are as
  follows.[133X
  
  [30X    [33X[0;6YImplement iterators and enumerators for double cosets.[133X
  
  [30X    [33X[0;6YAt  present  the  methods for [10XDoubleCosetsNC[110X and [10XRightCosetsNC[110X in this
        package  return  automata,  rather  than  lists  of  cosets  or  coset
        enumerators. This needs to be fixed.[133X
  
  [30X    [33X[0;6YProvide methods for operations such as [10XDoubleCosetRepsAndSizes[110X.[133X
  
  [30X    [33X[0;6YConvert the rest of the original [5XGAP[105X 3 version of [5XKan[105X to [5XGAP[105X 4.[133X
  
  [1X3.2-1 DoubleCosetsAutomaton[101X
  
  [33X[1;0Y[29X[2XDoubleCosetsAutomaton[102X( [3XG[103X, [3XU[103X, [3XV[103X ) [32X operation[133X
  [33X[1;0Y[29X[2XRightCosetsAutomaton[102X( [3XG[103X, [3XV[103X ) [32X operation[133X
  
  [33X[0;0YAlternative  methods for [10XDoubleCosetsNC(G,U,V)[110X and [10XRightCosetsNC(G,V)[110X [13Xshould
  be[113X  provided  in  the  cases  where the group [10XG[110X has a rewriting system or is
  known  to  be  infinite.  At  present the functions [10XRightCosetsAutomaton[110X and
  [10XDoubleCosetsAutomaton[110X return minimized automata, and [10XIterators[110X for these are
  not yet available.[133X
  
  [4X[32X  Example  [32X[104X
    [4X[28X[128X[104X
    [4X[25Xgap>[125X [27XF := FreeGroup(2);;[127X[104X
    [4X[25Xgap>[125X [27Xrels := [ F.2^2, (F.1*F.2)^2 ];;[127X[104X
    [4X[25Xgap>[125X [27XG5 := F/rels;;[127X[104X
    [4X[25Xgap>[125X [27XgenG5 := GeneratorsOfGroup( G5 );;[127X[104X
    [4X[25Xgap>[125X [27Xa := genG5[1];  b := genG5[2];;[127X[104X
    [4X[25Xgap>[125X [27XU := Subgroup( G5, [a^2] );;[127X[104X
    [4X[25Xgap>[125X [27XV := Subgroup( G5, [b] );;[127X[104X
    [4X[25Xgap>[125X [27XL := [2,1,4,3];; [127X[104X
    [4X[25Xgap>[125X [27Xrws5 := ReducedConfluentRewritingSystem( G5, L, "shortlex", 0, "aAbB" );; [127X[104X
    [4X[25Xgap>[125X [27Xdc5 := DoubleCosetsAutomaton( G5, U, V );;[127X[104X
    [4X[25Xgap>[125X [27XPrint( dc5 );[127X[104X
    [4X[28XAutomaton("det",5,"HKAaBb",[ [ 2, 2, 2, 5, 2 ], [ 2, 2, 1, 2, 1 ], [ 2, 2, 2, \[128X[104X
    [4X[28X2, 3 ], [ 2, 2, 2, 2, 2 ], [ 2, 2, 2, 2, 2 ], [ 2, 2, 2, 2, 2 ] ],[ 4 ],[ 1 ])\[128X[104X
    [4X[28X;;[128X[104X
    [4X[25Xgap>[125X [27Xrc5 := RightCosetsAutomaton( G5, V );;[127X[104X
    [4X[25Xgap>[125X [27XPrint( rc5 );[127X[104X
    [4X[28XAutomaton("det",6,"HKAaBb",[ [ 2, 2, 2, 6, 2, 2 ], [ 2, 2, 1, 2, 1, 1 ], [ 2, \[128X[104X
    [4X[28X2, 3, 2, 2, 3 ], [ 2, 2, 2, 2, 5, 5 ], [ 2, 2, 2, 2, 2, 2 ], [ 2, 2, 2, 2, 2, \[128X[104X
    [4X[28X2 ] ],[ 4 ],[ 1 ]);;[128X[104X
    [4X[28X[128X[104X
  [4X[32X[104X
  
