Goto Chapter: Top 1 2 3 4 5 6 7 8 9 10 11 12 13 Bib Ind
 Top of Book   Previous Chapter   Next Chapter 

6 Projective Groups
 6.1 Projectivities, collineations and correlations of projective spaces
  6.1-1 Categories for group elements

  6.1-2 Projectivity

  6.1-3 ProjectiveSemilinearMap

  6.1-4 StandardDualityOfProjectiveSpace

  6.1-5 CorrelationOfProjectiveSpace
 6.2 Basic operations for projectivities, collineations and correlations of projective spaces
  6.2-1 Representations for group elements

  6.2-2 UnderlyingMatrix

  6.2-3 BaseField

  6.2-4 FieldAutomorphism

  6.2-5 ProjectiveSpaceIsomorphism
 6.3 Collineation groups of projective or polar spaces
  6.3-1 CollineationGroup

  6.3-2 SimilarityGroup

  6.3-3 IsometryGroup

  6.3-4 SpecialIsometryGroup
 6.4 Basic operations for projective groups
  6.4-1 BaseField

  6.4-2 Dimension
 6.5 Collineation group as a subgroup of a correlation group
 6.6 Projective group actions
  6.6-1 OnProjSubspaces

  6.6-2 ActionOnAllProjPoints

  6.6-3 OnProjSubspacesReverseing
 6.7 Nice Monomorphisms
  6.7-1 CanComputeActionOnPoints

6 Projective Groups

A collineation 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 is induced by a semi-linear map of the underlying vector space. The group of all linear maps of a given n+1-dimensional vector space over a given field GF(q) is denoted by GL(n+1,q). This is a matrix group consisting of all non-singular n+1-dimensional square matrices over GF(q). The group of all semilinear maps of the vector space V(n,q) is obtained as the semidirect product of GL(n,q) and Aut(GF(q)), and is denoted by ΓL(n+1,q). It is clear that each semilinear map induces a collineation of PG(n,q). The Fundamental theorem of Projective Geometry also guarantees that the converse holds. Note also that ΓL(n+1,q) does not act faithfully on the projective points, and the kernel of its action is the group of scalar matrices, Sc(n+1,q). So the group PΓL(n+1,q) is defined as the group ΓL(n+1,q)/Sc(n+1,q), and PGL(n+1,q) = GL(n+1,q) / Sc(n+1,q). An element of the group PGL(n+1,q) is also called a projectivity of PG(n,q), and the group PGL(n+1,q) is called the projectivity group of PG(n,q). An element of PΓL(n+1,q) is called a collineation of PG(n,q) and the group PΓL(n+1,q) is the collineation group of PG(n,q).

Consider the projective space PG(n,q). As described in Chapter 5, a point of PG(n,q) is represented by a row vector. A k-dimensional subspace of PG(n,q) is represented by a generating set of k+1 points, and as such, by a (k+1) x (n+1) matrix. The convention in FinInG is that a collineation φ with underlying matrix A and field automorphism θ maps that projective point represented by row vector (x0,x1,...,xn) to the projective point represented by row vector (y0,y1,...,yn) = ((x0,x1,...,xn)A)θ . This convention determines completely the action of collineations on all elements of a projective space, and it follows that the product of two collineations φ12 with respective underlying matrices A1,A2 and respective underlying field automorphisms θ12 is the collineation with underlying matrix A1A2θ2-1 and underlying field automorphism θ1θ2.

A correlation of the projective space PG(n,q) is a collineation from PG(n,q) to its dual. A projectivity from PG(n,q) to its dual is sometimes called a reciprocity. The correlation group of PG(n,q) is isomorphic to the semidirect product of PΓL(n+1,q) with the cyclic group of order 2 generated by the standard duality of the projective space PG(n,q). The standard duality of the projective space PG(n,q) maps any point v with coordinates (x0,x1,...,xn) on the hyperplane with equation x0X0 + x1X1 + ... xnXn = 0. The standard duality acts as an automorphism on PΓL(n+1,q) 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 FinInG is that a correlation φ with underlying matrix A and field automorphism θ maps that projective point represented by row vector (x0,x1,...,xn) to the projective hyperplane represented by row vector (y0,y1,...,yn) = ((x0,x1,...,xn)A)θ.

