Right-Angled Artin Groups¶
A right-angled Artin group (often abbreviated as RAAG) is a group which has a presentation whose only relations are commutators between generators. These are also known as graph groups, since they are (uniquely) encoded by (simple) graphs, or partially commutative groups.
AUTHORS:
- Travis Scrimshaw (2013-09-01): Initial version 
- Travis Scrimshaw (2018-02-05): Made compatible with - ArtinGroup
- class sage.groups.raag.CohomologyRAAG(R, A)[source]¶
- Bases: - CombinatorialFreeModule- The cohomology ring of a right-angled Artin group. - The cohomology ring of a right-angled Artin group \(A\), defined by the graph \(G\), with coefficients in a field \(F\) is isomorphic to the exterior algebra of \(F^N\), where \(N\) is the number of vertices in \(G\), modulo the quadratic relations \(e_i \wedge e_j = 0\) if and only if \((i, j)\) is an edge in \(G\). This algebra is sometimes also known as the Cartier-Foata algebra. - REFERENCES: - class Element[source]¶
- Bases: - CohomologyRAAGElement- An element in the cohomology ring of a right-angled Artin group. 
 - algebra_generators()[source]¶
- Return the algebra generators of - self.- EXAMPLES: - sage: C4 = graphs.CycleGraph(4) sage: A = groups.misc.RightAngledArtin(C4) sage: H = A.cohomology() sage: H.algebra_generators() Finite family {0: e0, 1: e1, 2: e2, 3: e3} - >>> from sage.all import * >>> C4 = graphs.CycleGraph(Integer(4)) >>> A = groups.misc.RightAngledArtin(C4) >>> H = A.cohomology() >>> H.algebra_generators() Finite family {0: e0, 1: e1, 2: e2, 3: e3} 
 - degree_on_basis(I)[source]¶
- Return the degree on the basis element - clique.- EXAMPLES: - sage: C4 = graphs.CycleGraph(4) sage: A = groups.misc.RightAngledArtin(C4) sage: H = A.cohomology() sage: sorted([H.degree_on_basis(I) for I in H.basis().keys()]) [0, 1, 1, 1, 1, 2, 2] - >>> from sage.all import * >>> C4 = graphs.CycleGraph(Integer(4)) >>> A = groups.misc.RightAngledArtin(C4) >>> H = A.cohomology() >>> sorted([H.degree_on_basis(I) for I in H.basis().keys()]) [0, 1, 1, 1, 1, 2, 2] 
 - gen(i)[source]¶
- Return the - i-th standard generator of the algebra- self.- This corresponds to the - i-th vertex in the graph (under a fixed ordering of the vertices).- EXAMPLES: - sage: C4 = graphs.CycleGraph(4) sage: A = groups.misc.RightAngledArtin(C4) sage: H = A.cohomology() sage: H.gen(0) e0 sage: H.gen(1) e1 - >>> from sage.all import * >>> C4 = graphs.CycleGraph(Integer(4)) >>> A = groups.misc.RightAngledArtin(C4) >>> H = A.cohomology() >>> H.gen(Integer(0)) e0 >>> H.gen(Integer(1)) e1 
 - gens()[source]¶
- Return the generators of - self(as an algebra).- EXAMPLES: - sage: C4 = graphs.CycleGraph(4) sage: A = groups.misc.RightAngledArtin(C4) sage: H = A.cohomology() sage: H.gens() (e0, e1, e2, e3) - >>> from sage.all import * >>> C4 = graphs.CycleGraph(Integer(4)) >>> A = groups.misc.RightAngledArtin(C4) >>> H = A.cohomology() >>> H.gens() (e0, e1, e2, e3) 
 - ngens()[source]¶
- Return the number of algebra generators of - self.- EXAMPLES: - sage: C4 = graphs.CycleGraph(4) sage: A = groups.misc.RightAngledArtin(C4) sage: H = A.cohomology() sage: H.ngens() 4 - >>> from sage.all import * >>> C4 = graphs.CycleGraph(Integer(4)) >>> A = groups.misc.RightAngledArtin(C4) >>> H = A.cohomology() >>> H.ngens() 4 
 - one_basis()[source]¶
