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

3 Mal'cev collection
 3.1 The main functions
 3.2 An example application

3 Mal'cev collection

Let G be an infinite polycyclic group. It is well-known that there exist a normal T-group N and a T-group C such that H=CN is normal of finite index in G and H/N is free abelian of finite rank [Seg83]. 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 P going through the normal series 1 ≤ N ≤ H ≤ G. This polycyclic sequence P must be chosen as follows. Let (n_1,dots,n_l) be a Mal'cev basis of N and let (c_1N,dots,c_k N) be a basis for the free abelian group CN/N. Then (c_1,dots,c_k,n_1,dots,n_l) is a polycyclic sequence for H=CN. Further there exists f_1,dots, f_j ∈ G such that (f_1 H, dots, f_j H) is a polycyclic sequence for G/H. Now we set

P = (f_1,\dots,f_j, c_1, \dots , c_k, n_1, \dots, n_l )

3.1 The main functions

3.1-1 MalcevCollectorConstruction
‣ MalcevCollectorConstruction( G, inds, C, CC, N, NN )( function )

Returns a Mal'cev collector for the infinite polycyclically presented group G. The group G must be given with respect to a polycyclic sequence (g_1,dots,g_r, c_r+1, dots, c_r+s, n_r+s+1, dots, n_r+s+t) with the following properties:

The list inds is equal to [ [1,dots,r],[r+1,dots,r+s],[r+s+1,dots,r+s+t]]. The group CC is isomorphic to C via CC!.bijection and given by a polycyclic presentation with respect to a Mal'cev basis starting with c_r+1, dots, c_r+s. The group NN is isomorphic to N via NN!.bijection. and given by a polycyclic presentation with respect to the Mal'cev basis ( n_r+s+1, dots, n_r+s+t).

3.1-2 GUARANA.Tr_n_O1
‣ GUARANA.Tr_n_O1( n )( function )
‣ GUARANA.Tr_n_O2( n )( function )

for a positive integer n 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 n over the ring O_1, respectively O_2. The ring O_1, respectively O_2, is the maximal order of Q(θ_i) where θ_1, respectively θ_2, is a zero of the polynomial p_1(x) = x^2-3, respectively p_2(x)=x^3 -x^2 +4.

3.1-3 GUARANA.F_2c_Aut1
‣ GUARANA.F_2c_Aut1( c )( function )
‣ GUARANA.F_3c_Aut1( c )( function )

for a positive integer c 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 F_n,c be the free nilpotent of class c group on n generators. An automorphism φ of the free group F_n naturally induces an automorphism barφ of F_n,c. We use the automorphism φ_1 of F_2 which maps f_1 to f_2^-1 and f_2 to f_1 f_2^3 and the automorphism φ_2 of F_3 mapping f_1 to f_2^-1, f_2 to f_3^-1 and f_3 to f_2^-3f_1^-1 for our construction. The returned group F_2c_Aut1, respectively F_3c_Aut2, is isomorphic to the semidirect product ⟨ φ_1 ⟩ ⋉ F_2,c, respectively ⟨ φ_2 ⟩ ⋉ F_3,c.

3.1-4 MalcevGElementByExponents
‣ MalcevGElementByExponents( malCol, exps )( function )

For a Mal'cev collector malCol of a group G and an exponent vector exps with integer entries, this functions returns the group element of G, which has exponents exps with respect to the polycyclic sequence underlying malCol.

3.1-5 Random
‣ Random( malCol, range )( function )

For a Mal'cev collector malCol this function returns the output of MalcevGElementByExponents( malCol, exps ), where exps is an exponent vector whose entries are randomly chosen integers between -range and range.

3.1-6 *
‣ *( g, h )( function )

Returns the product of group elements which are defined with respect to a Mal'cev collector by the the function MalcevGElementByExponents.

3.1-7 GUARANA.AverageRuntimeCollec
‣ GUARANA.AverageRuntimeCollec( malCol, ranges, no )( function )

For a Mal'cev collector malCol, a list of positive integers ranges and a positive integer no this function computes for each number r in ranges the average runtime of no multiplications of two random elements of malCol of range r, as generated by Random( malCol, r ).

3.2 An example application

		gap> ll := GUARANA.Tr_n_O1( 3 );
		[ Pcp-group with orders [ 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0 ],
		  [ [ 1 .. 3 ], [ 4 .. 6 ], [ 7 .. 12 ] ],
		  Pcp-group with orders [ 0, 0, 0, 0, 0, 0 ],
		  Pcp-group with orders [ 0, 0, 0, 0, 0, 0 ],
		  Pcp-group with orders [ 0, 0, 0 ], Pcp-group with orders [ 0, 0, 0 ] ]
		gap> malCol := MalcevCollectorConstruction( ll );
		<<Malcev collector>>
		  F : [ 2, 2, 2 ]
		  C : <<Malcev object of dimension 3>>
		  N : <<Malcev object of dimension 6>>
		
		gap> exps_g := [ 1, 1, 1, -3, -2, 1, -2, -1, 0, 3, -1,3 ];
		[ 1, 1, 1, -3, -2, 1, -2, -1, 0, 3, -1, 3 ]
		gap> exps_h := [ 1, 0, 1, -1, 0, 2, 0, 4, -1, 5, 9,-5 ];
		[ 1, 0, 1, -1, 0, 2, 0, 4, -1, 5, 9, -5 ]
		gap> g := MalcevGElementByExponents( malCol, exps_g );
		[ 1, 1, 1, -3, -2, 1, -2, -1, 0, 3, -1, 3 ]
		gap> h := MalcevGElementByExponents( malCol, exps_h );
		[ 1, 0, 1, -1, 0, 2, 0, 4, -1, 5, 9, -5 ]
		
		gap> k := g*h;
		[ 0, 1, 0, -4, -2, 3, -7, 0, -37, -16, -352, -212 ]
				
		gap> Random( malCol, 10 );
		[ 0, 0, 1, 9, 5, 5, 2, -2, 7, -10, 7, -6 ]
		
		
 [Top of Book]  [Contents]   [Previous Chapter]   [Next Chapter] 
Goto Chapter: Top 1 2 3 4 Bib Ind

generated by GAPDoc2HTML