Sophie

Sophie

distrib > Mandriva > 2010.0 > i586 > media > contrib-release > by-pkgid > 91213ddcfbe7f54821d42c2d9e091326 > files > 2022

gap-system-packages-4.4.12-5mdv2010.0.i586.rpm

<html><head><title>[NQL] 4 The underlying functions</title></head>
<body text="#000000" bgcolor="#ffffff">
[<a href = "chapters.htm">Up</a>] [<a href ="CHAP003.htm">Previous</a>] [<a href = "theindex.htm">Index</a>]
<h1>4 The underlying functions</h1><p>
<P>
<H3>Sections</H3>
<oL>
<li> <A HREF="CHAP004.htm#SECT001">Nilpotent Quotient Systems for invariant L-presentations</a>
<li> <A HREF="CHAP004.htm#SECT002">Attributes of L-presented groups related with the nilpotent quotient algorithm</a>
<li> <A HREF="CHAP004.htm#SECT003">The Info-Class InfoNQL</a>
</ol><p>
<p>
<p>
<h2><a name="SECT001">4.1 Nilpotent Quotient Systems for invariant L-presentations</a></h2>
<p><p>
For an invariantly <var>L</var>-presented group <var>G</var>, our algorithm computes a
nilpotent presentation for <var>G/gamma<sub>c+1</sub>(G)</var> by computing a <var>weighted
nilpotent quotient system</var> for <var>G/G'</var> and extending it inductively to
a weighted nilpotent quotient system for <var>G/gamma<sub>c+1</sub>(G)</var>.
<p>
In the <font face="Gill Sans,Helvetica,Arial">NQL</font> package, a weighted nilpotent quotient system is a record
containing the following entries:
<p>
<p>
<dl compact>
<dt><var>Lpres</var> <dd> the invariantly <var>L</var>-presented group <var>G</var>.
<p>
<dt><var>Pccol</var> <dd> <code>FromTheLeftCollector</code> of the nilpotent quotient represented by this 
	  quotient system.
<p>
<dt><var>Imgs</var>  <dd> the images of the generators of the <var>L</var>-presented group <var>G</var> under
	  the epimorphism onto the nilpotent quotient <var>Pccol</var>. For
	  each generator of <var>G</var> there is an integer or a generator
	  exponent list. If the image is an integer <var>int</var>, the image
	  is a definition of the <var>int</var>-th generator of the nilpotent
	  presentation <var>Pccol</var>.
<p>
<dt><var>Epimorphism</var><dd> an epimorphism from the <var>L</var>-presented group <var>G</var> onto its 
	       nilpotent quotient <var>Pccol</var> with the images of the generators
	       given by <var>Imgs</var>.
<p>
<dt><var>Weights</var> <dd> a list of the weight of each generator of the nilpotent
            presentation <var>Pccol</var>.
<p>
<var>Definitions</var>
<dt>       <dd> the definition of each generator of <var>Pccol</var>. Each generator in the 
	 quotient system has a definition as an image or as a commutator
	 of the form <var>[a<sub>j</sub>,a<sub>i</sub>]</var> where <var>a<sub>j</sub></var> and <var>a<sub>i</sub></var> are generators of
	 a certain weight. If the <var>i</var>-th entry is an integer, the <var>i</var>-th
	 generator of <var>Pccol</var> has a definition as an image. Otherwise,
	 the <var>i</var>-th entry is a <var>2</var>-tuple <var>[k,l]</var> and the <var>i</var>-th generator
	 has a definition as commutator <var>[a<sub>k</sub>,a<sub>l</sub>]</var>.