The product of two correlations of PG(n,q) is a collineation, and the product of a collineation and a correlaton is a correlation. So the set of all collineations and correlations of PG(n,q) form a group, called the correlation group of PG(n,q). The convention determines completely the action of correlations on all elements of a projective space, and it follows that the product of two elements of the correlation group φ12 with respective underlying matrices A1,A2, respective underlying field automorphisms θ12, and respective underlying projective space isomorphisms (standard duality or identity map) δ12, is the element of the correlation group with underlying matrix A1(A2θ2-1) δ2, underlying field automorphism θ1θ2, and underlying projective space automorphism δ1δ2.

Action functions for collineations and correlations on the subspaces of a projective space are described in detail in Section 6.6

6.1 Projectivities, collineations and correlations of projective spaces

In FinInG, different categories are created for projectivities, collineations and correlations of a projective space.

6.1-1 Categories for group elements
> IsProjGrpEl( category )
> IsProjGrpElWithFrob( category )
> IsProjGrpElWithFrobWith( category )

IsProjGrpEl is a category in which elements of PGL(n+1,q) can be constructed as objects in this category. So projectivities in the mathematical sense can be constructed as objects in this category. IsProjGrpElWithFrob is a category in which elements of PΓL(n+1,q) can be constructed. So collineations in the mathematical sense (and thus also projectivities) can be constructed as objects in this category.

6.1-2 Projectivity
> Projectivity( mat, f )( operation )

Returns: a projectivity of a projective space

mat must be a non-singular matrix over the finite field f. Creates an element of a projectivity group. The returned object belongs to IsProjGrpEl.

gap> mat := [[1,0,0],[0,1,0],[0,0,1]]*Z(9)^0;
[ [ Z(3)^0, 0*Z(3), 0*Z(3) ], [ 0*Z(3), Z(3)^0, 0*Z(3) ], 
  [ 0*Z(3), 0*Z(3), Z(3)^0 ] ]
gap> Projectivity(mat,GF(9));
<projective element [ [ Z(3)^0, 0*Z(3), 0*Z(3) ], [ 0*Z(3), Z(3)^0, 0*Z(3) ], 
  [ 0*Z(3), 0*Z(3), Z(3)^0 ] ]>
 

6.1-3 ProjectiveSemilinearMap
> ProjectiveSemilinearMap( mat, frob, f )( operation )
> ProjectiveSemilinearMap( mat, f )( operation )
> CollineationOfProjectiveSpace( mat, frob, f )( operation )
> CollineationOfProjectiveSpace( mat, f )( operation )

mat is a nonsingular matrix, frob is a field automorphism, and f is a field. This function (and its synonym) returns the collineation with matrix mat and automorphism frob. If frob is not specified then the companion automorphism of the resulting group element will be the identity map. The returned object belongs to the category IsProjGrpElWithFrob

gap> mat:=
> [[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],
> [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 ]];
[ [ 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 ], 
  [ 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 ] ]
gap> frob := FrobeniusAutomorphism(GF(8));
FrobeniusAutomorphism( GF(2^3) )
gap> phi := ProjectiveSemilinearMap(mat,frob^2,GF(8));
<projective semilinear element: [ [ 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 ], 
  [ 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 ] ], F^4>
gap> mat2 := [[Z(2^8)^31,Z(2^8)^182,Z(2^8)^49],[Z(2^8)^224,Z(2^8)^25,Z(2^8)^45], 
> [Z(2^8)^128,Z(2^8)^165,Z(2^8)^217]];
[ [ Z(2^8)^31, Z(2^8)^182, Z(2^8)^49 ], [ Z(2^8)^224, Z(2^8)^25, Z(2^8)^45 ], 
  [ Z(2^8)^128, Z(2^8)^165, Z(2^8)^217 ] ]
gap> psi := CollineationOfProjectiveSpace(mat2,GF(512));
<projective semilinear element: [ [ Z(2^8)^31, Z(2^8)^182, Z(2^8)^49 ], 
  [ Z(2^8)^224, Z(2^8)^25, Z(2^8)^45 ], 
  [ Z(2^8)^128, Z(2^8)^165, Z(2^8)^217 ] ], F^0>
 

6.1-4 StandardDualityOfProjectiveSpace
> StandardDualityOfProjectiveSpace( ps )( operation )

