<h3>4 <span class="Heading">Subgroups of L-presented groups</span></h3>
<p>As shown in <a href="chapBib_mj.html#biBMR2864562">[Har11]</a> it is possible to deal with finite index subgroups of L-presented groups algorithmically. The <strong class="pkg">lpres</strong>-package provides straightforward methods to deal with these subgroups.</p>
<p>The Reidemeister-Schreier algorithm from <a href="chapBib_mj.html#biBMR2876891">[Har12]</a> is implemented, and computes presentations for such subgroups.</p>
<h4>4.1 <span class="Heading">Creating a subgroup of an L-presented group</span></h4>
<p>There are two ways of defining subgroups of finite index of an <var class="Arg">lpgroup</var>. The first is to define the subgroup by its generators while the second defines the subgroup by a coset-table. Generators of subgroup of the latter type can be computed with the usual Schreier-algorithm.</p>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ Subgroup</code>( <var class="Arg">G</var>, <var class="Arg">gens</var> )</td><td class="tdright">( function )</td></tr></table></div>
<p>creates the subgroup <var class="Arg">U</var> of <var class="Arg">G</var> generated by <var class="Arg">gens</var>. The Parent value of <var class="Arg">U</var> will be <var class="Arg">G</var>.</p>
<p>For example, the branching subgroup of the Grigorchuk group can be defined as follows, and a presentation can be computed using <code class="func">IsomorphismLpGroup</code> (<a href="chap2_mj.html#X856F237B7BAC3BC8"><span class="RefLink">2.6-4</span></a>):</p>
<p>The generators of <var class="Arg">U</var> can be computed with the Schreier-algorithm which is implemented in the method <code class="func">GeneratorsOfGroup</code> (<a href="../../../doc/ref/chap39_mj.html#X79C44528864044C5"><span class="RefLink">Reference: GeneratorsOfGroup</span></a>).</p>
<h4>4.2 <span class="Heading">Computing the index of finite-index subgroups</span></h4>
<p>In principle, it is possible to compute the index of a finite index subgroup of an <var class="Arg">lpgroup</var> <a href="chapBib_mj.html#biBMR2864562">[Har11]</a>. The method reduces the case to certain finitely presented groups by applying only finitely many endomorphisms to the iterated relations. It then uses coset enumeration for finitely presented groups to compute an upper bound on the index of the subgroup. If the coset enumeration for finitely presented groups terminated, the method attempts to prove that the upper bound is sharp. For further details we refer to <a href="chapBib_mj.html#biBMR2864562">[Har11]</a>.</p>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ IndexInWholeGroup</code>( <var class="Arg">H</var> )</td><td class="tdright">( method )</td></tr></table></div>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ FactorCosetAction</code>( <var class="Arg">G</var>, <var class="Arg">H</var> )</td><td class="tdright">( method )</td></tr></table></div>
<p>The first command attempts to compute the index of <var class="Arg">H</var> in its parent group. The second one gives the permutation action of <var class="Arg">G</var> on the right cosets of <var class="Arg">H</var>.</p>
<div class="example"><pre>
<span class="GAPprompt">gap></span> <span class="GAPinput">G := ExamplesOfLPresentations(1);;</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">a := G.1;; b := G.2;; c := G.3;; d := G.4;;</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">K := Subgroup( G, [ Comm(a,b), Comm( b, d^a ), Comm( b^a, d )] );;</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">IndexInWholeGroup( K );</span>
16
<span class="GAPprompt">gap></span> <span class="GAPinput">FactorCosetAction( G, K );</span>
[ a, b, c, d ] -> [ (1,2)(3,6)(4,9)(5,10)(7,11)(8,12)(13,15)(14,16),
(1,3)(2,6)(4,5)(7,8)(9,10)(11,12)(13,14)(15,16), (1,4)(2,7)(3,5)(6,8)(9,13)(10,14)(11,15)(12,16),
(1,5)(2,8)(3,4)(6,7)(9,14)(10,13)(11,16)(12,15) ]
</pre></div>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ Index</code>( <var class="Arg">H</var>, <var class="Arg">I</var> )</td><td class="tdright">( method )</td></tr></table></div>
<p>attempts to compute the index of <var class="Arg">I</var> in the subgroup <var class="Arg">H</var>. The subgroup <var class="Arg">I</var> must be contained in <var class="Arg">H</var>.</p>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ CosetTableInWholeGroup</code>( <var class="Arg">H</var> )</td><td class="tdright">( method )</td></tr></table></div>
<p>computes a coset-table for the subgroup <var class="Arg">H</var> in its parent group.</p>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ LPRES_TCSTART</code></td><td class="tdright">( global variable )</td></tr></table></div>
<p>defines the maximal word-length of endomorphisms in the free monoid which are applied to the iterated relations.</p>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ LPRES_CosetEnumerator</code></td><td class="tdright">( global variable )</td></tr></table></div>
<p>defines the coset enumeration process used for finitely presented groups. It should be a function which take as input a subgroup <var class="Arg">h</var> of a finitely presented group and it computes a coset table in the whole group. The default uses the following method of the <strong class="pkg">ACE</strong>-package</p>
<div class="example"><pre>
function ( h )
local f, rels, gens;
f := FreeGeneratorsOfFpGroup( Parent( h ) );
rels := RelatorsOfFpGroup( Parent( h ) );
gens := List( GeneratorsOfGroup( h ), UnderlyingElement );
return ACECosetTable( f, rels, gens : silent := true,
hard := true,
max := 10 ^ 8,
Wo := 10 ^ 8 );
</pre></div>
<p>If the <strong class="pkg">ACE</strong>-package is not available, the library coset enumeration process is used.</p>
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung ist noch experimentell.