<Chapter><Heading> Words in free <M>ZG</M>-modules </Heading> <Section><Heading> &nbsp;</Heading> 
<ManSection> <Func Name="AddFreeWords" Arg="v,w"/> <Description> <P/> Inputs two words <M>v,w</M> in a free <M>ZG</M>-module and returns their sum <M>v+w</M>. If the characteristic of <M>Z</M> is greater than <M>0</M> then the next function might be more efficient. <P/><B>Examples:</B> 
</Description> </ManSection> 
<ManSection> <Func Name="AddFreeWordsModP" Arg="v,w,p"/> <Description> <P/> Inputs two words <M>v,w</M> in a free <M>ZG</M>-module and the characteristic <M>p</M> of <M>Z</M>. It returns the sum <M>v+w</M>. If <M>p=0</M> the previous function might be fractionally quicker. <P/><B>Examples:</B> 
</Description> </ManSection> 
<ManSection> <Func Name="AlgebraicReduction" Arg="w"/> <Func Name="AlgebraicReduction" Arg="w,p"/> <Description> <P/> Inputs a word <M>w</M> in a free <M>ZG</M>-module and returns a reduced version of the word in which all pairs of mutually inverse letters have been cancelled. The reduction is performed in a free abelian group unless the characteristic <M>p</M> of <M>Z</M> is entered. <P/><B>Examples:</B> 
</Description> </ManSection> 
<ManSection> <Func Name="MultiplyWord" Arg="n,w"/> <Description> <P/> Inputs a word <M>w</M> and integer <M>n</M>. It returns the scalar multiple <M>n\cdot w</M>. <P/><B>Examples:</B> 
</Description> </ManSection> 
<ManSection> <Func Name="Negate" Arg="[i,j]"/> <Description> <P/> Inputs a pair <M>[i,j]</M> of integers and returns <M>[-i,j]</M>. <P/><B>Examples:</B> 
</Description> </ManSection> 
<ManSection> <Func Name="NegateWord" Arg="w"/> <Description> <P/> Inputs a word <M>w</M> in a free <M>ZG</M>-module and returns the negated word <M>-w</M>. <P/><B>Examples:</B> 
</Description> </ManSection> 
<ManSection> <Func Name="PrintZGword" Arg="w,elts"/> <Description> <P/> Inputs a word <M>w</M> in a free <M>ZG</M>-module and a (possibly partial but sufficient) listing elts of the elements of <M>G</M>. The function prints the word <M>w</M> to the screen in the form <P/> <M>r_1E_1 + \ldots + r_nE_n</M> <P/> where <M>r_i</M> are elements in the group ring <M>ZG</M>, and <M>E_i</M> denotes the <M>i</M>-th free generator of the module. <P/><B>Examples:</B> <URL><Link>../www/SideLinks/About/aboutPeriodic.html</Link><LinkText>1</LinkText></URL>&nbsp;
</Description> </ManSection> 
<ManSection> <Func Name="TietzeReduction" Arg="S,w"/> <Description> <P/> Inputs a set <M>S</M> of words in a free <M>ZG</M>-module, and a word <M>w</M> in the module. The function returns a word <M>w'</M> such that {<M>S,w'</M>} generates the same abelian group as {<M>S,w</M>}. The word <M>w'</M> is possibly shorter (and certainly no longer) than <M>w</M>. This function needs to be improved! <P/><B>Examples:</B> 
</Description> </ManSection> 
<ManSection> <Func Name="ResolutionBoundaryOfWord" Arg="R,n,w"/> <Description> <P/> Inputs a resolution <M>R</M>, a positive integer <M>n</M> and a list <M>w</M> representing a word in the free module <M>R_n</M>. It returns the image of <M>w</M> under the <M>n</M>-th boundary homomorphism. <P/><B>Examples:</B> 
</Description> </ManSection> </Section> </Chapter>