<Chapter><Heading> Homology and cohomology groups</Heading> <Section><Heading> &nbsp;</Heading> 
<ManSection> <Func Name="Cohomology" Arg="X,n"/> <Description> <P/> Inputs either a cochain complex <M>X=C</M> (or G-cocomplex C) or a cochain map <M>X=(C \longrightarrow D)</M> in characteristic <M>p</M> together with a non-negative intereg <M>n</M>. <List> <Item>If <M>X=C</M> and <M>p=0</M> then the torsion coefficients of <M>H^n(C)</M> are retuned. If <M>X=C</M> and <M>p</M> is prime then the dimension of <M>H^n(C)</M> are retuned. </Item> <Item>If <M>X=(C \longrightarrow D)</M> then the induced homomorphism <M>H^n(C)\longrightarrow H^n(D)</M> is returned as a homomorphism of finitely presented groups. </Item> </List> A <M>G</M>-cocomplex <M>C</M> can also be input. The cohomology groups of such a complex may not be abelian. <B>Warning:</B> in this case Cohomology(C,n) returns the abelian invariants of the <M>n</M>-th cohomology group of <M>C</M>. <P/><B>Examples:</B> <URL><Link>../tutorial/chap1.html</Link><LinkText>1</LinkText></URL>&nbsp;, <URL><Link>../tutorial/chap3.html</Link><LinkText>2</LinkText></URL>&nbsp;, <URL><Link>../tutorial/chap4.html</Link><LinkText>3</LinkText></URL>&nbsp;, <URL><Link>../tutorial/chap6.html</Link><LinkText>4</LinkText></URL>&nbsp;, <URL><Link>../tutorial/chap7.html</Link><LinkText>5</LinkText></URL>&nbsp;, <URL><Link>../tutorial/chap8.html</Link><LinkText>6</LinkText></URL>&nbsp;, <URL><Link>../tutorial/chap12.html</Link><LinkText>7</LinkText></URL>&nbsp;, <URL><Link>../tutorial/chap13.html</Link><LinkText>8</LinkText></URL>&nbsp;, <URL><Link>../tutorial/chap14.html</Link><LinkText>9</LinkText></URL>&nbsp;, <URL><Link>../www/SideLinks/About/aboutArtinGroups.html</Link><LinkText>10</LinkText></URL>&nbsp;, <URL><Link>../www/SideLinks/About/aboutModPRings.html</Link><LinkText>11</LinkText></URL>&nbsp;, <URL><Link>../www/SideLinks/About/aboutNoncrossing.html</Link><LinkText>12</LinkText></URL>&nbsp;, <URL><Link>../www/SideLinks/About/aboutCoefficientSequence.html</Link><LinkText>13</LinkText></URL>&nbsp;, <URL><Link>../www/SideLinks/About/aboutCohomologyRings.html</Link><LinkText>14</LinkText></URL>&nbsp;, <URL><Link>../www/SideLinks/About/aboutCoveringSpaces.html</Link><LinkText>15</LinkText></URL>&nbsp;, <URL><Link>../www/SideLinks/About/aboutCoverinSpaces.html</Link><LinkText>16</LinkText></URL>&nbsp;, <URL><Link>../www/SideLinks/About/aboutCoxeter.html</Link><LinkText>17</LinkText></URL>&nbsp;, <URL><Link>../www/SideLinks/About/aboutCrossedMods.html</Link><LinkText>18</LinkText></URL>&nbsp;, <URL><Link>../www/SideLinks/About/aboutExtensions.html</Link><LinkText>19</LinkText></URL>&nbsp;, <URL><Link>../www/SideLinks/About/aboutSpaceGroup.html</Link><LinkText>20</LinkText></URL>&nbsp;, <URL><Link>../www/SideLinks/About/aboutGouter.html</Link><LinkText>21</LinkText></URL>&nbsp;, <URL><Link>../www/SideLinks/About/aboutSurvey.html</Link><LinkText>22</LinkText></URL>&nbsp;, <URL><Link>../www/SideLinks/About/aboutIntro.html</Link><LinkText>23</LinkText></URL>&nbsp;, <URL><Link>../www/SideLinks/About/aboutTopology.html</Link><LinkText>24</LinkText></URL>&nbsp;, <URL><Link>../www/SideLinks/About/aboutTorAndExt.html</Link><LinkText>25</LinkText></URL>&nbsp;, <URL><Link>../www/SideLinks/About/aboutTwistedCoefficients.html</Link><LinkText>26</LinkText></URL>&nbsp;
</Description> </ManSection> 
<ManSection> <Func Name="CohomologyModule" Arg="C,n"/> <Description> <P/> Inputs a <M>G</M>-cocomplex <M>C</M> together with a non-negative integer <M>n</M>. It returns the cohomology <M>H^n(C)</M> as a <M>G</M>-outer group. If <M>C</M> was constructed from a resolution <M>R</M> by homing to an abelian <M>G</M>-outer group <M>A</M> then, for each x in H:=CohomologyModule(C,n), there is a function f:=H!.representativeCocycle(x) which is a standard n-cocycle corresponding to the cohomology class x. (At present this works only for n=1,2,3.) <P/><B>Examples:</B> <URL><Link>../tutorial/chap6.html</Link><LinkText>1</LinkText></URL>&nbsp;, <URL><Link>../www/SideLinks/About/aboutCrossedMods.html</Link><LinkText>2</LinkText></URL>&nbsp;, <URL><Link>../www/SideLinks/About/aboutGouter.html</Link><LinkText>3</LinkText></URL>&nbsp;
</Description> </ManSection> 
<ManSection> <Func Name="CohomologyPrimePart" Arg="C,n,p"/> <Description> <P/> Inputs a cochain complex <M>C</M> in characteristic 0, a positive integer <M>n</M>, and a prime <M>p</M>. It returns a list of those torsion coefficients of <M>H^n(C)</M> that are positive powers of <M>p</M>. The function uses the EDIM package by Frank Luebeck. <P/><B>Examples:</B> 
</Description> </ManSection> 
<ManSection> <Func Name="GroupCohomology" Arg="X,n"/> <Func Name="GroupCohomology" Arg="X,n,p"/> <Description> <P/> Inputs a positive integer <M>n</M> and either <List> <Item> a finite group <M>X=G</M> </Item> <Item> or a nilpotent Pcp-group <M>X=G</M> </Item> <Item> or a space group <M>X=G</M> </Item> <Item> or a list <M>X=D</M> representing a graph of groups</Item> <Item>or a pair <M>X=["Artin",D]</M> where <M>D</M> is a Coxeter diagram representing an infinite Artin group <M>G</M>.</Item> <Item>or a pair <M>X=["Coxeter",D]</M> where <M>D</M> is a Coxeter diagram representing a finite Coxeter group <M>G</M>.</Item> </List> It returns the torsion coefficients of the integral cohomology <M>H^n(G,Z)</M>. <P/> There is an optional third argument which, when set equal to a prime <M>p</M>, causes the function to return the the mod <M>p</M> cohomology <M>H^n(G,Z_p)</M> as a list of length equal to its rank. <P/> This function is a composite of more basic functions, and makes choices for a number of parameters. For a particular group you would almost certainly be better using the more basic functions and making the choices yourself! <P/><B>Examples:</B> <URL><Link>../tutorial/chap7.html</Link><LinkText>1</LinkText></URL>&nbsp;, <URL><Link>../tutorial/chap8.html</Link><LinkText>2</LinkText></URL>&nbsp;
</Description> </ManSection> 
<ManSection> <Func Name="GroupHomology" Arg="X,n"/> <Func Name="GroupHomology" Arg="X,n,p"/> <Description> <P/> Inputs a positive integer <M>n</M> and either <List> <Item> a finite group <M>X=G</M> </Item> <Item> or a nilpotent Pcp-group <M>X=G</M> </Item> <Item> or a space group <M>X=G</M> </Item> <Item> or a list <M>X=D</M> representing a graph of groups</Item> <Item>or a pair <M>X=["Artin",D]</M> where <M>D</M> is a Coxeter diagram representing an infinite Artin group <M>G</M>.</Item> <Item>or a pair <M>X=["Coxeter",D]</M> where <M>D</M> is a Coxeter diagram representing a finite Coxeter group <M>G</M>.</Item> </List> It returns the torsion coefficients of the integral homology <M>H_n(G,Z)</M>. <P/> There is an optional third argument which, when set equal to a prime <M>p</M>, causes the function to return the mod <M>p</M> homology <M>H_n(G,Z_p)</M> as a list of lenth equal to its rank. <P/> This function is a composite of more basic functions, and makes choices for a number of parameters. For a particular group you would almost certainly be better using the more basic functions and making the choices yourself! <P/><B>Examples:</B> <URL><Link>../tutorial/chap7.html</Link><LinkText>1</LinkText></URL>&nbsp;, <URL><Link>../tutorial/chap13.html</Link><LinkText>2</LinkText></URL>&nbsp;, <URL><Link>../www/SideLinks/About/aboutLinks.html</Link><LinkText>3</LinkText></URL>&nbsp;, <URL><Link>../www/SideLinks/About/aboutParallel.html</Link><LinkText>4</LinkText></URL>&nbsp;, <URL><Link>../www/SideLinks/About/aboutRosenbergerMonster.html</Link><LinkText>5</LinkText></URL>&nbsp;, <URL><Link>../www/SideLinks/About/aboutFunctorial.html</Link><LinkText>6</LinkText></URL>&nbsp;, <URL><Link>../www/SideLinks/About/aboutIntro.html</Link><LinkText>7</LinkText></URL>&nbsp;, <URL><Link>../www/SideLinks/About/aboutTensorSquare.html</Link><LinkText>8</LinkText></URL>&nbsp;, <URL><Link>../www/SideLinks/About/aboutLie.html</Link><LinkText>9</LinkText></URL>&nbsp;
</Description> </ManSection> 
<ManSection> <Func Name="PersistentHomologyOfQuotientGroupSeries" Arg="S,n"/> <Func Name="PersistentHomologyOfQuotientGroupSeries" Arg="S,n,p,Resolution_Algorithm"/> <Description> <P/> Inputs a positive integer <M>n</M> and a decreasing chain <M>S=[S_1, S_2, ..., S_k]</M> of normal subgroups in a finite <M>p</M>-group <M>G=S_1</M>. It returns the bar code of the persistent mod <M>p</M> homology in degree <M>n</M> of the sequence of quotient homomorphisms <M>G \rightarrow G/S_k \rightarrow G/S_{k-1} \rightarrow ... \rightarrow G/S_2 </M>. The bar code is returned as a matrix containing the dimensions of the images of the induced homology maps. <P/> If one sets <M>p=0</M> then the integral persitent homology bar code is returned. This is a matrix whose entries are pairs of the lists: the list of abelian invariants of the images of the induced homology maps and the cokernels of the induced homology maps. (The matrix probably does not uniquely determine the induced homology maps.) <P/> Non prime-power (and possibly infinite) groups <M>G</M> can also be handled; in this case the prime must be entered as a third argument, and the resolution algorithm (e.g. ResolutionNilpotentGroup) can be entered as a fourth argument. (The default algorithm is ResolutionFiniteGroup, so this must be changed for infinite groups.) <P/><B>Examples:</B> 
</Description> </ManSection> 
<ManSection> <Func Name="PersistentCohomologyOfQuotientGroupSeries" Arg="S,n"/> <Func Name="PersistentCohomologyOfQuotientGroupSeries" Arg="S,n,p,Resolution_Algorithm"/> <Description> <P/> Inputs a positive integer <M>n</M> and a decreasing chain <M>S=[S_1, S_2, ..., S_k]</M> of normal subgroups in a finite <M>p</M>-group <M>G=S_1</M>. It returns the bar code of the persistent mod <M>p</M> cohomology in degree <M>n</M> of the sequence of quotient homomorphisms <M>G \rightarrow G/S_k \rightarrow G/S_{k-1} \rightarrow ... \rightarrow G/S_2 </M>. The bar code is returned as a matrix containing the dimensions of the images of the induced homology maps. <P/> If one sets <M>p=0</M> then the integral persitent cohomology bar code is returned. This is a matrix whose entries are pairs of the lists: the list of abelian invariants of the images of the induced cohomology maps and the cokernels of the induced cohomology maps. (The matrix probably does not uniquely determine the induced homology maps.) <P/> Non prime-power (and possibly infinite) groups <M>G</M> can also be handled; in this case the prime must be entered as a third argument, and the resolution algorithm (e.g. ResolutionNilpotentGroup) can be entered as a fourth argument. (The default algorithm is ResolutionFiniteGroup, so this must be changed for infinite groups.) <P/> (The implementation is possibly a little less efficient than that of the corresponding persistent homology function.) <P/><B>Examples:</B> 
</Description> </ManSection> 
<ManSection> <Func Name="UniversalBarCode" Arg="str,n,d"/> <Func Name="UniversalBarCode" Arg="str,n,d,k"/> <Description> <P/> Inputs integers <M>n,d</M> that identify a prime power group G=SmallGroup(n,d), together with one of the strings <M>str</M>= "UpperCentralSeries", LowerCentralSeries", "DerivedSeries", "UpperPCentralSeries", "LowerPCentralSeries". The function returns a matrix of rational functions; the coefficients of <M>x^k</M> in their expansions yield the persistence matrix for the degree <M>k</M> homology with trivial mod p coefficients associated to the quotients of <M>G</M> by the terms of the given series. <P/> If the additional integer argument <M>k</M> is supplied then the function returns the degree k homology persistence matrix. <P/><B>Examples:</B> <URL><Link>../www/SideLinks/About/aboutPersistent.html</Link><LinkText>1</LinkText></URL>&nbsp;
</Description> </ManSection> 
<ManSection> <Func Name="PersistentHomologyOfSubGroupSeries" Arg="S,n"/> <Func Name="PersistentHomologyOfSubGroupSeries" Arg="S,n,p,Resolution_Algorithm"/> <Description> <P/> Inputs a positive integer <M>n</M> and a decreasing chain <M>S=[S_1, S_2, ..., S_k]</M> of subgroups in a finite <M>p</M>-group <M>G=S_1</M>. It returns the bar code of the persistent mod <M>p</M> homology in degree <M>n</M> of the sequence of inclusion homomorphisms <M>S_k \rightarrow S_{k-1} \rightarrow ... \rightarrow S_1=G </M>. The bar code is returned as a binary matrix. <P/> Non prime-power (and possibly infinite) groups <M>G</M> can also be handled; in this case the prime must be entered as a third argument, and the resolution algorithm (e.g. ResolutionNilpotentGroup) must be entered as a fourth argument. <P/><B>Examples:</B> 
</Description> </ManSection> 
<ManSection> <Func Name="PersistentHomologyOfFilteredChainComplex" Arg="C,n,p"/> <Description> <P/> Inputs a filtered chain complex <M>C</M> (of characteristic <M>0</M> or <M>p</M>) together with a positive integer <M>n</M> and prime <M>p</M>. It returns the bar code of the persistent mod <M>p</M> homology in degree <M>n</M> of the filtered chain complex <M>C</M>. (This function needs a more efficient implementation. Its fine as it stands for investigation in group homology, but not sufficiently efficient for the homology of large complexes arising in applied topology.) <P/><B>Examples:</B> <URL><Link>../tutorial/chap10.html</Link><LinkText>1</LinkText></URL>&nbsp;, <URL><Link>../www/SideLinks/About/aboutPersistent.html</Link><LinkText>2</LinkText></URL>&nbsp;
</Description> </ManSection> 
<ManSection> <Func Name="PersistentHomologyOfCommutativeDiagramOfPGroups" Arg="D,n"/> <Description> <P/> Inputs a commutative diagram <M>D</M> of finite <M>p</M>-groups and a positive integer <M>n</M>. It returns a list containing, for each homomorphism in the nerve of <M>D</M>, a triple <M>[k,l,m]</M> where <M>k</M> is the dimension of the source of the induced mod <M>p</M> homology map in degree <M>n</M>, <M>l</M> is the dimension of the image, and <M>m</M> is the dimension of the cokernel. <P/><B>Examples:</B> 
</Description> </ManSection> 
<ManSection> <Func Name="PersistentHomologyOfFilteredPureCubicalComplex" Arg="M,n"/> <Description> <P/> Inputs a filtered pure cubical complex <M>M</M> and a non-negative integer <M>n</M>. It returns the degree <M>n</M> persistent homology of <M> M</M> with rational coefficients. <P/><B>Examples:</B> 
</Description> </ManSection> 
<ManSection> <Func Name="PersistentHomologyOfPureCubicalComplex" Arg="L,n,p"/> <Description> <P/> Inputs a positive integer <M>n</M>, a prime <M>p</M> and an increasing chain <M>L=[L_1, L_2, ..., L_k]</M> of subcomplexes in a pure cubical complex <M>L_k</M>. It returns the bar code of the persistent mod <M>p</M> homology in degree <M>n</M> of the sequence of inclusion maps. The bar code is returned as a matrix. (This function is extremely inefficient and it is better to use PersistentHomologyOFilteredfPureCubicalComplex. <P/> <P/><B>Examples:</B> 
</Description> </ManSection> 
<ManSection> <Func Name="ZZPersistentHomologyOfPureCubicalComplex" Arg="L,n,p"/> <Description> <P/> Inputs a positive integer <M>n</M>, a prime <M>p</M> and any sequence <M>L=[L_1, L_2, ..., L_k]</M> of subcomplexes of some pure cubical complex. It returns the bar code of the zig-zag persistent mod <M>p</M> homology in degree <M>n</M> of the sequence of maps <M>L_1 \rightarrow L_1 \cup L_2 \leftarrow L_2 \rightarrow L_2 \cup L_3 \leftarrow L_4 \rightarrow ... \leftarrow L_k</M>. The bar code is returned as a matrix. <P/> <P/><B>Examples:</B> 
</Description> </ManSection> 
<ManSection> <Func Name="RipsHomology" Arg="G,n"/> <Func Name="RipsHomology" Arg="G,n,p"/> <Description> <P/> Inputs a graph <M>G</M>, a non-negative integer <M>n</M> (and optionally a prime number <M>p</M>). It returns the integral homology (or mod p homology) in degree <M>n</M> of the Rips complex of <M>G</M>. <P/><B>Examples:</B> 
</Description> </ManSection> 
<ManSection> <Func Name="BarCode" Arg="P"/> <Description> <P/> Inputs an integer persistence matrix P and returns the same information in the form of a binary matrix (corresponding to the usual bar code). <P/><B>Examples:</B> <URL><Link>../tutorial/chap5.html</Link><LinkText>1</LinkText></URL>&nbsp;, <URL><Link>../tutorial/chap10.html</Link><LinkText>2</LinkText></URL>&nbsp;, <URL><Link>../www/SideLinks/About/aboutPersistent.html</Link><LinkText>3</LinkText></URL>&nbsp;
</Description> </ManSection> 
<ManSection> <Func Name="BarCodeDisplay" Arg="P"/> <Func Name="BarCodeDisplay" Arg="P,str"/> <Func Name="BarCodeCompactDisplay" Arg="P"/> <Func Name="BarCodeCompactDisplay" Arg="P,str"/> <Description> <P/> Inputs an integer persistence matrix P, and an optional string, such as <M>str</M>="mozilla" specifying a viewer/browser. It displays a picture of the bar code (using GraphViz software). The compact display is better for large bar codes. <P/><B>Examples:</B> <URL><Link>../tutorial/chap10.html</Link><LinkText>1</LinkText></URL>&nbsp;, <URL><Link>../www/SideLinks/About/aboutPersistent.html</Link><LinkText>2</LinkText></URL>&nbsp;
</Description> </ManSection> 
<ManSection> <Func Name="Homology" Arg="X,n"/> <Description> <P/> Inputs either a chain complex <M>X=C</M> or a chain map <M>X=(C \longrightarrow D)</M>. <List> <Item>If <M>X=C</M> then the torsion coefficients of <M>H_n(C)</M> are retuned.</Item> <Item> If <M>X=(C \longrightarrow D)</M> then the induced homomorphism <M>H_n(C) \longrightarrow H_n(D)</M> is returned as a homomorphism of finitely presented groups. </Item> </List> A <M>G</M>-complex <M>C</M> can also be input. The homology groups of such a complex may not be abelian. <B>Warning:</B> in this case Homology(C,n) returns the abelian invariants of the <M>n</M>-th homology group of <M>C</M>. <P/><B>Examples:</B> <URL><Link>../tutorial/chap1.html</Link><LinkText>1</LinkText></URL>&nbsp;, <URL><Link>../tutorial/chap2.html</Link><LinkText>2</LinkText></URL>&nbsp;, <URL><Link>../tutorial/chap3.html</Link><LinkText>3</LinkText></URL>&nbsp;, <URL><Link>../tutorial/chap4.html</Link><LinkText>4</LinkText></URL>&nbsp;, <URL><Link>../tutorial/chap5.html</Link><LinkText>5</LinkText></URL>&nbsp;, <URL><Link>../tutorial/chap7.html</Link><LinkText>6</LinkText></URL>&nbsp;, <URL><Link>../tutorial/chap9.html</Link><LinkText>7</LinkText></URL>&nbsp;, <URL><Link>../tutorial/chap10.html</Link><LinkText>8</LinkText></URL>&nbsp;, <URL><Link>../tutorial/chap11.html</Link><LinkText>9</LinkText></URL>&nbsp;, <URL><Link>../tutorial/chap12.html</Link><LinkText>10</LinkText></URL>&nbsp;, <URL><Link>../tutorial/chap13.html</Link><LinkText>11</LinkText></URL>&nbsp;, <URL><Link>../www/SideLinks/About/aboutLinks.html</Link><LinkText>12</LinkText></URL>&nbsp;, <URL><Link>../www/SideLinks/About/aboutArithmetic.html</Link><LinkText>13</LinkText></URL>&nbsp;, <URL><Link>../www/SideLinks/About/aboutMetrics.html</Link><LinkText>14</LinkText></URL>&nbsp;, <URL><Link>../www/SideLinks/About/aboutArtinGroups.html</Link><LinkText>15</LinkText></URL>&nbsp;, <URL><Link>../www/SideLinks/About/aboutAspherical.html</Link><LinkText>16</LinkText></URL>&nbsp;, <URL><Link>../www/SideLinks/About/aboutParallel.html</Link><LinkText>17</LinkText></URL>&nbsp;, <URL><Link>../www/SideLinks/About/aboutBredon.html</Link><LinkText>18</LinkText></URL>&nbsp;, <URL><Link>../www/SideLinks/About/aboutPerformance.html</Link><LinkText>19</LinkText></URL>&nbsp;, <URL><Link>../www/SideLinks/About/aboutCocycles.html</Link><LinkText>20</LinkText></URL>&nbsp;, <URL><Link>../www/SideLinks/About/aboutPersistent.html</Link><LinkText>21</LinkText></URL>&nbsp;, <URL><Link>../www/SideLinks/About/aboutPoincareSeries.html</Link><LinkText>22</LinkText></URL>&nbsp;, <URL><Link>../www/SideLinks/About/aboutCoveringSpaces.html</Link><LinkText>23</LinkText></URL>&nbsp;, <URL><Link>../www/SideLinks/About/aboutCoverinSpaces.html</Link><LinkText>24</LinkText></URL>&nbsp;, <URL><Link>../www/SideLinks/About/aboutPolytopes.html</Link><LinkText>25</LinkText></URL>&nbsp;, <URL><Link>../www/SideLinks/About/aboutCoxeter.html</Link><LinkText>26</LinkText></URL>&nbsp;, <URL><Link>../www/SideLinks/About/aboutquasi.html</Link><LinkText>27</LinkText></URL>&nbsp;, <URL><Link>../www/SideLinks/About/aboutCubical.html</Link><LinkText>28</LinkText></URL>&nbsp;, <URL><Link>../www/SideLinks/About/aboutRandomComplexes.html</Link><LinkText>29</LinkText></URL>&nbsp;, <URL><Link>../www/SideLinks/About/aboutRosenbergerMonster.html</Link><LinkText>30</LinkText></URL>&nbsp;, <URL><Link>../www/SideLinks/About/aboutDavisComplex.html</Link><LinkText>31</LinkText></URL>&nbsp;, <URL><Link>../www/SideLinks/About/aboutDefinitions.html</Link><LinkText>32</LinkText></URL>&nbsp;, <URL><Link>../www/SideLinks/About/aboutSimplicialGroups.html</Link><LinkText>33</LinkText></URL>&nbsp;, <URL><Link>../www/SideLinks/About/aboutExtensions.html</Link><LinkText>34</LinkText></URL>&nbsp;, <URL><Link>../www/SideLinks/About/aboutSpaceGroup.html</Link><LinkText>35</LinkText></URL>&nbsp;, <URL><Link>../www/SideLinks/About/aboutFunctorial.html</Link><LinkText>36</LinkText></URL>&nbsp;, <URL><Link>../www/SideLinks/About/aboutGraphsOfGroups.html</Link><LinkText>37</LinkText></URL>&nbsp;, <URL><Link>../www/SideLinks/About/aboutIntro.html</Link><LinkText>38</LinkText></URL>&nbsp;, <URL><Link>../www/SideLinks/About/aboutTensorSquare.html</Link><LinkText>39</LinkText></URL>&nbsp;, <URL><Link>../www/SideLinks/About/aboutLieCovers.html</Link><LinkText>40</LinkText></URL>&nbsp;, <URL><Link>../www/SideLinks/About/aboutTorAndExt.html</Link><LinkText>41</LinkText></URL>&nbsp;, <URL><Link>../www/SideLinks/About/aboutLie.html</Link><LinkText>42</LinkText></URL>&nbsp;, <URL><Link>../www/SideLinks/About/aboutTwistedCoefficients.html</Link><LinkText>43</LinkText></URL>&nbsp;
</Description> </ManSection> 
<ManSection> <Func Name="HomologyPb" Arg="C,n"/> <Description> <P/> This is a back-up function which might work in some instances where <M>Homology(C,n)</M> fails. It is most useful for chain complexes whose boundary homomorphisms are sparse. <P/> It inputs a chain complex <M>C</M> in characteristic <M>0</M> and returns the torsion coefficients of <M>H_n(C)</M> . There is a small probability that an incorrect answer could be returned. The computation relies on probabilistic Smith Normal Form algorithms implemented in the Simplicial Homology GAP package. This package therefore needs to be loaded. The computation is stored as a component of <M>C</M> so, when called a second time for a given <M>C</M> and <M>n</M>, the calculation is recalled without rerunning the algorithm. <P/> The choice of probabalistic algorithm can be changed using the command <P/> SetHomologyAlgorithm(HomologyAlgorithm[i]);<P/> where i = 1,2,3 or 4. The upper limit for the probability of an incorrect answer can be set to any rational number <M>0</M>&tlt;<M>e</M>&tlt;= <M>1</M> using the following command. <P/>SetUncertaintyTolerence(e);<P/> See the Simplicial Homology package manual for further details. <P/><B>Examples:</B> 
</Description> </ManSection> 
<ManSection> <Func Name="HomologyVectorSpace" Arg="X,n"/> <Description> <P/> Inputs either a chain complex <M>X=C</M> or a chain map <M>X=(C \longrightarrow D)</M> in prime characteristic. <List> <Item>If <M>X=C</M> then <M>H_n(C)</M> is retuned as a vector space.</Item> <Item> If <M>X=(C \longrightarrow D)</M> then the induced homomorphism <M>H_n(C) \longrightarrow H_n(D)</M> is returned as a homomorphism of vector spaces. </Item> </List> <P/><B>Examples:</B> 
</Description> </ManSection> 
<ManSection> <Func Name="HomologyPrimePart" Arg="C,n,p"/> <Description> <P/> Inputs a chain complex <M>C</M> in characteristic 0, a positive integer <M>n</M>, and a prime <M>p</M>. It returns a list of those torsion coefficients of <M>H_n(C)</M> that are positive powers of <M>p</M>. The function uses the EDIM GAP package by Frank Luebeck. <P/><B>Examples:</B> 
</Description> </ManSection> 
<ManSection> <Func Name="LeibnizAlgebraHomology" Arg="A,n"/> <Description> <P/> Inputs a Lie or Leibniz algebra <M>X=A</M> (over the ring of integers <M>Z</M> or over a field <M>K</M>), together with a positive integer <M>n</M>. It returns the <M>n</M>-dimensional Leibniz homology of <M>A</M>. <P/><B>Examples:</B> <URL><Link>../www/SideLinks/About/aboutIntro.html</Link><LinkText>1</LinkText></URL>&nbsp;, <URL><Link>../www/SideLinks/About/aboutLieCovers.html</Link><LinkText>2</LinkText></URL>&nbsp;
</Description> </ManSection> 
<ManSection> <Func Name="LieAlgebraHomology" Arg="A,n"/> <Description> <P/> Inputs a Lie algebra <M>A</M> (over the integers or a field) and a positive integer <M>n</M>. It returns the homology <M>H_n(A,k)</M> where <M>k</M> denotes the ground ring. <P/><B>Examples:</B> <URL><Link>../tutorial/chap7.html</Link><LinkText>1</LinkText></URL>&nbsp;, <URL><Link>../www/SideLinks/About/aboutIntro.html</Link><LinkText>2</LinkText></URL>&nbsp;, <URL><Link>../www/SideLinks/About/aboutLieCovers.html</Link><LinkText>3</LinkText></URL>&nbsp;, <URL><Link>../www/SideLinks/About/aboutLie.html</Link><LinkText>4</LinkText></URL>&nbsp;
</Description> </ManSection> 
<ManSection> <Func Name="PrimePartDerivedFunctor" Arg="G,R,F,n"/> <Description> <P/> Inputs a finite group <M>G</M>, a positive integer <M>n</M>, at least <M>n+1</M> terms of a <M>ZP</M>-resolution for a Sylow subgroup <M>P</M>&tlt;<M>G</M> and a "mathematically suitable" covariant additive functor <M>F</M> such as TensorWithIntegers . It returns the abelian invariants of the <M>p</M>-component of the homology <M>H_n(F(R))</M> . <P/> Warning: All calculations are assumed to be in characteristic 0. The function should not be used if the coefficient module is over the field of <M>p</M> elements. <P/> "Mathematically suitable" means that the Cartan-Eilenberg double coset formula must hold. <P/><B>Examples:</B> <URL><Link>../tutorial/chap7.html</Link><LinkText>1</LinkText></URL>&nbsp;, <URL><Link>../www/SideLinks/About/aboutPerformance.html</Link><LinkText>2</LinkText></URL>&nbsp;, <URL><Link>../www/SideLinks/About/aboutFunctorial.html</Link><LinkText>3</LinkText></URL>&nbsp;, <URL><Link>../www/SideLinks/About/aboutTwistedCoefficients.html</Link><LinkText>4</LinkText></URL>&nbsp;
</Description> </ManSection> 
<ManSection> <Func Name="RankHomologyPGroup" Arg="G,n"/> <Func Name="RankHomologyPGroup" Arg="R,n"/> <Func Name="RankHomologyPGroup" Arg="G,n,str"/> <Description> <P/> Inputs a (smallish) <M>p</M>-group <M>G</M>, or <M>n</M> terms of a minimal <M>Z_pG</M>-resolution <M>R</M> of <M>Z_p</M> , together with a positive integer <M>n</M>. It returns the minimal number of generators of the integral homology group <M>H_n(G,Z)</M>. <P/> If an option third string argument <M>str</M>="empirical" is included then an empirical algorithm will be used. This is one which always seems to yield the right answer but which we can't prove yields the correct answer. <P/><B>Examples:</B> <URL><Link>../tutorial/chap7.html</Link><LinkText>1</LinkText></URL>&nbsp;
</Description> </ManSection> 
<ManSection> <Func Name="RankPrimeHomology" Arg="G,n"/> <Description> <P/> Inputs a (smallish) <M>p</M>-group <M>G</M> together with a positive integer <M>n</M>. It returns a function <M>dim(k)</M> which gives the rank of the vector space <M>H_k(G,Z_p)</M> for all <M>0</M> &tlt;= <M>k</M> &tlt;= <M>n</M>. <P/><B>Examples:</B> 
</Description> </ManSection> </Section> </Chapter>