</dl>
<p>
A weighted nilpotent quotient system of an invariantly <var>L</var>-presented group 
can be computed with the following functions. 
<p>
<a name = "SSEC001.1"></a>
<li><code>InitQuotientSystem( </code><var>LpGroup</var><code> ) O</code>
<p>
computes a weighted nilpotent quotient system for the abelian quotient
of the <var>L</var>-presented group <var>LpGroup</var>.
<p>
<a name = "SSEC001.2"></a>
<li><code>ExtendQuotientSystem( </code><var>QS</var><code> ) F</code>
<p>
extends the weighted nilpotent quotient system <var>QS</var> for a class-<var>c</var>
quotient of an invariantly <var>L</var>-presented group to a weighted nilpotent
quotient system of its class-<var>c+1</var> quotient.
<p>
<pre>
gap&gt; G := ExamplesOfLPresentations( 1 );
&lt;L-presented group on the generators [ a, b, c, d ]&gt;
gap&gt; Q := InitQuotientSystem( G );
rec( Lpres := &lt;L-presented group on the generators [ a, b, c, d ]&gt;, 
  Pccol := &lt;&lt;from the left collector with 3 generators&gt;&gt;, 
  Imgs := [ 1, [ 2, 1, 3, 1 ], 2, 3 ], Epimorphism := [ a, b, c, d ] -&gt; 
    [ g1, g2*g3, g2, g3 ], Weights := [ 1, 1, 1 ], Definitions := [ 1, 3, 4 ] 
 )
gap&gt; ExtendQuotientSystem( Q );
rec( Lpres := &lt;L-presented group on the generators [ a, b, c, d ]&gt;, 
  Pccol := &lt;&lt;from the left collector with 5 generators&gt;&gt;, 
  Imgs := [ 1, [ 2, 1, 3, 1 ], 2, 3 ], 
  Definitions := [ 1, 3, 4, [ 2, 1 ], [ 3, 1 ] ], 
  Weights := [ 1, 1, 1, 2, 2 ], Epimorphism := [ a, b, c, d ] -&gt; 
    [ g1, g2*g3, g2, g3 ] )
</pre>
<p>
<p>
<h2><a name="SECT002">4.2 Attributes of L-presented groups related with the nilpotent quotient algorithm</a></h2>
<p><p>
To avoid repeated extensions of a weighted nilpotent quotient system
the largest known quotient system is stored as an attribute of the
invariantly <var>L</var>-presented group. For non-invariantly <var>L</var>-presented groups
(or groups which are not known to be invariantly <var>L</var>-presented) the known
epimorphisms onto the nilpotent quotients are stored as an attribute.
<p>
<a name = "SSEC002.1"></a>
<li><code>NilpotentQuotientSystem( </code><var>LpGroup</var><code> ) A</code>
<p>
stores the largest known weighted nilpotent quotient system of an
invariantly <var>L</var>-presented group.
<p>
<pre>
gap&gt; G := ExamplesOfLPresentations( 1 );;
gap&gt; NilpotentQuotient( G, 5 );
Pcp-group with orders [ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2 ]
gap&gt; NilpotentQuotientSystem( G );
rec( Lpres := &lt;L-presented group on the generators [ a, b, c, d ]&gt;, 
  Pccol := &lt;&lt;from the left collector with 10 generators&gt;&gt;, 
  Imgs := [ 1, [ 2, 1, 3, 1 ], 2, 3 ], 
  Definitions := [ 1, 3, 4, [ 2, 1 ], [ 3, 1 ], [ 4, 2 ], [ 4, 3 ], [ 7, 1 ], 
      [ 8, 2 ], [ 8, 3 ] ], Weights := [ 1, 1, 1, 2, 2, 3, 3, 4, 5, 5 ], 
  Epimorphism := [ a, b, c, d ] -&gt; [ g1, g2*g3, g2, g3 ] )
