<Chapter><Heading> Functors</Heading> <Section><Heading> &nbsp;</Heading> 
<ManSection> <Func Name="ExtendScalars" Arg="R,G,EltsG"/> <Description> <P/> Inputs a <M>ZH</M>-resolution <M>R</M>, a group <M>G</M> containing <M>H</M> as a subgroup, and a list <M>EltsG</M> of elements of <M>G</M>. It returns the free <M>ZG</M>-resolution <M>(R \otimes_{ZH} ZG)</M>. The returned resolution <M>S</M> has S!.elts:=EltsG. This is a resolution of the <M>ZG</M>-module <M>(Z \otimes_{ZH} ZG)</M>. (Here <M>\otimes_{ZH}</M> means tensor over <M>ZH</M>.) <P/><B>Examples:</B> 
</Description> </ManSection> 
<ManSection> <Func Name="HomToIntegers" Arg="X"/> <Description> <P/> Inputs either a <M>ZG</M>-resolution <M>X=R</M>, or an equivariant chain map <M>X = (F:R \longrightarrow S)</M>. It returns the cochain complex or cochain map obtained by applying <M>HomZG( _ , Z)</M> where <M>Z</M> is the trivial module of integers (characteristic 0). <P/><B>Examples:</B> <URL><Link>../tutorial/chap1.html</Link><LinkText>1</LinkText></URL>&nbsp;, <URL><Link>../tutorial/chap7.html</Link><LinkText>2</LinkText></URL>&nbsp;, <URL><Link>../tutorial/chap8.html</Link><LinkText>3</LinkText></URL>&nbsp;, <URL><Link>../tutorial/chap10.html</Link><LinkText>4</LinkText></URL>&nbsp;, <URL><Link>../tutorial/chap13.html</Link><LinkText>5</LinkText></URL>&nbsp;, <URL><Link>../www/SideLinks/About/aboutCohomologyRings.html</Link><LinkText>6</LinkText></URL>&nbsp;, <URL><Link>../www/SideLinks/About/aboutSpaceGroup.html</Link><LinkText>7</LinkText></URL>&nbsp;, <URL><Link>../www/SideLinks/About/aboutIntro.html</Link><LinkText>8</LinkText></URL>&nbsp;, <URL><Link>../www/SideLinks/About/aboutTorAndExt.html</Link><LinkText>9</LinkText></URL>&nbsp;
</Description> </ManSection> 
<ManSection> <Func Name="HomToIntegersModP" Arg="R"/> <Description> <P/> Inputs a <M>ZG</M>-resolution <M>R</M> and returns the cochain complex obtained by applying <M>HomZG( _ , Z_p)</M> where <M>Z_p</M> is the trivial module of integers mod <M>p</M>. (At present this functor does not handle equivariant chain maps.) <P/><B>Examples:</B> <URL><Link>../tutorial/chap8.html</Link><LinkText>1</LinkText></URL>&nbsp;, <URL><Link>../www/SideLinks/About/aboutSpaceGroup.html</Link><LinkText>2</LinkText></URL>&nbsp;, <URL><Link>../www/SideLinks/About/aboutIntro.html</Link><LinkText>3</LinkText></URL>&nbsp;, <URL><Link>../www/SideLinks/About/aboutTorAndExt.html</Link><LinkText>4</LinkText></URL>&nbsp;
</Description> </ManSection> 
<ManSection> <Func Name="HomToIntegralModule" Arg="R,f"/> <Description> <P/> Inputs a <M>ZG</M>-resolution <M>R</M> and a group homomorphism <M>f:G \longrightarrow GL_n(Z)</M> to the group of <M>n×n</M> invertible integer matrices. Here <M>Z</M> must have characteristic 0. It returns the cochain complex obtained by applying <M>HomZG( _ , A)</M> where <M>A</M> is the <M>ZG</M>-module <M>Z^n</M> with <M>G</M> action via <M>f</M>. (At present this function does not handle equivariant chain maps.) <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/aboutTwistedCoefficients.html</Link><LinkText>3</LinkText></URL>&nbsp;
</Description> </ManSection> 
<ManSection> <Func Name="TensorWithIntegralModule" Arg="R,f"/> <Description> <P/> Inputs a <M>ZG</M>-resolution <M>R</M> and a group homomorphism <M>f:G \longrightarrow GL_n(Z)</M> to the group of <M>n×n</M> invertible integer matrices. Here <M>Z</M> must have characteristic 0. It returns the chain complex obtained by tensoring over <M>ZG</M> with the <M>ZG</M>-module <M>A=Z^n</M> with <M>G</M> action via <M>f</M>. (At present this function does not handle equivariant chain maps.) <P/><B>Examples:</B> <URL><Link>../tutorial/chap7.html</Link><LinkText>1</LinkText></URL>&nbsp;
</Description> </ManSection> 
<ManSection> <Func Name="HomToGModule" Arg="R,A"/> <Description> <P/> Inputs a <M>ZG</M>-resolution <M>R</M> and an abelian G-outer group A. It returns the G-cocomplex obtained by applying <M>HomZG( _ , A)</M>. (At present this function does not handle equivariant chain maps.) <P/><B>Examples:</B> <URL><Link>../tutorial/chap6.html</Link><LinkText>1</LinkText></URL>&nbsp;, <URL><Link>../tutorial/chap7.html</Link><LinkText>2</LinkText></URL>&nbsp;, <URL><Link>../www/SideLinks/About/aboutCrossedMods.html</Link><LinkText>3</LinkText></URL>&nbsp;, <URL><Link>../www/SideLinks/About/aboutGouter.html</Link><LinkText>4</LinkText></URL>&nbsp;
</Description> </ManSection> 
<ManSection> <Func Name="InduceScalars" Arg="R,hom"/> <Description> <P/> Inputs a <M>ZQ</M>-resolution <M>R</M> and a surjective group homomorphism <M>hom:G\rightarrow Q</M>. It returns the unduced non-free <M>ZG</M>-resolution. <P/><B>Examples:</B> 
</Description> </ManSection> 
<ManSection> <Func Name="LowerCentralSeriesLieAlgebra" Arg="G"/> <Func Name="LowerCentralSeriesLieAlgebra" Arg="f"/> <Description> <P/> Inputs a pcp group <M>G</M>. If each quotient <M>G_c/G_{c+1}</M> of the lower central series is free abelian or p-elementary abelian (for fixed prime p) then a Lie algebra <M>L(G)</M> is returned. The abelian group underlying <M>L(G)</M> is the direct sum of the quotients <M>G_c/G_{c+1}</M> . The Lie bracket on <M>L(G)</M> is induced by the commutator in <M>G</M>. (Here <M>G_1=G</M>, <M>G_{c+1}=[G_c,G]</M> .) <P/> The function can also be applied to a group homomorphism <M>f: G \longrightarrow G'</M> . In this case the induced homomorphism of Lie algebras <M>L(f):L(G) \longrightarrow L(G')</M> is returned.<P/> If the quotients of the lower central series are not all free or p-elementary abelian then the function returns fail.<P/> This function was written by Pablo Fernandez Ascariz <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/aboutLie.html</Link><LinkText>3</LinkText></URL>&nbsp;
</Description> </ManSection> 
<ManSection> <Func Name="TensorWithIntegers" Arg="X"/> <Description> <P/> Inputs either a <M>ZG</M>-resolution <M>X=R</M>, or an equivariant chain map <M>X = (F:R \longrightarrow S)</M>. It returns the chain complex or chain map obtained by tensoring with the trivial module of integers (characteristic 0). <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/chap7.html</Link><LinkText>3</LinkText></URL>&nbsp;, <URL><Link>../tutorial/chap10.html</Link><LinkText>4</LinkText></URL>&nbsp;, <URL><Link>../tutorial/chap11.html</Link><LinkText>5</LinkText></URL>&nbsp;, <URL><Link>../tutorial/chap13.html</Link><LinkText>6</LinkText></URL>&nbsp;, <URL><Link>../www/SideLinks/About/aboutArithmetic.html</Link><LinkText>7</LinkText></URL>&nbsp;, <URL><Link>../www/SideLinks/About/aboutArtinGroups.html</Link><LinkText>8</LinkText></URL>&nbsp;, <URL><Link>../www/SideLinks/About/aboutAspherical.html</Link><LinkText>9</LinkText></URL>&nbsp;, <URL><Link>../www/SideLinks/About/aboutParallel.html</Link><LinkText>10</LinkText></URL>&nbsp;, <URL><Link>../www/SideLinks/About/aboutPerformance.html</Link><LinkText>11</LinkText></URL>&nbsp;, <URL><Link>../www/SideLinks/About/aboutCocycles.html</Link><LinkText>12</LinkText></URL>&nbsp;, <URL><Link>../www/SideLinks/About/aboutPersistent.html</Link><LinkText>13</LinkText></URL>&nbsp;, <URL><Link>../www/SideLinks/About/aboutPoincareSeries.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/aboutPolytopes.html</Link><LinkText>17</LinkText></URL>&nbsp;, <URL><Link>../www/SideLinks/About/aboutCoxeter.html</Link><LinkText>18</LinkText></URL>&nbsp;, <URL><Link>../www/SideLinks/About/aboutRosenbergerMonster.html</Link><LinkText>19</LinkText></URL>&nbsp;, <URL><Link>../www/SideLinks/About/aboutDavisComplex.html</Link><LinkText>20</LinkText></URL>&nbsp;, <URL><Link>../www/SideLinks/About/aboutDefinitions.html</Link><LinkText>21</LinkText></URL>&nbsp;, <URL><Link>../www/SideLinks/About/aboutSimplicialGroups.html</Link><LinkText>22</LinkText></URL>&nbsp;, <URL><Link>../www/SideLinks/About/aboutExtensions.html</Link><LinkText>23</LinkText></URL>&nbsp;, <URL><Link>../www/SideLinks/About/aboutSpaceGroup.html</Link><LinkText>24</LinkText></URL>&nbsp;, <URL><Link>../www/SideLinks/About/aboutFunctorial.html</Link><LinkText>25</LinkText></URL>&nbsp;, <URL><Link>../www/SideLinks/About/aboutGraphsOfGroups.html</Link><LinkText>26</LinkText></URL>&nbsp;, <URL><Link>../www/SideLinks/About/aboutIntro.html</Link><LinkText>27</LinkText></URL>&nbsp;, <URL><Link>../www/SideLinks/About/aboutTorAndExt.html</Link><LinkText>28</LinkText></URL>&nbsp;
</Description> </ManSection> 
<ManSection> <Func Name="FilteredTensorWithIntegers" Arg="R"/> <Description> <P/> Inputs a <M>ZG</M>-resolution <M>R</M> for which "filteredDimension" lies in NamesOfComponents(R). (Such a resolution can be produced using TwisterTensorProduct(), ResolutionNormalSubgroups() or FreeGResolution().) It returns the filtered chain complex obtained by tensoring with the trivial module of integers (characteristic 0). <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="TensorWithTwistedIntegers" Arg="X,rho"/> <Description> <P/> Inputs either a <M>ZG</M>-resolution <M>X=R</M>, or an equivariant chain map <M>X = (F:R \longrightarrow S)</M>. It also inputs a function <M>rho\colon G\rightarrow \mathbb Z</M> where the action of <M>g \in G</M> on <M>\mathbb Z</M> is such that <M>g.1 = rho(g)</M>. It returns the chain complex or chain map obtained by tensoring with the (twisted) module of integers (characteristic 0). <P/><B>Examples:</B> <URL><Link>../tutorial/chap3.html</Link><LinkText>1</LinkText></URL>&nbsp;, <URL><Link>../www/SideLinks/About/aboutCoveringSpaces.html</Link><LinkText>2</LinkText></URL>&nbsp;, <URL><Link>../www/SideLinks/About/aboutCoverinSpaces.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="TensorWithIntegersModP" Arg="X,p"/> <Description> <P/> Inputs either a <M>ZG</M>-resolution <M>X=R</M>, or a characteristics 0 chain complex, or an equivariant chain map <M>X = (F:R \longrightarrow S)</M>, or a chain map between characteristic 0 chain complexes, together with a prime <M>p</M>. It returns the chain complex or chain map obtained by tensoring with the trivial module of integers modulo <M>p</M>. <P/><B>Examples:</B> <URL><Link>../tutorial/chap1.html</Link><LinkText>1</LinkText></URL>&nbsp;, <URL><Link>../tutorial/chap10.html</Link><LinkText>2</LinkText></URL>&nbsp;, <URL><Link>../www/SideLinks/About/aboutArithmetic.html</Link><LinkText>3</LinkText></URL>&nbsp;, <URL><Link>../www/SideLinks/About/aboutPerformance.html</Link><LinkText>4</LinkText></URL>&nbsp;, <URL><Link>../www/SideLinks/About/aboutPersistent.html</Link><LinkText>5</LinkText></URL>&nbsp;, <URL><Link>../www/SideLinks/About/aboutPoincareSeries.html</Link><LinkText>6</LinkText></URL>&nbsp;, <URL><Link>../www/SideLinks/About/aboutDefinitions.html</Link><LinkText>7</LinkText></URL>&nbsp;, <URL><Link>../www/SideLinks/About/aboutExtensions.html</Link><LinkText>8</LinkText></URL>&nbsp;, <URL><Link>../www/SideLinks/About/aboutTorAndExt.html</Link><LinkText>9</LinkText></URL>&nbsp;
</Description> </ManSection> 
<ManSection> <Func Name="TensorWithTwistedIntegersModP" Arg="X,p,rho"/> <Description> <P/> Inputs either a <M>ZG</M>-resolution <M>X=R</M>, or an equivariant chain map <M>X = (F:R \longrightarrow S)</M>, and a prime <M>p</M>. It also inputs a function <M>rho\colon G\rightarrow \mathbb Z</M> where the action of <M>g \in G</M> on <M>\mathbb Z</M> is such that <M>g.1 = rho(g)</M>. It returns the chain complex or chain map obtained by tensoring with the trivial module of integers modulo <M>p</M>. <P/><B>Examples:</B> <URL><Link>../www/SideLinks/About/aboutTwistedCoefficients.html</Link><LinkText>1</LinkText></URL>&nbsp;
</Description> </ManSection> 
<ManSection> <Func Name="TensorWithRationals" Arg="R"/> <Description> <P/> Inputs a <M>ZG</M>-resolution <M>R</M> and returns the chain complex obtained by tensoring with the trivial module of rational numbers. <P/><B>Examples:</B> <URL><Link>../tutorial/chap10.html</Link><LinkText>1</LinkText></URL>&nbsp;, <URL><Link>../tutorial/chap13.html</Link><LinkText>2</LinkText></URL>&nbsp;, <URL><Link>../www/SideLinks/About/aboutExtensions.html</Link><LinkText>3</LinkText></URL>&nbsp;
</Description> </ManSection> </Section> </Chapter>