[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