GAP (Kan) - Chapter 3: Development History

Goto Chapter: Top 1 2 3 Bib Ind
[Top of Book] [Contents] [Previous Chapter] [Next Chapter]

[MathJax off]

3 Development History
3.1 Versions of the package
3.2 What needs doing next?
3.2-1 DoubleCosetsAutomaton

### 3 Development History

#### 3.1 Versions of the package

The first version of the package, written for GAP 3, formed part of Anne Heyworth's thesis [Hey99] in 1999, but was not made generally available.

Version 0.91 was prepared to run under GAP 4.4.6, in July 2005.

Version 0.94 differed in two significant ways.

- The manual was produced using the GAPDoc package.

- The test file `kan/tst/kan_manual.tst` set the `AssertionLevel` to `0` to avoid recursion in the Automata package.

Version 1.11, of December 2014 was required when the Kan website moved yet again. At the same time a bitbucket repository for the package was started.

Kan became an accepted GAP package in May 2015.

Version 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.

Only minor changes have been made in recent years. The latest version is 1.34 of March 2022.

#### 3.2 What needs doing next?

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 `DoubleCosetsNC` and `RightCosetsNC` in this package return automata, rather than lists of cosets or coset enumerators. This needs to be fixed.

- Provide methods for operations such as `DoubleCosetRepsAndSizes`.

- Convert the rest of the original GAP 3 version of Kan to GAP 4.

##### 3.2-1 DoubleCosetsAutomaton

`‣ DoubleCosetsAutomaton`( G, U, V ) | ( operation )

`‣ RightCosetsAutomaton`( G, V ) | ( operation )

Alternative methods for `DoubleCosetsNC(G,U,V)` and `RightCosetsNC(G,V)` should be provided in the cases where the group `G` has a rewriting system or is known to be infinite. At present the functions `RightCosetsAutomaton` and `DoubleCosetsAutomaton` return minimized automata, and `Iterators` for these are not yet available.

    gap> F := FreeGroup(2);;
    gap> rels := [ F.2^2, (F.1*F.2)^2 ];;
    gap> G5 := F/rels;;
    gap> genG5 := GeneratorsOfGroup( G5 );;
    gap> a := genG5[1];  b := genG5[2];;
    gap> U := Subgroup( G5, [a^2] );;
    gap> V := Subgroup( G5, [b] );;
    gap> L := [2,1,4,3];;
    gap> rws5 := ReducedConfluentRewritingSystem( G5, L, "shortlex", 0, "aAbB" );;
    gap> dc5 := DoubleCosetsAutomaton( G5, U, V );;
    gap> Print( dc5 );
    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> rc5 := RightCosetsAutomaton( G5, V );;
    gap> Print( rc5 );
    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 ]);;

[Top of Book] [Contents] [Previous Chapter] [Next Chapter]
Goto Chapter: Top 1 2 3 Bib Ind

generated by GAPDoc2HTML