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 )
‣ 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).
‣ 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.
‣ 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.
‣ 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.
‣ 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.
‣ * ( g, h ) | ( function ) |
Returns the product of group elements which are defined with respect to a Mal'cev collector by the the function MalcevGElementByExponents.
‣ 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 ).
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 ]
generated by GAPDoc2HTML