RAAG Package to Compute a Presentation for the Automorphism Groups of the Right-Angled Artin Groups

Let GΓ be a right-angled Artin group and Aut(GΓ) be an automorphism group of GΓ. We have constructed a package RAAG (Finite Presentations of Automorphism Groups of rightangled Artin groups Algorithm) package, a GAP package for computation of a finite presentation for the automorphism group of a right-angled Artin group Aut(GΓ). This package RAAG mainly installs new method to provide a finite presentation for Aut (GΓ).


Introduction
Right-angled Artin groups (RAAG) have drawn much attention in geometric group theory, because of their rich subgroup structure and good algorithmic properties.These groups act on cubical complexes and have a variety of useful applications (see [3], [4], [9], [10] and [11] for example) In recent times, the study of automorphism groups of right-angled Artin groups has been of great interest.We denote by Aut (G Γ ) the automorphism group of a group G.We will use Γ to denote a finite simplicial graph (simple graph).We will write that V = V(Γ) = {x 1 , x 2 , …, x n } (n ≥1) for the finite set of vertices and E = E(Γ) ⊂ V × V for the set of edges, viewed as unordered pairs of vertices.The requirement that Γ be simplicial simply means that the diagonal of V × V is excluded from the set of edges.The right-angled Artin group is the group defined by presentation where the relations are R Γ = {[ x i , x j ] │ x i , x j ∈ V and { x i , x j } ∈ E} Where [x i , x j ] = x i −1 x j −1 x i x j and ( x i and x j are adjacent if there exists an edge e ∈ E with e = { x i , x j }).
GAP (Groups, Algorithms, Programming) System: is a system for computational discrete algebra, with particular emphasis on Computational Group Theory.GAP provides a programming language, a library of thousands of functions implementing algebraic algorithms written in the GAP language as well as large data libraries of algebraic objects.

Preliminaries
Let Γ be a finite graph and let G = G Γ be the corresponding right-angled Artin group.Let L = V ∪ V −1 for x ∈ L, we define v(x) ∈ V the vertex of x, to be the unique element of V ∩ {x, x .We define the length of an element g of G Γ to be the length of any graphically reduced word representing g.

Automorphisms of RAAG
In this section we shall give the Laurence-Servatius generators and the definition of Whitehead automorphisms for RAAG.Some other definitions and concepts that are important in our study will be given.and fixes all generators not equal to v(y).An elementary transvection T x ,y determines an automorphism of G Γ (see [12], [14]).For y ∈ V, if x 1 , x 2 , …, x r are such that ℓk(x i ) ⊆ st(y) , let D = {x 1 , x 2 , …,x r } and we define the transvection as τ D,y = τ x 1 ,y ∘ τ x 2 ,y …∘ τ x r ,y .

Partial Conjugations:
An automorphism C x ,y , for x ∈ L and Y a non-empty union of connected components of Γ\st(x), that maps each y ∈ Y to x −1 yx and fixes all generators not in Y is called a partial conjugation.The set Conj(G Γ ) = Conj of all partial conjugations forms a subgroup of G Γ .Every partial conjugation determines an automorphism of G Γ [12], [14]).In particular if Y = Γ\st(x), then C x ,y is the inner automorphism γ sending u to u x for all x ∈V.

Inversions:
For x ∈ v the inversion τ X of x is the map that sends x → x −1 and fixes all other generators.i.e., inversions send a standard generator of G Γ to its inverse.Every inversion determines an automorphism of G Γ ( [12], [14]).

Graphic Automorphisms:
For π an automorphism of the graph Γ, the graphic automorphism of G Γ is determined by π is the map that sends x → π(x) for each generator x ∈ X.Every graphic automorphism is an automorphism of G Γ ( [12], [14]) and the set of all graphic automorphisms of Aut(G Γ ) is denoted Aut Γ (G).
Definition3. 1 We define two types of generators for the right-angled Artin groups as follows: Type (1) = graphic automorphisms.

Finite Presentation for Aut(𝐆 𝚪 )
Day has defined the set of relations R in Theorem 3.3 (see [6]).We use function composition order and automorphisms act on the left with sets.We have modified the relations (R5) and then Γ will be represented as ).The output of AutGrpOfRAAG(V,E) consists of two sets gens and rels, where gens is the list of the Whitehead generators of Aut(G Γ ) defined in Section 3: and rels is the list of the relators R. Now we will describe all the functions available from the RAAG package as follows:

