  
  [1X8 [33X[0;0YGroup homomorphisms[133X[101X
  
  
  [1X8.1 [33X[0;0YRepresentatives of homomorphisms between groups[133X[101X
  
  [33X[0;0YPlease note that the functions below are only implemented for finite groups.[133X
  
  [1X8.1-1 RepresentativesAutomorphismClasses[101X
  
  [33X[1;0Y[29X[2XRepresentativesAutomorphismClasses[102X( [3XG[103X ) [32X function[133X
  [6XReturns:[106X  [33X[0;10Ya  list  of  the  automorphisms  of [3XG[103X up to composition with inner
            automorphisms.[133X
  
  [1X8.1-2 RepresentativesEndomorphismClasses[101X
  
  [33X[1;0Y[29X[2XRepresentativesEndomorphismClasses[102X( [3XG[103X ) [32X function[133X
  [6XReturns:[106X  [33X[0;10Ya  list  of  the  endomorphisms  of [3XG[103X up to composition with inner
            automorphisms.[133X
  
  [33X[0;0YThis  does  the  same  as calling [10XAllHomomorphismClasses([3XG[103X[10X,[3XG[103X[10X)[110X, but should be
  faster for abelian and non-2-generated groups.[133X
  
  [1X8.1-3 RepresentativesHomomorphismClasses[101X
  
  [33X[1;0Y[29X[2XRepresentativesHomomorphismClasses[102X( [3XH[103X, [3XG[103X ) [32X function[133X
  [6XReturns:[106X  [33X[0;10Ya  list  of  the homomorphisms from [3XH[103X to [3XG[103X, up to composition with
            inner automorphisms of [3XG[103X.[133X
  
  [33X[0;0YSimilar  to  the  previous  function, this function does the same as calling
  [10XAllHomomorphismClasses([3XH[103X[10X,[3XG[103X[10X)[110X,   but   should   be   faster  for  abelian  and
  non-2-generated groups.[133X
  
  [4X[32X  Example  [32X[104X
    [4X[25Xgap>[125X [27XG := PcGroupCode( 1018013, 28 );;[127X[104X
    [4X[25Xgap>[125X [27XAuts := RepresentativesAutomorphismClasses( G );;[127X[104X
    [4X[25Xgap>[125X [27XSize( Auts );[127X[104X
    [4X[28X6[128X[104X
    [4X[25Xgap>[125X [27XEnds := RepresentativesEndomorphismClasses( G );;[127X[104X
    [4X[25Xgap>[125X [27XSize( Ends );[127X[104X
    [4X[28X10[128X[104X
    [4X[25Xgap>[125X [27XH := PcGroupCode( 36293, 28 );;[127X[104X
    [4X[25Xgap>[125X [27XHoms := RepresentativesHomomorphismClasses( H, G );;[127X[104X
    [4X[25Xgap>[125X [27XSize( Homs );[127X[104X
    [4X[28X4[128X[104X
  [4X[32X[104X
  
  
  [1X8.2 [33X[0;0YCoincidence and fixed point groups[133X[101X
  
  [1X8.2-1 FixedPointGroup[101X
  
  [33X[1;0Y[29X[2XFixedPointGroup[102X( [3Xendo[103X ) [32X function[133X
  [6XReturns:[106X  [33X[0;10Ythe  subgroup  of  [10XSource([3Xendo[103X[10X)[110X  consisting  of the elements fixed
            under the endomorphism [3Xendo[103X.[133X
  
  [1X8.2-2 CoincidenceGroup[101X
  
  [33X[1;0Y[29X[2XCoincidenceGroup[102X( [3Xhom1[103X, [3Xhom2[103X[, [3X...[103X] ) [32X function[133X
  [6XReturns:[106X  [33X[0;10Ythe  subgroup  of  [10XSource([3Xhom1[103X[10X)[110X  consisting  of the elements [10Xh[110X for
            which [10Xh^[3Xhom1[103X[10X[110X = [10Xh^[3Xhom2[103X[10X[110X = ...[133X
  
  [33X[0;0YFor  infinite  non-abelian  groups, this function relies on a mixture of the
  algorithms described in [Rom16, Thm. 2], [BKL+20, Sec. 5.4] and [Rom21, Sec.
  7].[133X
  
  [4X[32X  Example  [32X[104X
    [4X[25Xgap>[125X [27Xphi := GroupHomomorphismByImages( G, G, [ G.1, G.3 ],[127X[104X
    [4X[25X>[125X [27X [ G.1 * G.2, G.3 ^ 3 ] );;[127X[104X
    [4X[25Xgap>[125X [27XSet( FixedPointGroup( phi ) );[127X[104X
    [4X[28X[ <identity> of ..., f2 ][128X[104X
    [4X[25Xgap>[125X [27Xpsi := GroupHomomorphismByImages( H, G, [ H.1, H.2, H.3 ],[127X[104X
    [4X[25X>[125X [27X [ One( G ), G.2, One( G ) ] );;[127X[104X
    [4X[25Xgap>[125X [27Xkhi := GroupHomomorphismByImages( H, G, [ H.1, H.2, H.3 ],[127X[104X
    [4X[25X>[125X [27X [ G.2, G.2, One( G ) ] );;[127X[104X
    [4X[25Xgap>[125X [27XCoincidenceGroup( psi, khi );[127X[104X
    [4X[28XGroup([ f2, f3 ])[128X[104X
  [4X[32X[104X
  
  
  [1X8.3 [33X[0;0YInduced and restricted group homomorphisms[133X[101X
  
  [1X8.3-1 InducedHomomorphism[101X
  
  [33X[1;0Y[29X[2XInducedHomomorphism[102X( [3Xepi1[103X, [3Xepi2[103X, [3Xhom[103X ) [32X function[133X
  [6XReturns:[106X  [33X[0;10Ythe  homomorphism  induced  by  [3Xhom[103X between the images of [3Xepi1[103X and
            [3Xepi2[103X.[133X
  
  [33X[0;0YLet  [3Xhom[103X be a group homomorphism from a group [10XH[110X to a group [10XG[110X, let [3Xepi1[103X be an
  epimorphism  from  [10XH[110X to a group [10XQ[110X and let [3Xepi2[103X be an epimorphism from [10XG[110X to a
  group  [10XP[110X  such  that the kernel of [3Xepi1[103X is mapped into the kernel of [3Xepi2[103X by
  [3Xhom[103X.  This  command returns the homomorphism from [10XQ[110X to [10XP[110X that maps [10Xh^[3Xepi1[103X[10X[110X to
  [10X(h^[3Xhom[103X[10X)^[3Xepi2[103X[10X[110X,   for   any   element   [10Xh[110X  of  [10XH[110X.  This  function  generalises
  [2XInducedAutomorphism[102X ([14XReference: InducedAutomorphism[114X) to homomorphisms.[133X
  
  [1X8.3-2 RestrictedHomomorphism[101X
  
  [33X[1;0Y[29X[2XRestrictedHomomorphism[102X( [3Xhom[103X, [3XN[103X, [3XM[103X ) [32X function[133X
  [6XReturns:[106X  [33X[0;10Ythe homomorphism [3Xhom[103X, but restricted as a map from [3XN[103X to [3XM[103X.[133X
  
  [33X[0;0YLet  [3Xhom[103X  be  a group homomorphism from a group [10XH[110X to a group [10XG[110X, and let [3XN[103X be
  subgroup of [10XH[110X such that its image under [3Xhom[103X is a subgroup of [3XM[103X. This command
  returns  the homomorphism from [3XN[103X to [3XM[103X that maps [10Xn[110X to [10Xn^[3Xhom[103X[10X[110X for any element [10Xn[110X
  of  [3XN[103X. No checks are made to verify that [3Xhom[103X maps [3XN[103X into [3XM[103X. This function is
  similar  to  [2XRestrictedMapping[102X ([14XReference: RestrictedMapping[114X), but its range
  is explicitly set to [3XM[103X.[133X
  
  [4X[32X  Example  [32X[104X
    [4X[25Xgap>[125X [27XN := DerivedSubgroup( G );;[127X[104X
    [4X[25Xgap>[125X [27Xp := NaturalHomomorphismByNormalSubgroup( G, N );[127X[104X
    [4X[28X[ f1, f2, f3 ] -> [ f1, f2, <identity> of ... ][128X[104X
    [4X[25Xgap>[125X [27Xind := InducedHomomorphism( p, p, phi );[127X[104X
    [4X[28X[ f1 ] -> [ f1*f2 ][128X[104X
    [4X[25Xgap>[125X [27Xres := RestrictedHomomorphism( phi, N, N );[127X[104X
    [4X[28X[ f3 ] -> [ f3^3 ][128X[104X
  [4X[32X[104X
  
