<p>Let <span class="SimpleMath">\(G\)</span> be an infinite polycyclic group. It is well-known that there exist a normal <span class="SimpleMath">\(T\)</span>-group <span class="SimpleMath">\(N\)</span> and a <span class="SimpleMath">\(T\)</span>-group <span class="SimpleMath">\(C\)</span> such that <span class="SimpleMath">\(H=CN\)</span> is normal of finite index in <span class="SimpleMath">\(G\)</span> and <span class="SimpleMath">\(H/N\)</span> is free abelian of finite rank <a href="chapBib_mj.html#biBSeg83">[Seg83]</a>. In this chapter we present an effective collection method for an infinite polycyclic group which is given by a polycyclic presentation with respect to a polycyclic sequence <span class="SimpleMath">\(P\)</span> going through the normal series <span class="SimpleMath">\(1 \le N \le H \le G\)</span>. This polycyclic sequence <span class="SimpleMath">\(P\)</span> must be chosen as follows. Let <span class="SimpleMath">\((n_1,\dots,n_l)\)</span> be a Mal'cev basis of <span class="SimpleMath">\(N\)</span> and let <span class="SimpleMath">\((c_1N,\dots,c_k N)\)</span> be a basis for the free abelian group <span class="SimpleMath">\(CN/N\)</span>. Then <span class="SimpleMath">\((c_1,\dots,c_k,n_1,\dots,n_l)\)</span> is a polycyclic sequence for <span class="SimpleMath">\(H=CN\)</span>. Further there exists <span class="SimpleMath">\(f_1,\dots, f_j \in G\)</span> such that <span class="SimpleMath">\((f_1 H, \dots, f_j H)\)</span> is a polycyclic sequence for <span class="SimpleMath">\(G/H\)</span>. Now we set</p>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ MalcevCollectorConstruction</code>( <var class="Arg">G</var>, <var class="Arg">inds</var>, <var class="Arg">C</var>, <var class="Arg">CC</var>, <var class="Arg">N</var>, <var class="Arg">NN</var> )</td><td class="tdright">( function )</td></tr></table></div>
<p>Returns a Mal'cev collector for the infinite polycyclically presented group <span class="SimpleMath">\(G\)</span>. The group <span class="SimpleMath">\(G\)</span> must be given with respect to a polycyclic sequence <span class="SimpleMath">\((g_1,\dots,g_r, c_{r+1}, \dots, c_{r+s}, n_{r+s+1}, \dots, n_{r+s+t})\)</span> with the following properties:</p>
<ul>
<li><p>(a) <span class="SimpleMath">\((n_{r+s+1}, \dots, n_{r+s+t})\)</span> is a Mal'cev basis for the <span class="SimpleMath">\(T\)</span>-group <span class="SimpleMath">\(N \leq G\)</span>,</p>
</li>
<li><p>(b) <span class="SimpleMath">\((c_{r+1}N, \dots, c_{r+s}N)\)</span> is a basis for the free-abelian group <span class="SimpleMath">\(CN/N\)</span> where <span class="SimpleMath">\(C \leq G\)</span> is a <span class="SimpleMath">\(T\)</span>-group generated by <span class="SimpleMath">\(c_{r+1}, \dots, c_{r+s}\)</span>,</p>
</li>
<li><p>(c) <span class="SimpleMath">\((g_1 CN, \dots, g_r CN)\)</span> is a polycyclic sequence for the finite group <span class="SimpleMath">\(G/CN\)</span>.</p>
</li>
</ul>
<p>The list <var class="Arg">inds</var> is equal to <span class="SimpleMath">\([ [1,\dots,r],[r+1,\dots,r+s],[r+s+1,\dots,r+s+t]]\)</span>. The group <span class="SimpleMath">\(CC\)</span> is isomorphic to <span class="SimpleMath">\(C\)</span> via <var class="Arg">CC</var>!.bijection and given by a polycyclic presentation with respect to a Mal'cev basis starting with <span class="SimpleMath">\(c_{r+1}, \dots, c_{r+s}\)</span>. The group <span class="SimpleMath">\(NN\)</span> is isomorphic to <span class="SimpleMath">\(N\)</span> via <var class="Arg">NN</var>!.bijection. and given by a polycyclic presentation with respect to the Mal'cev basis <span class="SimpleMath">\(( n_{r+s+1}, \dots, n_{r+s+t})\)</span>.</p>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ GUARANA.Tr_n_O1</code>( <var class="Arg">n</var> )</td><td class="tdright">( function )</td></tr></table></div>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ GUARANA.Tr_n_O2</code>( <var class="Arg">n</var> )</td><td class="tdright">( function )</td></tr></table></div>
<p>for a positive integer <var class="Arg">n</var> these functions construct polycyclically presented groups that can be used to test the Mal'cev collector. They return a list which can be used as input for the function MalcevCollectorConstruction. The constructed groups are isomorphic to triangular matrix groups of dimension <var class="Arg">n</var> over the ring <span class="SimpleMath">\(O_1\)</span>, respectively <span class="SimpleMath">\(O_2\)</span>. The ring <span class="SimpleMath">\(O_1\)</span>, respectively <span class="SimpleMath">\(O_2\)</span>, is the maximal order of <span class="SimpleMath">\(\Q(\theta_i)\)</span> where <span class="SimpleMath">\(\theta_1\)</span>, respectively <span class="SimpleMath">\(\theta_2\)</span>, is a zero of the polynomial <span class="SimpleMath">\(p_1(x) = x^2-3\)</span>, respectively <span class="SimpleMath">\(p_2(x)=x^3 -x^2 +4\)</span>.</p>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ GUARANA.F_2c_Aut1</code>( <var class="Arg">c</var> )</td><td class="tdright">( function )</td></tr></table></div>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ GUARANA.F_3c_Aut1</code>( <var class="Arg">c</var> )</td><td class="tdright">( function )</td></tr></table></div>
<p>for a positive integer <var class="Arg">c</var> these functions construct polycyclically presented groups that can be used to test the Mal'cev collector. They return a list which can be used as input for the function MalcevCollectorConstruction. These groups are constructed as follows: Let <span class="SimpleMath">\(F_{n,c}\)</span> be the free nilpotent of class <span class="SimpleMath">\(c\)</span> group on <span class="SimpleMath">\(n\)</span> generators. An automorphism <span class="SimpleMath">\(\varphi\)</span> of the free group <span class="SimpleMath">\(F_n\)</span> naturally induces an automorphism <span class="SimpleMath">\(\bar{\varphi}\)</span> of <span class="SimpleMath">\(F_{n,c}\)</span>. We use the automorphism <span class="SimpleMath">\(\varphi_1\)</span> of <span class="SimpleMath">\(F_2\)</span> which maps <span class="SimpleMath">\(f_1\)</span> to <span class="SimpleMath">\(f_2^{-1}\)</span> and <span class="SimpleMath">\(f_2\)</span> to <span class="SimpleMath">\(f_1 f_2^3\)</span> and the automorphism <span class="SimpleMath">\(\varphi_2\)</span> of <span class="SimpleMath">\(F_3\)</span> mapping <span class="SimpleMath">\(f_1\)</span> to <span class="SimpleMath">\(f_2^{-1}\)</span>, <span class="SimpleMath">\(f_2\)</span> to <span class="SimpleMath">\(f_3^{-1}\)</span> and <span class="SimpleMath">\(f_3\)</span> to <span class="SimpleMath">\(f_2^{-3}f_1^{-1}\)</span> for our construction. The returned group F_2c_Aut1, respectively F_3c_Aut2, is isomorphic to the semidirect product <span class="SimpleMath">\(\langle \varphi_1 \rangle \ltimes F_{2,c}\)</span>, respectively <span class="SimpleMath">\(\langle \varphi_2 \rangle \ltimes F_{3,c}\)</span>.</p>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ MalcevGElementByExponents</code>( <var class="Arg">malCol</var>, <var class="Arg">exps</var> )</td><td class="tdright">( function )</td></tr></table></div>
<p>For a Mal'cev collector <var class="Arg">malCol</var> of a group <span class="SimpleMath">\(G\)</span> and an exponent vector <var class="Arg">exps</var> with integer entries, this functions returns the group element of <span class="SimpleMath">\(G\)</span>, which has exponents <var class="Arg">exps</var> with respect to the polycyclic sequence underlying <var class="Arg">malCol</var>.</p>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ Random</code>( <var class="Arg">malCol</var>, <var class="Arg">range</var> )</td><td class="tdright">( function )</td></tr></table></div>
<p>For a Mal'cev collector <var class="Arg">malCol</var> this function returns the output of MalcevGElementByExponents( <var class="Arg">malCol</var>, <var class="Arg">exps</var> ), where <var class="Arg">exps</var> is an exponent vector whose entries are randomly chosen integers between -<var class="Arg">range</var> and <var class="Arg">range</var>.</p>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ *</code>( <var class="Arg">g</var>, <var class="Arg">h</var> )</td><td class="tdright">( function )</td></tr></table></div>
<p>Returns the product of group elements which are defined with respect to a Mal'cev collector by the the function MalcevGElementByExponents.</p>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ GUARANA.AverageRuntimeCollec</code>( <var class="Arg">malCol</var>, <var class="Arg">ranges</var>, <var class="Arg">no</var> )</td><td class="tdright">( function )</td></tr></table></div>
<p>For a Mal'cev collector <var class="Arg">malCol</var>, a list of positive integers <var class="Arg">ranges</var> and a positive integer <var class="Arg">no</var> this function computes for each number <var class="Arg">r</var> in <var class="Arg">ranges</var> the average runtime of <var class="Arg">no</var> multiplications of two random elements of <var class="Arg">malCol</var> of range <var class="Arg">r</var>, as generated by Random( <var class="Arg">malCol</var>, <var class="Arg">r</var> ).</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 und die Messung sind noch experimentell.