StarLink(V, E) Function
The algorithm carries out the following instructions: (i) For all vertices v the list of edges of Γ is read to find those edges adjacent to v and the end points of these edges are added to Lk(v).Then St(v) = Lk(v)∪ {v}.
(ii) For all vertices v the list star St(v) is read and for all vertices u, ℓk(u) is read to find those links ℓk(u) which are subsets of St(v).These u's are less than v; if u ≤ v then u is added to the list Y(v).
(iii) Make a list YY consisting of sets Y(v), for v in V.
For example:

Deletevertices (St, sV, M, V, E) Function
The algorithm carries out the following instructions: For example:

Conncomp(E) Function
The algorithm carries out the following instructions: (i) Construct the weight matrix W a matrix of size sV ×sV with entries 0 or 1.There is a 1 in position i-j if there is an edge joining i to j and a 0 otherwise.(ix) Compute the list T with i th entry A i , where A i is the name of the i th element of A.
(iv) GGG:= F/rels: is the automorphism group Aut(G Γ ) of G Γ given as a finite presentation group with generators gens and relators rels.

2 . 1 .
−1 }.Hence, e ={x, y} = {v(x), v(y)} for each x, y ∈ L. The star of x denoted by st(x) is a set of all the vertices that are connected directly to x by an edge, as well as the vertex x.The inverse of the star of x denoted by () −1 is the set of inverses of elements of st(x).The link of denoted by ℓk(x) is st(x)\{x}, and the inverse of the link of x denoted by ℓ() −1 is the set of inverses of elements of ℓk(x).We set   (x) = st(x) ∪ st(x)−1 and ℓ  (x) = ℓk (x) ∪ ℓk(x) −1 .A word in L is a finite sequence of elements of L and every word in L represents an element of G Γ .By a cyclic word w we mean the set consisting of w and all cyclic permutations of the sequence of letters of w.For example, xyy is a word and the corresponding cyclic word is {xyy, yyx, yxy} Definition For an element g of G Γ the support of g is supp(g) = supp(v) where v is a reduced word representing g.The support supp(w) of a k-tuple W = (w 1 , w 2 , …, w k ) of conjugacy classes is ⋃ supp(w i ) k i=1 generators are defined as follows 1.Transvections: For x,y ∈ L with x ≥ y and v(x) ≠ v(y), the elementary transvection T x ,y is the map that sends y → y x

Type ( 2 )Definition3. 2 Theorem3. 3 . [ 6 ]
= mathrm transvections, partial conjugations, inversions.Let Ω = {type(1) generators, type(2) generators} be the set of Laurence-Servatius generators (LS generators) of G Γ .In fact, in our work here Ω it will be the set of all Whitehead automorphisms of G Γ .So a Whitehead automorphism is an element α ∈ Aut(G Γ ) the two types automorphisms which are defined above.Graphic automorphisms, partial conjugations α c,x and transvections τ D,y such that y ∉ D are called long-range and the set of all long range elements of Ω is denoted Ω ℓ .τ D,y such that [y, x] = 1for all x ∈ D is short-range and the set of all short range elements of Ω is denoted Ω s .For any graph Γ the group Aut(G Γ ) is finitely presented.Specifically, there is a finite set R of relations among the Whitehead automorphisms Ω such that Aut(G Γ ) = ˂ Ω , R ˃.