- Return the basis element indexing \(1\) of - self.- EXAMPLES: - sage: C4 = graphs.CycleGraph(4) sage: A = groups.misc.RightAngledArtin(C4) sage: H = A.cohomology() sage: H.one_basis() () - >>> from sage.all import * >>> C4 = graphs.CycleGraph(Integer(4)) >>> A = groups.misc.RightAngledArtin(C4) >>> H = A.cohomology() >>> H.one_basis() () 
 
- class sage.groups.raag.RightAngledArtinGroup(G, names)[source]¶
- Bases: - ArtinGroup- The right-angled Artin group defined by a graph \(G\). - Let \(\Gamma = \{V(\Gamma), E(\Gamma)\}\) be a simple graph. A right-angled Artin group (commonly abbreviated as RAAG) is the group \[A_{\Gamma} = \langle g_v : v \in V(\Gamma) \mid [g_u, g_v] \text{ if } \{u, v\} \notin E(\Gamma) \rangle.\]- These are sometimes known as graph groups or partially commutative groups. This RAAG’s contains both free groups, given by the complete graphs, and free abelian groups, given by disjoint vertices. - Warning - This is the opposite convention of some papers. - Right-angled Artin groups contain many remarkable properties and have a very rich structure despite their simple presentation. Here are some known facts: - The word problem is solvable. 
- They are known to be rigid; that is for any finite simple graphs \(\Delta\) and \(\Gamma\), we have \(A_{\Delta} \cong A_{\Gamma}\) if and only if \(\Delta \cong \Gamma\) [Dro1987]. 
- They embed as a finite index subgroup of a right-angled Coxeter group (which is the same definition as above except with the additional relations \(g_v^2 = 1\) for all \(v \in V(\Gamma)\)). 
- In [BB1997], it was shown they contain subgroups that satisfy the property \(FP_2\) but are not finitely presented by considering the kernel of \(\phi : A_{\Gamma} \to \ZZ\) by \(g_v \mapsto 1\) (i.e. words of exponent sum 0). 
- \(A_{\Gamma}\) has a finite \(K(\pi, 1)\) space. 
- \(A_{\Gamma}\) acts freely and cocompactly on a finite dimensional \(CAT(0)\) space, and so it is biautomatic. 
- Given an Artin group \(B\) with generators \(s_i\), then any subgroup generated by a collection of \(v_i = s_i^{k_i}\) where \(k_i \geq 2\) is a RAAG where \([v_i, v_j] = 1\) if and only if \([s_i, s_j] = 1\) [CP2001]. 
 - The normal forms for RAAG’s in Sage are those described in [VW1994] and gathers commuting groups together. - INPUT: - G– a graph
- names– string or list of generator names
 - EXAMPLES: - sage: Gamma = Graph(4) sage: G = RightAngledArtinGroup(Gamma) sage: a,b,c,d = G.gens() sage: a*c*d^4*a^-3*b v0^-2*v1*v2*v3^4 sage: Gamma = graphs.CompleteGraph(4) sage: G = RightAngledArtinGroup(Gamma) sage: a,b,c,d = G.gens() sage: a*c*d^4*a^-3*b v0*v2*v3^4*v0^-3*v1 sage: Gamma = graphs.CycleGraph(5) sage: G = RightAngledArtinGroup(Gamma) sage: G Right-angled Artin group of Cycle graph sage: a,b,c,d,e = G.gens() sage: d*b*a*d v1*v3^2*v0 sage: e^-1*c*b*e*b^-1*c^-4 v2^-3 - >>> from sage.all import * >>> Gamma = Graph(Integer(4)) >>> G = RightAngledArtinGroup(Gamma) >>> a,b,c,d = G.gens() >>> a*c*d**Integer(4)*a**-Integer(3)*b v0^-2*v1*v2*v3^4 >>> Gamma = graphs.CompleteGraph(Integer(4)) >>> G = RightAngledArtinGroup(Gamma) >>> a,b,c,d = G.gens() >>> a*c*d**Integer(4)*a**-Integer(3)*b v0*v2*v3^4*v0^-3*v1 >>> Gamma = graphs.CycleGraph(Integer(5)) >>> G = RightAngledArtinGroup(Gamma) >>> G Right-angled Artin group of Cycle graph >>> a,b,c,d,e = G.gens() >>> d*b*a*d v1*v3^2*v0 >>> e**-Integer(1)*c*b*e*b**-Integer(1)*c**-Integer(4) v2^-3 - We create the previous example but with different variable names: - sage: G.<a,b,c,d,e> = RightAngledArtinGroup(Gamma) sage: G Right-angled Artin group of Cycle graph sage: d*b*a*d b*d^2*a sage: e^-1*c*b*e*b^-1*c^-4 c^-3 - >>> from sage.all import * >>> G = RightAngledArtinGroup(Gamma, names=('a', 'b', 'c', 'd', 'e',)); (a, b, c, d, e,) = G._first_ngens(5) >>> G Right-angled Artin group of Cycle graph >>> d*b*a*d b*d^2*a >>> e**-Integer(1)*c*b*e*b**-Integer(1)*c**-Integer(4) c^-3 - REFERENCES: - class Element(parent, lst)[source]¶