This operation returns the standard duality of the projective space ps

gap> ps := ProjectiveSpace(4,5);
PG(4, 5)
gap> delta := StandardDualityOfProjectiveSpace(ps);
StandardDuality( Elements( ProjectiveSpace(4,GF(5)) ) )
gap> delta^2;
IdentityMapping( <Elements of PG(4, 5)> )
gap> p := VectorSpaceToElement(ps,[1,2,3,0,1]*Z(5)^0);
<a point in PG(4, 5)>
gap> h := p^delta;
<a solid in PG(4, 5)>
gap> ElementToVectorSpace(h);
[ [ Z(5)^0, 0*Z(5), 0*Z(5), 0*Z(5), Z(5)^2 ], 
  [ 0*Z(5), Z(5)^0, 0*Z(5), 0*Z(5), Z(5)^3 ], 
  [ 0*Z(5), 0*Z(5), Z(5)^0, 0*Z(5), Z(5) ], 
  [ 0*Z(5), 0*Z(5), 0*Z(5), Z(5)^0, 0*Z(5) ] ]
 

6.1-5 CorrelationOfProjectiveSpace
> CorrelationOfProjectiveSpace( mat, f )( operation )
> CorrelationOfProjectiveSpace( mat, frob, f )( operation )
> CorrelationOfProjectiveSpace( mat, f, delta )( operation )
> CorrelationOfProjectiveSpace( mat, frob, f, delta )( operation )

mat is a nonsingular matrix, frob is a field automorphism, f is a field, and delta is the standard duality of the projective space PG(n,q). This function returns the correlation with matrix mat, automorphism frob, and standard duality delta. If frob is not specified then the companion automorphism of the resulting group element will be the identity map. If the user specifies delta, then it must be the standard duality of a projective space, created using StandardDualityOfProjectiveSpace (6.1-4). If not specified, then the companion vector space isomorphism is the identity mapping. The returned object belongs to the category IsProjGrpElWithFrobWithPSIsom

gap> mat := [[1,0,0],[3,0,2],[0,5,4]]*Z(7^3);
[ [ Z(7^3), 0*Z(7), 0*Z(7) ], [ Z(7^3)^58, 0*Z(7), Z(7^3)^115 ], 
  [ 0*Z(7), Z(7^3)^286, Z(7^3)^229 ] ]
gap> phi1 := CorrelationOfProjectiveSpace(mat,GF(7^3));
<projective element with Frobenius with projectivespace isomorphism
[ [ Z(7^3), 0*Z(7), 0*Z(7) ], [ Z(7^3)^58, 0*Z(7), Z(7^3)^115 ], 
  [ 0*Z(7), Z(7^3)^286, Z(7^3)^229 ] ], F^0, IdentityMapping( <Elements of PG(
3, 343)> ) >
gap> frob := FrobeniusAutomorphism(GF(7^3));
FrobeniusAutomorphism( GF(7^3) )
gap> phi2 := CorrelationOfProjectiveSpace(mat,frob,GF(7^3));
<projective element with Frobenius with projectivespace isomorphism
[ [ Z(7^3), 0*Z(7), 0*Z(7) ], [ Z(7^3)^58, 0*Z(7), Z(7^3)^115 ], 
  [ 0*Z(7), Z(7^3)^286, Z(7^3)^229 ] ], F^7, IdentityMapping( <Elements of PG(
3, 343)> ) >
gap> delta := StandardDualityOfProjectiveSpace(ProjectiveSpace(2,GF(7^3)));
StandardDuality( ElementsOfIncidenceStructure( ProjectiveSpace(2,GF(7^3)) ) )
gap> phi3 := CorrelationOfProjectiveSpace(mat,GF(7^3),delta);
<projective element with Frobenius with projectivespace isomorphism
[ [ Z(7^3), 0*Z(7), 0*Z(7) ], [ Z(7^3)^58, 0*Z(7), Z(7^3)^115 ], 
  [ 0*Z(7), Z(7^3)^286, Z(7^3)^229 ] 
 ], F^0, StandardDuality( ElementsOfIncidenceStructure( ProjectiveSpace(2,GF(
7^3)) ) ) >
gap> phi4 := CorrelationOfProjectiveSpace(mat,frob,GF(7^3),delta);
<projective element with Frobenius with projectivespace isomorphism
[ [ Z(7^3), 0*Z(7), 0*Z(7) ], [ Z(7^3)^58, 0*Z(7), Z(7^3)^115 ], 
  [ 0*Z(7), Z(7^3)^286, Z(7^3)^229 ] ], F^
