<!-- ------------------------------------------------------------------- --> <!-- --> <!-- history.xml KAN documentation Chris Wensley --> <!-- & Anne Heyworth --> <!-- --> <!-- $Id: history.xml,v 0.97 2008/11/18 gap Exp $ --> <!-- --> <!-- ------------------------------------------------------------------- --> <?xml version="1.0" encoding="ISO-8859-15"?> <!-- <M>Id: history.xml,v 0.97 Exp <M> --> <Chapter Label="chap-history"> <Heading>Development History</Heading> <Section><Heading>Versions of the package</Heading> The first version of the package, written for &GAP; 3, formed part of Anne Heyworth's thesis <Cite Key="anne-thesis" /> in 1999, but was not made generally available. <P/> Version, &kan; 0.91, was prepared to run under &GAP; 4.4.6, in July 2005. <P/> Version, &kan; 0.94, differed in two significant ways. <List> <Item> This manual is prepared using the <Package>GAPDoc</Package> package. </Item> <Item> The test file <F>kan/tst/kan\_manual.tst</F> sets the <C>AssertionLevel</C> to <C>0</C> to avoid recursion in the <Package>Automata</Package> package. </Item> </List> <P/> Version 0.95, of 9th October 2007, just fixed file protections and added a <F>CHANGES</F> file. <P/> Version 0.96 was required because the &kan; website moved with the rest of the Mathematics website at Bangor. <P/> Version 0.97, of November 18th 2008, deleted temporary fixes which were no longer needed once version 1.12 of <Package>Automata</Package> became available. </Section> <Section><Heading>What needs doing next?</Heading> There are too many items to list here, but some of the most important are as follows. <List> <Item> Implement iterators and enumerators for double cosets. </Item> <Item> At present the methods for <C>DoubleCosetsNC</C> and <C>RightCosetsNC</C> in this package return automata, rather than lists of cosets or coset enumerators. This needs to be fixed. </Item> <Item> Provide methods for operations such as <C>DoubleCosetRepsAndSizes</C>. </Item> <Item> Convert the rest of the original &GAP; 3 version of &kan; to &GAP; 4. </Item> </List> <ManSection> <Oper Name="DoubleCosetsAutomaton" Arg="G, U, V" /> <Oper Name="RightCosetsAutomaton" Arg="G, V" /> <Description> Alternative methods for <C>DoubleCosetsNC(G,U,V)</C> and <C>RightCosetsNC(G,V)</C> <E>should be</E> provided in the cases where the group <C>G</C> has a rewriting system or is known to be infinite. At present the functions <C>RightCosetsAutomaton</C> and <C>DoubleCosetsAutomaton</C> return minimized automata, and <C>Iterators</C> for these are not yet available. </Description> </ManSection> <Example> <![CDATA[ gap> F := FreeGroup(2);; gap> rels := [ F.2^2, (F.1*F.2)^2 ];; gap> G4 := F/rels;; gap> genG4 := GeneratorsOfGroup( G4 );; gap> a := genG4[1]; b := genG4[2];; gap> U := Subgroup( G4, [a^2] );; gap> V := Subgroup( G4, [b] );; gap> dc4 := DoubleCosetsAutomaton( G4, U, V );; gap> Print( dc4 ); Automaton("det",5,"HKaAbB",[ [ 2, 2, 2, 5, 2 ], [ 2, 2, 1, 2, 1 ], [ 2, 2, 2, \ 2, 3 ], [ 2, 2, 2, 2, 2 ], [ 2, 2, 2, 2, 2 ], [ 2, 2, 2, 2, 2 ] ],[ 4 ],[ 1 ])\ ;; gap> rc4 := RightCosetsAutomaton( G4, V );; gap> Print( rc4 ); Automaton("det",6,"HKaAbB",[ [ 2, 2, 2, 6, 2, 2 ], [ 2, 2, 1, 2, 1, 1 ], [ 2, \ 2, 3, 2, 2, 3 ], [ 2, 2, 2, 2, 5, 5 ], [ 2, 2, 2, 2, 2, 2 ], [ 2, 2, 2, 2, 2, \ 2 ] ],[ 4 ],[ 1 ]);; ]]> </Example> </Section> </Chapter>