(
R6) of Days definition as follows : (R5) (Aa + a −1 ,b)(A, a) = (Ab + a −1 , a) τ b (a, b).where τ b ∈ I and (a , b) is the graphic automorphism transposing a and b; with (A , a) ∈ Ω, b ∈ A, b −1 ∉ A, b ≠ a, b ~ a. (R6) There are two types of R6 relation which are, (R6a) τ x (A, a)τ x −1 = (τ x (A), τ x (a)), where τ x ∈ I., and (R6b) ϕ(A, a)ϕ −1 = (ϕ(A), ϕ(a)) , where ϕ ∈ Aut(G Γ ). 4. GAP Presentation for the Aut(  ) This section describes the RAAG Finite Presentations of Automorphism Groups of right-angled Artin groups Algorithm package, a GAP package that we constructed for computation of a finite presentation for the automorphism group of a right-angled Artin group Aut(G Γ ).This package RAAG mainly installs new method to provide a finite presentation for the automorphism group of G Γ .This process can be useful for the GAP users in that it can compute other values which may be beneficial in many ways.These are the star st(v) and the link ℓk(v) for each vertex v of V, the list Y(v) of those vertices u in V such that u is less than v, the subgraphs Γ\st(v), the connected components of the graph, a presentation (V|R) for the Vol: 13 No:3 , July 2017 DOI : http://dx.doi.org/10.24237/djps.1303.306AP-ISSN: 2222-8373 E-ISSN: 2518-9255 automorphisms group of G Γ , compute the F(x)/≪R≫ a finitely group on the generators.In addition, it allows to find the Tietze transformations of a copy of the presentation of the given finitely presented group G Γ by using a GAP function.To write an algorithm to produce this presentation first we find Ω the Whitehead generators set of this group based on Laurence's generators as defined in Section 3.1 and then find the set of relations (R) as defined in Section 3.2.The input of the main function AutGrpOfRAAG(V, E) of the package RAAG is a simple graph Γ = (V, E).A graph with vertex set V of size n always has vertices {1, …, n} and E is a list of pairs of elements of V.For example if Γ is a simple graph with vertex set V = {x 1 , x 2 , x 3 } and edge set E ={[x 1 , x 2 ], [x 1 , x 3 ], [x 2 , x 3 ]} (where [x, y] denotes an edge joining x to y)

Vol: 13
No:3 , July 2017 DOI : http://dx.doi.org/10.24237/djps.1303.306AP-ISSN: 2222-8373 E-ISSN: 2518-9255 (i) For each vertex v of Γ, edges of Γ not adjacent to any vertex of St(v) are put in a list H1.Vertices incident to edges in H1 are put in a list H2. ( Really these are H1(v) and H2(v)).[Then (H1, H2) is a graph].(ii) Append H1 to a list NE and H2 to a list NV. (iv) Set sNV to the size of NV and sNE to the size of NE. (v) Return [NV, NE, sNV, sNE].

( 4 . 5
ii) Call the function dfs-visit to find the connected components of the graph B. Construct a list Comps of connected components of B. (iii) Compute a list D, the  ℎ entry of which is a list of the vertices of the  ℎ component of B. (iv) At the same time it calculates the sizes sComps and sD of the lists Comps and D respectively.(v) Return [Comps, D, sD, sComps].For example: gap> Conncomp( [ [1, 2], [2, 3], [4, 5] ] ); [ [ [1, 2, 3, -1, -2, -3 ], [4, 5, -4, -5 ] ], [1, 2, 3, 4, 5] , 5, 2 ]4.4 dfs-visit( i, W, sV, count, color ) Function The input to dfs-visit is a vertex i of graph B, the weight matrix W of B, the size sV of the vertex list of the graph B, an index count, corresponding to a connected component of B and a list color.The  ℎ item of color is the (number of the) component of B to which the s th vertex of B belongs (or is zero if has not yet been processed).The function implements the Vol: 13 No:3 , July 2017 DOI : http://dx.doi.org/10.24237/djps.1303.306AP-ISSN: 2222-8373 E-ISSN: 2518-9255 depth search algorithm to construct the connected components (having more than one vertex) of the graph B. On input a vertex i with count j > 0, the algorithm checks to see if there is a vertex s, joined to i by an edge, with color[s] = 0. On finding such an s the algorithm sets color[s] = count and calls itself with input (s, W, sV, count, color).Second type of generators (NV, NE, St, YY) Function The algorithm carries out the following instructions: (i) For element NV(v) of NV the function Conncomp is called to give a list of connected components of Γ\St(v) = (NV(v), NE(v)).(ii) Construct a list DYY with entries YY(v) ∪(-YY(v)), for all v in V. (iii) Call the function union-element to construct a list called Ls of all subsets of St(v) ∪ YY(v) ∪ (-YY(v)).(iv) Delete all empty sets from the list Ls. (v) Make a list L3 with entries the lists Ls. (vi) For each list Ls in L3 add Ls ∪ {v} to a new list L4. (vii) For each element S of L4 add (S\{v}) ∪{-v } to a new list L5. (viii) Make a new list A by concatenating L4 and L5.The elements of list A are the definitions of type(2) Whitehead automorphisms of the generators of the presentation of Aut(G Γ ).

