Quelle chap7_mj.html
Sprache: HTML
|
|
| products/Sources/formale Sprachen/GAP/pkg/hap/tutorial/chap7_mj.html |
 |
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
<head>
<script type="text/javascript"
src="https://cdn.jsdelivr.net/npm/mathjax@2/MathJax.js?config=TeX-AMS-MML_HTMLorMML">
</script>
<title>GAP (HAP commands) - Chapter 7: Cohomology of groups (and Lie Algebras)</title>
<meta http-equiv="content-type" content="text/html; charset=UTF-8" />
<meta name="generator" content="GAPDoc2HTML" />
<link rel="stylesheet" type="text/css" href="manual.css" />
<script src="manual.js" type="text/javascript"></script>
<script type="text/javascript">overwriteStyle();</script>
</head>
<body class="chap7" onload="jscontent()">
<div class="chlinktop"><span class="chlink1">Goto Chapter: </span><a href="chap0_mj.html">Top</a> <a href="chap1_mj.html">1</a> <a href="chap2_mj.html">2</a> <a href="chap3_mj.html">3</a> <a href="chap4_mj.html">4</a> <a href="chap5_mj.html">5</a> <a href="chap6_mj.html">6</a> <a href="chap7_mj.html">7</a> <a href="chap8_mj.html">8</a> <a href="chap9_mj.html">9</a> <a href="chap10_mj.html">10</a> <a href="chap11_mj.html">11</a> <a href="chap12_mj.html">12</a> <a href="chap13_mj.html">13</a> <a href="chap14_mj.html">14</a> <a href="chap15_mj.html">15</a> <a href="chap16_mj.html">16</a> <a href="chapBib_mj.html">Bib</a> <a href="chapInd_mj.html">Ind</a> </div>
<div class="chlinkprevnexttop"> <a href="chap0_mj.html">[Top of Book]</a> <a href="chap0_mj.html#contents">[Contents]</a> <a href="chap6_mj.html">[Previous Chapter]</a> <a href="chap8_mj.html">[Next Chapter]</a> </div>
<p id="mathjaxlink" class="pcenter"><a href="chap7.html">[MathJax off]</a></p>
<p><a id="X787E37187B7308C9" name="X787E37187B7308C9"></a></p>
<div class="ChapSects"><a href="chap7_mj.html#X787E37187B7308C9">7 <span class="Heading">Cohomology of groups (and Lie Algebras)</span></a>
<div class="ContSect"><span class="tocline"><span class="nocss"> </span><a href="chap7_mj.html#X807B265978F90E01">7.1 <span class="Heading">Finite groups </span></a>
</span>
<div class="ContSSBlock">
<span class="ContSS"><br /><span class="nocss"> </span><a href="chap7_mj.html#X80A721AC7A8D30A3">7.1-1 <span class="Heading">Naive homology computation for a very small group</span></a>
</span>
<span class="ContSS"><br /><span class="nocss"> </span><a href="chap7_mj.html#X838CEA3F850DFC82">7.1-2 <span class="Heading">A more efficient homology computation</span></a>
</span>
<span class="ContSS"><br /><span class="nocss"> </span><a href="chap7_mj.html#X842E93467AD09EC1">7.1-3 <span class="Heading">Computation of an induced homology homomorphism</span></a>
</span>
<span class="ContSS"><br /><span class="nocss"> </span><a href="chap7_mj.html#X8754D2937E6FD7CE">7.1-4 <span class="Heading">Some other finite group homology computations</span></a>
</span>
</div></div>
<div class="ContSect"><span class="tocline"><span class="nocss"> </span><a href="chap7_mj.html#X8463EF6A821FFB69">7.2 <span class="Heading">Nilpotent groups</span></a>
</span>
</div>
<div class="ContSect"><span class="tocline"><span class="nocss"> </span><a href="chap7_mj.html#X82E8FAC67BC16C01">7.3 <span class="Heading">Crystallographic and Almost Crystallographic groups</span></a>
</span>
</div>
<div class="ContSect"><span class="tocline"><span class="nocss"> </span><a href="chap7_mj.html#X7AFFB32587D047FE">7.4 <span class="Heading">Arithmetic groups</span></a>
</span>
</div>
<div class="ContSect"><span class="tocline"><span class="nocss"> </span><a href="chap7_mj.html#X800CB6257DC8FB3A">7.5 <span class="Heading">Artin groups</span></a>
</span>
</div>
<div class="ContSect"><span class="tocline"><span class="nocss"> </span><a href="chap7_mj.html#X7BAFCA3680E478AE">7.6 <span class="Heading">Graphs of groups</span></a>
</span>
</div>
<div class="ContSect"><span class="tocline"><span class="nocss"> </span><a href="chap7_mj.html#X7CE849E58706796C">7.7 <span class="Heading">Lie algebra homology and free nilpotent groups</span></a>
</span>
</div>
<div class="ContSect"><span class="tocline"><span class="nocss"> </span><a href="chap7_mj.html#X7C3DEDD57BB4D537">7.8 <span class="Heading">Cohomology with coefficients in a module</span></a>
</span>
</div>
<div class="ContSect"><span class="tocline"><span class="nocss"> </span><a href="chap7_mj.html#X7E573EA582CCEF2E">7.9 <span class="Heading">Cohomology as a functor of the first variable</span></a>
</span>
</div>
<div class="ContSect"><span class="tocline"><span class="nocss"> </span><a href="chap7_mj.html#X796731727A7EBE59">7.10 <span class="Heading">Cohomology as a functor of the second variable and the long exact coefficient sequence</span></a>
</span>
</div>
<div class="ContSect"><span class="tocline"><span class="nocss"> </span><a href="chap7_mj.html#X80F6FD3E7C7E4E8D">7.11 <span class="Heading">Transfer Homomorphism</span></a>
</span>
</div>
<div class="ContSect"><span class="tocline"><span class="nocss"> </span><a href="chap7_mj.html#X79B1406C803FF178">7.12 <span class="Heading">Cohomology rings of finite fundamental groups of 3-manifolds
</span></a>
</span>
</div>
<div class="ContSect"><span class="tocline"><span class="nocss"> </span><a href="chap7_mj.html#X833A19F0791C3B06">7.13 <span class="Heading">Explicit cocycles </span></a>
</span>
</div>
<div class="ContSect"><span class="tocline"><span class="nocss"> </span><a href="chap7_mj.html#X7C5233E27D2D603E">7.14 <span class="Heading">Quillen's complex and the \(p\)-part of homology
</ span>
</ div>
< div class= "ContSect">< span class= "tocline">< span class= "nocss"> </ span><a href= "chap7_mj.html#X865CC8E0794C0E61">7.15 < span class= "Heading">Homology of a Lie algebra</ span></a>
</ span>
</ div>
< div class= "ContSect">< span class= "tocline">< span class= "nocss"> </ span><a href= "chap7_mj.html#X86B4EE4783A244F7">7.16 < span class= "Heading">Covers of Lie algebras</ span></a>
</ span>
< div class= "ContSSBlock">
< span class= "ContSS">< br />< span class= "nocss"> </ span><a href= "chap7_mj.html#X7DFF32A67FF39C82">7.16-1 < span class= "Heading">Computing a cover</ span></a>
</ span>
</ div></ div>
</ div>
<h3>7 < span class= "Heading">Cohomology of groups (and Lie Algebras)</ span></h3>
<p><a id= "X807B265978F90E01" name= "X807B265978F90E01"></a></p>
<h4>7.1 < span class= "Heading">Finite groups </ span></h4>
<p><a id= "X80A721AC7A8D30A3" name= "X80A721AC7A8D30A3"></a></p>
<h5>7.1-1 < span class= "Heading">Naive homology computation for a very small group</ span></h5>
<p>It is possible to compute the low degree (co)homology of a finite group or monoid of small order directly from the bar resolution. The following commands take this approach to computing the fifth integral homology</p>
<p><span class="SimpleMath">\(H_5(Q_4,\mathbb Z) = \mathbb Z_2\oplus\mathbb Z_2\)</span></p>
<p>of the quaternion group <span class="SimpleMath">\(G=Q_4\)</span> of order <span class="SimpleMath">\(8\)</span>.</p>
<div class="example"><pre>
<span class="GAPprompt">gap></span> <span class="GAPinput">Q:=QuaternionGroup(8);;</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">B:=BarComplexOfMonoid(Q,6);; </span>
<span class="GAPprompt">gap></span> <span class="GAPinput">C:=ContractedComplex(B);;</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">Homology(C,5);</span>
[ 2, 2 ]
<span class="GAPprompt">gap></span> <span class="GAPinput">List([0..6],B!.dimension);</span>
[ 1, 7, 49, 343, 2401, 16807, 117649 ]
<span class="GAPprompt">gap></span> <span class="GAPinput">List([0..6],C!.dimension);</span>
[ 1, 2, 2, 1, 2, 4, 102945 ]
</pre></div>
<p>However, this approach is of limited applicability since the bar resolution involves <span class="SimpleMath">\(|G|^k\)</span> free generators in degree <span class="SimpleMath">\(k\)</span>. A range of techniques, tailored to specific classes of groups, can be used to compute the (co)homology of larger finite groups.</p>
<p>This naive approach does have the merit of being applicable to arbitrary small monoids. The following calculates the homology in degrees <span class="SimpleMath">\(\le 7\)</span> of a monoid of order 8, the monoid being specified by its multiplication table.</p>
<div class="example"><pre>
<span class="GAPprompt">gap></span> <span class="GAPinput">T:=[ [ 1, 1, 1, 4, 4, 4, 4, 1 ],</span>
<span class="GAPprompt">></span> <span class="GAPinput"> [ 1, 1, 1, 4, 4, 4, 4, 2 ],</span>
<span class="GAPprompt">></span> <span class="GAPinput"> [ 1, 1, 1, 4, 4, 4, 4, 3 ],</span>
<span class="GAPprompt">></span> <span class="GAPinput"> [ 4, 4, 4, 1, 1, 1, 1, 4 ],</span>
<span class="GAPprompt">></span> <span class="GAPinput"> [ 4, 4, 4, 1, 1, 1, 1, 5 ],</span>
<span class="GAPprompt">></span> <span class="GAPinput"> [ 4, 4, 4, 1, 1, 1, 1, 6 ],</span>
<span class="GAPprompt">></span> <span class="GAPinput"> [ 4, 4, 4, 1, 1, 1, 1, 7 ],</span>
<span class="GAPprompt">></span> <span class="GAPinput"> [ 1, 2, 3, 4, 5, 6, 7, 8 ] ];;</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">M:=MonoidByMultiplicationTable(T);</span>
<monoid of size 8, with 8 generators>
<span class="GAPprompt">gap></span> <span class="GAPinput">B:=BarComplexOfMonoid(M,8);;</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">C:=ContractedComplex(B);;</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">List([0..7],i->Homology(C,i));</span>
[ [ 0 ], [ 2 ], [ ], [ 2 ], [ ], [ 2 ], [ ], [ 2 ] ]
<span class="GAPprompt">gap></span> <span class="GAPinput">List([0..8],B!.dimension);</span>
[ 1, 7, 49, 343, 2401, 16807, 117649, 823543, 5764801 ]
<span class="GAPprompt">gap></span> <span class="GAPinput">List([0..8],C!.dimension);</span>
[ 1, 1, 1, 1, 1, 1, 1, 1, 5044201 ]
</pre></div>
<p><a id="X838CEA3F850DFC82" name="X838CEA3F850DFC82"></a></p>
<h5>7.1-2 <span class="Heading">A more efficient homology computation</span></h5>
<p>The following example computes the seventh integral homology</p>
<p><span class="SimpleMath">\(H_7(M_{23},\mathbb Z) = \mathbb Z_{16}\oplus\mathbb Z_{15}\)</span></p>
<p>and fourth integral cohomomogy</p>
<p><span class="SimpleMath">\(H^4(M_{24},\mathbb Z) = \mathbb Z_{12}\)</span></p>
<p>of the Mathieu groups <span class="SimpleMath">\(M_{23}\)</span> and <span class="SimpleMath">\(M_{24}\)</span>. (Warning: the computation of <span class="SimpleMath">\(H_7(M_{23},\mathbb Z)\)</span> takes a couple of hours to run.)</p>
<div class="example"><pre>
<span class="GAPprompt">gap></span> <span class="GAPinput">GroupHomology(MathieuGroup(23),7);</span>
[ 16, 3, 5 ]
<span class="GAPprompt">gap></span> <span class="GAPinput">GroupCohomology(MathieuGroup(24),4);</span>
[ 4, 3 ]
</pre></div>
<p><a id="X842E93467AD09EC1" name="X842E93467AD09EC1"></a></p>
<h5>7.1-3 <span class="Heading">Computation of an induced homology homomorphism</span></h5>
<p>The following example computes the cokernel</p>
<p><span class="SimpleMath">\({\rm coker}( H_3(A_7,\mathbb Z) \rightarrow H_3(S_{10},\mathbb Z)) \cong \mathbb Z_2\oplus \mathbb Z_2\)</span></p>
<p>of the degree-3 integral homomogy homomorphism induced by the canonical inclusion <span class="SimpleMath">\(A_7 \rightarrow S_{10}\)</span> of the alternating group on <span class="SimpleMath">\(7\)</span> letters into the symmetric group on <span class="SimpleMath">\(10\)</span> letters. The analogous cokernel with <span class="SimpleMath">\(\mathbb Z_2\)</span> homology coefficients is also computed.</p>
<div class="example"><pre>
<span class="GAPprompt">gap></span> <span class="GAPinput">G:=SymmetricGroup(10);;</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">H:=AlternatingGroup(7);;</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">f:=GroupHomomorphismByFunction(H,G,x->x);;</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">F:=GroupHomology(f,3);</span>
MappingByFunction( Pcp-group with orders [ 4, 3 ], Pcp-group with orders
[ 2, 2, 4, 3 ], function( x ) ... end )
<span class="GAPprompt">gap></span> <span class="GAPinput">AbelianInvariants(Range(F)/Image(F));</span>
[ 2, 2 ]
<span class="GAPprompt">gap></span> <span class="GAPinput">Fmod2:=GroupHomology(f,3,2);;</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">AbelianInvariants(Range(Fmod2)/Image(Fmod2));</span>
[ 2, 2 ]
</pre></div>
<p><a id="X8754D2937E6FD7CE" name="X8754D2937E6FD7CE"></a></p>
<h5>7.1-4 <span class="Heading">Some other finite group homology computations</span></h5>
<p>The following example computes the third integral homology of the Weyl group <span class="SimpleMath">\(W=Weyl(E_8)\)</span>, a group of order <span class="SimpleMath">\(696729600\)</span>.</p>
<p><span class="SimpleMath">\(H_3(Weyl(E_8),\mathbb Z) = \mathbb Z_2 \oplus \mathbb Z_2 \oplus \mathbb Z_{12}\)</span></p>
<div class="example"><pre>
<span class="GAPprompt">gap></span> <span class="GAPinput">L:=SimpleLieAlgebra("E",8,Rationals);;</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">W:=WeylGroup(RootSystem(L));;</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">Order(W);</span>
696729600
<span class="GAPprompt">gap></span> <span class="GAPinput">GroupHomology(W,3);</span>
[ 2, 2, 4, 3 ]
</pre></div>
<p>The preceding calculation could be achieved more quickly by noting that <span class="SimpleMath">\(W=Weyl(E_8)\)</span> is a Coxeter group, and by using the associated Coxeter polytope. The following example uses this approach to compute the fourth integral homology of <span class="SimpleMath">\(W\)</span>. It begins by displaying the Coxeter diagram of <span class="SimpleMath">\(W\)</span>, and then computes</p>
<p><span class="SimpleMath">\(H_4(Weyl(E_8),\mathbb Z) = \mathbb Z_2 \oplus \mathbb Z_2 \oplus Z_2 \oplus \mathbb Z_2\)</span>.</p>
<div class="example"><pre>
<span class="GAPprompt">gap></span> <span class="GAPinput">D:=[[1,[2,3]],[2,[3,3]],[3,[4,3],[5,3]],[5,[6,3]],[6,[7,3]],[7,[8,3]]];;</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">CoxeterDiagramDisplay(D);</span>
</pre></div>
<p><img src="images/e8diagram.gif" align="center" height="200" alt="Coxeter diagram for E8"/></p>
<div class="example"><pre>
<span class="GAPprompt">gap></span> <span class="GAPinput">polytope:=CoxeterComplex_alt(D,5);;</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">R:=FreeGResolution(polytope,5);</span>
Resolution of length 5 in characteristic 0 for <matrix group with
8 generators> .
No contracting homotopy available.
<span class="GAPprompt">gap></span> <span class="GAPinput">C:=TensorWithIntegers(R);</span>
Chain complex of length 5 in characteristic 0 .
<span class="GAPprompt">gap></span> <span class="GAPinput">Homology(C,4);</span>
[ 2, 2, 2, 2 ]
</pre></div>
<p>The following example computes the sixth mod-<span class="SimpleMath">\(2\)</span> homology of the Sylow <span class="SimpleMath">\(2\)</span>-subgroup <span class="SimpleMath">\(Syl_2(M_{24})\)</span> of the Mathieu group <span class="SimpleMath">\(M_{24}\)</span>.</p>
<p><span class="SimpleMath">\(H_6(Syl_2(M_{24}),\mathbb Z_2) = \mathbb Z_2^{143}\)</span></p>
<div class="example"><pre>
<span class="GAPprompt">gap></span> <span class="GAPinput">GroupHomology(SylowSubgroup(MathieuGroup(24),2),6,2);</span>
[ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2 ]
</pre></div>
<p>The following example computes the sixth mod-<span class="SimpleMath">\(2\)</span> homology of the Unitary group <span class="SimpleMath">\(U_3(4)\)</span> of order 312000.</p>
<p><span class="SimpleMath">\(H_6(U_3(4),\mathbb Z_2) = \mathbb Z_2^{4}\)</span></p>
<div class="example"><pre>
<span class="GAPprompt">gap></span> <span class="GAPinput">G:=GU(3,4);;</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">Order(G);</span>
312000
<span class="GAPprompt">gap></span> <span class="GAPinput">GroupHomology(G,6,2);</span>
[ 2, 2, 2, 2 ]
</pre></div>
<p>The following example constructs the Poincare series</p>
<p><span class="SimpleMath">\(p(x)=\frac{1}{-x^3+3*x^2-3*x+1}\)</span></p>
<p>for the cohomology <span class="SimpleMath">\(H^\ast(Syl_2(M_{12},\mathbb F_2)\)</span>. The coefficient of <span class="SimpleMath">\(x^n\)</span> in the expansion of <span class="SimpleMath">\(p(x)\)</span> is equal to the dimension of the vector space <span class="SimpleMath">\(H^n(Syl_2(M_{12},\mathbb F_2)\)</span>. The computation involves <strong class="button">Singular</strong>'s Groebner basis algorithms and the Lyndon-Hochschild-Serre spectral sequence.
<div class="example"><pre>
<span class="GAPprompt">gap></span> <span class="GAPinput">G:=SylowSubgroup(MathieuGroup(12),2);;</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">P:=PoincareSeriesLHS(G);</span>
(1)/(-x_1^3+3*x_1^2-3*x_1+1)
</pre></div>
<p>The additional following command uses the Poincare series</p>
<div class="example"><pre>
<span class="GAPprompt">gap></span> <span class="GAPinput">RankHomologyPGroup(G,P,1000);</span>
251000
</pre></div>
<p>to determine that <span class="SimpleMath">\(H_{1000}(Syl_2(M_{12},\mathbb Z)\)</span> is a direct sum of 251000 non-trivial cyclic <span class="SimpleMath">\(2\)</span>-groups.</p>
<p>The following example constructs the series</p>
<p><span class="SimpleMath">\(p(x)=\frac{x^4-x^3+x^2-x+1}{x^6-x^5+x^4-2*x^3+x^2-x+1}\)</span></p>
<p>whose coefficient of <span class="SimpleMath">\(x^n\)</span> is equal to the dimension of the vector space <span class="SimpleMath">\(H^n(M_{11},\mathbb F_2)\)</span> for all <span class="SimpleMath">\(n\)</span> in the range <span class="SimpleMath">\(0\le n\le 14\)</span>. The coefficient is not guaranteed correct for <span class="SimpleMath">\(n\ge 15\)</span>.</p>
<div class="example"><pre>
<span class="GAPprompt">gap></span> <span class="GAPinput">PoincareSeriesPrimePart(MathieuGroup(11),2,14);</span>
(x_1^4-x_1^3+x_1^2-x_1+1)/(x_1^6-x_1^5+x_1^4-2*x_1^3+x_1^2-x_1+1)
</pre></div>
<p><a id="X8463EF6A821FFB69" name="X8463EF6A821FFB69"></a></p>
<h4>7.2 <span class="Heading">Nilpotent groups</span></h4>
<p>The following example computes</p>
<p><span class="SimpleMath">\(H_4(N,\mathbb Z) = \mathbb (Z_3)^4 \oplus \mathbb Z^{84}\)</span></p>
<p>for the free nilpotent group <span class="SimpleMath">\(N\)</span> of class <span class="SimpleMath">\(2\)</span> on four generators.</p>
<div class="example"><pre>
<span class="GAPprompt">gap></span> <span class="GAPinput">F:=FreeGroup(4);; N:=NilpotentQuotient(F,2);;</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">GroupHomology(N,4);</span>
[ 3, 3, 3, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ]
</pre></div>
<p><a id="X82E8FAC67BC16C01" name="X82E8FAC67BC16C01"></a></p>
<h4>7.3 <span class="Heading">Crystallographic and Almost Crystallographic groups</span></h4>
<p>The following example computes</p>
<p><span class="SimpleMath">\(H_5(G,\mathbb Z) = \mathbb Z_2 \oplus \mathbb Z_2\)</span></p>
<p>for the <span class="SimpleMath">\(3\)</span>-dimensional crystallographic space group <span class="SimpleMath">\(G\)</span> with Hermann-Mauguin symbol "P62"</p>
<div class="example"><pre>
<span class="GAPprompt">gap></span> <span class="GAPinput">GroupHomology(SpaceGroupBBNWZ("P62"),5);</span>
[ 2, 2 ]
</pre></div>
<p>The following example computes</p>
<p><span class="SimpleMath">\(H^5(G,\mathbb Z)= \mathbb Z\)</span></p>
<p>for an almost crystallographic group.</p>
<div class="example"><pre>
<span class="GAPprompt">gap></span> <span class="GAPinput">G:=AlmostCrystallographicPcpGroup( 4, 50, [ 1, -4, 1, 2 ] );;</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">GroupCohomology(G,4);</span>
[ 0 ]
</pre></div>
<p><a id="X7AFFB32587D047FE" name="X7AFFB32587D047FE"></a></p>
<h4>7.4 <span class="Heading">Arithmetic groups</span></h4>
<p>The following example computes</p>
<p><span class="SimpleMath">\(H_6(SL_2({\cal O},\mathbb Z) = \mathbb Z_2 \oplus \mathbb Z_{12}\)</span></p>
<p>for <span class="SimpleMath">\({\cal O}\)</span> the ring of integers of the number field <span class="SimpleMath">\(\mathbb Q(\sqrt{-2})\)</span>.</p>
<div class="example"><pre>
<span class="GAPprompt">gap></span> <span class="GAPinput">C:=ContractibleGcomplex("SL(2,O-2)");;</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">R:=FreeGResolution(C,7);;</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">Homology(TensorWithIntegers(R),6);</span>
[ 2, 12 ]
</pre></div>
<p><a id="X800CB6257DC8FB3A" name="X800CB6257DC8FB3A"></a></p>
<h4>7.5 <span class="Heading">Artin groups</span></h4>
<p>The following example computes</p>
<p><span class="SimpleMath">\(H_n(G,\mathbb Z) =\left\{ \begin{array}{ll} \mathbb Z &n=0,1,7,8\\ \mathbb Z_2, &n=2,3\\ \mathbb Z_2\oplus \mathbb Z_6, &n=4,6\\ \mathbb Z_3 \oplus \mathbb Z_6,& n=5\\ 0, &n>8 \end{array}\right. \)</span></p>
<p>for <span class="SimpleMath">\(G\)</span> the Artin group of type <span class="SimpleMath">\(E_8\)</span>. (Similar commands can be used to compute a resolution and homology of arbitrary Artin monoids and, in thoses cases such as the spherical cases where the <span class="SimpleMath">\(K(\pi,1)\)</span>-conjecture is known to hold, the homology is equal to that of the corresponding Artin group.)</p>
<div class="example"><pre>
<span class="GAPprompt">gap></span> <span class="GAPinput">D:=[[1,[2,3]],[2,[3,3]],[3,[4,3],[5,3]],[5,[6,3]],[6,[7,3]],[7,[8,3]]];;</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">CoxeterDiagramDisplay(D);;</span>
</pre></div>
<p><img src="images/e8diagram.gif" align="center" height="200" alt="Coxeter diagram for E8"/></p>
<div class="example"><pre>
<span class="GAPprompt">gap></span> <span class="GAPinput">R:=ResolutionArtinGroup(D,9);;</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">C:=TensorWithIntegers(R);;</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">List([0..8],n->Homology(C,n));</span>
[ [ 0 ], [ 0 ], [ 2 ], [ 2 ], [ 2, 6 ], [ 3, 6 ], [ 2, 6 ], [ 0 ], [ 0 ] ]
</pre></div>
<p>The Artin group <span class="SimpleMath">\(G\)</span> projects onto the Coxeter group <span class="SimpleMath">\(W\)</span> of type <span class="SimpleMath">\(E_8\)</span>. The group <span class="SimpleMath">\(W\)</span> has a natural representation as a group of <span class="SimpleMath">\(8\times 8\)</span> integer matrices. This projection gives rise to a representation <span class="SimpleMath">\(\rho\colon G\rightarrow GL_8(\mathbb Z)\)</span>. The following command computes the cohomology group <span class="SimpleMath">\(H^6(G,\rho) = (\mathbb Z_2)^6\)</span>.</p>
<div class="example"><pre>
<span class="GAPprompt">gap></span> <span class="GAPinput">G:=R!.group;;</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">gensG:=GeneratorsOfGroup(G);;</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">W:=CoxeterDiagramMatCoxeterGroup(D);;</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">gensW:=GeneratorsOfGroup(W);;</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">rho:=GroupHomomorphismByImages(G,W,gensG,gensW);;</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">C:=HomToIntegralModule(R,rho);;</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">Cohomology(C,6);</span>
[ 2, 2, 2, 2, 2, 2 ]
</pre></div>
<p><a id="X7BAFCA3680E478AE" name="X7BAFCA3680E478AE"></a></p>
<h4>7.6 <span class="Heading">Graphs of groups</span></h4>
<p>The following example computes</p>
<p><span class="SimpleMath">\(H_5(G,\mathbb Z) = \mathbb Z_2\oplus Z_2\oplus Z_2 \oplus Z_2 \oplus Z_2\)</span></p>
<p>for <span class="SimpleMath">\(G\)</span> the graph of groups corresponding to the amalgamated product <span class="SimpleMath">\(G=S_5*_{S_3}S_4\)</span> of the symmetric groups <span class="SimpleMath">\(S_5\)</span> and <span class="SimpleMath">\(S_4\)</span> over the canonical subgroup <span class="SimpleMath">\(S_3\)</span>.</p>
<div class="example"><pre>
<span class="GAPprompt">gap></span> <span class="GAPinput">S5:=SymmetricGroup(5);SetName(S5,"S5");</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">S4:=SymmetricGroup(4);SetName(S4,"S4");</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">A:=SymmetricGroup(3);SetName(A,"S3");</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">AS5:=GroupHomomorphismByFunction(A,S5,x->x);</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">AS4:=GroupHomomorphismByFunction(A,S4,x->x);</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">D:=[S5,S4,[AS5,AS4]];</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">GraphOfGroupsDisplay(D);</span>
</pre></div>
<p><img src="images/graphgroups.png" align="center" height="100" alt="graph of groups"/></p>
<div class="example"><pre>
<span class="GAPprompt">gap></span> <span class="GAPinput">R:=ResolutionGraphOfGroups(D,6);;</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">Homology(TensorWithIntegers(R),5);</span>
[ 2, 2, 2, 2, 2 ]
</pre></div>
<p><a id="X7CE849E58706796C" name="X7CE849E58706796C"></a></p>
<h4>7.7 <span class="Heading">Lie algebra homology and free nilpotent groups</span></h4>
<p>One method of producting a Lie algebra <span class="SimpleMath">\(L\)</span> from a group <span class="SimpleMath">\(G\)</span> is by forming the direct sum <span class="SimpleMath">\(L(G) = G/\gamma_2G \oplus \gamma_2G/\gamma_3G \oplus \gamma_3G/\gamma_4G \oplus \cdots\)</span> of the quotients of the lower central series <span class="SimpleMath">\(\gamma_1G=G\)</span>, <span class="SimpleMath">\(\gamma_{n+1}G=[\gamma_nG,G]\)</span>. Commutation in <span class="SimpleMath">\(G\)</span> induces a Lie bracket <span class="SimpleMath">\(L(G)\times L(G) \rightarrow L(G)\)</span>.</p>
<p>The homology <span class="SimpleMath">\(H_n(L)\)</span> of a Lie algebra (with trivial coefficients) can be calculated as the homology of the Chevalley-Eilenberg chain complex <span class="SimpleMath">\(C_\ast(L)\)</span>. This chain complex is implemented in <strong class="button">HAP</strong> in the cases where the underlying additive group of <span class="SimpleMath">\(L\)</span> is either finitely generated torsion free or finitely generated of prime exponent <span class="SimpleMath">\(p\)</span>. In these two cases the ground ring for the Lie algebra/ Chevalley-Eilenberg complex is taken to be <span class="SimpleMath">\(\mathbb Z\)</span> and <span class="SimpleMath">\(\mathbb Z_p\)</span> respectively.</p>
<p>For example, consider the quotient <span class="SimpleMath">\(G=F/\gamma_8F\)</span> of the free group <span class="SimpleMath">\(F=F(x,y)\)</span> on two generators by eighth term of its lower central series. So <span class="SimpleMath">\(G\)</span> is the <em>free nilpotent group of class 7 on two generators</em>. The following commands compute <span class="SimpleMath">\(H_4(L(G)) = \mathbb Z_2^{77} \oplus \mathbb Z_6^8 \oplus \mathbb Z_{12}^{51} \oplus \mathbb Z_{132}^{11} \oplus \mathbb Z^{2024}\)</span> and show that the fourth homology in this case contains 2-, 3- and 11-torsion. (The commands take an hour or so to complete.)</p>
<div class="example"><pre>
<span class="GAPprompt">gap></span> <span class="GAPinput">G:=Image(NqEpimorphismNilpotentQuotient(FreeGroup(2),7));;</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">L:=LowerCentralSeriesLieAlgebra(G);;</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">h:=LieAlgebraHomology(L,4);;</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">Collected(h);</span>
[ [ 0, 2024 ], [ 2, 77 ], [ 6, 8 ], [ 12, 51 ], [ 132, 11 ] ]
</pre></div>
<p>For a free nilpotent group <span class="SimpleMath">\(G\)</span> the additive homology <span class="SimpleMath">\(H_n(L(G))\)</span> of the Lie algebra can be computed more quickly in <strong class="button">HAP</strong> than the integral group homology <span class="SimpleMath">\(H_n(G,\mathbb Z)\)</span>. Clearly there are isomorphisms<span class="SimpleMath">\(H_1(G) \cong H_1(L(G)) \cong G_{ab}\)</span> of abelian groups in homological degree <span class="SimpleMath">\(n=1\)</span>. Hopf's formula can be used to establish an isomorphism \(H_2(G) \cong H_2(L(G))\) also in degree \(n=2\). The following two theorems provide further isomorphisms that allow for the homology of a free nilpotent group to be calculated more efficiently as the homology of the associated Lie algebra.
<p><strong class="button">Theorem 1.</strong> <a href="chapBib_mj.html#biBkuzmin">[KS98]</a> <em>Let <span class="SimpleMath">\(G\)</span> be a finitely generated free nilpotent group of class 2. Then the integral group homology <span class="SimpleMath">\(H_n(G,\mathbb Z)\)</span> is isomorphic to the integral Lie algebra homology <span class="SimpleMath">\(H_n(L(G),\mathbb Z)\)</span> in each degree <span class="SimpleMath">\(n\ge0\)</span>.</em></p>
<p><strong class="button">Theorem 2.</strong> <a href="chapBib_mj.html#biBigusa">[IO01]</a> <em>Let <span class="SimpleMath">\(G\)</span> be a finitely generated free nilpotent group (of any class). Then the integral group homology <span class="SimpleMath">\(H_n(G,\mathbb Z)\)</span> is isomorphic to the integral Lie algebra homology <span class="SimpleMath">\(H_n(L(G),\mathbb Z)\)</span> in degrees <span class="SimpleMath">\(n=0, 1, 2, 3\)</span>.</em></p>
<p>We should remark that experimentation on free nilpotent groups of class <span class="SimpleMath">\(\ge 4\)</span> has not yielded a group for which the isomorphism <span class="SimpleMath">\(H_n(G,\mathbb Z) \cong H_n(L(G),\mathbb G)\)</span> fails. For instance, the isomorphism holds in degree <span class="SimpleMath">\(n=4\)</span> for the free nilpotent group of class 5 on two generators, and for the free nilpotent group of class 2 on four generators:</p>
<div class="example"><pre>
<span class="GAPprompt">gap></span> <span class="GAPinput">G:=Image(NqEpimorphismNilpotentQuotient(FreeGroup(2),5));;</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">L:=LowerCentralSeriesLieAlgebra(G);;</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">Collected( LieAlgebraHomology(L,4) );</span>
[ [ 0, 85 ], [ 7, 1 ] ]
<span class="GAPprompt">gap></span> <span class="GAPinput">Collected( GroupHomology(G,4) );</span>
[ [ 0, 85 ], [ 7, 1 ] ]
<span class="GAPprompt">gap></span> <span class="GAPinput">G:=Image(NqEpimorphismNilpotentQuotient(FreeGroup(4),2));; </span>
<span class="GAPprompt">gap></span> <span class="GAPinput">L:=LowerCentralSeriesLieAlgebra(G);;</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">Collected( LieAlgebraHomology(L,4) );</span>
[ [ 0, 84 ], [ 3, 4 ] ]
<span class="GAPprompt">gap></span> <span class="GAPinput">Collected( GroupHomology(G,4) );</span>
[ [ 0, 84 ], [ 3, 4 ] ]
</pre></div>
<p><a id="X7C3DEDD57BB4D537" name="X7C3DEDD57BB4D537"></a></p>
<h4>7.8 <span class="Heading">Cohomology with coefficients in a module</span></h4>
<p>There are various ways to represent a <span class="SimpleMath">\(\mathbb ZG\)</span>-module <span class="SimpleMath">\(A\)</span> with action <span class="SimpleMath">\(G\times A \rightarrow A, (g,a)\mapsto \alpha(g,a)\)</span>.</p>
<p>One possibility is to use the data type of a <em><span class="SimpleMath">\(G\)</span>-Outer Group</em> which involves three components: an <span class="SimpleMath">\(ActedGroup\)</span> <span class="SimpleMath">\(A\)</span>; an <span class="SimpleMath">\(Acting Group\)</span> <span class="SimpleMath">\(G\)</span>; a <span class="SimpleMath">\(Mapping\)</span> <span class="SimpleMath">\((g,a)\mapsto \alpha(g,a)\)</span>. The following example uses this data type to compute the cohomology <span class="SimpleMath">\(H^4(G,A) =\mathbb Z_5 \oplus \mathbb Z_{10}\)</span> of the symmetric group <span class="SimpleMath">\(G=S_6\)</span> with coefficients in the integers <span class="SimpleMath">\(A=\mathbb Z\)</span> where odd permutations act non-trivially on <span class="SimpleMath">\(A\)</span>.</p>
<div class="example"><pre>
<span class="GAPprompt">gap></span> <span class="GAPinput">G:=SymmetricGroup(6);;</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">A:=AbelianPcpGroup([0]);;</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">alpha:=function(g,a); return a^SignPerm(g); end;;</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">A:=GModuleAsGOuterGroup(G,A,alpha);</span>
ZG-module with abelian invariants [ 0 ] and G= SymmetricGroup( [ 1 .. 6 ] )
<span class="GAPprompt">gap></span> <span class="GAPinput">R:=ResolutionFiniteGroup(G,5);;</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">C:=HomToGModule(R,A);</span>
G-cocomplex of length 5 .
<span class="GAPprompt">gap></span> <span class="GAPinput">Cohomology(C,4);</span>
[ 2, 2, 5 ]
</pre></div>
<p>If <span class="SimpleMath">\(A=\mathbb Z^n\)</span> and <span class="SimpleMath">\(G\)</span> acts as</p>
<p><span class="SimpleMath">\(G\times A \rightarrow A, (g, v) \mapsto \rho(g)\, v \)</span></p>
<p>where <span class="SimpleMath">\(\rho\colon G\rightarrow Gl_n(\mathbb Z)\)</span> is a (not necessarily faithful) matrix representation of degree <span class="SimpleMath">\(n\)</span> then we can avoid the use of <span class="SimpleMath">\(G\)</span>-outer groups and use just the homomorphism <span class="SimpleMath">\(\rho\)</span> instead. The following example uses this data type to compute the cohomology</p>
<p><span class="SimpleMath">\(H^6(G,A) =\mathbb Z_2 \)</span></p>
<p>and the homology</p>
<p><span class="SimpleMath">\(H_6(G,A) = 0 \)</span></p>
<p>of the alternating group <span class="SimpleMath">\(G=A_5\)</span> with coefficients in <span class="SimpleMath">\(A=\mathbb Z^5\)</span> where elements of <span class="SimpleMath">\(G\)</span> act on <span class="SimpleMath">\(\mathbb Z^5\)</span> via an irreducible representation.</p>
<div class="example"><pre>
<span class="GAPprompt">gap></span> <span class="GAPinput">G:=AlternatingGroup(5);;</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">rho:=IrreducibleRepresentations(G)[5];</span>
[ (1,2,3,4,5), (3,4,5) ] ->
[
[ [ 0, 0, 1, 0, 0 ], [ -1, -1, 0, 0, 1 ], [ 0, 1, 1, 1, 0 ],
[ 1, 0, -1, 0, -1 ], [ -1, -1, 0, -1, 0 ] ],
[ [ -1, -1, 0, 0, 1 ], [ 1, 0, -1, 0, -1 ], [ 0, 0, 0, 0, 1 ],
[ 0, 0, 1, 0, 0 ], [ 0, 0, 0, 1, 0 ] ] ]
<span class="GAPprompt">gap></span> <span class="GAPinput">R:=ResolutionFiniteGroup(G,7);;</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">C:=HomToIntegralModule(R,rho);;</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">Cohomology(C,6);</span>
[ 2 ]
<span class="GAPprompt">gap></span> <span class="GAPinput">D:=TensorWithIntegralModule(R,rho);</span>
Chain complex of length 7 in characteristic 0 .
<span class="GAPprompt">gap></span> <span class="GAPinput">Homology(D,6);</span>
[ ]
</pre></div>
<p>If <span class="SimpleMath">\(V=K^d\)</span> is a vetor space of dimension <span class="SimpleMath">\(d\)</span> over the field <span class="SimpleMath">\(K=GF(p)\)</span> with <span class="SimpleMath">\(p\)</span> a prime and <span class="SimpleMath">\(G\)</span> acts on <span class="SimpleMath">\(V\)</span> via a homomorphism <span class="SimpleMath">\(\rho\colon G\rightarrow GL_d(K)\)</span> then the homology <span class="SimpleMath">\(H^n(G,V)\)</span> can again be computed without the use of G-outer groups. As an example, the following commands compute</p>
<p><span class="SimpleMath">\(H^4(GL(3,2),V) =K^2\)</span></p>
<p>where <span class="SimpleMath">\(K=GF(2)\)</span> and <span class="SimpleMath">\(GL(3,2)\)</span> acts with its natural action on <span class="SimpleMath">\(V=K^3\)</span>.</p>
<div class="example"><pre>
<span class="GAPprompt">gap></span> <span class="GAPinput">G:=GL(3,2);;</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">rho:=GroupHomomorphismByFunction(G,G,x->x);;</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">R:=ResolutionFiniteGroup(G,5);;</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">C:=HomToModPModule(R,rho);;</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">Cohomology(C,4);</span>
2
</pre></div>
<p>It can be computationally difficult to compute resolutions for large finite groups. But the <span class="SimpleMath">\(p\)</span>-primary part of the homology can be computed using resolutions of Sylow <span class="SimpleMath">\(p\)</span>-subgroups. This approach is used in the following example that computes the <span class="SimpleMath">\(2\)</span>-primary part</p>
<p><span class="SimpleMath">\(H_{2}(G,\mathbb Z)_{(2)} = \mathbb Z_2 \oplus \mathbb Z_2\oplus \mathbb Z_2\)</span></p>
<p>of the degree 2 integral homology of the Rubik's cube group \(G\). This group has order \(43252003274489856000\).
<div class="example"><pre>
<span class="GAPprompt">gap></span> <span class="GAPinput">gens:= [</span>
<span class="GAPprompt">></span> <span class="GAPinput"> ( 1, 3, 8, 6)( 2, 5, 7, 4)( 9,33,25,17)(10,34,26,18)(11,35,27,19),</span>
<span class="GAPprompt">></span> <span class="GAPinput"> ( 9,11,16,14)(10,13,15,12)( 1,17,41,40)( 4,20,44,37)( 6,22,46,35),</span>
<span class="GAPprompt">></span> <span class="GAPinput"> (17,19,24,22)(18,21,23,20)( 6,25,43,16)( 7,28,42,13)( 8,30,41,11),</span>
<span class="GAPprompt">></span> <span class="GAPinput"> (25,27,32,30)(26,29,31,28)( 3,38,43,19)( 5,36,45,21)( 8,33,48,24),</span>
<span class="GAPprompt">></span> <span class="GAPinput"> (33,35,40,38)(34,37,39,36)( 3, 9,46,32)( 2,12,47,29)( 1,14,48,27),</span>
<span class="GAPprompt">></span> <span class="GAPinput"> (41,43,48,46)(42,45,47,44)(14,22,30,38)(15,23,31,39)(16,24,32,40)</span>
<span class="GAPprompt">></span> <span class="GAPinput"> ];; G:=Group(gens);;P:=SylowSubgroup(G,2);;</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">R:=ResolutionNormalSeries(BigStepUCS(P,6),3);;</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">PrimePartDerivedFunctorViaSubgroupChain(G,R,TensorWithIntegers,2);</span>
[ 2, 2, 2 ]
</pre></div>
<p>The same approach is used in the following example that computes the <span class="SimpleMath">\(2\)</span>-primary part</p>
<p><span class="SimpleMath">\(H_{11}(A_7,A)_{(2)} = \mathbb Z_2 \oplus \mathbb Z_2\oplus \mathbb Z_4\)</span></p>
<p>of the degree 11 homology of the alternating group <span class="SimpleMath">\(A_7\)</span> of degree <span class="SimpleMath">\(7\)</span> with coefficients in the module <span class="SimpleMath">\(A=\mathbb Z^7\)</span> on which <span class="SimpleMath">\(A_7\)</span> acts by permuting basis vectors.</p>
<div class="example"><pre>
<span class="GAPprompt">gap></span> <span class="GAPinput">G:=AlternatingGroup(7);;</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">rho:=PermToMatrixGroup(G);;</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">R:=ResolutionFiniteGroup(SylowSubgroup(G,2),12);;</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">F:=function(X); return TensorWithIntegralModule(X,rho); end;;</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">PrimePartDerivedFunctorViaSubgroupChain(G,R,F,11);</span>
[ 2, 2, 4 ]
</pre></div>
<p>Similar commands compute</p>
<p><span class="SimpleMath">\(H_{3}(A_{10},A)_{(2)} = \mathbb Z_4\)</span></p>
<p>with coefficient module <span class="SimpleMath">\(A=\mathbb Z^{10}\)</span> on which <span class="SimpleMath">\(A_{10}\)</span> acts by permuting basis vectors.</p>
<div class="example"><pre>
<span class="GAPprompt">gap></span> <span class="GAPinput">G:=AlternatingGroup(10);;</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">rho:=PermToMatrixGroup(G);;</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">R:=ResolutionFiniteGroup(SylowSubgroup(G,2),4);;</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">F:=function(X); return TensorWithIntegralModule(X,rho); end;;</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">PrimePartDerivedFunctorViaSubgroupChain(G,R,F,3);</span>
[ 4 ]
</pre></div>
<p>The following commands compute</p>
<p><span class="SimpleMath">\(H_{100}(GL(3,2),V)= K^{34}\)</span></p>
<p>where <span class="SimpleMath">\(V\)</span> is the vector space of dimension <span class="SimpleMath">\(3\)</span> over <span class="SimpleMath">\(K=GF(2)\)</span> acting via some irreducible representation <span class="SimpleMath">\(\rho\colon GL(3,2) \rightarrow GL(V)\)</span>.</p>
<div class="example"><pre>
<span class="GAPprompt">gap></span> <span class="GAPinput">G:=GL(3,2);;</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">rho:=IrreducibleRepresentations(G,GF(2))[3];</span>
CompositionMapping( [ (5,7)(6,8), (2,3,5)(4,7,6) ] ->
[ <an immutable 3x3 matrix over GF2>, <an immutable 3x3 matrix over GF2> ],
<action isomorphism> )
<span class="GAPprompt">gap></span> <span class="GAPinput">F:=function(X); return TensorWithModPModule(X,rho); end;;</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">S:=ResolutionPrimePowerGroup(SylowSubgroup(G,2),101);;</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">PrimePartDerivedFunctorViaSubgroupChain(G,S,F,100);</span>
[ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2 ]
</pre></div>
<p><a id="X7E573EA582CCEF2E" name="X7E573EA582CCEF2E"></a></p>
<h4>7.9 <span class="Heading">Cohomology as a functor of the first variable</span></h4>
<p>Suppose given a group homomorphism <span class="SimpleMath">\(f\colon G_1\rightarrow G_2\)</span> and a <span class="SimpleMath">\(G_2\)</span>-module <span class="SimpleMath">\(A\)</span>. Then <span class="SimpleMath">\(A\)</span> is naturally a <span class="SimpleMath">\(G_1\)</span>-module with action via <span class="SimpleMath">\(f\)</span>, and there is an induced cohomology homomorphism <span class="SimpleMath">\(H^n(f,A)\colon H^n(G_2,A) \rightarrow H^n(G_1,A)\)</span>.</p>
<p>The following example computes this cohomology homomorphism in degree <span class="SimpleMath">\(n=6\)</span> for the inclusion <span class="SimpleMath">\(f\colon A_5 \rightarrow S_5\)</span> and <span class="SimpleMath">\(A=\mathbb Z^5\)</span> with action that permutes the canonical basis. The final commands determine that the kernel of the homomorphism <span class="SimpleMath">\(H^6(f,A)\)</span> is the Klein group of order <span class="SimpleMath">\(4\)</span> and that the cokernel is cyclic of order <span class="SimpleMath">\(6\)</span>.</p>
<div class="example"><pre>
<span class="GAPprompt">gap></span> <span class="GAPinput">G1:=AlternatingGroup(5);;</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">G2:=SymmetricGroup(5);;</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">f:=GroupHomomorphismByFunction(G1,G2,x->x);;</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">pi:=PermToMatrixGroup(G2,5);;</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">R1:=ResolutionFiniteGroup(G1,7);;</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">R2:=ResolutionFiniteGroup(G2,7);;</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">F:=EquivariantChainMap(R1,R2,f);;</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">C:=HomToIntegralModule(F,pi);;</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">c:=Cohomology(C,6);</span>
[ g1, g2, g3 ] -> [ id, id, g3 ]
<span class="GAPprompt">gap></span> <span class="GAPinput">AbelianInvariants(Kernel(c));</span>
[ 2, 2 ]
<span class="GAPprompt">gap></span> <span class="GAPinput">AbelianInvariants(Range(c)/Image(c));</span>
[ 2, 3 ]
</pre></div>
<p><a id="X796731727A7EBE59" name="X796731727A7EBE59"></a></p>
<h4>7.10 <span class="Heading">Cohomology as a functor of the second variable and the long exact coefficient sequence</span></h4>
<p>A short exact sequence of <span class="SimpleMath">\(\mathbb ZG\)</span>-modules <span class="SimpleMath">\(A \rightarrowtail B \twoheadrightarrow C\)</span> induces a long exact sequence of cohomology groups</p>
<p><span class="SimpleMath">\( \rightarrow H^n(G,A) \rightarrow H^n(G,B) \rightarrow H^n(G,C) \rightarrow H^{n+1}(G,A) \rightarrow \)</span> .</p>
<p>Consider the symmetric group <span class="SimpleMath">\(G=S_4\)</span> and the sequence <span class="SimpleMath">\( \mathbb Z_4 \rightarrowtail \mathbb Z_8 \twoheadrightarrow \mathbb Z_2\)</span> of trivial <span class="SimpleMath">\(\mathbb ZG\)</span>-modules. The following commands compute the induced cohomology homomorphism</p>
<p><span class="SimpleMath">\(f\colon H^3(S_4,\mathbb Z_4) \rightarrow H^3(S_4,\mathbb Z_8)\)</span></p>
<p>and determine that the image of this induced homomorphism has order <span class="SimpleMath">\(8\)</span> and that its kernel has order <span class="SimpleMath">\(2\)</span>.</p>
<div class="example"><pre>
<span class="GAPprompt">gap></span> <span class="GAPinput">G:=SymmetricGroup(4);;</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">x:=(1,2,3,4,5,6,7,8);;</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">a:=Group(x^2);;</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">b:=Group(x);;</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">ahomb:=GroupHomomorphismByFunction(a,b,y->y);;</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">A:=TrivialGModuleAsGOuterGroup(G,a);;</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">B:=TrivialGModuleAsGOuterGroup(G,b);;</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">phi:=GOuterGroupHomomorphism();;</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">phi!.Source:=A;;</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">phi!.Target:=B;;</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">phi!.Mapping:=ahomb;;</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">Hphi:=CohomologyHomomorphism(phi,3);;</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">Size(ImageOfGOuterGroupHomomorphism(Hphi));</span>
8
<span class="GAPprompt">gap></span> <span class="GAPinput">Size(KernelOfGOuterGroupHomomorphism(Hphi));</span>
2
</pre></div>
<p>The following commands then compute the homomorphism</p>
<p><span class="SimpleMath">\(H^3(S_4,\mathbb Z_8) \rightarrow H^3(S_4,\mathbb Z_2)\)</span></p>
<p>induced by <span class="SimpleMath">\(\mathbb Z_4 \rightarrowtail \mathbb Z_8 \twoheadrightarrow \mathbb Z_2\)</span>, and determine that the kernel of this homomorphsim has order <span class="SimpleMath">\(8\)</span>.</p>
<div class="example"><pre>
<span class="GAPprompt">gap></span> <span class="GAPinput">bhomc:=NaturalHomomorphismByNormalSubgroup(b,a);</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">B:=TrivialGModuleAsGOuterGroup(G,b);</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">C:=TrivialGModuleAsGOuterGroup(G,Image(bhomc));</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">psi:=GOuterGroupHomomorphism();</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">psi!.Source:=B;</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">psi!.Target:=C;</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">psi!.Mapping:=bhomc;</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">Hpsi:=CohomologyHomomorphism(psi,3);</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">Size(KernelOfGOuterGroupHomomorphism(Hpsi));</span>
8
</pre></div>
<p>The following commands then compute the connecting homomorphism</p>
<p><span class="SimpleMath">\(H^2(S_4,\mathbb Z_2) \rightarrow H^3(S_4,\mathbb Z_4)\)</span></p>
<p>and determine that the image of this homomorphism has order <span class="SimpleMath">\(2\)</span>.</p>
<div class="example"><pre>
<span class="GAPprompt">gap></span> <span class="GAPinput">delta:=ConnectingCohomologyHomomorphism(psi,2);;</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">Size(ImageOfGOuterGroupHomomorphism(delta));</span>
</pre></div>
<p>Note that the various orders are consistent with exactness of the sequence</p>
<p><span class="SimpleMath">\(H^2(S_4,\mathbb Z_2) \rightarrow H^3(S_4,\mathbb Z_4) \rightarrow H^3(S_4,\mathbb Z_8) \rightarrow H^3(S_4,\mathbb Z_2) \)</span> .</p>
<p><a id="X80F6FD3E7C7E4E8D" name="X80F6FD3E7C7E4E8D"></a></p>
<h4>7.11 <span class="Heading">Transfer Homomorphism</span></h4>
<p>Consider the action of the symmetric group <span class="SimpleMath">\(G=S_5\)</span> on <span class="SimpleMath">\(A=\mathbb Z^5\)</span> which permutes the canonical basis. The action restricts to the sylow <span class="SimpleMath">\(2\)</span>-subgroup <span class="SimpleMath">\(P=Syl_2(G)\)</span>. The following commands compute the cohomology transfer homomorphism <span class="SimpleMath">\(t^4\colon H^4(P,A) \rightarrow H^4(S_5,A)\)</span> and determine its kernel and image. The integral homology transfer <span class="SimpleMath">\(t_4\colon H_4(S_5,\mathbb Z) \rightarrow H_5(P,\mathbb Z)\)</span> is also computed.</p>
<div class="example"><pre>
<span class="GAPprompt">gap></span> <span class="GAPinput">G:=SymmetricGroup(5);;</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">P:=SylowSubgroup(G,2);;</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">R:=ResolutionFiniteGroup(G,5);;</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">A:=PermToMatrixGroup(G);;</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">tr:=TransferCochainMap(R,P,A);</span>
Cochain Map between complexes of length 5 .
<span class="GAPprompt">gap></span> <span class="GAPinput">t4:=Cohomology(tr,4);</span>
[ g1, g2, g3, g4 ] -> [ id, g1, g2, g4 ]
<span class="GAPprompt">gap></span> <span class="GAPinput">StructureDescription(Kernel(t4));</span>
"C2 x C2"
<span class="GAPprompt">gap></span> <span class="GAPinput">StructureDescription(Image(t4));</span>
"C4 x C2"
<span class="GAPprompt">gap></span> <span class="GAPinput">tr:=TransferChainMap(R,P);</span>
Chain Map between complexes of length 5 .
<span class="GAPprompt">gap></span> <span class="GAPinput">Homology(tr,4);</span>
[ g1 ] -> [ g1 ]
</pre></div>
<p><a id="X79B1406C803FF178" name="X79B1406C803FF178"></a></p>
<h4>7.12 <span class="Heading">Cohomology rings of finite fundamental groups of 3-manifolds
</span></h4>
<p>A <em>spherical 3-manifold</em> is a 3-manifold arising as the quotient <span class="SimpleMath">\(S^3/\Gamma\)</span> of the 3-sphere <span class="SimpleMath">\(S^3\)</span> by a finite subgroup <span class="SimpleMath">\(\Gamma\)</span> of <span class="SimpleMath">\(SO(4)\)</span> acting freely as rotations. The geometrization conjecture, proved by Grigori Perelman, implies that every closed connected 3-manifold with a finite fundamental group is homeomorphic to a spherical 3-manifold.</p>
<p>A spherical 3-manifold <span class="SimpleMath">\(S^3/\Gamma\)</span> has finite fundamental group isomorphic to <span class="SimpleMath">\(\Gamma\)</span>. This fundamental group is one of:</p>
<ul>
<li><p><span class="SimpleMath">\(\Gamma=C_m=\langle x\ |\ x^m\rangle\)</span> (<strong class="button">cyclic fundamental group</strong>)</p>
</li>
<li><p><span class="SimpleMath">\(\Gamma=C_m\times \langle x,y \ |\ xyx^{-1}=y^{-1}, x^{2^k}=y^n \rangle\)</span> for integers <span class="SimpleMath">\(k, m\ge 1, n\ge 2\)</span> and <span class="SimpleMath">\(m\)</span> coprime to <span class="SimpleMath">\(2n\)</span> (<strong class="button">prism manifold case</strong>)</p>
</li>
<li><p><span class="SimpleMath">\(\Gamma= C_m\times \langle x,y, z \ |\ (xy)^2=x^2=y^2, zxz^{-1}=y, zyz^{-1}=xy, z^{3^k}=1\rangle \)</span> for integers <span class="SimpleMath">\(k,m\ge 1\)</span> and <span class="SimpleMath">\(m\)</span> coprime to 6 (<strong class="button">tetrahedral case</strong>)</p>
</li>
<li><p><span class="SimpleMath">\(\Gamma=C_m\times\langle x,y\ |\ (xy)^2=x^3=y^4\rangle \)</span> for <span class="SimpleMath">\(m\ge 1\)</span> coprime to 6 (<strong class="button">octahedral case</strong>)</p>
</li>
<li><p><span class="SimpleMath">\(\Gamma=C_m\times \langle x,y\ |\ (xy)^2=x^3=y^5\rangle \)</span> for <span class="SimpleMath">\(m\ge 1\)</span> coprime to 30 (<strong class="button">icosahedral case</strong>).</p>
</li>
</ul>
<p>This list of cases is taken from the <span class="URL"><a href="https://en.wikipedia.org/wiki/Spherical_3-manifold">Wikipedia pages</a></span>. The group <span class="SimpleMath">\(\Gamma\)</span> has periodic cohomology since it acts on a sphere. The cyclic group has period 2 and in the other four cases it has period 4. (Recall that in general a finite group <span class="SimpleMath">\(G\)</span> has <em>periodic cohomology of period <span class="SimpleMath">\(n\)</span></em> if there is an element <span class="SimpleMath">\(u\in H^n(G,\mathbb Z)\)</span> such that the cup product <span class="SimpleMath">\(-\ \cup u\colon H^k(G,\mathbb Z) \rightarrow H^{k+n}(G,\mathbb Z)\)</span> is an isomorphism for all <span class="SimpleMath">\(k\ge 1\)</span>. It can be shown that <span class="SimpleMath">\(G\)</span> has periodic cohomology of period <span class="SimpleMath">\(n\)</span> if and only if <span class="SimpleMath">\(H^{n}(G,\mathbb Z)=\mathbb Z_{|G|}\)</span>.)</p>
<p>The cohomology of the cyclic group is well-known, and the cohomology of a direct product can be obtained from that of the factors using the Kunneth formula.</p>
<p>In the icosahedral case with <span class="SimpleMath">\(m=1\)</span> the following commands yield $$H^\ast(\Gamma,\mathbb Z)=Z[t]/(120t=0)$$ with generator <span class="SimpleMath">\(t\)</span> of degree 4. The final command demonstrates that a periodic resolution is used in the computation.</p>
<div class="example"><pre>
<span class="GAPprompt">gap></span> <span class="GAPinput">F:=FreeGroup(2);;x:=F.1;;y:=F.2;;</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">G:=F/[(x*y)^2*x^-3, x^3*y^-5];;</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">Order(G);</span>
120
<span class="GAPprompt">gap></span> <span class="GAPinput">R:=ResolutionSmallGroup(G,5);;</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">n:=0;;Cohomology(HomToIntegers(R),n);</span>
[ 0 ]
<span class="GAPprompt">gap></span> <span class="GAPinput">n:=1;;Cohomology(HomToIntegers(R),n);</span>
[ ]
<span class="GAPprompt">gap></span> <span class="GAPinput">n:=2;;Cohomology(HomToIntegers(R),n);</span>
[ ]
<span class="GAPprompt">gap></span> <span class="GAPinput">n:=3;;Cohomology(HomToIntegers(R),n);</span>
[ ]
<span class="GAPprompt">gap></span> <span class="GAPinput">n:=4;;Cohomology(HomToIntegers(R),n);</span>
[ 120 ]
<span class="GAPprompt">gap></span> <span class="GAPinput">List([0..5],k->R!.dimension(k));</span>
[ 1, 2, 2, 1, 1, 2 ]
</pre></div>
<p>In the octahedral case with <span class="SimpleMath">\(m=1\)</span> we obtain $$H^\ast(\Gamma,\mathbb Z) = \mathbb Z[s,t]/(s^2=24t, 2s=0, 48t=0)$$ where <span class="SimpleMath">\(s\)</span> has degree 2 and <span class="SimpleMath">\(t\)</span> has degree 4, from the following commands.</p>
<div class="example"><pre>
<span class="GAPprompt">gap></span> <span class="GAPinput">F:=FreeGroup(2);;x:=F.1;;y:=F.2;;</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">G:=F/[(x*y)^2*x^-3, x^3*y^-4];;</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">Order(G);</span>
48
<span class="GAPprompt">gap></span> <span class="GAPinput">R:=ResolutionFiniteGroup(G,5);;</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">n:=0;;Cohomology(HomToIntegers(R),n);</span>
[ 0 ]
<span class="GAPprompt">gap></span> <span class="GAPinput">n:=1;;Cohomology(HomToIntegers(R),n);</span>
[ ]
<span class="GAPprompt">gap></span> <span class="GAPinput">n:=2;;Cohomology(HomToIntegers(R),n);</span>
[ 2 ]
<span class="GAPprompt">gap></span> <span class="GAPinput">n:=3;;Cohomology(HomToIntegers(R),n);</span>
[ ]
<span class="GAPprompt">gap></span> <span class="GAPinput">n:=4;;Cohomology(HomToIntegers(R),n);</span>
[ 48 ]
<span class="GAPprompt">gap></span> <span class="GAPinput">IntegralCupProduct(R,[1],[1],2,2);</ | |