- Bases: - ArtinGroupElement- An element of a right-angled Artin group (RAAG). - Elements of RAAGs are modeled as lists of pairs - [i, p]where- iis the index of a vertex in the defining graph (with some fixed order of the vertices) and- pis the power.
 - cohomology(F=None)[source]¶
- Return the cohomology ring of - selfover the field- F.- EXAMPLES: - sage: C4 = graphs.CycleGraph(4) sage: A = groups.misc.RightAngledArtin(C4) sage: A.cohomology() Cohomology ring of Right-angled Artin group of Cycle graph with coefficients in Rational Field - >>> from sage.all import * >>> C4 = graphs.CycleGraph(Integer(4)) >>> A = groups.misc.RightAngledArtin(C4) >>> A.cohomology() Cohomology ring of Right-angled Artin group of Cycle graph with coefficients in Rational Field 
 - gen(i)[source]¶
- Return the - i-th generator of- self.- EXAMPLES: - sage: Gamma = graphs.CycleGraph(5) sage: G = RightAngledArtinGroup(Gamma) sage: G.gen(2) v2 - >>> from sage.all import * >>> Gamma = graphs.CycleGraph(Integer(5)) >>> G = RightAngledArtinGroup(Gamma) >>> G.gen(Integer(2)) v2 
 - gens()[source]¶
- Return the generators of - self.- EXAMPLES: - sage: Gamma = graphs.CycleGraph(5) sage: G = RightAngledArtinGroup(Gamma) sage: G.gens() (v0, v1, v2, v3, v4) sage: Gamma = Graph([('x', 'y'), ('y', 'zeta')]) sage: G = RightAngledArtinGroup(Gamma) sage: G.gens() (vx, vy, vzeta) - >>> from sage.all import * >>> Gamma = graphs.CycleGraph(Integer(5)) >>> G = RightAngledArtinGroup(Gamma) >>> G.gens() (v0, v1, v2, v3, v4) >>> Gamma = Graph([('x', 'y'), ('y', 'zeta')]) >>> G = RightAngledArtinGroup(Gamma) >>> G.gens() (vx, vy, vzeta) 
 - graph()[source]¶
- Return the defining graph of - self.- EXAMPLES: - sage: Gamma = graphs.CycleGraph(5) sage: G = RightAngledArtinGroup(Gamma) sage: G.graph() Cycle graph: Graph on 5 vertices - >>> from sage.all import * >>> Gamma = graphs.CycleGraph(Integer(5)) >>> G = RightAngledArtinGroup(Gamma) >>> G.graph() Cycle graph: Graph on 5 vertices 
 - ngens()[source]¶
- Return the number of generators of - self.- EXAMPLES: - sage: Gamma = graphs.CycleGraph(5) sage: G = RightAngledArtinGroup(Gamma) sage: G.ngens() 5 - >>> from sage.all import * >>> Gamma = graphs.CycleGraph(Integer(5)) >>> G = RightAngledArtinGroup(Gamma) >>> G.ngens() 5