(
iv) Find a finite presentation of a finitely presented group KK isomorphic to HH, by using the function KK:= IsomorphismFpGroup(HH) and then replace HH by KK. (v) Compute the set of generators of the group of graph automorphisms, by using the function NJK:= GeneratorsOfGroup(HHH) where (HHH:= Image(KK)) with its size sF.Compute set rels2 of relators of Aut Γ (G Γ ) by using the function rels2:=RelatorsOfFpGroup(HHH) where HHH is defined as in (v) with its size srels2.(vii) Create a list Gens3 of the generators of Aut Γ(G Γ) after rewriting them as a string to make them compatible with the other generators.(viii) Compute list of the definitions relvalofF of the generators Gens3 of Aut Γ(G Γ) by using the function relvalofF:= GeneratorsOfGroup(HH), with it size srelvaloF.(ix) Call the GAP function ExtRepOfObj with input the list of relators rels2 defined above, to give output a list of symbolic expressions Rels1 of elements of rels2 that can be reused later on, with its size sRels1.For example the symbolic expression for (f5*f4*f5 −1 *f4 −1 ) is the list [ 5, 1, 4, 1, 5, -1, 4, -1 ] with entries the indices and the powers of the generators, which we call a symbolic expression of the word f5*f4*f5 −1 *f4 −1 .In general the symbolic expression for a word w has its  ℎ pair of entries equal to n, ϵ if the  ℎ letter of w is    , where ϵ ∈{Z}.ExtRepOfObj(w) outputs the symbolic expression of w. (x) Make a list, called I1, of type(1) Whitehead automorphisms which send a generator to its inverse.(xi) Concatenate the lists Gens3 and I1 of type(1) Whitehead automorphisms in a new list called Gens2, after rewriting them as a string to make them compatible with the other generators and then find sGens2, the size of Gens2.(xii) Concatenate the two lists Gens2 and Gens3 in a one list called Gens, which represents all type(1) Whitehead automorphisms.The list Gens is the second part of the generators of the automorphism group Aut(G Γ ) of G Γ .(xiii) Concatenate the two lists T and Gens2 in a one list called genss and find its size.The list genss helps to form the relations later.(xiv) Compute set of the generators gens of Aut(G Γ ) , by concatenating the two lists T and Gens.Also find the size sgens of the list of generators.(xv) Return [gens, sgens, sgenss, Gens3, relvalofF, srelvalofF, Rels1, sRels1,sGens2].

