  
  [1X21 [33X[0;0Y[22XFpG[122X[101X[1X-modules[133X[101X
  
  
  [1X21.1 [33X[0;0Y [133X[101X
  
  [1X21.1-1 CompositionSeriesOfFpGModules[101X
  
  [33X[1;0Y[29X[2XCompositionSeriesOfFpGModules[102X [32X global variable[133X
  
  [33X[0;0YInputs  an  [22XFpG[122X-module [22XM[122X and returns a list of [22XFpG[122X-modules that constitute a
  composition series for [22XM[122X.[133X
  
  [33X[0;0Y[12XExamples:[112X[133X
  
  [1X21.1-2 DirectSumOfFpGModules[101X
  
  [33X[1;0Y[29X[2XDirectSumOfFpGModules[102X( [3XM[103X, [3XN[103X ) [32X function[133X
  [33X[1;0Y[29X[2XDirectSumOfFpGModules[102X( [[3XM[103X[, [3X1[103X], [3XM[103X[, [3X2[103X], [3X...[103X, [3XM[103X[, [3Xk[103X]] ) [32X function[133X
  
  [33X[0;0YInputs  two  [22XFpG[122X-modules  [22XM[122X  and  [22XN[122X with common group and characteristic. It
  returns the direct sum of [22XM[122X and [22XN[122X as an [22XFpG[122X-Module.[133X
  
  [33X[0;0YAlternatively,  the  function  can  input  a list of [22XFpG[122X-modules with common
  group [22XG[122X. It returns the direct sum of the list.[133X
  
  [33X[0;0Y[12XExamples:[112X[133X
  
  [1X21.1-3 FpGModule[101X
  
  [33X[1;0Y[29X[2XFpGModule[102X( [3XA[103X, [3XP[103X ) [32X function[133X
  [33X[1;0Y[29X[2XFpGModule[102X( [3XA[103X, [3XG[103X, [3Xp[103X ) [32X function[133X
  
  [33X[0;0YInputs  a  [22Xp[122X-group [22XP[122X and a matrix [22XA[122X whose rows have length a multiple of the
  order of [22XG[122X. It returns the [21Xcanonical[121X [22XFpG[122X-module generated by the rows of [22XA[122X.[133X
  
  [33X[0;0YA   small   non-prime-power   group  [22XG[122X  can  also  be  input,  provided  the
  characteristic [22Xp[122X is entered as a third input variable.[133X
  
  [33X[0;0Y[12XExamples:[112X             1             ([7X../tutorial/chap11.html[107X) ,            2
  ([7X../www/SideLinks/About/aboutAbelianCategories.html[107X) ,                     3
  ([7X../www/SideLinks/About/aboutIntro.html[107X) ,                                 4
  ([7X../www/SideLinks/About/aboutTorAndExt.html[107X) [133X
  
  [1X21.1-4 FpGModuleDualBasis[101X
  
  [33X[1;0Y[29X[2XFpGModuleDualBasis[102X( [3XM[103X ) [32X function[133X
  
  [33X[0;0YInputs an [22XFpG[122X-module [22XM[122X. It returns a record [22XR[122X with two components:[133X
  
  [30X    [33X[0;6Y[22XR.freeModule[122X is the free module [22XFG[122X of rank one.[133X
  
  [30X    [33X[0;6Y[22XR.basis[122X is a list representing an [22XF[122X-basis for the module [22XHom_FG(M,FG)[122X.
        Each  term in the list is a matrix [22XA[122X whose rows are vectors in [22XFG[122X such
        that [22XM!.generators[i] ⟶ A[i][122X extends to a module homomorphism [22XM ⟶ FG[122X.[133X
  
  [33X[0;0Y[12XExamples:[112X[133X
  
  [1X21.1-5 FpGModuleHomomorphism[101X
  
  [33X[1;0Y[29X[2XFpGModuleHomomorphism[102X( [3XM[103X, [3XN[103X, [3XA[103X ) [32X function[133X
  [33X[1;0Y[29X[2XFpGModuleHomomorphismNC[102X( [3XM[103X, [3XN[103X, [3XA[103X ) [32X function[133X
  
  [33X[0;0YInputs  [22XFpG[122X-modules [22XM[122X and [22XN[122X over a common [22Xp[122X-group [22XG[122X. Also inputs a list [22XA[122X of
  vectors in the vector space spanned by [22XN!.matrix[122X. It tests that the function[133X
  
  [33X[0;0Y[22XM!.generators[i] ⟶ A[i][122X[133X
  
  [33X[0;0Yextends to a homomorphism of [22XFpG[122X-modules and, if the test is passed, returns
  the  corresponding [22XFpG[122X-module homomorphism. If the test is failed it returns
  fail.[133X
  
  [33X[0;0YThe  "NC"  version  of  the  function  assumes  that  the  input  defines  a
  homomorphism and simply returns the [22XFpG[122X-module homomorphism.[133X
  
  [33X[0;0Y[12XExamples:[112X[133X
  
  [1X21.1-6 DesuspensionFpGModule[101X
  
  [33X[1;0Y[29X[2XDesuspensionFpGModule[102X( [3XM[103X, [3Xn[103X ) [32X function[133X
  [33X[1;0Y[29X[2XDesuspensionFpGModule[102X( [3XR[103X, [3Xn[103X ) [32X function[133X
  
  [33X[0;0YInputs  a  positive integer [22Xn[122X and and FpG-module [22XM[122X. It returns an FpG-module
  [22XD^nM[122X  which  is mathematically related to [22XM[122X via an exact sequence [22X0 ⟶ D^nM ⟶
  R_n ⟶ ... ⟶ R_0 ⟶ M ⟶ 0[122X where [22XR_∗[122X is a free resolution. (If [22XG=Group(M)[122X is of
  prime-power order then the resolution is minimal.)[133X
  
  [33X[0;0YAlternatively,  the  function  can input a positive integer [22Xn[122X and at least [22Xn[122X
  terms of a free resolution [22XR[122X of [22XM[122X.[133X
  
  [33X[0;0Y[12XExamples:[112X[133X
  
  [1X21.1-7 RadicalOfFpGModule[101X
  
  [33X[1;0Y[29X[2XRadicalOfFpGModule[102X( [3XM[103X ) [32X function[133X
  
  [33X[0;0YInputs  an [22XFpG[122X-module [22XM[122X with [22XG[122X a [22Xp[122X-group, and returns the Radical of [22XM[122X as an
  [22XFpG[122X-module.  (Ig  [22XG[122X  is  not  a  [22Xp[122X-group  then a submodule of the radical is
  returned.[133X
  
  [33X[0;0Y[12XExamples:[112X[133X
  
  [1X21.1-8 RadicalSeriesOfFpGModule[101X
  
  [33X[1;0Y[29X[2XRadicalSeriesOfFpGModule[102X( [3XM[103X ) [32X function[133X
  
  [33X[0;0YInputs an [22XFpG[122X-module [22XM[122X and returns a list of [22XFpG[122X-modules that constitute the
  radical series for [22XM[122X.[133X
  
  [33X[0;0Y[12XExamples:[112X[133X
  
  [1X21.1-9 GeneratorsOfFpGModule[101X
  
  [33X[1;0Y[29X[2XGeneratorsOfFpGModule[102X( [3XM[103X ) [32X function[133X
  
  [33X[0;0YInputs  an  [22XFpG[122X-module  [22XM[122X  and  returns  a matrix whose rows correspond to a
  minimal generating set for [22XM[122X.[133X
  
  [33X[0;0Y[12XExamples:[112X[133X
  
  [1X21.1-10 ImageOfFpGModuleHomomorphism[101X
  
  [33X[1;0Y[29X[2XImageOfFpGModuleHomomorphism[102X( [3Xf[103X ) [32X function[133X
  
  [33X[0;0YInputs  an  [22XFpG[122X-module homomorphism [22Xf:M ⟶ N[122X and returns its image [22Xf(M)[122X as an
  [22XFpG[122X-module.[133X
  
  [33X[0;0Y[12XExamples:[112X[133X
  
  [1X21.1-11 GroupAlgebraAsFpGModule[101X
  
  [33X[1;0Y[29X[2XGroupAlgebraAsFpGModule[102X( [3XG[103X ) [32X function[133X
  
  [33X[0;0YInputs a [22Xp[122X-group [22XG[122X and returns its mod [22Xp[122X group algebra as an [22XFpG[122X-module.[133X
  
  [33X[0;0Y[12XExamples:[112X[133X
  
  [1X21.1-12 IntersectionOfFpGModules[101X
  
  [33X[1;0Y[29X[2XIntersectionOfFpGModules[102X( [3XM[103X, [3XN[103X ) [32X function[133X
  
  [33X[0;0YInputs  two  [22XFpG[122X-modules  [22XM, N[122X arising as submodules in a common free module
  [22X(FG)^n[122X  where  [22XG[122X is a finite group and [22XF[122X the field of [22Xp[122X-elements. It returns
  the [22XFpG[122X-module arising as the intersection of [22XM[122X and [22XN[122X.[133X
  
  [33X[0;0Y[12XExamples:[112X[133X
  
  [1X21.1-13 IsFpGModuleHomomorphismData[101X
  
  [33X[1;0Y[29X[2XIsFpGModuleHomomorphismData[102X( [3XM[103X, [3XN[103X, [3XA[103X ) [32X function[133X
  
  [33X[0;0YInputs  [22XFpG[122X-modules [22XM[122X and [22XN[122X over a common [22Xp[122X-group [22XG[122X. Also inputs a list [22XA[122X of
  vectors  in  the  vector  space spanned by [22XN!.matrix[122X. It returns true if the
  function[133X
  
  [33X[0;0Y[22XM!.generators[i] ⟶ A[i][122X[133X
  
  [33X[0;0Yextends to a homomorphism of [22XFpG[122X-modules. Otherwise it returns false.[133X
  
  [33X[0;0Y[12XExamples:[112X[133X
  
  [1X21.1-14 MaximalSubmoduleOfFpGModule[101X
  
  [33X[1;0Y[29X[2XMaximalSubmoduleOfFpGModule[102X( [3XM[103X ) [32X function[133X
  
  [33X[0;0YInputs an [22XFpG[122X-module [22XM[122X and returns one maximal [22XFpG[122X-submodule of [22XM[122X.[133X
  
  [33X[0;0Y[12XExamples:[112X[133X
  
  [1X21.1-15 MaximalSubmodulesOfFpGModule[101X
  
  [33X[1;0Y[29X[2XMaximalSubmodulesOfFpGModule[102X( [3XM[103X ) [32X function[133X
  
  [33X[0;0YInputs an [22XFpG[122X-module [22XM[122X and returns the list of maximal [22XFpG[122X-submodules of [22XM[122X.[133X
  
  [33X[0;0Y[12XExamples:[112X[133X
  
  [1X21.1-16 MultipleOfFpGModule[101X
  
  [33X[1;0Y[29X[2XMultipleOfFpGModule[102X( [3Xw[103X, [3XM[103X ) [32X function[133X
  
  [33X[0;0YInputs  an  [22XFpG[122X-module  [22XM[122X  and a list [22Xw:=[g_1 , ..., g_t][122X of elements in the
  group  [22XG=M!.group[122X.  The list [22Xw[122X can be thought of as representing the element
  [22Xw=g_1  +  ...  +  g_t[122X  in  the  group algebra [22XFG[122X, and the function returns a
  semi-echelon matrix [22XB[122X which is a basis for the vector subspace [22XwM[122X .[133X
  
  [33X[0;0Y[12XExamples:[112X[133X
  
  [1X21.1-17 ProjectedFpGModule[101X
  
  [33X[1;0Y[29X[2XProjectedFpGModule[102X( [3XM[103X, [3Xk[103X ) [32X function[133X
  
  [33X[0;0YInputs an [22XFpG[122X-module [22XM[122X of ambient dimension [22Xn|G|[122X, and an integer [22Xk[122X between [22X1[122X
  and  [22Xn[122X.  The  module  [22XM[122X  is  a submodule of the free module [22X(FG)^n[122X . Let [22XM_k[122X
  denote  the  intersection  of  [22XM[122X  with  the  last [22Xk[122X summands of [22X(FG)^n[122X . The
  function returns the image of the projection of [22XM_k[122X onto the [22Xk[122X-th summand of
  [22X(FG)^n[122X . This image is returned an [22XFpG[122X-module with ambient dimension [22X|G|[122X.[133X
  
  [33X[0;0Y[12XExamples:[112X[133X
  
  [1X21.1-18 RandomHomomorphismOfFpGModules[101X
  
  [33X[1;0Y[29X[2XRandomHomomorphismOfFpGModules[102X( [3XM[103X, [3XN[103X ) [32X function[133X
  
  [33X[0;0YInputs  two  [22XFpG[122X-modules  [22XM[122X and [22XN[122X over a common group [22XG[122X. It returns a random
  matrix [22XA[122X whose rows are vectors in [22XN[122X such that the function[133X
  
  [33X[0;0Y[22XM!.generators[i] ⟶ A[i][122X[133X
  
  [33X[0;0Yextends  to  a  homomorphism  [22XM ⟶ N[122X of [22XFpG[122X-modules. (There is a problem with
  this function at present.)[133X
  
  [33X[0;0Y[12XExamples:[112X[133X
  
  [1X21.1-19 Rank[101X
  
  [33X[1;0Y[29X[2XRank[102X( [3Xf[103X ) [32X function[133X
  
  [33X[0;0YInputs  an  [22XFpG[122X-module homomorphism [22Xf:M ⟶ N[122X and returns the dimension of the
  image of [22Xf[122X as a vector space over the field [22XF[122X of [22Xp[122X elements.[133X
  
  [33X[0;0Y[12XExamples:[112X   1   ([7X../tutorial/chap1.html[107X) ,  2  ([7X../tutorial/chap7.html[107X) ,  3
  ([7X../www/SideLinks/About/aboutPeriodic.html[107X) [133X
  
  [1X21.1-20 SumOfFpGModules[101X
  
  [33X[1;0Y[29X[2XSumOfFpGModules[102X( [3XM[103X, [3XN[103X ) [32X function[133X
  
  [33X[0;0YInputs  two  [22XFpG[122X-modules  [22XM, N[122X arising as submodules in a common free module
  [22X(FG)^n[122X  where  [22XG[122X is a finite group and [22XF[122X the field of [22Xp[122X-elements. It returns
  the [22XFpG[122X-Module arising as the sum of [22XM[122X and [22XN[122X.[133X
  
  [33X[0;0Y[12XExamples:[112X[133X
  
  [1X21.1-21 SumOp[101X
  
  [33X[1;0Y[29X[2XSumOp[102X( [3Xf[103X, [3Xg[103X ) [32X function[133X
  
  [33X[0;0YInputs  two  [22XFpG[122X-module homomorphisms [22Xf,g:M ⟶ N[122X with common sorce and common
  target.  It  returns  the  sum [22Xf+g:M ⟶ N[122X . (This operation is also available
  using "+".[133X
  
  [33X[0;0Y[12XExamples:[112X[133X
  
  [1X21.1-22 VectorsToFpGModuleWords[101X
  
  [33X[1;0Y[29X[2XVectorsToFpGModuleWords[102X( [3XM[103X, [3XL[103X ) [32X function[133X
  
  [33X[0;0YInputs  an  [22XFpG[122X-module  [22XM[122X  and  a  list [22XL=[v_1,... ,v_k][122X of vectors in [22XM[122X. It
  returns  a  list [22XL'= [x_1,...,x_k][122X . Each [22Xx_j=[[W_1,G_1],...,[W_t,G_t]][122X is a
  list of integer pairs corresponding to an expression of [22Xv_j[122X as a word[133X
  
  [33X[0;0Y[22Xv_j = g_1*w_1 + g_2*w_1 + ... + g_t*w_t[122X[133X
  
  [33X[0;0Ywhere[133X
  
  [33X[0;0Y[22Xg_i=Elements(M!.group)[G_i][122X[133X
  
  [33X[0;0Y[22Xw_i=GeneratorsOfFpGModule(M)[W_i][122X .[133X
  
  [33X[0;0Y[12XExamples:[112X[133X
  