gap&gt; NilpotencyClassOfGroup( PcpGroupByCollectorNC( last.Pccol ) );
5
</pre>
<p>
<a name = "SSEC002.2"></a>
<li><code>NilpotentQuotients( </code><var>LpGroup</var><code> ) A</code>
<p>
stores all known epimorphisms onto the nilpotent quotients of <var>LpGroup</var>.
The nilpotent quotients are accessible by the operation <code>Range</code>.
<p>
<pre>
gap&gt; G:=ExamplesOfLPresentations( 3 );;
gap&gt; HasIsInvariantLPresentation( G );
false
gap&gt; NilpotentQuotient( G, 3 );
Pcp-group with orders [ 0, 2, 2, 2 ]
gap&gt; NilpotentQuotients( G );
[ [ a, t, u ] -&gt; [ g2, g1, g2 ], [ a, t, u ] -&gt; [ g2, g1, g2 ],
  [ a, t, u ] -&gt; [ g2, g1, g2 ] ]
gap&gt; Range( last[2] );
Pcp-group with orders [ 0, 2, 2 ]
</pre>
The underlying invariant <var>L</var>-presentation has stored its largest
weighted nilpotent quotient system as an attribute.
<pre>
gap&gt; NilpotentQuotientSystem( UnderlyingInvariantLPresentation( G ) );
rec( Lpres := &lt;L-presented group on the generators [ a, t, u ]&gt;,
  Pccol := &lt;&lt;from the left collector with 9 generators&gt;&gt;, Imgs := [ 1, 2, 3 ],
  Definitions := [ 1, 2, 3, [ 2, 1 ], [ 3, 2 ], [ 4, 1 ], [ 4, 2 ], [ 5, 2 ],
      [ 5, 3 ] ], Weights := [ 1, 1, 1, 2, 2, 3, 3, 3, 3 ],
  Epimorphism := [ a, t, u ] -&gt; [ g1, g2, g3 ] )
</pre>
<p>
<p>
<h2><a name="SECT003">4.3 The Info-Class InfoNQL</a></h2>
<p><p>
To get some information about the progress of the algorithm,
one can use the info class <code>InfoNQL</code>. 
<p>
<a name = "SSEC003.1"></a>
<li><code>InfoNQL</code>
<p>
is the info class of the <font face="Gill Sans,Helvetica,Arial">NQL</font>-package. If the info-level is <var>1</var>, the
info-class gives further information on the progress of the nilpotent
quotient algorithm for <var>L</var>-presented groups. The info-level <var>2</var> also
includes some information on the runtime of our algorithm while the
info-level <var>3</var> is mainly used for debugging-purposes. An example of such
a session for the Grigorchuk group is shown below:
<p>
<pre>
gap&gt; SetInfoLevel( InfoNQL, 1 );;
gap&gt; G:=ExamplesOfLPresentations( 1 );
#I  The Grigorchuk group on 4 generators
&lt;L-presented group on the generators [ a, b, c, d ]&gt;
gap&gt; NilpotentQuotient( G, 3 );
#I  Class 1: 3 generators with relative orders: [ 2, 2, 2 ]
#I  Class 2: 2 generators with relative orders: [ 2, 2 ]
#I  Class 3: 2 generators with relative orders: [ 2, 2 ]
Pcp-group with orders [ 2, 2, 2, 2, 2, 2, 2 ]
gap&gt; SetInfoLevel( InfoNQL, 2 );
gap&gt; NilpotentQuotient( G, 5 );
#I  Time spent for spinning algo:  0:00:00.004
#I  Class 4: 1 generators with relative orders: [ 2 ]
#I  Runtime for this step  0:00:00.028
#I  Time spent for spinning algo:  0:00:00.008
#I  Class 5: 2 generators with relative orders: [ 2, 2 ]
#I  Runtime for this step  0:00:00.036
Pcp-group with orders [ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2 ]
</pre>
<p>
<a name = "SSEC003.2"></a>
<li><code>InfoNQL_MAX_GENS </code>
<p>
this global variable sets the limit of generators whose relative order
will be shown on each step of the nilpotent quotient algorithm, if the
info-level of <code>InfoNQL</code> is positive.
<p>
<p>
[<a href = "chapters.htm">Up</a>] [<a href ="CHAP003.htm">Previous</a>] [<a href = "theindex.htm">Index</a>]
<P>
<address>NQL manual<br>November 2008
</address></body></html>