[1X14. Words in free ZG-modules[0X | [10X AddFreeWords(v,w) [0X Inputs two words v,w in a free ZG-module and returns their sum v+w. If the characteristic of Z is greater than 0 then the next function might be more efficient. | | [10X AddFreeWordsModP(v,w,p) [0X Inputs two words v,w in a free ZG-module and the characteristic p of Z. It returns the sum v+w. If p=0 the previous function might be fractionally quicker. | | [10X AlgebraicReduction(w) [0X [10X AlgebraicReduction(w,p) [0X Inputs a word w in a free ZG-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 p of Z is entered. | | [10X Multiply Word(n,w) [0X Inputs a word w and integer n. It returns the scalar multiple n* w. | | [10X Negate([i,j]) [0X Inputs a pair [i,j] of integers and returns [-i,j]. | | [10X NegateWord(w) [0X Inputs a word w in a free ZG-module and returns the negated word -w. | | [10X PrintZGword(w,elts) [0X Inputs a word w in a free ZG-module and a (possibly partial but sufficient) listing elts of the elements of G. The function prints the word w to the screen in the form r_1E_1 + ... + r_nE_n where r_i are elements in the group ring ZG, and E_i denotes the i-th free generator of the module. | | [10X TietzeReduction(S,w) [0X Inputs a set S of words in a free ZG-module, and a word w in the module. The function returns a word w' such that {S,w'} generates the same abelian group as {S,w}. The word w' is possibly shorter (and certainly no longer) than w. This function needs to be improved! |