7, StandardDuality( ElementsOfIncidenceStructure( ProjectiveSpace(2,GF(7^
3)) ) ) >
 

6.2 Basic operations for projectivities, collineations and correlations of projective spaces

6.2-1 Representations for group elements
> IsProjGrpElRep( representation )
> IsProjGrpElWithFrobRep( representation )
> IsProjGrpElWithFrobWithPSIsom( representation )

As we have seen, in FinInG, a projectivity is described by a matrix, a collineation of a projective space by a matrix and a field automorphism, and a correlation of a projective space by a matrix, a field automorphism and a isomorphism of the projective space that is either the standard duality or the identity mapping. Also the basefield is stored as a component in the representation.

6.2-2 UnderlyingMatrix
> UnderlyingMatrix( g )( operation )

g is a projectivity, collineation or correlation of a projective space. This function returns the matrix that was used to construct g.

gap> g:=CollineationGroup( ProjectiveSpace(3,3));
PGL(4,3)
gap> x:=Random(g);;
gap> UnderlyingMatrix(x);
[ [ 0*Z(3), Z(3), Z(3), Z(3)^0 ], [ Z(3)^0, 0*Z(3), Z(3)^0, Z(3)^0 ], 
  [ 0*Z(3), Z(3)^0, Z(3), Z(3) ], [ Z(3)^0, Z(3)^0, 0*Z(3), Z(3)^0 ] ]
 

6.2-3 BaseField
> BaseField( g )( operation )

Returns: a field

g is a projectivity, collineation or correlation of a projective space. This function returns the matrix that was used to construct g.

gap> mat := [[0,1,0],[1,0,0],[0,0,2]]*Z(3)^0;
[ [ 0*Z(3), Z(3)^0, 0*Z(3) ], [ Z(3)^0, 0*Z(3), 0*Z(3) ], 
  [ 0*Z(3), 0*Z(3), Z(3) ] ]
gap> g := Projectivity(mat,GF(3^6));
<projective element [ [ 0*Z(3), Z(3)^0, 0*Z(3) ], [ Z(3)^0, 0*Z(3), 0*Z(3) ], 
  [ 0*Z(3), 0*Z(3), Z(3) ] ]>
gap> BaseField(g);
GF(3^6)
 

6.2-4 FieldAutomorphism
> FieldAutomorphism( g )( operation )

g is a collineation of a projective space or a correlation of a projective space. This function returns the companion field automorphism which defines g. 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.

gap> g:=CollineationGroup( ProjectiveSpace(3,9));
PGammaL(4,9)
gap> x:=Random(g);;
gap> FieldAutomorphism(x);
IdentityMapping( GF(3^2) )
 

6.2-5 ProjectiveSpaceIsomorphism
> ProjectiveSpaceIsomorphism( g )( operation )

g is a correlation of a projective space. This function returns the companion isomorphism of the projective space which defines g.

gap> mat := [[1,0,0],[3,0,2],[0,5,4]]*Z(7^3);
[ [ Z(7^3), 0*Z(7), 0*Z(7) ], [ Z(7^3)^58, 0*Z(7), Z(7^3)^115 ], 
  [ 0*Z(7), Z(7^3)^286, Z(7^3)^229 ] ]
gap> frob := FrobeniusAutomorphism(GF(7^3));
FrobeniusAutomorphism( GF(7^3) )
gap> delta := StandardDualityOfProjectiveSpace(ProjectiveSpace(2,GF(7^3)));
StandardDuality( AllElementsOfIncidenceStructure( ProjectiveSpace(2,GF(7^
3)) ) )
gap> phi := CorrelationOfProjectiveSpace(mat,frob,GF(7^3),delta);
<projective element with Frobenius with projectivespace isomorphism
[ [ Z(7^3), 0*Z(7), 0*Z(7) ], [ Z(7^3)^58, 0*Z(7), Z(7^3)^115 ], 
  [ 0*Z(7), Z(7^3)^286, Z(7^3)^229 ] ], F^
