Goto Chapter: Top 1 2 3 4 Bib Ind

### 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 le N le H le 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:

• (a) (n_r+s+1, dots, n_r+s+t) is a Mal'cev basis for the T-group N ≤ G,

• (b) (c_r+1N, dots, c_r+sN) is a basis for the free-abelian group CN/N where C ≤ G is a T-group generated by c_r+1, dots, c_r+s,

• (c) (g_1 CN, dots, g_r CN) is a polycyclic sequence for the finite group G/CN.

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 ]

```
Goto Chapter: Top 1 2 3 4 Bib Ind

generated by GAPDoc2HTML