  
  [1X5 [33X[0;0YProjective Groups[133X[101X
  
  [33X[0;0YA  [13Xcollineation[113X  of a projective space is a type preserving bijection of the
  elements  of the projective space, that preserves incidence. The Fundamental
  Theorem   of  Projective  Geometry  states  that  every  collineation  of  a
  Desarguesian  projective  space  of  dimension  at least two is induced by a
  semilinear  map of the underlying vector space. The group of all linear maps
  of  a given [22Xn+1[122X-dimensional vector space over a given field [22XGF(q)[122X is denoted
  by  [22XGL(n+1,q)[122X.  This is a matrix group consisting of all non-singular square
  [22Xn+1[122X-dimensional matrices over [22XGF(q)[122X. The group of all semilinear maps of the
  vector space [22XV(n+1,q)[122X is obtained as the semidirect product of [22XGL(n+1,q)[122X and
  [22XAut(GF(q))[122X,  and  is  denoted  by  [22XΓL(n+1,q)[122X.  Each semilinear map induces a
  collineation of [22XPG(n,q)[122X. The Fundamental theorem of Projective Geometry also
  guarantees  that  the  converse holds. Note also that [22XΓL(n+1,q)[122X does not act
  faithfully  on  the  projective  points, and the kernel of its action is the
  group  of  scalar matrices, [22XSc(n+1,q)[122X. So the group [22XPΓL(n+1,q)[122X is defined as
  the  group  [22XΓL(n+1,q)  / Sc(n+1,q)[122X , and the group [22XPGL(n+1,q)[122X as [22XGL(n+1,q) /
  Sc(n+1,q)[122X . An element of the group [22XPGL(n+1,q)[122X is also called a [13Xprojectivity[113X
  or   [13Xhomography[113X   of  [22XPG(n,q)[122X,  and  the  group  [22XPGL(n+1,q)[122X  is  called  the
  [13Xprojectivity  group[113X or [13Xhomography group[113X of [22XPG(n,q)[122X. An element of [22XPΓL(n+1,q)[122X
  is  called  a  [13Xcollineation[113X  of  [22XPG(n,q)[122X  and  the  group  [22XPΓL(n+1,q)[122X is the
  [13Xcollineation group[113X of [22XPG(n,q)[122X.[133X
  
  [33X[0;0YAs  usual, we also consider the special linear group [22XSL(n+1,q)[122X, which is the
  subgroup of [22XGL(n+1,q)[122X of all matrices having determinant one. Its projective
  variant,  i.e.  [22XPSL(n+1,q)[122X is defined as [22XSL(n+1,q) / (SL(n+1,q) ∩ Sc(n+1,q))[122X
  and  is called the [13Xspecial homography group[113X or [13Xspecial projectivity group[113X of
  [22XPG(n,q)[122X.[133X
  
  [33X[0;0YConsider the projective space [22XPG(n,q)[122X. As described in Chapter [14X4[114X, a point of
  [22XPG(n,q)[122X  is represented by a row vector. A [22Xk[122X-dimensional subspace of [22XPG(n,q)[122X
  is  represented by a generating set of [22Xk+1[122X points, and as such, by a [22X(k+1) ×
  (n+1)[122X  matrix.  The  convention  in  [5XFinInG[105X  is  that  a collineation [22Xϕ[122X with
  underlying  matrix  [22XA[122X  and  field  automorphism  [22Xθ[122X maps the projective point
  represented  by  row  vector  [22X(x_0,  x_1,  ..., x_n)[122X to the projective point
  represented  by  row  vector [22X(y_0,y_1,...,y_n) = ((x_0, x_1, ..., x_n) A)^θ[122X.
  This  convention  determines  completely  the action of collineations on all
  elements  of  a  projective  space,  and  it follows that the product of two
  collineations  [22Xϕ_1,ϕ_2[122X  with  respective  underlying  matrices  [22XA_1,A_2[122X  and
  respective  underlying  field automorphisms [22Xθ_1,θ_2[122X is the collineation with
  underlying matrix [22XA_1 ⋅ (A_2^(θ_1^-1))[122X and underlying field automorphism [22Xθ_1
  θ_2[122X .[133X
  
  [33X[0;0YA [13Xcorrelation[113X of the projective space [22XPG(n,q)[122X is a collineation from [22XPG(n,q)[122X
  to  its  dual. A projectivity from [22XPG(n,q)[122X to its dual is sometimes called a
  [13Xreciprocity[113X.  The  [13Xstandard duality[113X of the projective space [22XPG(n,q)[122X maps any
  point  [22Xv[122X  with coordinates [22X(x_0,x_1,...,x_n)[122X on the hyperplane with equation
  [22Xx_0X_0  + x_1X_1 + ⋯ + x_nX_n[122X . The standard duality acts as an automorphism
  on  [22XPΓL(n+1,q)[122X  by  mapping  the  underlying matrix of a collineation to its
  inverse  transpose  matrix.  (Recall that the frobenius automorphism and the
  standard  duality commute.) The convention in [5XFinInG[105X is that a correlation [22Xϕ[122X
  with underlying matrix [22XA[122X and field automorphism [22Xθ[122X maps that projective point
  represented  by row vector [22X(x_0, x_1, ..., x_n)[122X to the projective hyperplane
  represented  by row vector [22X(y_0,y_1,...,y_n) = ((x_0, x_1, ..., x_n) A)^θ.[122X ,
  i.e.   [22X(y_0,y_1,...,y_n)  =  ((x_0,  x_1,  ...,  x_n)  A)^θ.[122X  are  the  dual
  coordinates of the hyperplane.[133X
  
  [33X[0;0YThe  product  of  two  correlations  of  [22XPG(n,q)[122X  is a collineation, and the
  product  of  a collineation and a correlaton is a correlation. So the set of
  all  collineations  and  correlations  of  [22XPG(n,q)[122X forms a group, called the
  [13Xcorrelation-collineation  group[113X  of  [22XPG(n,q)[122X.  The  correlation-collineation
  group  of  [22XPG(n,q)[122X  is  isomorphic to the semidirect product of [22XP Γ L(n+1,q)[122X
  with  the  cyclic  group of order 2 generated by the [13Xstandard duality[113X of the
  projective space [22XPG(n,q)[122X. The convention determines completely the action of
  correlations and collineations on all elements of a projective space, and it
  follows  that  the  product  of two elements of the correlation-collineation
  group  [22Xϕ_1,ϕ_2[122X  with  respective  underlying  matrices  [22XA_1,A_2[122X,  respective
  underlying   field   automorphisms   [22Xθ_1,θ_2[122X  ,  and  respective  underlying
  projective  space  isomorphisms (standard duality or identity map) [22Xδ_1,δ_2[122X ,
  is  the element of the correlation-collineation group with underlying matrix
  [22XA_1  ⋅  (A_2^(θ_1^-1))^δ_1[122X  ,  underlying  field  automorphism [22Xθ_1 θ_2[122X , and
  underlying  projective  space automorphism [22Xδ_1 δ_2[122X , where the action of [22Xδ_1[122X
  on  a  matrix  is  defined  as  taking  the  transpose inverse if [22Xδ_1[122X is the
  standard duality, and as the identity map if [22Xδ_1[122X is the identity.[133X
  
  [33X[0;0YAction  functions  for  collineations and correlations on the subspaces of a
  projective space are described in detail in Section [14X5.8[114X[133X
  
  [33X[0;0YWe  mention that the commands [11XPGL[111X (and [11XProjectiveGeneralLinearGroup[111X) and [11XPSL[111X
  (and  [11XProjectiveSpecialLinearGroup[111X)  are  available  in  GAP  and  return  a
  (permutation)  group  isomorphic  to the required group. Therefore we do not
  provide new methods for these commands, but assume that the user will obtain
  these  groups  as  homography or special homography group of the appropriate
  projective  space.  We  will  follow this philosophy for the other classical
  groups. The terminology [13Xprojective semilinear group[113X will be used for a group
  generated by collineations of a projective space.[133X
  
  
  [1X5.1 [33X[0;0YProjectivities, collineations and correlations of projective spaces.[133X[101X
  
  [33X[0;0YThese  are the different type of actions on projective spaces in [5XFinInG[105X, and
  they   naturally   give  rise  to  the  following  distinct  categories  and
  representations.  Note  that  these categories and representations are to be
  considered  on  a  non-user  level.  Below  we describe all user constuction
  methods that hide nicely these technical details.[133X
  
  
  [1X5.1-1 [33X[0;0YCategories for group elements[133X[101X
  
  [29X[2XIsProjGrpEl[102X[32X Category
  [29X[2XIsProjGrpElWithFrob[102X[32X Category
  [29X[2XIsProjGrpElWithFrobWithPSIsom[102X[32X Category
  
  [33X[0;0Y[10XIsProjGrpEl[110X,  [10XIsProjGrpElWithFrob[110X, and [10XIsProjGrpElWithFrobWithPSIsom[110X are the
  categories   naturally   induced   by   the   notions   of   projectivities,
  collineations, and correlations of a projective space.[133X
  
  
  [1X5.1-2 [33X[0;0YRepresentations for group elements[133X[101X
  
  [29X[2XIsProjGrpElRep[102X[32X Representation
  [29X[2XIsProjGrpElWithFrobRep[102X[32X Representation
  [29X[2XIsProjGrpElWithFrobWithPSIsomRep[102X[32X Representation
  
  [33X[0;0Y[10XIsProjGrpElRep[110X  is  the  representation naturally induced by a projectivity;
  [10XIsProjGrpElWithFrobRep[110X is the representation naturally induced by the notion
  of  a collineation of projective space; and [10XIsProjGrpElWithFrobWithPSIsomRep[110X
  is  the  representation  naturally  induced by a correlation of a projective
  space. This means that an object in the representation [10XIsProjGrpElRep[110X has as
  underlying object a matrix; an object in the category [10XIsProjGrpElWithFrobRep[110X
  has  as  underlying  object  a  pair  consisting  of  a  matrix  and a field
  automorphism;  and [10XIsProjGrpElWithFrobWithPSIsomRep[110X has as underlying object
  a  triple  consisting  of  a matrix, a field automorphism and an isomorphism
  from the projective space to its dual space. Also the basefield is stored as
  a component in the representation.[133X
  
  [33X[0;0YThe  above  mentioned  categories  allow  us  to  make a distinction between
  projectivities,    collineations   and   correlations   apart   from   their
  representation.  However,  in  [5XFinInG[105X,  a  group  element constructed in the
  categories  [10XIsProjGrpElMore[110X  is  always  constructed  in  the representation
  [10XIsProjGrpElMoreRep[110X.  Furthermore,  projectivities  of projective spaces (and
  also  collineations  of projective spaces) will by default be constructed in
  the  category  [10XIsProjGrpElWithFrobRep[110X. This technical choice was made by the
  developpers  to  have  the  projectivity  groups  naturally  embedded in the
  collineation  groups.  Correlations of projective spaces will be constructed
  in the category [10XIsProjGrpElWithFrobWithPSIsom[110X.[133X
  
  
  [1X5.1-3 [33X[0;0YProjectivities[133X[101X
  
  [29X[2XIsProjectivity[102X[32X Property
  
  [33X[0;0Y[10XIsProjectivity[110X is a property. Projectivities are the elements of [22XPGL(n+1,q)[122X.
  Every element belonging to [10XIsProjGrpEl[110X is by construction a projectivity. If
  [10XIsProjectivity[110X  is applied to a an element belonging to [10XIsProjGrpElWithFrob[110X,
  then  it verifies whether the underlying field automorphism is the identity.
  If    [10XIsProjectivity[110X   is   applied   to   a   an   element   belonging   to
  [10XIsProjGrpElWithFrobWithPSIsom[110X, then it verifies whether the underlying field
  automorphism  is  the identity, and whether the projective space isomorphism
  is   the  identity.  This  operation  provides  a  user-friendly  method  to
  distinguish the projectivities from the projective strictly semilinear maps,
  and the correlations of a projective space.[133X
  
  [4X[32X  Example  [32X[104X
    [4X[25Xgap>[125X [27Xg := Random(HomographyGroup(PG(3,4)));[127X[104X
    [4X[28X< a collineation: <cmat 4x4 over GF(2,2)>, F^0>[128X[104X
    [4X[25Xgap>[125X [27XIsProjectivity(g);[127X[104X
    [4X[28Xtrue[128X[104X
    [4X[25Xgap>[125X [27Xg := Random(CollineationGroup(PG(3,4)));[127X[104X
    [4X[28X< a collineation: <cmat 4x4 over GF(2,2)>, F^0>[128X[104X
    [4X[25Xgap>[125X [27XIsProjectivity(g);[127X[104X
    [4X[28Xtrue[128X[104X
    [4X[25Xgap>[125X [27Xg := Random(CorrelationCollineationGroup(PG(3,4)));[127X[104X
    [4X[28X<projective element with Frobenius with projectivespace isomorphism: <immutabl[128X[104X
    [4X[28Xe cmat 4x4 over GF(2,2)>, F^[128X[104X
    [4X[28X2, StandardDuality( AllElementsOfIncidenceStructure( ProjectiveSpace([128X[104X
    [4X[28X3,GF(2^2)) ) ) >[128X[104X
    [4X[25Xgap>[125X [27XIsProjectivity(g);[127X[104X
    [4X[28Xfalse[128X[104X
    [4X[28X [128X[104X
  [4X[32X[104X
  
  
  [1X5.1-4 [33X[0;0YCollineations of projective spaces[133X[101X
  
  [29X[2XIsCollineation[102X[32X Property
  
  [33X[0;0Y[10XIsCollineation[110X  is  property.  All elements of [22XPΓL(n+1,q)[122X are collineations,
  and   therefore   all   elements   belonging   to   [10XIsProjGrpElWithFrob[110X  are
  collineations.  But  also  a  projectivity  is a collineation, as well as an
  element  belonging  to  [10XIsProjGrpElWithFrobWithPSIsom[110X  with projective space
  isomorphism equal to the identity, is a collineation.[133X
  
  [4X[32X  Example  [32X[104X
    [4X[25Xgap>[125X [27Xg := Random(HomographyGroup(PG(2,27)));[127X[104X
    [4X[28X< a collineation: <cmat 3x3 over GF(3,3)>, F^0>[128X[104X
    [4X[25Xgap>[125X [27XIsCollineation(g);[127X[104X
    [4X[28Xtrue[128X[104X
    [4X[25Xgap>[125X [27Xg := Random(CollineationGroup(PG(2,27)));[127X[104X
    [4X[28X< a collineation: <cmat 3x3 over GF(3,3)>, F^0>[128X[104X
    [4X[25Xgap>[125X [27XIsCollineation(g);[127X[104X
    [4X[28Xtrue[128X[104X
    [4X[25Xgap>[125X [27Xg := Random(CorrelationCollineationGroup(PG(2,27)));[127X[104X
    [4X[28X<projective element with Frobenius with projectivespace isomorphism: <cmat 3x[128X[104X
    [4X[28X3 over GF(3,3)>, F^0, IdentityMapping( <All elements of ProjectiveSpace(2, [128X[104X
    [4X[28X27)> ) >[128X[104X
    [4X[25Xgap>[125X [27XIsCollineation(g);[127X[104X
    [4X[28Xtrue[128X[104X
    [4X[28X [128X[104X
  [4X[32X[104X
  
  
  [1X5.1-5 [33X[0;0YProjective strictly semilinear maps[133X[101X
  
  [29X[2XIsStrictlySemilinear[102X[32X Property
  
  [33X[0;0Y[10XIsStrictlySemilinear[110X  is a property that checks whether a given collineation
  has  a  nontrivial  underlying field automorphisms, i.e. whether the element
  belongs  to  [22XPΓL(n+1,q)[122X,  but  not to [22XPGL(n+1,q)[122X. If [10XIsStrictlySemilinear[110X is
  applied  to a an element belonging to [10XIsProjGrpElWithFrobWithPSIsom[110X, then it
  verifies  whether  the  underlying  field automorphism is different from the
  identity,  and whether the projective space isomorphism equals the identity.
  This operation provides a user-friendly method to distinguish the projective
  strictly   semilinear  maps  from  projectivities  inside  the  category  of
  collineations of a projective space.[133X
  
  [4X[32X  Example  [32X[104X
    [4X[25Xgap>[125X [27Xg := Random(HomographyGroup(PG(3,25)));[127X[104X
    [4X[28X< a collineation: <cmat 4x4 over GF(5,2)>, F^0>[128X[104X
    [4X[25Xgap>[125X [27XIsStrictlySemilinear(g);[127X[104X
    [4X[28Xfalse[128X[104X
    [4X[25Xgap>[125X [27Xg := Random(CollineationGroup(PG(3,25)));[127X[104X
    [4X[28X< a collineation: <cmat 4x4 over GF(5,2)>, F^5>[128X[104X
    [4X[25Xgap>[125X [27XIsStrictlySemilinear(g);[127X[104X
    [4X[28Xtrue[128X[104X
    [4X[25Xgap>[125X [27Xg := Random(CorrelationCollineationGroup(PG(3,25)));[127X[104X
    [4X[28X<projective element with Frobenius with projectivespace isomorphism: <cmat 4x[128X[104X
    [4X[28X4 over GF(5,2)>, F^5, IdentityMapping( <All elements of ProjectiveSpace(3, [128X[104X
    [4X[28X25)> ) >[128X[104X
    [4X[25Xgap>[125X [27XIsStrictlySemilinear(g);[127X[104X
    [4X[28Xtrue[128X[104X
    [4X[28X [128X[104X
  [4X[32X[104X
  
  
  [1X5.1-6 [33X[0;0YCorrelations and collineations[133X[101X
  
  [29X[2XIsProjGrpElWithFrobWithPSIsom[102X[32X Category
  [29X[2XIsCorrelationCollineation[102X[32X Category
  [29X[2XIsCorrelation[102X[32X Property
  
  [33X[0;0YThe  underlying  objects  of  a  correlation-collineation  in  [5XFinInG[105X  are a
  nonsingular matrix, a field automorphism and a projective space isomorphism.
  [10XIsProjGrpElWithFrobWithPSIsom[110X  is  the  category  of  these  objects. If the
  projective  space  isomorphism  is  not  the identity, then the element is a
  correlation,  and  [10XIsCorrelation[110X will return true. [10XIsCorrelationCollineation[110X
  is a synonym of [10XIsProjGrpElWithFrobWithPSIsom[110X.[133X
  
  [4X[32X  Example  [32X[104X
    [4X[25Xgap>[125X [27Xg := Random(CollineationGroup(PG(4,7)));[127X[104X
    [4X[28X< a collineation: <cmat 5x5 over GF(7,1)>, F^0>[128X[104X
    [4X[25Xgap>[125X [27XIsCorrelationCollineation(g);[127X[104X
    [4X[28Xfalse[128X[104X
    [4X[25Xgap>[125X [27XIsCorrelation(g);[127X[104X
    [4X[28Xfalse[128X[104X
    [4X[25Xgap>[125X [27Xg := Random(CorrelationCollineationGroup(PG(4,7)));[127X[104X
    [4X[28X<projective element with Frobenius with projectivespace isomorphism: <cmat 5x[128X[104X
    [4X[28X5 over GF(7,1)>, F^0, IdentityMapping( <All elements of ProjectiveSpace(4, [128X[104X
    [4X[28X7)> ) >[128X[104X
    [4X[25Xgap>[125X [27XIsCorrelationCollineation(g);[127X[104X
    [4X[28Xtrue[128X[104X
    [4X[25Xgap>[125X [27XIsCorrelation(g);[127X[104X
    [4X[28Xfalse[128X[104X
    [4X[28X [128X[104X
  [4X[32X[104X
  
  
  [1X5.2 [33X[0;0YConstruction of projectivities, collineations and correlations.[133X[101X
  
  [33X[0;0YIn  [5XFinInG[105X,  projectivities  and  collineations  are both constructed in the
  category  [10XIsProjGrpElWithFrob[110X;  correlations are constructed in the category
  [10XIsProjGrpElWithFrobWithPSIsom[110X.[133X
  
  [1X5.2-1 Projectivity[101X
  
  [29X[2XProjectivity[102X( [3Xmat[103X, [3Xf[103X ) [32X operation
  [29X[2XProjectivity[102X( [3Xpg[103X, [3Xmat[103X ) [32X operation
  [6XReturns:[106X  [33X[0;10Ya projectivity of a projective space[133X
  
  [33X[0;0YThe  argument  [3Xmat[103X  must be a nonsingular matrix over the finite field [3Xf[103X. In
  the  second variant, the size of the nonsingular matrix [3Xmat[103X must be one more
  than  the dimension of the projective space [3Xpg[103X. This creates an element of a
  projectivity group. But the returned object belongs to [10XIsProjGrpElWithFrob[110X![133X
  
  [4X[32X  Example  [32X[104X
    [4X[25Xgap>[125X [27Xmat := [[1,0,0],[0,1,0],[0,0,1]]*Z(9)^0;[127X[104X
    [4X[28X[ [ Z(3)^0, 0*Z(3), 0*Z(3) ], [ 0*Z(3), Z(3)^0, 0*Z(3) ], [128X[104X
    [4X[28X  [ 0*Z(3), 0*Z(3), Z(3)^0 ] ][128X[104X
    [4X[25Xgap>[125X [27XProjectivity(mat,GF(9));[127X[104X
    [4X[28X< a collineation: <cmat 3x3 over GF(3,2)>, F^0>[128X[104X
    [4X[28X [128X[104X
  [4X[32X[104X
  
  [1X5.2-2 CollineationOfProjectiveSpace[101X
  
  [29X[2XCollineationOfProjectiveSpace[102X( [3Xmat[103X, [3Xfrob[103X, [3Xf[103X ) [32X operation
  [29X[2XCollineationOfProjectiveSpace[102X( [3Xmat[103X, [3Xf[103X ) [32X operation
  [29X[2XCollineationOfProjectiveSpace[102X( [3Xmat[103X, [3Xfrob[103X, [3Xf[103X ) [32X operation
  [29X[2XCollineationOfProjectiveSpace[102X( [3Xmat[103X, [3Xf[103X ) [32X operation
  [29X[2XCollineationOfProjectiveSpace[102X( [3Xpg[103X, [3Xmat[103X ) [32X operation
  [29X[2XCollineationOfProjectiveSpace[102X( [3Xpg[103X, [3Xmat[103X, [3Xfrob[103X ) [32X operation
  [29X[2XCollineation[102X( [3Xpg[103X, [3Xmat[103X ) [32X operation
  [29X[2XCollineation[102X( [3Xpg[103X, [3Xmat[103X, [3Xfrob[103X ) [32X operation
  
  [33X[0;0Y[3Xmat[103X is a nonsingular matrix, [3Xfrob[103X is a field automorphism, [3Xf[103X is a field, and
  [3Xpg[103X  is  a  projective space. This function (and its shorter version) returns
  the  collineation  with  matrix [3Xmat[103X and automorphism [3Xfrob[103X of the field [3Xf[103X. If
  [3Xfrob[103X is not specified then the companion automorphism of the resulting group
  element  will  be  the  identity  map.  The  returned  object belongs to the
  category [10XIsProjGrpElWithFrob[110X. When the argument [3Xfrob[103X is given, it is checked
  whether the source of [3Xfrob[103X equals [3Xf[103X. When the arguments [3Xpg[103X and [3Xmat[103X are used,
  then it is checked that these two arguments are compatible.[133X
  
  [4X[32X  Example  [32X[104X
    [4X[25Xgap>[125X [27Xmat:=[127X[104X
    [4X[25X>[125X [27X[[Z(2^3)^6,Z(2^3),Z(2^3)^3,Z(2^3)^3],[Z(2^3)^6,Z(2)^0,Z(2^3)^2,Z(2^3)^3],[127X[104X
    [4X[25X>[125X [27X[0*Z(2),Z(2^3)^4,Z(2^3),Z(2^3)],[Z(2^3)^6,Z(2^3)^5,Z(2^3)^3,Z(2^3)^5 ]];[127X[104X
    [4X[28X[ [ Z(2^3)^6, Z(2^3), Z(2^3)^3, Z(2^3)^3 ], [128X[104X
    [4X[28X  [ Z(2^3)^6, Z(2)^0, Z(2^3)^2, Z(2^3)^3 ], [128X[104X
    [4X[28X  [ 0*Z(2), Z(2^3)^4, Z(2^3), Z(2^3) ], [128X[104X
    [4X[28X  [ Z(2^3)^6, Z(2^3)^5, Z(2^3)^3, Z(2^3)^5 ] ][128X[104X
    [4X[25Xgap>[125X [27Xfrob := FrobeniusAutomorphism(GF(8));[127X[104X
    [4X[28XFrobeniusAutomorphism( GF(2^3) )[128X[104X
    [4X[25Xgap>[125X [27Xphi := ProjectiveSemilinearMap(mat,frob^2,GF(8));[127X[104X
    [4X[28X< a collineation: <cmat 4x4 over GF(2,3)>, F^4>[128X[104X
    [4X[25Xgap>[125X [27Xmat2 := [[Z(2^8)^31,Z(2^8)^182,Z(2^8)^49],[Z(2^8)^224,Z(2^8)^25,Z(2^8)^45], [127X[104X
    [4X[25X>[125X [27X[Z(2^8)^128,Z(2^8)^165,Z(2^8)^217]];[127X[104X
    [4X[28X[ [ Z(2^8)^31, Z(2^8)^182, Z(2^8)^49 ], [ Z(2^8)^224, Z(2^8)^25, Z(2^8)^45 ], [128X[104X
    [4X[28X  [ Z(2^8)^128, Z(2^8)^165, Z(2^8)^217 ] ][128X[104X
    [4X[25Xgap>[125X [27Xpsi := CollineationOfProjectiveSpace(mat2,GF(256));[127X[104X
    [4X[28X< a collineation: <cmat 3x3 over GF(2,8)>, F^0>[128X[104X
    [4X[28X [128X[104X
  [4X[32X[104X
  
  [1X5.2-3 ProjectiveSemilinearMap[101X
  
  [29X[2XProjectiveSemilinearMap[102X( [3Xmat[103X, [3Xfrob[103X, [3Xf[103X ) [32X operation
  [6XReturns:[106X  [33X[0;10Ya projectivity of a projective space[133X
  
  [33X[0;0Y[3Xmat[103X is a nonsingular matrix, [3Xfrob[103X is a field automorphism, and [3Xf[103X is a field.
  This  function  returns  the  collineation  with matrix [3Xmat[103X and automorphism
  [3Xfrob[103X.  The returned object belongs to the category [10XIsProjGrpElWithFrob[110X. When
  the  argument [3Xfrob[103X is given, it is checked whether the source of [3Xfrob[103X equals
  [3Xf[103X.[133X
  
  [1X5.2-4 IdentityMappingOfElementsOfProjectiveSpace[101X
  
  [29X[2XIdentityMappingOfElementsOfProjectiveSpace[102X( [3Xps[103X ) [32X operation
  
  [33X[0;0YThis  operation  returns the identity mapping on the collection of subspaces
  of a projective space [3Xps[103X.[133X
  
  [1X5.2-5 StandardDualityOfProjectiveSpace[101X
  
  [29X[2XStandardDualityOfProjectiveSpace[102X( [3Xps[103X ) [32X operation
  
  [33X[0;0YThis operation returns the standard duality of the projective space [3Xps[103X[133X
  
  [4X[32X  Example  [32X[104X
    [4X[25Xgap>[125X [27Xps := ProjectiveSpace(4,5);[127X[104X
    [4X[28XProjectiveSpace(4, 5)[128X[104X
    [4X[25Xgap>[125X [27Xdelta := StandardDualityOfProjectiveSpace(ps);[127X[104X
    [4X[28XStandardDuality( AllElementsOfIncidenceStructure( ProjectiveSpace(4,GF(5)) ) )[128X[104X
    [4X[25Xgap>[125X [27Xdelta^2;[127X[104X
    [4X[28XIdentityMapping( <All elements of ProjectiveSpace(4, 5)> )[128X[104X
    [4X[25Xgap>[125X [27Xp := VectorSpaceToElement(ps,[1,2,3,0,1]*Z(5)^0);[127X[104X
    [4X[28X<a point in ProjectiveSpace(4, 5)>[128X[104X
    [4X[25Xgap>[125X [27Xh := p^delta;[127X[104X
    [4X[28X<a solid in ProjectiveSpace(4, 5)>[128X[104X
    [4X[25Xgap>[125X [27XUnderlyingObject(h);[127X[104X
    [4X[28X<cmat 4x5 over GF(5,1)>[128X[104X
    [4X[25Xgap>[125X [27XUnpack(last);[127X[104X
    [4X[28X[ [ Z(5)^0, 0*Z(5), 0*Z(5), 0*Z(5), Z(5)^2 ], [128X[104X
    [4X[28X  [ 0*Z(5), Z(5)^0, 0*Z(5), 0*Z(5), Z(5)^3 ], [128X[104X
    [4X[28X  [ 0*Z(5), 0*Z(5), Z(5)^0, 0*Z(5), Z(5) ], [128X[104X
    [4X[28X  [ 0*Z(5), 0*Z(5), 0*Z(5), Z(5)^0, 0*Z(5) ] ][128X[104X
    [4X[28X [128X[104X
  [4X[32X[104X
  
  [1X5.2-6 CorrelationOfProjectiveSpace[101X
  
  [29X[2XCorrelationOfProjectiveSpace[102X( [3Xmat[103X, [3Xf[103X ) [32X operation
  [29X[2XCorrelationOfProjectiveSpace[102X( [3Xmat[103X, [3Xfrob[103X, [3Xf[103X ) [32X operation
  [29X[2XCorrelationOfProjectiveSpace[102X( [3Xmat[103X, [3Xf[103X, [3Xdelta[103X ) [32X operation
  [29X[2XCorrelationOfProjectiveSpace[102X( [3Xmat[103X, [3Xfrob[103X, [3Xf[103X, [3Xdelta[103X ) [32X operation
  [29X[2XCorrelationOfProjectiveSpace[102X( [3Xpg[103X, [3Xmat[103X, [3Xfrob[103X, [3Xdelta[103X ) [32X operation
  [29X[2XCorrelation[102X( [3Xpg[103X, [3Xmat[103X, [3Xfrob[103X, [3Xdelta[103X ) [32X operation
  
  [33X[0;0Y[3Xmat[103X is a nonsingular matrix, [3Xfrob[103X is a field automorphism, [3Xf[103X is a field, and
  [3Xdelta[103X is the standard duality of the projective space [22XPG(n,q)[122X. This function
  returns  the  correlation  with  matrix [3Xmat[103X, automorphism [3Xfrob[103X, and standard
  duality  [3Xdelta[103X.  If [3Xfrob[103X is not specified then the companion automorphism of
  the  resulting group element will be the identity map. If the user specifies
  [3Xdelta[103X,  then  it must be the standard duality of a projective space, created
  using  [2XStandardDualityOfProjectiveSpace[102X  ([14X5.2-5[114X), or the identity mapping on
  the   collection   of   subspaces  of  a  projective  space,  created  using
  [2XIdentityMappingOfElementsOfProjectiveSpace[102X  ([14X5.2-4[114X).  If not specified, then
  the companion vector space isomorphism is the identity mapping. The returned
  object belongs to the category [10XIsProjGrpElWithFrobWithPSIsom[110X[133X
  
  [4X[32X  Example  [32X[104X
    [4X[25Xgap>[125X [27Xmat := [[1,0,0],[3,0,2],[0,5,4]]*Z(7^3);[127X[104X
    [4X[28X[ [ Z(7^3), 0*Z(7), 0*Z(7) ], [ Z(7^3)^58, 0*Z(7), Z(7^3)^115 ], [128X[104X
    [4X[28X  [ 0*Z(7), Z(7^3)^286, Z(7^3)^229 ] ][128X[104X
    [4X[25Xgap>[125X [27Xphi1 := CorrelationOfProjectiveSpace(mat,GF(7^3));[127X[104X
    [4X[28X<projective element with Frobenius with projectivespace isomorphism: <cmat 3x[128X[104X
    [4X[28X3 over GF(7,3)>, F^0, IdentityMapping( <All elements of ProjectiveSpace(2, [128X[104X
    [4X[28X343)> ) >[128X[104X
    [4X[25Xgap>[125X [27Xfrob := FrobeniusAutomorphism(GF(7^3));[127X[104X
    [4X[28XFrobeniusAutomorphism( GF(7^3) )[128X[104X
    [4X[25Xgap>[125X [27Xphi2 := CorrelationOfProjectiveSpace(mat,frob,GF(7^3));[127X[104X
    [4X[28X<projective element with Frobenius with projectivespace isomorphism: <cmat 3x[128X[104X
    [4X[28X3 over GF(7,3)>, F^7, IdentityMapping( <All elements of ProjectiveSpace(2, [128X[104X
    [4X[28X343)> ) >[128X[104X
    [4X[25Xgap>[125X [27Xdelta := StandardDualityOfProjectiveSpace(ProjectiveSpace(2,GF(7^3)));[127X[104X
    [4X[28XStandardDuality( AllElementsOfIncidenceStructure( ProjectiveSpace([128X[104X
    [4X[28X2,GF(7^3)) ) )[128X[104X
    [4X[25Xgap>[125X [27Xphi3 := CorrelationOfProjectiveSpace(mat,GF(7^3),delta);[127X[104X
    [4X[28X<projective element with Frobenius with projectivespace isomorphism: <cmat 3x[128X[104X
    [4X[28X3 over GF(7,[128X[104X
    [4X[28X3)>, F^0, StandardDuality( AllElementsOfIncidenceStructure( ProjectiveSpace([128X[104X
    [4X[28X2,GF(7^3)) ) ) >[128X[104X
    [4X[25Xgap>[125X [27Xphi4 := CorrelationOfProjectiveSpace(mat,frob,GF(7^3),delta);[127X[104X
    [4X[28X<projective element with Frobenius with projectivespace isomorphism: <cmat 3x[128X[104X
    [4X[28X3 over GF(7,3)>, F^[128X[104X
    [4X[28X7, StandardDuality( AllElementsOfIncidenceStructure( ProjectiveSpace([128X[104X
    [4X[28X2,GF(7^3)) ) ) >[128X[104X
    [4X[28X [128X[104X
  [4X[32X[104X
  
  
  [1X5.3  [33X[0;0YBasic  operations for projectivities, collineations and correlations of[101X
  [1Xprojective spaces[133X[101X
  
  [1X5.3-1 Representative[101X
  
  [29X[2XRepresentative[102X( [3Xg[103X ) [32X operation
  
  [33X[0;0Y[3Xg[103X is a projectivity, collineation or correlation of a projective space. This
  function  returns  the  reresentative  components  that  determine [3Xg[103X, i.e. a
  matrix,   a  matrix  and  a  field  automorphism,  and  a  matrix,  a  field
  automorphism, and a vector space isomorphism, respectively.[133X
  
  [4X[32X  Example  [32X[104X
    [4X[25Xgap>[125X [27Xg:=CollineationGroup( ProjectiveSpace(2,49));[127X[104X
    [4X[28XThe FinInG collineation group PGammaL(3,49)[128X[104X
    [4X[25Xgap>[125X [27Xx:=Random(g);;[127X[104X
    [4X[25Xgap>[125X [27XRepresentative(x);[127X[104X
    [4X[28X[ <immutable cmat 3x3 over GF(7,2)>, FrobeniusAutomorphism( GF(7^2) ) ][128X[104X
    [4X[28X [128X[104X
  [4X[32X[104X
  
  [1X5.3-2 MatrixOfCollineation[101X
  
  [29X[2XMatrixOfCollineation[102X( [3Xg[103X ) [32X operation
  
  [33X[0;0Y[3Xg[103X  is  a collineation (including a projectivity) of a projective space. This
  function returns the matrix that was used to construct [3Xg[103X.[133X
  
  [4X[32X  Example  [32X[104X
    [4X[25Xgap>[125X [27Xg:=CollineationGroup( ProjectiveSpace(3,3));[127X[104X
    [4X[28XThe FinInG collineation group PGL(4,3)[128X[104X
    [4X[25Xgap>[125X [27Xx:=Random(g);;[127X[104X
    [4X[25Xgap>[125X [27XMatrixOfCollineation(x);[127X[104X
    [4X[28X<cmat 4x4 over GF(3,1)>[128X[104X
    [4X[25Xgap>[125X [27XUnpack(last);[127X[104X
    [4X[28X[ [ 0*Z(3), 0*Z(3), Z(3)^0, Z(3) ], [ Z(3), 0*Z(3), 0*Z(3), 0*Z(3) ], [128X[104X
    [4X[28X  [ Z(3)^0, Z(3)^0, Z(3), 0*Z(3) ], [ Z(3), Z(3), 0*Z(3), 0*Z(3) ] ][128X[104X
    [4X[28X [128X[104X
  [4X[32X[104X
  
  [1X5.3-3 MatrixOfCorrelation[101X
  
  [29X[2XMatrixOfCorrelation[102X( [3Xg[103X ) [32X operation
  
  [33X[0;0Y[3Xg[103X  is  a correlation of a projective space. This function returns the matrix
  that was used to construct [3Xg[103X.[133X
  
  [4X[32X  Example  [32X[104X
    [4X[25Xgap>[125X [27Xg:=CorrelationCollineationGroup( ProjectiveSpace(4,9));[127X[104X
    [4X[28XThe FinInG correlation-collineation group PGammaL(5,9) : 2[128X[104X
    [4X[25Xgap>[125X [27Xx:=Random(g);;[127X[104X
    [4X[25Xgap>[125X [27XMatrixOfCorrelation(x);[127X[104X
    [4X[28X<cmat 5x5 over GF(3,2)>[128X[104X
    [4X[25Xgap>[125X [27XUnpack(last);[127X[104X
    [4X[28X[ [ Z(3^2)^3, Z(3^2)^6, 0*Z(3), 0*Z(3), 0*Z(3) ], [128X[104X
    [4X[28X  [ Z(3^2), Z(3^2)^3, Z(3^2)^2, Z(3^2)^5, Z(3^2) ], [128X[104X
    [4X[28X  [ Z(3^2)^2, Z(3^2)^3, Z(3^2), Z(3^2), Z(3^2)^3 ], [128X[104X
    [4X[28X  [ Z(3^2)^2, Z(3^2), Z(3^2)^6, Z(3^2), Z(3^2)^5 ], [128X[104X
    [4X[28X  [ Z(3^2), Z(3^2)^3, Z(3)^0, 0*Z(3), Z(3^2)^6 ] ][128X[104X
    [4X[28X [128X[104X
  [4X[32X[104X
  
  [1X5.3-4 BaseField[101X
  
  [29X[2XBaseField[102X( [3Xg[103X ) [32X operation
  [6XReturns:[106X  [33X[0;10Ya field[133X
  
  [33X[0;0Y[3Xg[103X is a projectivity, collineation or correlation of a projective space. This
  function returns the base field that was used to construct [3Xg[103X.[133X
  
  [4X[32X  Example  [32X[104X
    [4X[25Xgap>[125X [27Xmat := [[0,1,0],[1,0,0],[0,0,2]]*Z(3)^0;[127X[104X
    [4X[28X[ [ 0*Z(3), Z(3)^0, 0*Z(3) ], [ Z(3)^0, 0*Z(3), 0*Z(3) ], [128X[104X
    [4X[28X  [ 0*Z(3), 0*Z(3), Z(3) ] ][128X[104X
    [4X[25Xgap>[125X [27Xg := Projectivity(mat,GF(3^6));[127X[104X
    [4X[28X< a collineation: <cmat 3x3 over GF(3,6)>, F^0>[128X[104X
    [4X[25Xgap>[125X [27XBaseField(g);[127X[104X
    [4X[28XGF(3^6)[128X[104X
    [4X[28X [128X[104X
  [4X[32X[104X
  
  [1X5.3-5 FieldAutomorphism[101X
  
  [29X[2XFieldAutomorphism[102X( [3Xg[103X ) [32X operation
  
  [33X[0;0Y[3Xg[103X  is  a collineation of a projective space or a correlation of a projective
  space.  This function returns the companion field automorphism which defines
  [3Xg[103X.  Note  that  in the following example, you may want to execute it several
  times  to  see the different possible results generated by the random choice
  of projective semilinear map here.[133X
  
  [4X[32X  Example  [32X[104X
    [4X[25Xgap>[125X [27Xg:=CollineationGroup( ProjectiveSpace(3,9));[127X[104X
    [4X[28XThe FinInG collineation group PGammaL(4,9)[128X[104X
    [4X[25Xgap>[125X [27Xx:=Random(g);;[127X[104X
    [4X[25Xgap>[125X [27XFieldAutomorphism(x);[127X[104X
    [4X[28XIdentityMapping( GF(3^2) )[128X[104X
    [4X[28X [128X[104X
  [4X[32X[104X
  
  [1X5.3-6 ProjectiveSpaceIsomorphism[101X
  
  [29X[2XProjectiveSpaceIsomorphism[102X( [3Xg[103X ) [32X operation
  
  [33X[0;0Y[3Xg[103X  is  a  correlation  of  a  projective  space.  This  function returns the
  companion isomorphism of the projective space which defines [3Xg[103X.[133X
  
  [4X[32X  Example  [32X[104X
    [4X[25Xgap>[125X [27Xmat := [[1,0,0],[3,0,2],[0,5,4]]*Z(7^3);[127X[104X
    [4X[28X[ [ Z(7^3), 0*Z(7), 0*Z(7) ], [ Z(7^3)^58, 0*Z(7), Z(7^3)^115 ], [128X[104X
    [4X[28X  [ 0*Z(7), Z(7^3)^286, Z(7^3)^229 ] ][128X[104X
    [4X[25Xgap>[125X [27Xfrob := FrobeniusAutomorphism(GF(7^3));[127X[104X
    [4X[28XFrobeniusAutomorphism( GF(7^3) )[128X[104X
    [4X[25Xgap>[125X [27Xdelta := StandardDualityOfProjectiveSpace(ProjectiveSpace(2,GF(7^3)));[127X[104X
    [4X[28XStandardDuality( AllElementsOfIncidenceStructure( ProjectiveSpace([128X[104X
    [4X[28X2,GF(7^3)) ) )[128X[104X
    [4X[25Xgap>[125X [27Xphi := CorrelationOfProjectiveSpace(mat,frob,GF(7^3),delta);[127X[104X
    [4X[28X<projective element with Frobenius with projectivespace isomorphism: <cmat 3x[128X[104X
    [4X[28X3 over GF(7,3)>, F^[128X[104X
    [4X[28X7, StandardDuality( AllElementsOfIncidenceStructure( ProjectiveSpace([128X[104X
    [4X[28X2,GF(7^3)) ) ) >[128X[104X
    [4X[25Xgap>[125X [27XProjectiveSpaceIsomorphism(phi);[127X[104X
    [4X[28XStandardDuality( AllElementsOfIncidenceStructure( ProjectiveSpace([128X[104X
    [4X[28X2,GF(7^3)) ) )[128X[104X
    [4X[28X [128X[104X
  [4X[32X[104X
  
  [1X5.3-7 Order[101X
  
  [29X[2XOrder[102X( [3Xg[103X ) [32X operation
  
  [33X[0;0Y[3Xg[103X is a projectivity, collineation or correlation of a projective space. This
  function returns the order of [3Xg[103X.[133X
  
  [4X[32X  Example  [32X[104X
    [4X[25Xgap>[125X [27Xx := Random(CollineationGroup(PG(4,9)));[127X[104X
    [4X[28X< a collineation: <cmat 5x5 over GF(3,2)>, F^3>[128X[104X
    [4X[25Xgap>[125X [27Xt := Order(x);[127X[104X
    [4X[28X32[128X[104X
    [4X[25Xgap>[125X [27XIsOne(x^t);[127X[104X
    [4X[28Xtrue[128X[104X
    [4X[28X [128X[104X
  [4X[32X[104X
  
  
  [1X5.4 [33X[0;0YThe groups [22XPΓL[122X[101X[1X, [22XPGL[122X[101X[1X, and [22XPSL[122X[101X[1X in [5XFinInG[105X[101X[1X[133X[101X
  
  [33X[0;0YAs  mentioned before the commands [11XPGL[111X (and [11XProjectiveGeneralLinearGroup[111X) and
  [11XPSL[111X  (and  [11XProjectiveSpecialLinearGroup[111X)  are  already  available in GAP and
  return  a  (permutation)  group isomorphic to the required group. In [5XFinInG[105X,
  different categories are created for these groups.[133X
  
  [1X5.4-1 ProjectivityGroup[101X
  
  [29X[2XProjectivityGroup[102X( [3Xgeom[103X ) [32X operation
  [29X[2XHomographyGroup[102X( [3Xgeom[103X ) [32X operation
  [6XReturns:[106X  [33X[0;10Ythe group of projectivities of geom[133X
  
  [33X[0;0YLet  [3Xgeom[103X  be  the projective space [22XPG(n,q)[122X This operation (and its synonym)
  returns  the  group  of  projectivities  [22XPGL(n+1,q)[122X  of the projective space
  [22XPG(n,q)[122X.  Note  that  although  a  projectivity  is  a collineation with the
  identity as associated field isomorphism, this group belongs to the category
  [10XIsProjectiveGroupWithFrob[110X, and its elements belong to [10XIsProjGrpElWithFrob[110X.[133X
  
  [4X[32X  Example  [32X[104X
    [4X[25Xgap>[125X [27Xps := ProjectiveSpace(3,16);[127X[104X
    [4X[28XProjectiveSpace(3, 16)[128X[104X
    [4X[25Xgap>[125X [27XProjectivityGroup(ps);[127X[104X
    [4X[28XThe FinInG projectivity group PGL(4,16)[128X[104X
    [4X[25Xgap>[125X [27XHomographyGroup(ps);[127X[104X
    [4X[28XThe FinInG projectivity group PGL(4,16)[128X[104X
    [4X[25Xgap>[125X [27Xps := ProjectiveSpace(4,81);[127X[104X
    [4X[28XProjectiveSpace(4, 81)[128X[104X
    [4X[25Xgap>[125X [27XProjectivityGroup(ps);[127X[104X
    [4X[28XThe FinInG projectivity group PGL(5,81)[128X[104X
    [4X[25Xgap>[125X [27XHomographyGroup(ps);[127X[104X
    [4X[28XThe FinInG projectivity group PGL(5,81)[128X[104X
    [4X[25Xgap>[125X [27Xps := ProjectiveSpace(5,3);[127X[104X
    [4X[28XProjectiveSpace(5, 3)[128X[104X
    [4X[25Xgap>[125X [27XProjectivityGroup(ps);[127X[104X
    [4X[28XThe FinInG projectivity group PGL(6,3)[128X[104X
    [4X[25Xgap>[125X [27XHomographyGroup(ps);[127X[104X
    [4X[28XThe FinInG projectivity group PGL(6,3)[128X[104X
    [4X[25Xgap>[125X [27Xps := ProjectiveSpace(2,2);[127X[104X
    [4X[28XProjectiveSpace(2, 2)[128X[104X
    [4X[25Xgap>[125X [27XProjectivityGroup(ps);[127X[104X
    [4X[28XThe FinInG projectivity group PGL(3,2)[128X[104X
    [4X[25Xgap>[125X [27XHomographyGroup(ps);[127X[104X
    [4X[28XThe FinInG projectivity group PGL(3,2)[128X[104X
    [4X[28X [128X[104X
  [4X[32X[104X
  
  [1X5.4-2 CollineationGroup[101X
  
  [29X[2XCollineationGroup[102X( [3Xgeom[103X ) [32X operation
  [6XReturns:[106X  [33X[0;10Ythe group of collineations of geom[133X
  
  [33X[0;0YLet  [3Xgeom[103X  be the projective space [22XPG(n,q)[122X. This operation returns the group
  of collineations [22XPΓL(n+1,q)[122X of the projective space [22XPG(n,q)[122X. If [22XGF(q)[122X has no
  non-trivial  field automorphisms, i.e. when [22Xq[122X is prime, the group [22XPGL(n+1,q)[122X
  is the full collineation group and will be returned.[133X
  
  [4X[32X  Example  [32X[104X
    [4X[25Xgap>[125X [27Xps := ProjectiveSpace(3,16);[127X[104X
    [4X[28XProjectiveSpace(3, 16)[128X[104X
    [4X[25Xgap>[125X [27XCollineationGroup(ps);[127X[104X
    [4X[28XThe FinInG collineation group PGammaL(4,16)[128X[104X
    [4X[25Xgap>[125X [27Xps := ProjectiveSpace(4,81);[127X[104X
    [4X[28XProjectiveSpace(4, 81)[128X[104X
    [4X[25Xgap>[125X [27XCollineationGroup(ps);[127X[104X
    [4X[28XThe FinInG collineation group PGammaL(5,81)[128X[104X
    [4X[25Xgap>[125X [27Xps := ProjectiveSpace(5,3);[127X[104X
    [4X[28XProjectiveSpace(5, 3)[128X[104X
    [4X[25Xgap>[125X [27XCollineationGroup(ps);[127X[104X
    [4X[28XThe FinInG collineation group PGL(6,3)[128X[104X
    [4X[25Xgap>[125X [27Xps := ProjectiveSpace(2,2);[127X[104X
    [4X[28XProjectiveSpace(2, 2)[128X[104X
    [4X[25Xgap>[125X [27XCollineationGroup(ps);[127X[104X
    [4X[28XThe FinInG collineation group PGL(3,2)[128X[104X
    [4X[28X [128X[104X
  [4X[32X[104X
  
  [1X5.4-3 SpecialProjectivityGroup[101X
  
  [29X[2XSpecialProjectivityGroup[102X( [3Xgeom[103X ) [32X operation
  [29X[2XSpecialHomographyGroup[102X( [3Xgeom[103X ) [32X operation
  [6XReturns:[106X  [33X[0;10Ythe group of special projectivities of geom[133X
  
  [33X[0;0YLet  [3Xgeom[103X  be  the projective space [22XPG(n,q)[122X This operation (and its synonym)
  returns  the  group  of  special projectivities [22XPSL(n+1,q)[122X of the projective
  space [22XPG(n,q)[122X.[133X
  
  [4X[32X  Example  [32X[104X
    [4X[25Xgap>[125X [27Xps := ProjectiveSpace(3,16);[127X[104X
    [4X[28XProjectiveSpace(3, 16)[128X[104X
    [4X[25Xgap>[125X [27XSpecialProjectivityGroup(ps);[127X[104X
    [4X[28XThe FinInG PSL group PSL(4,16)[128X[104X
    [4X[25Xgap>[125X [27XSpecialHomographyGroup(ps);[127X[104X
    [4X[28XThe FinInG PSL group PSL(4,16)[128X[104X
    [4X[25Xgap>[125X [27Xps := ProjectiveSpace(4,81);[127X[104X
    [4X[28XProjectiveSpace(4, 81)[128X[104X
    [4X[25Xgap>[125X [27XSpecialProjectivityGroup(ps);[127X[104X
    [4X[28XThe FinInG PSL group PSL(5,81)[128X[104X
    [4X[25Xgap>[125X [27XSpecialHomographyGroup(ps);[127X[104X
    [4X[28XThe FinInG PSL group PSL(5,81)[128X[104X
    [4X[25Xgap>[125X [27Xps := ProjectiveSpace(5,3);[127X[104X
    [4X[28XProjectiveSpace(5, 3)[128X[104X
    [4X[25Xgap>[125X [27XSpecialProjectivityGroup(ps);[127X[104X
    [4X[28XThe FinInG PSL group PSL(6,3)[128X[104X
    [4X[25Xgap>[125X [27XSpecialHomographyGroup(ps);[127X[104X
    [4X[28XThe FinInG PSL group PSL(6,3)[128X[104X
    [4X[25Xgap>[125X [27Xps := ProjectiveSpace(2,2);[127X[104X
    [4X[28XProjectiveSpace(2, 2)[128X[104X
    [4X[25Xgap>[125X [27XSpecialProjectivityGroup(ps);[127X[104X
    [4X[28XThe FinInG PSL group PSL(3,2)[128X[104X
    [4X[25Xgap>[125X [27XSpecialHomographyGroup(ps);[127X[104X
    [4X[28XThe FinInG PSL group PSL(3,2)[128X[104X
    [4X[28X [128X[104X
  [4X[32X[104X
  
  [1X5.4-4 IsProjectivityGroup[101X
  
  [29X[2XIsProjectivityGroup[102X[32X Property
  
  [33X[0;0Y[10XIsProjectivityGroup[110X    is   a   property,   which   subgroups   of   a   the
  [10XCollineationGroup[110X  or  a  [10XCorrelationCollineationGroup[110X of a projective space
  might  have.  It checks whether the generators are projectivities. Of course
  [10XProjectivityGroup[110X has this property.[133X
  
  [1X5.4-5 IsCollineationGroup[101X
  
  [29X[2XIsCollineationGroup[102X[32X Property
  
  [33X[0;0Y[10XIsCollineationGroup[110X    is   a   property,   which   subgroups   of   a   the
  [10XCorrelationCollineationGroup[110X  of  a  projective  space might have. It checks
  whether  the  generators  are collineations. Of course [10XProjectivityGroup[110X and
  [10XCollineationGroup[110X have this property.[133X
  
  [1X5.4-6 CorrelationCollineationGroup[101X
  
  [29X[2XCorrelationCollineationGroup[102X( [3Xgeom[103X ) [32X operation
  [6XReturns:[106X  [33X[0;10Ythe group of correlations and collineations of geom[133X
  
  [33X[0;0YLet  [3Xgeom[103X  be  the  projective  space  [22XPG(n,q)[122X.  This  operation returns the
  correlations and collineations of [22XPG(n,q)[122X.[133X
  
  [4X[32X  Example  [32X[104X
    [4X[25Xgap>[125X [27Xpg := PG(4,3);[127X[104X
    [4X[28XProjectiveSpace(4, 3)[128X[104X
    [4X[25Xgap>[125X [27Xgroup := CorrelationCollineationGroup(pg);[127X[104X
    [4X[28XThe FinInG correlation-collineation group PGL(5,3) : 2[128X[104X
    [4X[25Xgap>[125X [27Xpg := PG(3,8);[127X[104X
    [4X[28XProjectiveSpace(3, 8)[128X[104X
    [4X[25Xgap>[125X [27Xgroup := CorrelationCollineationGroup(pg);[127X[104X
    [4X[28XThe FinInG correlation-collineation group PGammaL(4,8) : 2[128X[104X
    [4X[28X[128X[104X
  [4X[32X[104X
  
  
  [1X5.5 [33X[0;0YBasic operations for projective groups[133X[101X
  
  [1X5.5-1 BaseField[101X
  
  [29X[2XBaseField[102X( [3Xg[103X ) [32X operation
  [6XReturns:[106X  [33X[0;10Ya field[133X
  
  [33X[0;0Y[3Xg[103X  must  be  a  projective  group. This function finds the base field of the
  vector space on which the group acts.[133X
  
  [1X5.5-2 Dimension[101X
  
  [29X[2XDimension[102X( [3Xg[103X ) [32X attribute
  [6XReturns:[106X  [33X[0;10Ya number[133X
  
  [33X[0;0Y[3Xg[103X  must  be  a  projective  group.  This function finds the dimension of the
  vector space on which the group acts.[133X
  
  
  [1X5.6  [33X[0;0YNatural  embedding of a collineation group in a correlationcollineation[101X
  [1Xgroup[133X[101X
  
  [33X[0;0YIn  [5XFinInG[105X  a  collineation  group  is  not  constructed  as a subgroup of a
  correlation   group.   However,   collineations   can   be  multiplied  with
  correlations  (if  they  both  belong mathematically to the same correlation
  group.[133X
  
  [4X[32X  Example  [32X[104X
    [4X[25Xgap>[125X [27Xx := Random(CollineationGroup(PG(3,4)));[127X[104X
    [4X[28X< a collineation: <cmat 4x4 over GF(2,2)>, F^2>[128X[104X
    [4X[25Xgap>[125X [27Xy := Random(CorrelationCollineationGroup(PG(3,4)));[127X[104X
    [4X[28X<projective element with Frobenius with projectivespace isomorphism: <immutabl[128X[104X
    [4X[28Xe cmat 4x4 over GF(2,[128X[104X
    [4X[28X2)>, F^0, StandardDuality( AllElementsOfIncidenceStructure( ProjectiveSpace([128X[104X
    [4X[28X3,GF(2^2)) ) ) >[128X[104X
    [4X[25Xgap>[125X [27Xx*y;[127X[104X
    [4X[28X<projective element with Frobenius with projectivespace isomorphism: <cmat 4x[128X[104X
    [4X[28X4 over GF(2,2)>, F^[128X[104X
    [4X[28X2, StandardDuality( AllElementsOfIncidenceStructure( ProjectiveSpace([128X[104X
    [4X[28X3,GF(2^2)) ) ) >[128X[104X
    [4X[28X [128X[104X
  [4X[32X[104X
  
  [1X5.6-1 Embedding[101X
  
  [29X[2XEmbedding[102X( [3Xcoll[103X, [3Xcorr[103X ) [32X function
  
  [33X[0;0YLet  [3Xcoll[103X  be  a the full collineation group of a projective space, and [3Xcorr[103X
  its  full  correlation  group.  [5XFinInG[105X  provides a method for this operation
  [11XEmbedding[111X,  returning the natural embedding from [3Xcoll[103X into [3Xcorr[103X. Remark that
  only  an  embedding  of  a  collineation group into a correlation group with
  exactly the same underlying projective space is possible.[133X
  
  [4X[32X  Example  [32X[104X
    [4X[25Xgap>[125X [27Xcoll := CollineationGroup(PG(4,8));[127X[104X
    [4X[28XThe FinInG collineation group PGammaL(5,8)[128X[104X
    [4X[25Xgap>[125X [27Xcorr := CorrelationCollineationGroup(PG(4,8));[127X[104X
    [4X[28XThe FinInG correlation-collineation group PGammaL(5,8) : 2[128X[104X
    [4X[25Xgap>[125X [27Xphi := Embedding(coll,corr);[127X[104X
    [4X[28XMappingByFunction( The FinInG collineation group PGammaL(5,8), The FinInG corr[128X[104X
    [4X[28Xelation-collineation group PGammaL(5,8) : 2, function( y ) ... end )[128X[104X
    [4X[28X [128X[104X
  [4X[32X[104X
  
  
  [1X5.7 [33X[0;0YBasic action of projective group elements[133X[101X
  
  [1X5.7-1 \^[101X
  
  [29X[2X\^[102X( [3Xx[103X, [3Xg[103X ) [32X operation
  [6XReturns:[106X  [33X[0;10Ya subspace of a projective space[133X
  
  [33X[0;0YThis  is  an  operation  which  returns  the  image  of  [3Xx[103X,  a subspace of a
  projective  space,  under  [3Xg[103X,  an  element  of  the  projective  group,  the
  collineation group, or the correlation group.[133X
  
  
  [1X5.8 [33X[0;0YProjective group actions[133X[101X
  
  [33X[0;0YIn  this  section  we  give more detailed about the actions that are used in
  [5XFinInG[105X  for  projective  groups.  Consider  the projective space [22XPG(n,q)[122X. As
  described  in  Chapter  [14X4[114X, a point of [22XPG(n,q)[122X is represented by a row vector
  and  a  [22Xk[122X-dimensional  subspace of [22XPG(n,q)[122X is represented by a [22X(k+1) × (n+1)[122X
  matrix.[133X
  
  [33X[0;0YConsider  a point [22Xp[122X with row vector [22X(x_0, x_1, ..., x_n)[122X, and a collineation
  or  correlation  [22Xϕ[122X with underlying matrix [22XA[122X and field automorphism [22Xθ[122X. Define
  the  row vector [22X(y_0,y_1,...,y_n) = ((x_0, x_1, ..., x_n) A)^θ[122X . When [22Xϕ[122X is a
  collineation,  [22Xp^ϕ[122X is the point with underlying row vector [22X(y_0,y_1,...,y_n)[122X
  .  When  [22Xϕ[122X  is  a  correlation, [22Xp^ϕ[122X is a hyperplane of [22XPG(n,q)[122X with equation
  [22Xy_0X_0 + y_1X_1 + ... + y_nX_n[122X . The action of collineations or correlations
  on  points  determines  the  action  on  subspaces  of  arbitrary  dimension
  completely.[133X
  
  [1X5.8-1 OnProjSubspaces[101X
  
  [29X[2XOnProjSubspaces[102X( [3Xsubspace[103X, [3Xel[103X ) [32X function
  [6XReturns:[106X  [33X[0;10Ya subspace of a projective space[133X
  
  [33X[0;0YThis  is  a  global function that returns the action of an element [3Xel[103X of the
  collineation group on a subspace [3Xsubspace[103X of a projective space.[133X
  
  [33X[0;0Y[12XIMPORTANT:[112X  This function should only be used for objects [3Xel[103X in the category
  [10XIsProjGrpElWithFrob[110X! This is because this function does not check whether [3Xel[103X
  is  a  correlation or a collineation. So when [3Xel[103X is a object in the category
  [10XIsProjGrpElWithFrobWithPSIsom[110X,  and [3Xel[103X is a correlation (i.e. the associated
  PSIsom  is NOT the identity) then this action will not give the image of the
  [3Xsubspace[103X  under  the  correlation  [3Xel[103X. For the action of an object [3Xel[103X in the
  category  [10XIsProjGrpElWithFrobWithPSIsom[110X,  the action [2XOnProjSubspacesExtended[102X
  ([14X8.3-1[114X) should be used.[133X
  
  [4X[32X  Example  [32X[104X
    [4X[25Xgap>[125X [27Xps := ProjectiveSpace(4,27);[127X[104X
    [4X[28XProjectiveSpace(4, 27)[128X[104X
    [4X[25Xgap>[125X [27Xp := VectorSpaceToElement(ps,[ Z(3^3)^22,Z(3^3)^10,Z(3^3),Z(3^3)^3,Z(3^3)^3]);[127X[104X
    [4X[28X<a point in ProjectiveSpace(4, 27)>[128X[104X
    [4X[25Xgap>[125X [27Xps := ProjectiveSpace(3,27);[127X[104X
    [4X[28XProjectiveSpace(3, 27)[128X[104X
    [4X[25Xgap>[125X [27Xp := VectorSpaceToElement(ps,[ Z(3^3)^22,Z(3^3)^10,Z(3^3),Z(3^3)^3]);[127X[104X
    [4X[28X<a point in ProjectiveSpace(3, 27)>[128X[104X
    [4X[25Xgap>[125X [27XDisplay(p);[127X[104X
    [4X[28X[16nh][128X[104X
    [4X[25Xgap>[125X [27Xmat := [[ Z(3^3)^25,Z(3^3)^6,Z(3^3)^7,Z(3^3)^15], [127X[104X
    [4X[25X>[125X [27X  [Z(3^3)^9,Z(3)^0,Z(3^3)^10,Z(3^3)^18], [127X[104X
    [4X[25X>[125X [27X  [Z(3^3)^19,0*Z(3),Z(3),Z(3^3)^12], [127X[104X
    [4X[25X>[125X [27X  [Z(3^3)^4,Z(3^3),Z(3^3),Z(3^3)^22]];[127X[104X
    [4X[28X[ [ Z(3^3)^25, Z(3^3)^6, Z(3^3)^7, Z(3^3)^15 ], [128X[104X
    [4X[28X  [ Z(3^3)^9, Z(3)^0, Z(3^3)^10, Z(3^3)^18 ], [128X[104X
    [4X[28X  [ Z(3^3)^19, 0*Z(3), Z(3), Z(3^3)^12 ], [128X[104X
    [4X[28X  [ Z(3^3)^4, Z(3^3), Z(3^3), Z(3^3)^22 ] ][128X[104X
    [4X[25Xgap>[125X [27Xtheta := FrobeniusAutomorphism(GF(27));[127X[104X
    [4X[28XFrobeniusAutomorphism( GF(3^3) )[128X[104X
    [4X[25Xgap>[125X [27Xphi := CollineationOfProjectiveSpace(mat,theta,GF(27));[127X[104X
    [4X[28X< a collineation: <cmat 4x4 over GF(3,3)>, F^3>[128X[104X
    [4X[25Xgap>[125X [27Xr := OnProjSubspaces(p,phi);[127X[104X
    [4X[28X<a point in ProjectiveSpace(3, 27)>[128X[104X
    [4X[25Xgap>[125X [27XDisplay(r);[127X[104X
    [4X[28X[1..l][128X[104X
    [4X[25Xgap>[125X [27Xvect := [[Z(3^3)^9,Z(3^3)^5,Z(3^3)^19,Z(3^3)^17],[127X[104X
    [4X[25X>[125X [27X  [Z(3^3)^22,Z(3^3)^22,Z(3^3)^4,Z(3^3)^17],[127X[104X
    [4X[25X>[125X [27X  [Z(3^3)^8,0*Z(3),Z(3^3)^24,Z(3^3)^21]];[127X[104X
    [4X[28X[ [ Z(3^3)^9, Z(3^3)^5, Z(3^3)^19, Z(3^3)^17 ], [128X[104X
    [4X[28X  [ Z(3^3)^22, Z(3^3)^22, Z(3^3)^4, Z(3^3)^17 ], [128X[104X
    [4X[28X  [ Z(3^3)^8, 0*Z(3), Z(3^3)^24, Z(3^3)^21 ] ][128X[104X
    [4X[25Xgap>[125X [27Xs := VectorSpaceToElement(ps,vect);[127X[104X
    [4X[28X<a plane in ProjectiveSpace(3, 27)>[128X[104X
    [4X[25Xgap>[125X [27Xr := OnProjSubspaces(s,phi);[127X[104X
    [4X[28X<a plane in ProjectiveSpace(3, 27)>[128X[104X
    [4X[25Xgap>[125X [27XDisplay(r);[127X[104X
    [4X[28X[[1..c][128X[104X
    [4X[28X [.1.7][128X[104X
    [4X[28X [..17][128X[104X
    [4X[28X][128X[104X
    [4X[28X [128X[104X
  [4X[32X[104X
  
  [1X5.8-2 ActionOnAllProjPoints[101X
  
  [29X[2XActionOnAllProjPoints[102X( [3Xg[103X ) [32X function
  
  [33X[0;0Y[3Xg[103X  must be a projective group. This function returns the action homomorphism
  of   [3Xg[103X   acting   on  its  projective  points.  This  function  is  used  by
  NiceMonomorphism when the number of points is small enough for the action to
  be easy to calculate.[133X
  
  [1X5.8-3 OnProjSubspacesExtended[101X
  
  [29X[2XOnProjSubspacesExtended[102X( [3Xsubspace[103X, [3Xel[103X ) [32X function
  [6XReturns:[106X  [33X[0;10Ya subspace of a projective space[133X
  
  [33X[0;0YThis   should   be   used  for  the  action  of  elements  in  the  category
  [10XIsProjGrpElWithFrobWithPSIsom[110X  where  [3Xsubspace[103X is a subspace of a projective
  or  polar space and [3Xel[103X is an element of the correlation group of the ambient
  geometry  of [3Xsubspace[103X. This function returns the image of [3Xsubspace[103X under [3Xel[103X,
  which  is  a  subspace  of  the  same  dimension  as  [3Xsubspace[103X  if  [3Xel[103X  is a
  collineation  and  an  element  of  codimension  equal  to  the dimension of
  [3Xsubspace[103X if [3Xel[103X is a correlation.[133X
  
  [4X[32X  Example  [32X[104X
    [4X[25Xgap>[125X [27Xps := ProjectiveSpace(3,27);[127X[104X
    [4X[28XProjectiveSpace(3, 27)[128X[104X
    [4X[25Xgap>[125X [27Xmat := IdentityMat(4,GF(27));[127X[104X
    [4X[28X[ [ Z(3)^0, 0*Z(3), 0*Z(3), 0*Z(3) ], [ 0*Z(3), Z(3)^0, 0*Z(3), 0*Z(3) ], [128X[104X
    [4X[28X  [ 0*Z(3), 0*Z(3), Z(3)^0, 0*Z(3) ], [ 0*Z(3), 0*Z(3), 0*Z(3), Z(3)^0 ] ][128X[104X
    [4X[25Xgap>[125X [27Xdelta := StandardDualityOfProjectiveSpace(ps);[127X[104X
    [4X[28XStandardDuality( AllElementsOfIncidenceStructure( ProjectiveSpace([128X[104X
    [4X[28X3,GF(3^3)) ) )[128X[104X
    [4X[25Xgap>[125X [27Xfrob := FrobeniusAutomorphism(GF(27));[127X[104X
    [4X[28XFrobeniusAutomorphism( GF(3^3) )[128X[104X
    [4X[25Xgap>[125X [27Xphi := CorrelationOfProjectiveSpace(mat,frob,GF(27),delta);[127X[104X
    [4X[28X<projective element with Frobenius with projectivespace isomorphism: <cmat 4x[128X[104X
    [4X[28X4 over GF(3,3)>, F^[128X[104X
    [4X[28X3, StandardDuality( AllElementsOfIncidenceStructure( ProjectiveSpace([128X[104X
    [4X[28X3,GF(3^3)) ) ) >[128X[104X
    [4X[25Xgap>[125X [27Xp := Random(Points(ps));[127X[104X
    [4X[28X<a point in ProjectiveSpace(3, 27)>[128X[104X
    [4X[25Xgap>[125X [27XOnProjSubspacesExtended(p,phi);[127X[104X
    [4X[28X<a plane in ProjectiveSpace(3, 27)>[128X[104X
    [4X[25Xgap>[125X [27Xl := Random(Lines(ps));[127X[104X
    [4X[28X<a line in ProjectiveSpace(3, 27)>[128X[104X
    [4X[25Xgap>[125X [27XOnProjSubspacesExtended(p,phi);[127X[104X
    [4X[28X<a plane in ProjectiveSpace(3, 27)>[128X[104X
    [4X[25Xgap>[125X [27Xpsi := CorrelationOfProjectiveSpace(mat,frob^2,GF(27));[127X[104X
    [4X[28X<projective element with Frobenius with projectivespace isomorphism: <cmat 4x[128X[104X
    [4X[28X4 over GF(3,3)>, F^9, IdentityMapping( <All elements of ProjectiveSpace(3, [128X[104X
    [4X[28X27)> ) >[128X[104X
    [4X[25Xgap>[125X [27XOnProjSubspacesExtended(p,psi);[127X[104X
    [4X[28X<a point in ProjectiveSpace(3, 27)>[128X[104X
    [4X[25Xgap>[125X [27XOnProjSubspacesExtended(l,psi);[127X[104X
    [4X[28X<a line in ProjectiveSpace(3, 27)>[128X[104X
    [4X[28X [128X[104X
  [4X[32X[104X
  
  
  [1X5.9 [33X[0;0YSpecial subgroups of the projectivity group[133X[101X
  
  [33X[0;0YA  [13Xtransvection[113X  of  the vector space [22XV=V(n+1,F)[122X is a linear map [22Xτ[122X from [22XV[122X to
  itself with matrix [22XM[122X such that the rank of [22XM-I[122X equals 1 (where [22XI[122X denotes the
  [22X(n+1)  ×  (n+1)[122X  identity  matrix),  and  [22X(M-I)^2=0[122X  .  Different equivalent
  definitions  are  found  in  the literature, here we followed [Cam00a]. Note
  that  what  follows  is true for arbitrary fields [22XF[122X, but we will restrict to
  finite  fields.  Choosing  a  basis  [22Xe_1,...,e_n,e_n+1[122X such that [22Xe_1,...,e_n[122X
  generates the kernel of [22XM-I[122X, it follows that [22XM[122X equals[133X
  
  
  [24X[33X[0;6Ymatrix display not possible in text mode.[133X
  
  [124X
  
  [33X[0;0YIt  is  also  a  well  known  fact that all transvections generate the group
  [22XSL(n+1,q)[122X.  A  transvection gives rise to a projectivity of [22XPG(n,q)[122X, we call
  such an element an [13Xelation[113X, and it is a projectivity [22Xϕ[122X fixing a hyperplane [22XH[122X
  pointwise,  and such that there exists exactly one point [22Xp ∈ H[122X such that all
  hyperplanes through [22Xp[122X are stabilized. The hyperplane [22XH[122X is called the [13Xaxis[113X of
  [22Xϕ[122X,  and  the  point  [22Xp[122X  is  called  the [13Xcentre[113X of [22Xϕ[122X. As a transvection is an
  element  of [22XSL(n+1,q)[122X, an elation is an element of [22XPSL(n+1,q)[122X. An elation is
  completely  determind  by its axis and the image of one point (not contained
  in  the  axis).  The  group  of  elations  with  a given axis and centre, is
  isomorphic  with  the  additive  group  of  [22XGF(q)[122X. Finally, the group of all
  elations  with a given axis [22XH[122X, acts regularly on the points of [22XPG(n,q) ∖ H[122X ,
  and is isomorphic with the additive group of the vectorspace [22XV(n+1,q)[122X.[133X
  
  [1X5.9-1 ElationOfProjectiveSpace[101X
  
  [29X[2XElationOfProjectiveSpace[102X( [3Xsub[103X, [3Xpoint1[103X, [3Xpoint2[103X ) [32X operation
  [6XReturns:[106X  [33X[0;10Ythe unique elation with axis [3Xsub[103X mapping [3Xpoint1[103X on [3Xpoint2[103X[133X
  
  [33X[0;0YIt  is checked whether the two points do not belong to [3Xsub[103X. If [3Xpoint1[103X equals
  [3Xpoint2[103X, the identity mapping is returned.[133X
  
  [4X[32X  Example  [32X[104X
    [4X[25Xgap>[125X [27Xps := PG(3,9);[127X[104X
    [4X[28XProjectiveSpace(3, 9)[128X[104X
    [4X[25Xgap>[125X [27Xsub := VectorSpaceToElement(ps,[[1,0,1,0],[0,1,0,1],[1,2,3,0]]*Z(3)^0);[127X[104X
    [4X[28X<a plane in ProjectiveSpace(3, 9)>[128X[104X
    [4X[25Xgap>[125X [27Xp1 := VectorSpaceToElement(ps,[1,0,1,2]*Z(3)^0);[127X[104X
    [4X[28X<a point in ProjectiveSpace(3, 9)>[128X[104X
    [4X[25Xgap>[125X [27Xp2 := VectorSpaceToElement(ps,[1,2,0,2]*Z(3)^0);[127X[104X
    [4X[28X<a point in ProjectiveSpace(3, 9)>[128X[104X
    [4X[25Xgap>[125X [27Xphi := ElationOfProjectiveSpace(sub,p1,p2);[127X[104X
    [4X[28X< a collineation: <cmat 4x4 over GF(3,2)>, F^0>[128X[104X
    [4X[28X [128X[104X
  [4X[32X[104X
  
  [1X5.9-2 ProjectiveElationGroup[101X
  
  [29X[2XProjectiveElationGroup[102X( [3Xaxis[103X, [3Xcentre[103X ) [32X operation
  [29X[2XProjectiveElationGroup[102X( [3Xaxis[103X ) [32X operation
  [6XReturns:[106X  [33X[0;10YA group of elations[133X
  
  [33X[0;0YThe  first  version  returns the group of elations with with given axis [3Xaxis[103X
  and  centre [3Xcentre[103X. It is checked whether [3Xcentre[103X belongs to [3Xaxis[103X. The second
  version returns the group of elations with given axis [3Xaxis[103X.[133X
  
  [4X[32X  Example  [32X[104X
    [4X[25Xgap>[125X [27Xps := PG(2,27);[127X[104X
    [4X[28XProjectiveSpace(2, 27)[128X[104X
    [4X[25Xgap>[125X [27Xsub := VectorSpaceToElement(ps,[[1,0,1,],[0,1,0]]*Z(3)^0);[127X[104X
    [4X[28X<a line in ProjectiveSpace(2, 27)>[128X[104X
    [4X[25Xgap>[125X [27Xp := VectorSpaceToElement(ps,[1,1,1]*Z(3)^0);[127X[104X
    [4X[28X<a point in ProjectiveSpace(2, 27)>[128X[104X
    [4X[25Xgap>[125X [27Xg := ProjectiveElationGroup(sub,p);[127X[104X
    [4X[28X<projective collineation group with 3 generators>[128X[104X
    [4X[25Xgap>[125X [27XOrder(g);[127X[104X
    [4X[28X27[128X[104X
    [4X[25Xgap>[125X [27XStructureDescription(g);[127X[104X
    [4X[28X"C3 x C3 x C3"[128X[104X
    [4X[25Xgap>[125X [27Xps := PG(3,4);[127X[104X
    [4X[28XProjectiveSpace(3, 4)[128X[104X
    [4X[25Xgap>[125X [27Xsub := Random(Hyperplanes(ps));[127X[104X
    [4X[28X<a plane in ProjectiveSpace(3, 4)>[128X[104X
    [4X[25Xgap>[125X [27Xg := ProjectiveElationGroup(sub);[127X[104X
    [4X[28X<projective collineation group with 6 generators>[128X[104X
    [4X[25Xgap>[125X [27XOrder(g);[127X[104X
    [4X[28X64[128X[104X
    [4X[25Xgap>[125X [27XTransitivity(g,Difference(Points(ps),Points(sub)),OnProjSubspaces);[127X[104X
    [4X[28X1[128X[104X
    [4X[25Xgap>[125X [27XStructureDescription(g);[127X[104X
    [4X[28X"C2 x C2 x C2 x C2 x C2 x C2"[128X[104X
    [4X[28X [128X[104X
  [4X[32X[104X
  
  [33X[0;0YA  [13Xhomology[113X  of  the  projective  space  [22XPG(n,q)[122X  is a collineation fixing a
  hyperplane  [22XH[122X  pointwise  and  fixing one more point [22Xp not ∈ H[122X. It is easily
  seen  that after a suitable choice of a basis for the space, the matrix of a
  homology is a diagonal matrix with all its diagonal entries except one equal
  to  1.  We  call  the  hyperplane  the  [13Xaxis[113X and the point the [13Xcentre[113X of the
  homology. Homologies with a common axis and centre are a group isomorphic to
  the multiplicative group of the field [22XGF(q)[122X.[133X
  
  [1X5.9-3 HomologyOfProjectiveSpace[101X
  
  [29X[2XHomologyOfProjectiveSpace[102X( [3Xsub[103X, [3Xcentre[103X, [3Xpoint1[103X, [3Xpoint2[103X ) [32X operation
  [6XReturns:[106X  [33X[0;10Ythe  unique  homology  with  axis  [3Xsub[103X and centre [3Xcentre[103X that maps
            [3Xpoint1[103X on [3Xpoint2[103X[133X
  
  [33X[0;0YIt is checked whether the three points do not belong to [3Xsub[103X and whether they
  are collinear. If [3Xpoint1[103X equals [3Xpoint2[103X, the identity mapping is returned.[133X
  
  [4X[32X  Example  [32X[104X
    [4X[25Xgap>[125X [27Xps := PG(3,81);[127X[104X
    [4X[28XProjectiveSpace(3, 81)[128X[104X
    [4X[25Xgap>[125X [27Xsub := VectorSpaceToElement(ps,[[1,0,1,0],[0,1,0,1],[1,2,3,0]]*Z(3)^0);[127X[104X
    [4X[28X<a plane in ProjectiveSpace(3, 81)>[128X[104X
    [4X[25Xgap>[125X [27Xcentre := VectorSpaceToElement(ps,[0*Z(3),Z(3)^0,Z(3^4)^36,0*Z(3)]);[127X[104X
    [4X[28X<a point in ProjectiveSpace(3, 81)>[128X[104X
    [4X[25Xgap>[125X [27Xp1 := VectorSpaceToElement(ps,[0*Z(3),Z(3)^0,Z(3^4)^51,0*Z(3)]);[127X[104X
    [4X[28X<a point in ProjectiveSpace(3, 81)>[128X[104X
    [4X[25Xgap>[125X [27Xp2 := VectorSpaceToElement(ps,[0*Z(3),Z(3)^0,Z(3^4)^44,0*Z(3)]);[127X[104X
    [4X[28X<a point in ProjectiveSpace(3, 81)>[128X[104X
    [4X[25Xgap>[125X [27Xphi := HomologyOfProjectiveSpace(sub,centre,p1,p2);[127X[104X
    [4X[28X< a collineation: <cmat 4x4 over GF(3,4)>, F^0>[128X[104X
    [4X[28X [128X[104X
  [4X[32X[104X
  
  [1X5.9-4 ProjectiveHomologyGroup[101X
  
  [29X[2XProjectiveHomologyGroup[102X( [3Xaxis[103X, [3Xcentre[103X ) [32X operation
  [6XReturns:[106X  [33X[0;10Ythe  group  of  homologies  with  with  given axis [3Xaxis[103X and centre
            [3Xcentre[103X.[133X
  
  [33X[0;0YIt is checked whether [3Xcentre[103X does not belong to [3Xaxis[103X.[133X
  
  [4X[32X  Example  [32X[104X
    [4X[25Xgap>[125X [27Xps := PG(2,27);[127X[104X
    [4X[28XProjectiveSpace(2, 27)[128X[104X
    [4X[25Xgap>[125X [27Xsub := VectorSpaceToElement(ps,[[1,0,1,],[0,1,0]]*Z(3)^0);[127X[104X
    [4X[28X<a line in ProjectiveSpace(2, 27)>[128X[104X
    [4X[25Xgap>[125X [27Xp := VectorSpaceToElement(ps,[1,0,2]*Z(3)^0);[127X[104X
    [4X[28X<a point in ProjectiveSpace(2, 27)>[128X[104X
    [4X[25Xgap>[125X [27Xg := ProjectiveHomologyGroup(sub,p);[127X[104X
    [4X[28X<projective collineation group with 1 generators>[128X[104X
    [4X[25Xgap>[125X [27XOrder(g);[127X[104X
    [4X[28X26[128X[104X
    [4X[25Xgap>[125X [27XStructureDescription(g);[127X[104X
    [4X[28X"C26"[128X[104X
    [4X[28X [128X[104X
  [4X[32X[104X
  
  
  [1X5.10 [33X[0;0YNice Monomorphisms[133X[101X
  
  [33X[0;0YA   [13Xnice   monomorphism[113X   of  a  group  [22XG[122X  is  roughly  just  a  permutation
  representation  of  [22XG[122X  on  a  suitable action domain. An easy example is the
  permutation  action  of the full collineation group of a projective space on
  its  points.  [5XFinInG[105X  provides  (automatic)  functionality  to  compute nice
  monomorphisms.  Typically,  for  a  geometry  [22XS[122X  with  [22XG[122X a (subgroup of the)
  collineation  group of [22XS[122X, a nice monomorphism for [22XG[122X is a homomorphism from [22XG[122X
  to  the  permutation  action of [22XS[122X on a collection of elements of [22XS[122X. Thus, to
  obtain such a homomorphism, one has to enumerate the collection of elements.
  As nice monomorphisms for projective semilinear groups are often computed as
  a  byproduct  of  some  operations,  suddenly,  these  operations  get  time
  consuming  (when  executed  for  the  first time). In general, it is decided
  automatically  whether  a  nice  monomorphism  is computed or not. A typical
  example is the following.[133X
  
  [4X[32X  Example  [32X[104X
    [4X[25Xgap>[125X [27Xpg := PG(4,8);[127X[104X
    [4X[28XProjectiveSpace(4, 8)[128X[104X
    [4X[25Xgap>[125X [27Xgroup := CollineationGroup(pg);[127X[104X
    [4X[28XThe FinInG collineation group PGammaL(5,8)[128X[104X
    [4X[25Xgap>[125X [27XHasNiceMonomorphism(group);[127X[104X
    [4X[28Xfalse[128X[104X
    [4X[25Xgap>[125X [27XRandom(group);[127X[104X
    [4X[28X< a collineation: <cmat 5x5 over GF(2,3)>, F^4>[128X[104X
    [4X[25Xgap>[125X [27Xtime;[127X[104X
    [4X[28X1028[128X[104X
    [4X[25Xgap>[125X [27XHasNiceMonomorphism(group);[127X[104X
    [4X[28Xtrue[128X[104X
    [4X[25Xgap>[125X [27XRandom(group);[127X[104X
    [4X[28X< a collineation: <cmat 5x5 over GF(2,3)>, F^0>[128X[104X
    [4X[25Xgap>[125X [27Xtime;[127X[104X
    [4X[28X3[128X[104X
    [4X[28X[128X[104X
  [4X[32X[104X
  
  [1X5.10-1 NiceMonomorphism[101X
  
  [29X[2XNiceMonomorphism[102X( [3Xg[103X ) [32X operation
  [6XReturns:[106X  [33X[0;10Yan action, i.e. a group homomorphism[133X
  
  [33X[0;0Y[3Xg[103X  is  a  projective  semilinear  group.  If  [3Xg[103X  was  constructed as a group
  stabilizing  a  geometry,  the  action of [3Xg[103X on the points of the geometry is
  returned.[133X
  
  [4X[32X  Example  [32X[104X
    [4X[25Xgap>[125X [27Xg := HomographyGroup(PG(4,8));[127X[104X
    [4X[28XThe FinInG projectivity group PGL(5,8)[128X[104X
    [4X[25Xgap>[125X [27XNiceMonomorphism(g);[127X[104X
    [4X[28X<action isomorphism>[128X[104X
    [4X[25Xgap>[125X [27XImage(last);[127X[104X
    [4X[28X<permutation group of size 4638226007491010887680 with 2 generators>[128X[104X
    [4X[25Xgap>[125X [27Xg := CollineationGroup(PG(4,8));[127X[104X
    [4X[28XThe FinInG collineation group PGammaL(5,8)[128X[104X
    [4X[25Xgap>[125X [27XNiceMonomorphism(g);[127X[104X
    [4X[28X<action isomorphism>[128X[104X
    [4X[25Xgap>[125X [27XImage(last);[127X[104X
    [4X[28X<permutation group of size 13914678022473032663040 with 3 generators>[128X[104X
    [4X[28X [128X[104X
  [4X[32X[104X
  
  [1X5.10-2 NiceObject[101X
  
  [29X[2XNiceObject[102X( [3Xg[103X ) [32X operation
  [6XReturns:[106X  [33X[0;10Ya permutation group[133X
  
  [33X[0;0Y[3Xg[103X  is  a  projective  semilinear  group.  If  [3Xg[103X  was  constructed as a group
  stabilizing  a  geometry,  the permutation representation of [3Xg[103X acting on the
  points  of  the  geometry  is  returned.  This  is  actually equivalent with
  [11XImage(NiceMonomorphism(g))[111X.[133X
  
  [4X[32X  Example  [32X[104X
    [4X[25Xgap>[125X [27Xg := HomographyGroup(PG(4,8));[127X[104X
    [4X[28XThe FinInG projectivity group PGL(5,8)[128X[104X
    [4X[25Xgap>[125X [27XNiceObject(g);[127X[104X
    [4X[28X<permutation group of size 4638226007491010887680 with 2 generators>[128X[104X
    [4X[25Xgap>[125X [27Xg := CollineationGroup(PG(4,8));[127X[104X
    [4X[28XThe FinInG collineation group PGammaL(5,8)[128X[104X
    [4X[25Xgap>[125X [27XNiceObject(g);[127X[104X
    [4X[28X<permutation group of size 13914678022473032663040 with 3 generators>[128X[104X
    [4X[28X [128X[104X
  [4X[32X[104X
  
  [1X5.10-3 FINING[101X
  
  [29X[2XFINING[102X[32X global variable
  
  [33X[0;0YThe  global variable [10XFINING[110X stores a record with two components, [10XFINING.Fast[110X
  and  [10XFINING.LimitForCanComputeActionOnPoints[110X  By default, [10XFINING.Fast[110X is set
  to  [9Xtrue[109X.  Setting  [10XFINING.Fast[110X  to  [9Xfalse[109X causes the use of the generic [5XGAP[105X
  function      [11XActionHomomorphism[111X      instead      of      the     functions
  [11XNiceMonomorphismByDomain[111X and [11XNiceMonomorphismByOrbit[111X, which both rely on the
  packages [5XGenSS[105X and [5XOrb[105X.[133X
  
  [1X5.10-4 CanComputeActionOnPoints[101X
  
  [29X[2XCanComputeActionOnPoints[102X( [3Xg[103X ) [32X operation
  [6XReturns:[106X  [33X[0;10Ytrue or false[133X
  
  [33X[0;0Y[3Xg[103X must be a projective group. This function returns true if GAP can feasibly
  compute  the  action  of [3Xg[103X on the points of the projective space on which it
  acts.  This  function  can  be  used  (and  is, by other parts of FinInG) to
  determine  whether  it  is worth trying to compute the action. This function
  actually  checks  if  the  number  of points of the corresponding projective
  space  is  less  than  the constant [10XFINING.LimitForCanComputeActionOnPoints[110X,
  which  is by default set to [22X1000000[122X. The next example requires about 500M of
  memory.[133X
  
  [4X[32X  Example  [32X[104X
    [4X[25Xgap>[125X [27XNiceMonomorphism(CollineationGroup(ProjectiveSpace(7,8)));[127X[104X
    [4X[28XError, action on projective points not feasible to calculate called from[128X[104X
    [4X[28X<function "unknown">( <arguments> )[128X[104X
    [4X[28X called from read-eval loop at line 8 of *stdin*[128X[104X
    [4X[28Xyou can 'quit;' to quit to outer loop, or[128X[104X
    [4X[28Xyou can 'return;' to continue[128X[104X
    [4X[26Xbrk>[126X [27Xquit;[127X[104X
    [4X[25Xgap>[125X [27XFINING.LimitForCanComputeActionOnPoints := 3*10^6;[127X[104X
    [4X[28X3000000[128X[104X
    [4X[25Xgap>[125X [27XNiceMonomorphism(CollineationGroup(ProjectiveSpace(7,8)));[127X[104X
    [4X[28X<action isomorphism>[128X[104X
    [4X[25Xgap>[125X [27Xtime;[127X[104X
    [4X[28X39619[128X[104X
    [4X[28X [128X[104X
  [4X[32X[104X
  
  [1X5.10-5 NiceMonomorphismByDomain[101X
  
  [29X[2XNiceMonomorphismByDomain[102X( [3Xg[103X, [3Xdom[103X, [3Xop[103X ) [32X operation
  [6XReturns:[106X  [33X[0;10Yan action, i.e. a group homomorphism[133X
  
  [33X[0;0YThis  operaion is not intended for the user. It relies on [5XGenSS[105X and [5XOrb[105X. The
  argument [3Xg[103X is a projective group (in the category [10XIsProjectiveGroupWithFrob[110X)
  with  a  set  [10XSize[110X  attribute,  [3Xdom[103X  is  an  orbit of [3Xg[103X, and [3Xop[103X an operation
  suitable for [3Xx[103X and [3Xg[103X.[133X
  
  [1X5.10-6 NiceMonomorphismByOrbit[101X
  
  [29X[2XNiceMonomorphismByOrbit[102X( [3Xg[103X, [3Xdom[103X, [3Xop[103X, [3Xorblen[103X ) [32X operation
  [6XReturns:[106X  [33X[0;10Yan action, i.e. a group homomorphism[133X
  
  [33X[0;0YThis  operaion is not intended for the user. It relies on [5XGenSS[105X and [5XOrb[105X. The
  argument [3Xg[103X is a projective group (in the category [10XIsProjectiveGroupWithFrob[110X)
  with  a  set  [10XSize[110X attribute, [3Xdom[103X is an orbit of [3Xg[103X, [3Xop[103X an operation suitable
  for [3Xx[103X and [3Xg[103X, and [3Xorblen[103X is the length of the final orbit.[133X
  