7, StandardDuality( AllElementsOfIncidenceStructure( ProjectiveSpace(2,GF(7^
3)) ) ) >
gap> ProjectiveSpaceIsomorphism(phi);
StandardDuality( AllElementsOfIncidenceStructure( ProjectiveSpace(2,GF(7^
3)) ) )
 

6.3 Collineation groups of projective or polar spaces

6.3-1 CollineationGroup
> CollineationGroup( geom )( operation )

Returns: a group of collineations of geom

geom must be an incidence geometry. If geom is a projective space, PG(n,q), then this operation returns the full group of collineations ΓL(n+1,q) of the projective space. If geom is a polar space, then this operation returns the full group of semi-similarities of geom.

gap> p1 := ProjectiveSpace(3,3);
PG(3, 3)
gap> CollineationGroup(p1);
PGL(4,3)
gap> p2 := ProjectiveSpace(4,81);
PG(4, 81)
gap> CollineationGroup(p2);
PGammaL(5,81)
gap> p3 := EllipticQuadric(3,16);
Q-(3, 16)
gap> CollineationGroup(p3);
#I  Computing nice monomorphism...
PGammaO-(4,16)
gap> p4 := SymplecticSpace(3,9);
W(3, 9)
gap> CollineationGroup(p4);
#I  Computing nice monomorphism...
PGammaSp(4,9)
 

6.3-2 SimilarityGroup
> SimilarityGroup( geom )( operation )

Returns: a group of collineations of geom

geom must be a polar space. This operation returns the full group of similarities of geom (those collineations which preserve the form up to a scalar).

gap> w := SymplecticSpace(5,3);
W(5, 3)
gap> SimilarityGroup(w);
#I  Computing nice monomorphism...
PGSp(6,3)
 

6.3-3 IsometryGroup
> IsometryGroup( geom )( operation )

Returns: a group of collineations of geom

geom must be a polar space. This operation returns the full group of isometries of geom (those collineations which preserve the form).

gap> w := SymplecticSpace(3,8);
W(3, 8)
gap> IsometryGroup(w);
#I  Computing nice monomorphism...
PSp(4,8)
 

6.3-4 SpecialIsometryGroup
> SpecialIsometryGroup( geom )( operation )

Returns: a group of collineations of geom

geom must be a polar space. This operation returns those isometries of geom which have unit determinant.

gap> hq := HyperbolicQuadric(5,3);
Q+(5, 3)
gap> SpecialIsometryGroup(hq);
#I  Computing nice monomorphism...
PSO(1,6,3)
 

6.4 Basic operations for projective groups

6.4-1 BaseField
> BaseField( g )( operation )

Returns: a field

g must be a projective group. This function finds the base field of the vector space on which the group acts.

6.4-2 Dimension
> Dimension( g )( operation )

Returns: a number

g must be a projective group. This function finds the dimension of the vector space on which the group acts.

6.5 Collineation group as a subgroup of a correlation group

In FinInG 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.

gap> x := Random(CollineationGroup(PG(3,4)));
<projective semilinear element: [ [ Z(2)^0, Z(2)^0, 0*Z(2), Z(2^2) ], 
  [ 0*Z(2), Z(2^2)^2, Z(2)^0, Z(2)^0 ], 
  [ Z(2^2)^2, 0*Z(2), Z(2^2)^2, Z(2^2)^2 ], 
  [ 0*Z(2), 0*Z(2), Z(2^2)^2, Z(2^2) ] ], F^2>
gap> y := Random(CorrelationGroup(PG(3,4)));
<projective element with Frobenius with projectivespace isomorphism
[ [ 0*Z(2), Z(2^2), 0*Z(2), Z(2^2)^2 ], [ Z(2)^0, Z(2^2)^2, Z(2)^0, 0*Z(2) ], 
  [ Z(2)^0, Z(2^2), Z(2^2)^2, 0*Z(2) ], [ Z(2^2), Z(2)^0, 0*Z(2), Z(2)^0 ] 
 ], F^0, StandardDuality( AllElementsOfIncidenceStructure( ProjectiveSpace(
3,GF(2^2)) ) ) >
gap> x*y;
<projective element with Frobenius with projectivespace isomorphism
[ [ 0*Z(2), Z(2^2)^2, Z(2)^0, 0*Z(2) ], [ Z(2)^0, Z(2^2)^2, Z(2)^0, Z(2)^0 ], 
  [ Z(2)^0, Z(2^2)^2, Z(2)^0, Z(2^2) ], [ Z(2^2), 0*Z(2), Z(2)^0, Z(2^2) ] 
 ], F^2, StandardDuality( AllElementsOfIncidenceStructure( ProjectiveSpace(
3,GF(2^2)) ) ) >
 