( 2 )( 3 )
and 1 ≤ n i .If p = 0 or 1 then the sequence R corresponds to the word W R = ((A n 1 ϵ 1 ) P+1 * ... * (A n k ϵ k ) P+1 ) and R is called the index of W R .For example relators of type (R1) have form (A,a) * (A-a+a −1 , a −1 ) = 1 and have indices of form [ 0, idx1,idx2 ] where idx1 = (A, a) and idx2 = (A-a+a −1 , a −1 ) .Sequences with p = 1 occur only in section 4.7(i) below.If p =2 then the sequence R corresponds to a relator of type (R5).These have the form W R = 1 where W R = (Aa + a −1 , b) * ( A, a ) * σ a ,b * (A − b + b −1 , a) −1 and the corresponding sequence is [ 2, idx1, idx2, -idx3, idx4, a, b, a ] where, idx1 = (Aa + a −1 , b), idx2 = (A, a), idx3 = (A − b + b −1 , a) −1 .In this case R is called the index of W R .One type of graph isomorphisms of Γ is an inversion, g x : x ∈ V( Γ ) given by g x (x) = x −1 and g y (y) = y for each y ∈ V(Γ)\{x}.All inversions are type(1) Whitehead automorphisms.The subgroup < (g x : x ∈ V(Γ)> is denoted I.The inversions satisfy the relations of the form: R11={ g x 2 = 1: x ∈V( Γ) } 4.7 Relgraut( sA, sgenss,relval of F,srelval of F,sV,sGens2) The inputs of the function Relgraut are the size sA of the list A of definition of the second Vol: 13 No:3 , July 2017 DOI : http://dx.doi.org/10.24237/djps.1303.306AP-ISSN: 2222-8373 E-ISSN: 2518-9255 type of generator, the size of the list genss defined above which is called sgenss, the list of generators of the graph automorphism relvalofF from above, with sizes srelvalofF, sV, and sGens2 of lists relvalofF, V, and Gens2.Compute the row matrix of indices Rels of the generators which forms the relations of this type, that related to the graph automorphism with its size sRels.The algorithm carries out the following instructions: (i) Loop through the list Gens2 to form the relations R11 above by computing the row matrix of indices [1, i] of each relation of type R11 and add it to the list Rels.(ii) Loop through the list Gens2 to form the relation R6 of type [A i , A j ] = 1, where i, j in [ sA+1 .. sgenss ] with i≠j, by computing the row matrix of indices [ 0, -i, -j, i, j ] of each relation of type R6 and add it to the list Rels.(iii) Construct the list FF, consisting of elements of the list relvalofF and their inverses.(iv) Apply the function PP to (i, σ) to return the value σ (i) for each i in the list of vertices {1, …, n} and σ in the list FF above.Using these values form the relations R7: that is compute the row matrix of indices [ 0, idx1, idx2, idx1, idx3 ], for each such relation, and add it to the list Rels.(v) Return [ Rels, sRels].For example: gap> Relgraut( 28, 31, [ (1, 3) ], 1, 3, 3); [ [ [ 1, 29 ], [ 1, 30 ], [ 1, 31], [ 0, -29, -30, 29, 30],[ 0,-29, -31, 29, 31], [ 0, -30, -29, 30, 29 ], [ 0, -30, -31, 30, 31 ], [ 0, -31, -29, 31, 29 ], [ 0, -31, -30, 31, 30 ], [ 0, -32, 29, 32, 31 ], [ 0, -32, 30, 32, 30 ], [ 0, -32, 31, 32, 29 ] ], 12 ] 4.8 RelationR1( sV, A, sA, T, Rels ) Function The inputs of the function RelationR1 are the size of the list of vertices sV, the list A defined earlier, the size of the list A, the list of generators T from 4.5(ix), and the list of row matrices of indices of the generators Rels.It computes the list of indices [0, idx1, idx2] of relators of type (R1) and adds them to the list Rels.In addition it calculates the size of the list Rels.It returns [ Rels, sRels ].For example: gap> RelationR1( sV, A, sA, T , [] ); 1, 2 ], [ 0, 3, 4 ], [ 0, 5, 6 ], [ 0, 7, 8 ], [ 0, 9, 10 ], [ 0, 11, 12 ], [ 0, 13, 14 ], [ 0, 15, 16 ], [ 0, 17, 18 ], [ 0, 19, 20 ], [ 0, 21, 22 ], [ 0, 23, 24 ], [ 0, 25, 26 ], [ 0, 27, 28 ] ], 14 ] 4.9 Relation R2(sV, A, sA, T, Rels, St) Function The inputs of the function RelationR2 are the size of the list of vertices sV, the list A is defined earlier, the size of the list A, list of the generators T of Aut(G Γ ) 4.5(ix), the list of row matrix of the indices of the generators Rels, and the list of stars St.It computes the list of indices of the generators [ 0, idx1, idx2, -idx3 ] of relators of type (R2) and adds them to the list Rels.In addition it calculates the size of the list Rels.It returns [ Rels, sRels ]. 4.10 Relation R3( sV, A, sA, T, Lk, Rels ) Function The inputs of the function RelationR3 are the size of the list of vertices sV, the list A is defined earlier, the size of the list A, the list of the generators T of Aut(G Γ ) .4.5(ix), the list of links Lk, and the list of row matrix of the indices of the generators Rels.It computes the list of the indices [ 0, idx1, idx2, -idx1, -idx2 ] of relators of type (R3) and (R3a) and adds them to the list Rels.In addition it calculates the size of the list Rels.It returns [ Rels, sRels ]. 4.11 Relation R4( sV, A, sA, T, Lk, Rels ) Function The inputs of the function RelationR4 are the size of the list of vertices sV, the list A is defined earlier, the size of the list A, the list of the generators T of Aut(G Γ ) from 4.5(ix), the list of links Lk, and the list of row matrix of the indices of the generators Rels.It compute the list of indices [ 0, idx1, idx2, -idx1, -idx3, -idx2 ] of relators of type (R4) and (R4a) and adds them to the list Rels.In addition it calculates the size of the list Rels.It returns [ Rels, sRels ]. 4.12 Relation R5( sV, A, sA, St, Lk, Rels, T) Function The inputs of the function RelationR5 are the size of the list of vertices sV, the list A is defined earlier, the size of the list A, the list of stars St, the list of links Lk, the list of row matrix of the indices of the generators Rels, and the list of the generators T of Aut(G Γ ) from 4.5(ix).It computes the list of indices [ 2, idx1, idx2, -idx3, idx4, j, k, j ] of relators of type (R5) where 2 means that the idx4 refers to the location of A's (which are start at sA+1 and end at sA + sGens2), j and k refer to the vertex or its inverse, and adds them to the list Rels.In addition it calculates the sizes of the list Rels.It returns [ Rels, sRels ].R8( V, sV, A, sA, T, Lk, Rels ) Function The inputs of the function RelationR8 are the list of vertices V, the size of the list of vertices sV, the list A is defined earlier, the size of the list A, the list of the generators T of Aut(G Γ ) from 4.5(ix), the list of links Lk, and the list of row matrix of the indices of the generators Rels.It computes the lists of indices [ 0, idx1, -idx2, -idx3 ], [ 0, idx1, -idx2 ], and [ 0, idx1] of relators of type (R8) and adds them to the list Rels.In addition it calculates the sizes of the list Rels.It returns [ Rels, sRels ]. 4.14 Relation R9( V, sV, A, sA, T, Lk, Rels) Function The inputs of the function RelationR9 are the list of vertices V, the size of the list of vertices sV, the list A is defined earlier, the size of the list A, the list of the generators T of Aut(G Γ ) from 4.5(ix), the list of links Lk, and the list of row matrix of the indices of the generators Rels.It computes the list of indices [ 0, idx1, idx2, -idx1, -idx2 ] of relators of type (R9) and adds them to the list Rels.In addition it calculates the sizes of the list Rels.It returns [ Rels, sRels ]. 4.14 Relation R10( V, sV, A, sA, T, Lk, Rels) Function The inputs of the function RelationR10 are the list of vertices V, the size of the list of vertices sV, the list A is defined earlier, the size of the list A, the list of the generators T of Aut(G Γ ) from 4.5(ix), the list of links Lk, the list of row matrix of the indices of the generators Rels.It computes the list of indices [ 0, idx1, idx2, -idx1, -idx2, -idx3 ] of relators of type (R10) and adds them to the list Rels.In addition it calculates the sizes of the list Rels.It returns [ Rels, sRels ]. 4.15 Final return( gens, Rels, sRels, sRels1, Rels1, sgenss ) Function of the relators Rels, its size sRels, the list of the matrices indices of the relators Rels, and it size sRels1.It forms the list of relations rels from the list Rels (computed in the functions Relgraut, RelationR1, RelationR2, ... , RelationR10).For each index R of one of these lists the relator W R is added to rels.It also forms the list of relations rels1 from the list Rels1 (computed in the functions firsttypeofgenerators) and adds them to the list rels1, and then adds it to the list of relations rels.At the same time it computes the sizes of rels and rels1.It Vol: 13 No:3 , July 2017 DOI : http://dx.doi.org/10.24237/djps.1303.306AP-ISSN: 2222-8373 E-ISSN: 2518-9255 computes the free group F on gens defined in 4.6(xiv).Also it computes the finitely presented group GGG = F/rels where F is the free group on the generators gens defined in 5.3.6(xiv) and rels is the list of relations which are defined on the generators gens.Finally, it returns the final return of our algorithm which is [ F, gens, rels, GGG, sgens, srels ].In fact this function forms the output of the main function AutGrpOfRAAG in our package RAAG.4.16 AutGrp of RAAG( V, E ) Function The function AutGrpOfRAAG is the main function in our algorithm.The input of this function is a simple graph Γ = (V,E), where V and E represent the set of vertices and the set of edges respectively.It returns [ F, gens, rels, GGG, sgens, srels ], where (i) F: is a free group on sgens generators.