<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en"> <head> <title>GAP (Kan) - Chapter 3: Development History</title> <meta http-equiv="content-type" content="text/html; charset=UTF-8" /> <meta name="generator" content="GAPDoc2HTML" /> <link rel="stylesheet" type="text/css" href="manual.css" /> </head> <body> <div class="chlinktop"><span class="chlink1">Goto Chapter: </span><a href="chap0.html">Top</a> <a href="chap1.html">1</a> <a href="chap2.html">2</a> <a href="chap3.html">3</a> <a href="chapBib.html">Bib</a> <a href="chapInd.html">Ind</a> </div> <div class="chlinkprevnexttop"> <a href="chap0.html">Top of Book</a> <a href="chap2.html">Previous Chapter</a> <a href="chapBib.html">Next Chapter</a> </div> <p><a id="X810C43BC7F63C4B4" name="X810C43BC7F63C4B4"></a></p> <div class="ChapSects"><a href="chap3.html#X810C43BC7F63C4B4">3 <span class="Heading">Development History</span></a> <div class="ContSect"><span class="nocss"> </span><a href="chap3.html#X8192EA4C7B7CC5CD">3.1 <span class="Heading">Versions of the package</span></a> </div> <div class="ContSect"><span class="nocss"> </span><a href="chap3.html#X83D1530487593182">3.2 <span class="Heading">What needs doing next?</span></a> <span class="ContSS"><br /><span class="nocss"> </span><a href="chap3.html#X852CC057809CE3EE">3.2-1 DoubleCosetsAutomaton</a></span> </div> </div> <h3>3 <span class="Heading">Development History</span></h3> <p><a id="X8192EA4C7B7CC5CD" name="X8192EA4C7B7CC5CD"></a></p> <h4>3.1 <span class="Heading">Versions of the package</span></h4> <p>The first version of the package, written for <strong class="pkg">GAP</strong> 3, formed part of Anne Heyworth's thesis <a href="chapBib.html#biBanne-thesis">[Hey99]</a> in 1999, but was not made generally available.</p> <p>Version, <strong class="pkg">kan</strong> 0.91, was prepared to run under <strong class="pkg">GAP</strong> 4.4.6, in July 2005.</p> <p>Version, <strong class="pkg">kan</strong> 0.94, differed in two significant ways.</p> <ul> <li><p>This manual is prepared using the <strong class="pkg">GAPDoc</strong> package.</p> </li> <li><p>The test file <code class="file">kan/tst/kan\_manual.tst</code> sets the <code class="code">AssertionLevel</code> to <code class="code">0</code> to avoid recursion in the <strong class="pkg">Automata</strong> package.</p> </li> </ul> <p>Version 0.95, of 9th October 2007, just fixed file protections and added a <code class="file">CHANGES</code> file.</p> <p>Version 0.96 was required because the <strong class="pkg">kan</strong> website moved with the rest of the Mathematics website at Bangor.</p> <p>Version 0.97, of November 18th 2008, deleted temporary fixes which were no longer needed once version 1.12 of <strong class="pkg">Automata</strong> became available.</p> <p><a id="X83D1530487593182" name="X83D1530487593182"></a></p> <h4>3.2 <span class="Heading">What needs doing next?</span></h4> <p>There are too many items to list here, but some of the most important are as follows.</p> <ul> <li><p>Implement iterators and enumerators for double cosets.</p> </li> <li><p>At present the methods for <code class="code">DoubleCosetsNC</code> and <code class="code">RightCosetsNC</code> in this package return automata, rather than lists of cosets or coset enumerators. This needs to be fixed.</p> </li> <li><p>Provide methods for operations such as <code class="code">DoubleCosetRepsAndSizes</code>.</p> </li> <li><p>Convert the rest of the original <strong class="pkg">GAP</strong> 3 version of <strong class="pkg">kan</strong> to <strong class="pkg">GAP</strong> 4.</p> </li> </ul> <p><a id="X852CC057809CE3EE" name="X852CC057809CE3EE"></a></p> <h5>3.2-1 DoubleCosetsAutomaton</h5> <div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">> DoubleCosetsAutomaton</code>( <var class="Arg">G, U, V</var> )</td><td class="tdright">( operation )</td></tr></table></div> <div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">> RightCosetsAutomaton</code>( <var class="Arg">G, V</var> )</td><td class="tdright">( operation )</td></tr></table></div> <p>Alternative methods for <code class="code">DoubleCosetsNC(G,U,V)</code> and <code class="code">RightCosetsNC(G,V)</code> <em>should be</em> provided in the cases where the group <code class="code">G</code> has a rewriting system or is known to be infinite. At present the functions <code class="code">RightCosetsAutomaton</code> and <code class="code">DoubleCosetsAutomaton</code> return minimized automata, and <code class="code">Iterators</code> for these are not yet available.</p> <table class="example"> <tr><td><pre> 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 ]);; </pre></td></tr></table> <div class="chlinkprevnextbot"> <a href="chap0.html">Top of Book</a> <a href="chap2.html">Previous Chapter</a> <a href="chapBib.html">Next Chapter</a> </div> <div class="chlinkbot"><span class="chlink1">Goto Chapter: </span><a href="chap0.html">Top</a> <a href="chap1.html">1</a> <a href="chap2.html">2</a> <a href="chap3.html">3</a> <a href="chapBib.html">Bib</a> <a href="chapInd.html">Ind</a> </div> <hr /> <p class="foot">generated by <a href="http://www.math.rwth-aachen.de/~Frank.Luebeck/GAPDoc">GAPDoc2HTML</a></p> </body> </html>