6.6 Projective group actions

Consider the projective space PG(n,q). As described in Chapter 5, a point of PG(n,q) is represented by a row vector and a k-dimensional subspace of PG(n,q) is represented by a (k+1) x (n+1) matrix.

Consider a point p with row vector (x0,x1,...,xn), and a collineation or correlation φ with underlying matrix A and field automorphism θ. Define the row vector (y0,y1,...,yn) = ((x0,x1,...,xn)A)θ . When φ is a collineation, then pφ is the point with underlying row vector (y0,y1,...,yn), when φ is a correlation then pφ is a hyperplane of PG(n,q) with equation y0X0 + y1X1 + ... ynXn = 0. The action of collineations or correlations on points determines the action on subspaces of arbitrary dimension completely.

6.6-1 OnProjSubspaces
> OnProjSubspaces( subspace, el )( function )

subspace is a subspace of a projective or polar space. el must be a projective semilinear map. This function return the image of subspace under el, which is a subspace of the same dimension.

gap> ps := ProjectiveSpace(4,27);
PG(4, 27)
gap> p := VectorSpaceToElement(ps,[ Z(3^3)^22,Z(3^3)^10,Z(3^3),Z(3^3)^3,Z(3^3)^3]);
<a point in PG(4, 27)>
gap> Display(p);
[ Z(3)^0, Z(3^3)^14, Z(3^3)^5, Z(3^3)^7, Z(3^3)^7 ]
gap> mat := [[ Z(3^3)^25,Z(3^3)^6,Z(3^3)^7,Z(3^3)^15], 
>   [Z(3^3)^9,Z(3)^0,Z(3^3)^10,Z(3^3)^18], 
>   [Z(3^3)^19,0*Z(3),Z(3),Z(3^3)^12], 
>   [Z(3^3)^4,Z(3^3),Z(3^3),Z(3^3)^22]];
[ [ Z(3^3)^25, Z(3^3)^6, Z(3^3)^7, Z(3^3)^15 ], 
  [ Z(3^3)^9, Z(3)^0, Z(3^3)^10, Z(3^3)^18 ], 
  [ Z(3^3)^19, 0*Z(3), Z(3), Z(3^3)^12 ], 
  [ Z(3^3)^4, Z(3^3), Z(3^3), Z(3^3)^22 ] ]
gap> theta := FrobeniusAutomorphism(GF(27));
FrobeniusAutomorphism( GF(3^3) )
gap> phi := CollineationOfProjectiveSpace(mat,theta,GF(27));
<projective element with Frobenius: 
[ [ Z(3^3)^25, Z(3^3)^6, Z(3^3)^7, Z(3^3)^15 ], 
  [ Z(3^3)^9, Z(3)^0, Z(3^3)^10, Z(3^3)^18 ], 
  [ Z(3^3)^19, 0*Z(3), Z(3), Z(3^3)^12 ], 
  [ Z(3^3)^4, Z(3^3), Z(3^3), Z(3^3)^22 ] ], F^3>
gap> r := OnProjSubspaces(p,phi);
<a point in PG(4, 27)>
gap> Display(r);
[ Z(3)^0, 0*Z(3), 0*Z(3), Z(3^3)^17 ]
gap> vect := [[Z(3^3)^9,Z(3^3)^5,Z(3^3)^19,Z(3^3)^21,Z(3^3)^17],
>   [Z(3^3)^22,Z(3^3)^22,Z(3^3)^4,Z(3^3)^16,Z(3^3)^17],
>   [Z(3^3)^8,0*Z(3),Z(3^3)^24,Z(3),Z(3^3)^21]];
[ [ Z(3^3)^9, Z(3^3)^5, Z(3^3)^19, Z(3^3)^21, Z(3^3)^17 ], 
  [ Z(3^3)^22, Z(3^3)^22, Z(3^3)^4, Z(3^3)^16, Z(3^3)^17 ], 
  [ Z(3^3)^8, 0*Z(3), Z(3^3)^24, Z(3), Z(3^3)^21 ] ]
