  
  [1X11 [33X[0;0YCommutator and nonabelian tensor computations[133X[101X
  
  [33X[0;0Y::::::::::::::::::::::::[133X
  [33X[0;0Y[10XBaerInvariant(G,c) [110X[133X
  
  [33X[0;0YInputs  a  nilpotent  group [22XG[122X and integer [22Xc[122X>[22X0[122X. It returns the Baer invariant
  [22XM^(c)(G)[122X  defined as follows. For an arbitrary group [22XG[122X let [22XL^*_c+1(G)[122X be the
  [22X(c+1)[122X-st  term  of  the upper central series of the group [22XU=F/[[[R,F],F]...][122X
  (with  [22Xc[122X  copies of [22XF[122X in the denominator) where [22XF/R[122X is any free presentation
  of  [22XG[122X.  This is an invariant of [22XG[122X and we define [22XM^(c)(G)[122X to be the kernel of
  the canonical homomorphism [22XM^(c)(G) ⟶ G[122X. For [22Xc=1[122X the Baer invariant [22XM^(1)(G)[122X
  is isomorphic to the second integral homology [22XH_2(G,Z)[122X.[133X
  
  [33X[0;0YThis function requires the NQ package.[133X
  [33X[0;0Y::::::::::::::::::::::::[133X
  [33X[0;0Y[10XBogomolovMultiplier(G) [110X[133X
  [33X[0;0Y[10XBogomolovMultiplier(G, "standard") [110X[133X
  [33X[0;0Y[10XBogomolovMultiplier(G, "homology") [110X[133X
  [33X[0;0Y[10XBogomolovMultiplier(G, "tensor") [110X[133X
  
  [33X[0;0YInputs a finite group [22XG[122X and returns the quotient [22XH_2(G,Z)/K(G)[122X of the second
  integral  homology  of [22XG[122X where [22XK(G)[122X is the subgroup of [22XH_2(G,Z)[122X generated by
  the  images  of  all  homomorphisms [22XH_2(A,Z) → H_2(G,Z)[122X induced from abelian
  subgroups of [22XG[122X.[133X
  
  [33X[0;0YThree  slight  variants  of  the  implementation are available. The defaults
  "standard" implementation seems to work best on average. But for some groups
  the "homology" implementation or the "tensor" implementation will be faster.
  The  variants  are  called by including the appropriate string as the second
  argument.[133X
  [33X[0;0Y::::::::::::::::::::::::[133X
  [33X[0;0Y[10XBogomology(G,n) [110X[133X
  
  [33X[0;0YInputs  a  finite  group  [22XG[122X and positive integer [22Xn[122X, and returns the quotient
  [22XH_n(G,Z)/K(G)[122X  of  the  degree  [22Xn[122X  integral  homology of [22XG[122X where [22XK(G)[122X is the
  subgroup of [22XH_n(G,Z)[122X generated by the images of all homomorphisms [22XH_n(A,Z) →
  H_n(G,Z)[122X induced from abelian subgroups of [22XG[122X.[133X
  [33X[0;0Y::::::::::::::::::::::::[133X
  [33X[0;0Y[10XCoclass(G) [110X[133X
  
  [33X[0;0YInputs  a  group  [22XG[122X  of prime-power order [22Xp^n[122X and nilpotency class [22Xc[122X say. It
  returns the integer [22Xr=n-c[122X .[133X
  [33X[0;0Y::::::::::::::::::::::::[133X
  [33X[0;0Y[10XEpiCentre(G,N) [110X[133X
  [33X[0;0Y[10XEpiCentre(G)[110X[133X
  
  [33X[0;0YInputs  a  finite  group  [22XG[122X  and  normal  subgroup  [22XN[122X and returns a subgroup
  [22XZ^∗(G,N)[122X  of  the  centre of [22XN[122X. The group [22XZ^∗(G,N)[122X is trivial if and only if
  there  is  a crossed module [22Xd:E ⟶ G[122X with [22XN=Image(d)[122X and with [22XKer(d)[122X equal to
  the subgroup of [22XE[122X consisting of those elements on which [22XG[122X acts trivially.[133X
  
  [33X[0;0YIf  no  value for [22XN[122X is entered then it is assumed that [22XN=G[122X. In this case the
  group  [22XZ^∗(G,G)[122X  is  trivial  if  and  only if [22XG[122X is isomorphic to a quotient
  [22XG=E/Z(E)[122X  of  some  group  [22XE[122X  by  the  centre  of  [22XE[122X.  (See also the command
  [22XUpperEpicentralSeries(G,c)[122X. )[133X
  [33X[0;0Y::::::::::::::::::::::::[133X
  [33X[0;0Y[10XNonabelianExteriorProduct(G,N) [110X[133X
  
  [33X[0;0YInputs  a  finite  group [22XG[122X and normal subgroup [22XN[122X. It returns a record [22XE[122X with
  the following components.[133X
  [33X[0;0Y[22XE.homomorphism[122X  is  a group homomorphism [22Xµ : (G ∧ N) ⟶ G[122X from the nonabelian
  exterior  product  [22X(G  ∧  N)[122X  to  [22XG[122X.  The  kernel of [22Xµ[122X is the relative Schur
  multiplier.[133X
  [33X[0;0Y[22XE.pairing(x,y)[122X is a function which inputs an element [22Xx[122X in [22XG[122X and an element [22Xy[122X
  in [22XN[122X and returns [22X(x ∧ y)[122X in the exterior product [22X(G ∧ N)[122X .[133X
  [33X[0;0YThis function should work for reasonably small nilpotent groups or extremely
  small non-nilpotent groups.[133X
  [33X[0;0Y::::::::::::::::::::::::[133X
  [33X[0;0Y[10XNonabelianSymmetricKernel(G) [110X[133X
  [33X[0;0Y[10XNonabelianSymmetricKernel(G,m) [110X[133X
  
  [33X[0;0YInputs  a  finite  or  nilpotent  infinite  group  [22XG[122X and returns the abelian
  invariants of the Fourth homotopy group [22XSG[122X of the double suspension [22XSSK(G,1)[122X
  of the Eilenberg-Mac Lane space [22XK(G,1)[122X.[133X
  
  [33X[0;0YFor    non-nilpotent    groups    the   implementation   of   the   function
  [22XNonabelianSymmetricKernel(G)[122X  is far from optimal and will soon be improved.
  As  a  temporary solution to this problem, an optional second variable [22Xm[122X can
  be  set  equal  to  [22X0[122X, and then the function efficiently returns the abelian
  invariants of groups [22XA[122X and [22XB[122X such that there is an exact sequence [22X0 ⟶ B ⟶ SG
  ⟶ A ⟶ 0[122X.[133X
  
  [33X[0;0YAlternatively,  the optional second varible [22Xm[122X can be set equal to a positive
  multiple of the order of the symmetric square [22X(G tilde⊗ G)[122X. In this case the
  function  returns  the  abelian  invariants of [22XSG[122X. This might help when [22XG[122X is
  solvable  but  not  nilpotent  (especially if the estimated upper bound [22Xm[122X is
  reasonable accurate).[133X
  [33X[0;0Y::::::::::::::::::::::::[133X
  [33X[0;0Y[10XNonabelianSymmetricSquare(G) [110X[133X
  [33X[0;0Y[10XNonabelianSymmetricSquare(G,m) [110X[133X
  
  [33X[0;0YInputs  a  finite  or nilpotent infinite group [22XG[122X and returns a record [22XT[122X with
  the following components.[133X
  [33X[0;0Y[22XT.homomorphism[122X  is  a  group  homomorphism  [22Xµ  :  (G  tilde⊗ G) ⟶ G[122X from the
  nonabelian  symmetric square of [22XG[122X to [22XG[122X. The kernel of [22Xµ[122X is isomorphic to the
  fourth  homotopy group of the double suspension [22XSSK(G,1)[122X of an Eilenberg-Mac
  Lane space.[133X
  [33X[0;0Y[22XT.pairing(x,y)[122X is a function which inputs two elements [22Xx, y[122X in [22XG[122X and returns
  the tensor [22X(x ⊗ y)[122X in the symmetric square [22X(G ⊗ G)[122X .[133X
  [33X[0;0YAn  optional second varible [22Xm[122X can be set equal to a multiple of the order of
  the  symmetric  square  [22X(G tilde⊗ G)[122X. This might help when [22XG[122X is solvable but
  not  nilpotent  (especially  if  the  estimated  upper bound [22Xm[122X is reasonable
  accurate) as the bound is used in the solvable quotient algorithm.[133X
  
  [33X[0;0YThe  optional second variable [22Xm[122X can also be set equal to [22X0[122X. In this case the
  Todd-Coxeter  procedure  will be used to enumerate the symmetric square even
  when [22XG[122X is solvable.[133X
  
  [33X[0;0YThis  function should work for reasonably small solvable groups or extremely
  small non-solvable groups.[133X
  [33X[0;0Y::::::::::::::::::::::::[133X
  [33X[0;0Y[10XNonabelianTensorProduct(G,N) [110X[133X
  
  [33X[0;0YInputs  a  finite  group [22XG[122X and normal subgroup [22XN[122X. It returns a record [22XE[122X with
  the following components.[133X
  [33X[0;0Y[22XE.homomorphism[122X  is a group homomorphism [22Xµ : (G ⊗ N ) ⟶ G[122X from the nonabelian
  exterior product [22X(G ⊗ N)[122X to [22XG[122X.[133X
  [33X[0;0Y[22XE.pairing(x,y)[122X is a function which inputs an element [22Xx[122X in [22XG[122X and an element [22Xy[122X
  in [22XN[122X and returns [22X(x ⊗ y)[122X in the tensor product [22X(G ⊗ N)[122X .[133X
  [33X[0;0YThis function should work for reasonably small nilpotent groups or extremely
  small non-nilpotent groups.[133X
  [33X[0;0Y::::::::::::::::::::::::[133X
  [33X[0;0Y[10XNonabelianTensorSquare(G) [110X[133X
  [33X[0;0Y[10XNonabelianTensorSquare(G,m) [110X[133X
  
  [33X[0;0YInputs  a  finite  or nilpotent infinite group [22XG[122X and returns a record [22XT[122X with
  the following components.[133X
  [33X[0;0Y[22XT.homomorphism[122X  is  a group homomorphism [22Xµ : (G ⊗ G) ⟶ G[122X from the nonabelian
  tensor square of [22XG[122X to [22XG[122X. The kernel of [22Xµ[122X is isomorphic to the third homotopy
  group of the suspension [22XSK(G,1)[122X of an Eilenberg-Mac Lane space.[133X
  [33X[0;0Y[22XT.pairing(x,y)[122X is a function which inputs two elements [22Xx, y[122X in [22XG[122X and returns
  the tensor [22X(x ⊗ y)[122X in the tensor square [22X(G ⊗ G)[122X .[133X
  [33X[0;0YAn  optional second varible [22Xm[122X can be set equal to a multiple of the order of
  the  tensor  square  [22X(G  ⊗  G)[122X.  This  might help when [22XG[122X is solvable but not
  nilpotent (especially if the estimated upper bound [22Xm[122X is reasonable accurate)
  as the bound is used in the solvable quotient algorithm.[133X
  
  [33X[0;0YThe  optional second variable [22Xm[122X can also be set equal to [22X0[122X. In this case the
  Todd-Coxeter procedure will be used to enumerate the tensor square even when
  [22XG[122X is solvable.[133X
  
  [33X[0;0YThis  function should work for reasonably small solvable groups or extremely
  small non-solvable groups.[133X
  [33X[0;0Y::::::::::::::::::::::::[133X
  [33X[0;0Y[10XRelativeSchurMultiplier(G,N) [110X[133X
  
  [33X[0;0YInputs a finite group [22XG[122X and normal subgroup [22XN[122X. It returns the homology group
  [22XH_2(G,N,Z)[122X that fits into the exact sequence[133X
  
  [33X[0;0Y[22X...⟶ H_3(G,Z) ⟶ H_3(G/N,Z) ⟶ H_2(G,N,Z) ⟶ H_3(G,Z) ⟶ H_3(G/N,Z) ⟶ ....[122X[133X
  
  [33X[0;0YThis  function  should  work  for  reasonably  small  nilpotent  groups [22XG[122X or
  extremely small non-nilpotent groups.[133X
  [33X[0;0Y::::::::::::::::::::::::[133X
  [33X[0;0Y[10XTensorCentre(G) [110X[133X
  
  [33X[0;0YInputs  a  group  [22XG[122X and returns the largest central subgroup [22XN[122X such that the
  induced  homomorphism  of nonabelian tensor squares [22X(G ⊗ G) ⟶ (G/N ⊗ G/N)[122X is
  an  isomorphism.  Equivalently,  [22XN[122X is the largest central subgroup such that
  [22Xπ_3(SK(G,1)) ⟶ π_3(SK(G/N,1))[122X is injective.[133X
  [33X[0;0Y::::::::::::::::::::::::[133X
  [33X[0;0Y[10XThirdHomotopyGroupOfSuspensionB(G) [110X[133X
  [33X[0;0Y[10XThirdHomotopyGroupOfSuspensionB(G,m) [110X[133X
  
  [33X[0;0YInputs  a  finite  or  nilpotent  infinite  group  [22XG[122X and returns the abelian
  invariants  of  the third homotopy group [22XJG[122X of the suspension [22XSK(G,1)[122X of the
  Eilenberg-Mac Lane space [22XK(G,1)[122X.[133X
  
  [33X[0;0YFor    non-nilpotent    groups    the   implementation   of   the   function
  [22XThirdHomotopyGroupOfSuspensionB(G)[122X  is  far  from  optimal  and will soon be
  improved.  As  a  temporary  solution  to  this  problem, an optional second
  variable  [22Xm[122X can be set equal to [22X0[122X, and then the function efficiently returns
  the  abelian  invariants  of  groups  [22XA[122X  and  [22XB[122X  such that there is an exact
  sequence [22X0 ⟶ B ⟶ JG ⟶ A ⟶ 0[122X.[133X
  
  [33X[0;0YAlternatively,  the optional second varible [22Xm[122X can be set equal to a positive
  multiple  of  the  order  of  the  tensor  square  [22X(G ⊗ G)[122X. In this case the
  function  returns  the  abelian  invariants of [22XJG[122X. This might help when [22XG[122X is
  solvable  but  not  nilpotent  (especially if the estimated upper bound [22Xm[122X is
  reasonable accurate).[133X
  [33X[0;0Y::::::::::::::::::::::::[133X
  [33X[0;0Y[10XUpperEpicentralSeries(G,c) [110X[133X
  
  [33X[0;0YInputs a nilpotent group [22XG[122X and an integer [22Xc[122X. It returns the [22Xc[122X-th term of the
  upper epicentral series [22X1[122X < [22XZ_1^∗(G)[122X < [22XZ_2^∗(G)[122X < [22X...[122X.[133X
  
  [33X[0;0YThe  upper  epicentral series is defined for an arbitrary group [22XG[122X. The group
  [22XZ_c^∗  (G)[122X  is  the  image in [22XG[122X of the [22Xc[122X-th term [22XZ_c(U)[122X of the upper central
  series  of  the  group  [22XU=F/[[[R,F],F]  ...  ][122X  (with  [22Xc[122X  copies of [22XF[122X in the
  denominator) where [22XF/R[122X is any free presentation of [22XG[122X.[133X
  
  [33X[0;0YThis functions requires the NQ package.[133X
  