gap> s := VectorSpaceToElement(ps,vect);
<a plane in PG(4, 27)>
gap> r := OnProjSubspaces(s,phi);
<a plane in PG(4, 27)>
gap> Display(r);
z = Z(27)
    1    .    .  z^3
    .    1    . z^22
    .    .    1  z^3
 

6.6-2 ActionOnAllProjPoints
> ActionOnAllProjPoints( g )( function )

g must be a projective group. This function returns the action homomorphism of g 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.

6.6-3 OnProjSubspacesReverseing
> OnProjSubspacesReverseing( subspace, el )( function )

subspace is a subspace of a projective or polar space. el must be an element of the correlation group of the ambient geometry of subspace. This function return the image of subspace under el, which is a subspace of the same dimension if el is a collineation.

gap> ps := ProjectiveSpace(3,27);
PG(3, 27)
gap> mat := IdentityMat(4,GF(27));
[ [ Z(3)^0, 0*Z(3), 0*Z(3), 0*Z(3) ], [ 0*Z(3), Z(3)^0, 0*Z(3), 0*Z(3) ], 
  [ 0*Z(3), 0*Z(3), Z(3)^0, 0*Z(3) ], [ 0*Z(3), 0*Z(3), 0*Z(3), Z(3)^0 ] ]
gap> delta := StandardDualityOfProjectiveSpace(ps);
StandardDuality( Elements( ProjectiveSpace(3,GF(3^3)) ) )
gap> frob := FrobeniusAutomorphism(GF(27));
FrobeniusAutomorphism( GF(3^3) )
gap> phi := CorrelationOfProjectiveSpace(mat,frob,GF(27),delta);
<projective element with Frobenius with projectivespace isomorphism
[ [ Z(3)^0, 0*Z(3), 0*Z(3), 0*Z(3) ], [ 0*Z(3), Z(3)^0, 0*Z(3), 0*Z(3) ], 
  [ 0*Z(3), 0*Z(3), Z(3)^0, 0*Z(3) ], [ 0*Z(3), 0*Z(3), 0*Z(3), Z(3)^0 ] ], F^
3, StandardDuality( Elements( ProjectiveSpace(3,GF(3^3)) ) ) >
gap> p := Random(Points(ps));
<a point in PG(3, 27)>
gap> OnProjSubspacesReversing(p,phi);
<a plane in PG(3, 27)>
gap> l := Random(Lines(ps));
<a line in PG(3, 27)>
gap> OnProjSubspacesReversing(p,phi);
<a plane in PG(3, 27)>
gap> psi := CorrelationOfProjectiveSpace(mat,frob^2,GF(27));
<projective element with Frobenius with projectivespace isomorphism
[ [ Z(3)^0, 0*Z(3), 0*Z(3), 0*Z(3) ], [ 0*Z(3), Z(3)^0, 0*Z(3), 0*Z(3) ], 
  [ 0*Z(3), 0*Z(3), Z(3)^0, 0*Z(3) ], [ 0*Z(3), 0*Z(3), 0*Z(3), Z(3)^0 ] ], F^
9, IdentityMapping( <Elements of PG(4, 27)> ) >
gap> OnProjSubspacesReversing(p,psi);
<a point in PG(3, 27)>
gap> OnProjSubspacesReversing(l,psi);
<a line in PG(3, 27)>
 

6.7 Nice Monomorphisms

6.7-1 CanComputeActionOnPoints
> CanComputeActionOnPoints( g )( operation )

Returns: true or false

g must be a projective group. This function returns true if GAP can feasibly compute the action of g 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 DESARGUES.LimitForCanComputeActionOnPoints.

gap> NiceMonomorphism(CollineationGroup(ProjectiveSpace(6,7)));
Error, action on projective points not feasible to calculate
 ...
gap> DESARGUES.LimitForCanComputeActionOnPoints := 500000;
500000
gap> NiceMonomorphism(CollineationGroup(ProjectiveSpace(6,7)));
<action isomorphism>
 Top of Book   Previous Chapter   Next Chapter 
Goto Chapter: Top 1 2 3 4 5 6 7 8 9 10 11 12 13 Bib Ind

generated by GAPDoc2HTML