Goto Chapter: Top 1 2 3 4 5 6 7 8 9 10 11 12 13 14 A B C Bib Ind
 [Top of Book]  [Contents]   [Previous Chapter]   [Next Chapter] 

6 Polarities of Projective Spaces
 6.1 Creating polarities of projective spaces
 6.2 Operations, attributes and properties for polarities of projective spaces
 6.3 Polarities, absolute points, totally isotropic elements and finite classical polar spaces
 6.4 Commuting polarities

6 Polarities of Projective Spaces

A polarity of a incidence structure is an incidence reversing, bijective, and involutory map on the elements of the incidence structure. It is well known that every polarity of a projective space is just an involutory correlation of the projective space. The construction of correlations of a projective space is described in Chapter 5. In this chapter we describe methods and operations dealing with the construction and use of polarities of projective spaces in FinInG.

6.1 Creating polarities of projective spaces

Since polarities of a projective space necessarily have an involutory field automorphism as companion automorphism and the standard duality of the projective space as the companion projective space isomorphism, a polarity of a projective space is determined completely by a suitable matrix A. Every polarity of a projective space PG(n,q) is listed in the following table, including the conditions on the matrix A.

Table: polarities of a projective space
q odd q even
hermitian Aθ = AT Aθ = AT
symplectic AT = - A AT = A, all aii=0
orthogonal AT = A
pseudo AT = A, not all aii=0

A hermitian polarity of the projective space PG(n,q) exists if and only if the field GF(q) admits an involutory field automorphism.

It is well known that there is a correspondence between polarities of projective spaces and non-degenerate sesquilinear forms on the underlying vector space. Consider a sesquilinear form f on the vector space V(n+1,q). Then f induces a map on the elements of PG(n,q) as follows: every element with underlying subspace α is mapped to the element with underlying subspace α, i.e. the subspace of V(n+1,q) orthogonal to α with respect to the form f. It is clear that this induced map is a polarity of PG(n,q). Also the converse is true, with any polarity of PG(n,q) corresponds a sesquilinear form on V(n+1,q). The above classification of polarities of PG(n,q) follows from the classification of sesquilinear forms on V(n+1,q). For more information, we refer to [HT91] and [KL90]. We mention that the implementation of the action of correlations on projective points (see 5.8) guarantees that a sesquilinear form with matrix M and field automorphism θ corresponds to a polarity with matrix M and field automorphism θ and vice versa.

In FinInG, polarities of projective spaces are always objects in the category IsPolarityOfProjectiveSpace, which is a subcategory of the category IsProjGrpElWithFrobWithPSIsom.

6.1-1 PolarityOfProjectiveSpace
‣ PolarityOfProjectiveSpace( mat, f )( operation )

Returns: a polarity of a projective space

The underlying correlation of the projective space is constructed using matrix mat, field f, the identity mapping as field automorphism and the standard duality of the projective space. It is checked whether the matrix mat satisfies the necessary conditions to induce a polarity.

gap> mat := [[0,1,0],[1,0,0],[0,0,1]]*Z(169)^0;
[ [ 0*Z(13), Z(13)^0, 0*Z(13) ], [ Z(13)^0, 0*Z(13), 0*Z(13) ], 
  [ 0*Z(13), 0*Z(13), Z(13)^0 ] ]
gap> phi := PolarityOfProjectiveSpace(mat,GF(169));
<polarity of PG(2, GF(13^2)) >
 

6.1-2 PolarityOfProjectiveSpace
‣ PolarityOfProjectiveSpace( mat, frob, f )( operation )
‣ HermitianPolarityOfProjectiveSpace( mat, f )( operation )

Returns: a polarity of a projective space

The underlying correlation of the projective space is constructed using matrix mat, field automorphism frob, f and the standard duality of the projective space. It is checked whether the mat satisfies the necessary conditions to induce a polarity, and whether frob is a non-trivial involutory field automorphism. The second operation only needs the arguments mat and f to construct a hermitian polarity of a projective space, provided the field f allows an involutory field automorphism and mat satisfies the necessary conditions. The latter is checked by constructing the underlying hermitian form.

gap> mat := [[Z(11)^0,0*Z(11),0*Z(11)],[0*Z(11),0*Z(11),Z(11)],
>     [0*Z(11),Z(11),0*Z(11)]];
[ [ Z(11)^0, 0*Z(11), 0*Z(11) ], [ 0*Z(11), 0*Z(11), Z(11) ], 
  [ 0*Z(11), Z(11), 0*Z(11) ] ]
gap> frob := FrobeniusAutomorphism(GF(121));
FrobeniusAutomorphism( GF(11^2) )
gap> phi := PolarityOfProjectiveSpace(mat,frob,GF(121));
<polarity of PG(2, GF(11^2)) >
gap> psi := HermitianPolarityOfProjectiveSpace(mat,GF(121));
<polarity of PG(2, GF(11^2)) >
gap> phi = psi;
true
 

6.1-3 PolarityOfProjectiveSpace
‣ PolarityOfProjectiveSpace( form )( operation )

Returns: a polarity of a projective space

The polarity of the projective space is constructed using a non-degenerate sesquilinear form form. It is checked whether the given form is non-degenerate.

gap> mat := [[0,1,0,0],[1,0,0,0],[0,0,0,1],[0,0,1,0]]*Z(16)^0;
[ [ 0*Z(2), Z(2)^0, 0*Z(2), 0*Z(2) ], [ Z(2)^0, 0*Z(2), 0*Z(2), 0*Z(2) ], 
  [ 0*Z(2), 0*Z(2), 0*Z(2), Z(2)^0 ], [ 0*Z(2), 0*Z(2), Z(2)^0, 0*Z(2) ] ]
gap> form := BilinearFormByMatrix(mat,GF(16));
< bilinear form >
gap> phi := PolarityOfProjectiveSpace(form);
<polarity of PG(3, GF(2^4)) >
 

6.1-4 PolarityOfProjectiveSpace
‣ PolarityOfProjectiveSpace( ps )( operation )

Returns: a polarity of a projective space

The polarity of the projective space is constructed using the non-degenerate sesquilinear form that defines the polar space ps. When ps is a parabolic quadric in even characteristic, no polarity of the ambient projective space can be associated to ps, and an error message is returned.

gap> ps := HermitianPolarSpace(4,64);
H(4, 8^2)
gap> phi := PolarityOfProjectiveSpace(ps);
<polarity of PG(4, GF(2^6)) >
gap> ps := ParabolicQuadric(6,8);
Q(6, 8)
gap> PolarityOfProjectiveSpace(ps);
Error, no polarity of the ambient projective space can be associated to <ps> called from
<function "unknown">( <arguments> )
 called from read-eval loop at line 11 of *stdin*
you can 'quit;' to quit to outer loop, or
you can 'return;' to continue
brk> quit;
 

6.2 Operations, attributes and properties for polarities of projective spaces

6.2-1 SesquilinearForm
‣ SesquilinearForm( phi )( attribute )

Returns: a sesquilinear form

The sesquilinear form corresponding to the given polarity phi is returned.

gap> mat := [[0,-2,0,1],[2,0,3,0],[0,-3,0,1],[-1,0,-1,0]]*Z(19)^0;
[ [ 0*Z(19), Z(19)^10, 0*Z(19), Z(19)^0 ], 
  [ Z(19), 0*Z(19), Z(19)^13, 0*Z(19) ], 
  [ 0*Z(19), Z(19)^4, 0*Z(19), Z(19)^0 ], 
  [ Z(19)^9, 0*Z(19), Z(19)^9, 0*Z(19) ] ]
gap> phi := PolarityOfProjectiveSpace(mat,GF(19));
<polarity of PG(3, GF(19)) >
gap> form := SesquilinearForm(phi);
< non-degenerate bilinear form >
 

6.2-2 BaseField
‣ BaseField( phi )( attribute )

Returns: a field

The base field over which the polarity phi was constructed.

gap> mat := [[1,0,0],[0,0,2],[0,2,0]]*Z(5)^0;
[ [ Z(5)^0, 0*Z(5), 0*Z(5) ], [ 0*Z(5), 0*Z(5), Z(5) ], 
  [ 0*Z(5), Z(5), 0*Z(5) ] ]
gap> phi := PolarityOfProjectiveSpace(mat,GF(25));
<polarity of PG(2, GF(5^2)) >
gap> BaseField(phi);
GF(5^2)
 

6.2-3 GramMatrix
‣ GramMatrix( phi )( attribute )

Returns: a matrix

The Gram matrix of the polarity phi.

gap> mat := [[1,0,0],[0,0,3],[0,3,0]]*Z(11)^0;
[ [ Z(11)^0, 0*Z(11), 0*Z(11) ], [ 0*Z(11), 0*Z(11), Z(11)^8 ], 
  [ 0*Z(11), Z(11)^8, 0*Z(11) ] ]
gap> phi := PolarityOfProjectiveSpace(mat,GF(11));
<polarity of PG(2, GF(11)) >
gap> GramMatrix(phi);
<immutable cmat 3x3 over GF(11,1)>
 

6.2-4 CompanionAutomorphism
‣ CompanionAutomorphism( phi )( attribute )

Returns: a field automorphism

The involutory field automorphism accompanying the polarity phi.

gap> mat := [[0,2,0,0],[2,0,0,0],[0,0,0,5],[0,0,5,0]]*Z(7)^0;
[ [ 0*Z(7), Z(7)^2, 0*Z(7), 0*Z(7) ], [ Z(7)^2, 0*Z(7), 0*Z(7), 0*Z(7) ], 
  [ 0*Z(7), 0*Z(7), 0*Z(7), Z(7)^5 ], [ 0*Z(7), 0*Z(7), Z(7)^5, 0*Z(7) ] ]
gap> phi := HermitianPolarityOfProjectiveSpace(mat,GF(49));
<polarity of PG(3, GF(7^2)) >
gap> CompanionAutomorphism(phi);
FrobeniusAutomorphism( GF(7^2) )
 

6.2-5 IsHermitianPolarityOfProjectiveSpace
‣ IsHermitianPolarityOfProjectiveSpace( phi )( property )

Returns: true or false

The polarity phi is a hermitian polarity of a projective space if and only if the underlying matrix is hermitian.

gap> mat := [[0,2,7,1],[2,0,3,0],[7,3,0,1],[1,0,1,0]]*Z(19)^0;
[ [ 0*Z(19), Z(19), Z(19)^6, Z(19)^0 ], [ Z(19), 0*Z(19), Z(19)^13, 0*Z(19) ],
  [ Z(19)^6, Z(19)^13, 0*Z(19), Z(19)^0 ], 
  [ Z(19)^0, 0*Z(19), Z(19)^0, 0*Z(19) ] ]
gap> frob := FrobeniusAutomorphism(GF(19^4));
FrobeniusAutomorphism( GF(19^4) )
gap> phi := PolarityOfProjectiveSpace(mat,frob^2,GF(19^4));
<polarity of PG(3, GF(19^4)) >
gap> IsHermitianPolarityOfProjectiveSpace(phi);
true
 

6.2-6 IsSymplecticPolarityOfProjectiveSpace
‣ IsSymplecticPolarityOfProjectiveSpace( phi )( property )

Returns: true or false

The polarity phi is a symplectic polarity of a projective space if and only if the underlying matrix is symplectic.

gap> mat := [[0,0,1,0],[0,0,0,1],[1,0,0,0],[0,1,0,0]]*Z(8)^0;
[ [ 0*Z(2), 0*Z(2), Z(2)^0, 0*Z(2) ], [ 0*Z(2), 0*Z(2), 0*Z(2), Z(2)^0 ], 
  [ Z(2)^0, 0*Z(2), 0*Z(2), 0*Z(2) ], [ 0*Z(2), Z(2)^0, 0*Z(2), 0*Z(2) ] ]
gap> phi := PolarityOfProjectiveSpace(mat,GF(8));
<polarity of PG(3, GF(2^3)) >
gap> IsSymplecticPolarityOfProjectiveSpace(phi);
true
 

6.2-7 IsOrthogonalPolarityOfProjectiveSpace
‣ IsOrthogonalPolarityOfProjectiveSpace( phi )( property )

Returns: true or false

The polarity phi is an orthogonal polarity of a projective space if and only if the underlying matrix is symmetric and the characteristic of the field is odd.

gap> mat := [[1,0,2,0],[0,2,0,1],[2,0,0,0],[0,1,0,0]]*Z(9)^0;
[ [ Z(3)^0, 0*Z(3), Z(3), 0*Z(3) ], [ 0*Z(3), Z(3), 0*Z(3), Z(3)^0 ], 
  [ Z(3), 0*Z(3), 0*Z(3), 0*Z(3) ], [ 0*Z(3), Z(3)^0, 0*Z(3), 0*Z(3) ] ]
gap> phi := PolarityOfProjectiveSpace(mat,GF(9));
<polarity of PG(3, GF(3^2)) >
gap> IsOrthogonalPolarityOfProjectiveSpace(phi);
true
 

6.2-8 IsPseudoPolarityOfProjectiveSpace
‣ IsPseudoPolarityOfProjectiveSpace( phi )( property )

Returns: true or false

The polarity phi is a pseudo-polarity of a projective space if and only if the underlying matrix is symmetric, not all elements on the main diagonal are zero and the characteristic of the field is even.

gap> mat := [[1,0,1,0],[0,1,0,1],[1,0,0,0],[0,1,0,0]]*Z(16)^0;
[ [ Z(2)^0, 0*Z(2), Z(2)^0, 0*Z(2) ], [ 0*Z(2), Z(2)^0, 0*Z(2), Z(2)^0 ], 
  [ Z(2)^0, 0*Z(2), 0*Z(2), 0*Z(2) ], [ 0*Z(2), Z(2)^0, 0*Z(2), 0*Z(2) ] ]
gap> phi := PolarityOfProjectiveSpace(mat,GF(16));
<polarity of PG(3, GF(2^4)) >
gap> IsPseudoPolarityOfProjectiveSpace(phi);
true
 

6.3 Polarities, absolute points, totally isotropic elements and finite classical polar spaces

We already mentioned the equivalence between polarities of PG(n,q) and sesquilinear forms on V(n+1,q), hence there is a relation between polarities of PG(n,q) and polar spaces induced by sesquilinear forms. The following concepts express these relations geometrically.

Suppose that ϕ is a polarity of PG(n,q) and that α is an element of PG(n,q). We call α a totally isotropic element or an absolute element if and only if α is incident with αφ. An absolute element that is a point is also called an absolute point or an isotropic point. It is clear that an element of PG(n,q) is absolute if and only if the underlying vector space is totally isotropic with respect to the sesquilinear form equivalent to ϕ. Hence the absolute elements induce a finite classical polar space, the same that is induced by the equivalent sesquilinear form. When ϕ is a pseudo-polarity, the set of absolute elements are the elements of a hyperplane of PG(n,q).

We restrict our introduction to finite classical polar spaces in this section to the following examples. Many aspects of these geometries are extensively described in Chapter 7.

6.3-1 GeometryOfAbsolutePoints
‣ GeometryOfAbsolutePoints( f )( operation )

Returns: a polar space or a hyperplane

When f is not a pseudo-polarity, this operation returns the polar space induced by f. When f is a pseudo-polarity, this operation returns the hyperplane containing all absolute elements.

gap> mat := IdentityMat(4,GF(16));
[ [ Z(2)^0, 0*Z(2), 0*Z(2), 0*Z(2) ], [ 0*Z(2), Z(2)^0, 0*Z(2), 0*Z(2) ], 
  [ 0*Z(2), 0*Z(2), Z(2)^0, 0*Z(2) ], [ 0*Z(2), 0*Z(2), 0*Z(2), Z(2)^0 ] ]
gap> phi := HermitianPolarityOfProjectiveSpace(mat,GF(16));
<polarity of PG(3, GF(2^4)) >
gap> geom := GeometryOfAbsolutePoints(phi);
<polar space in ProjectiveSpace(3,GF(2^4)): x_1^5+x_2^5+x_3^5+x_4^5=0 >
gap> mat := [[1,0,0,0],[0,0,1,1],[0,1,1,0],[0,1,0,0]]*Z(32)^0;
[ [ Z(2)^0, 0*Z(2), 0*Z(2), 0*Z(2) ], [ 0*Z(2), 0*Z(2), Z(2)^0, Z(2)^0 ], 
  [ 0*Z(2), Z(2)^0, Z(2)^0, 0*Z(2) ], [ 0*Z(2), Z(2)^0, 0*Z(2), 0*Z(2) ] ]
gap> phi := PolarityOfProjectiveSpace(mat,GF(32));
<polarity of PG(3, GF(2^5)) >
gap> geom := GeometryOfAbsolutePoints(phi);
<a plane in ProjectiveSpace(3, 32)>
 

6.3-2 AbsolutePoints
‣ AbsolutePoints( f )( operation )

Returns: a set of points

This operation returns all points that are absolute with respect to f.

gap> mat := IdentityMat(4,GF(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, 0*Z(3) ], [ 0*Z(3), 0*Z(3), 0*Z(3), Z(3)^0 ] ]
gap> phi := PolarityOfProjectiveSpace(mat,GF(3));
<polarity of PG(3, GF(3)) >
gap> points := AbsolutePoints(phi);
<points of Q+(3, 3): x_1^2+x_2^2+x_3^2+x_4^2=0>
gap> List(points);
[ <a point in Q+(3, 3): x_1^2+x_2^2+x_3^2+x_4^2=0>, 
  <a point in Q+(3, 3): x_1^2+x_2^2+x_3^2+x_4^2=0>, 
  <a point in Q+(3, 3): x_1^2+x_2^2+x_3^2+x_4^2=0>, 
  <a point in Q+(3, 3): x_1^2+x_2^2+x_3^2+x_4^2=0>, 
  <a point in Q+(3, 3): x_1^2+x_2^2+x_3^2+x_4^2=0>, 
  <a point in Q+(3, 3): x_1^2+x_2^2+x_3^2+x_4^2=0>, 
  <a point in Q+(3, 3): x_1^2+x_2^2+x_3^2+x_4^2=0>, 
  <a point in Q+(3, 3): x_1^2+x_2^2+x_3^2+x_4^2=0>, 
  <a point in Q+(3, 3): x_1^2+x_2^2+x_3^2+x_4^2=0>, 
  <a point in Q+(3, 3): x_1^2+x_2^2+x_3^2+x_4^2=0>, 
  <a point in Q+(3, 3): x_1^2+x_2^2+x_3^2+x_4^2=0>, 
  <a point in Q+(3, 3): x_1^2+x_2^2+x_3^2+x_4^2=0>, 
  <a point in Q+(3, 3): x_1^2+x_2^2+x_3^2+x_4^2=0>, 
  <a point in Q+(3, 3): x_1^2+x_2^2+x_3^2+x_4^2=0>, 
  <a point in Q+(3, 3): x_1^2+x_2^2+x_3^2+x_4^2=0>, 
  <a point in Q+(3, 3): x_1^2+x_2^2+x_3^2+x_4^2=0> ]
 

6.3-3 PolarSpace
‣ PolarSpace( f )( operation )

Returns: a polar space

When f is not a pseudo-polarity, this operation returns the polar space induced by f.

gap> mat := [[1,0,0,0],[0,0,1,1],[0,1,1,0],[0,1,0,0]]*Z(32)^0;
[ [ Z(2)^0, 0*Z(2), 0*Z(2), 0*Z(2) ], [ 0*Z(2), 0*Z(2), Z(2)^0, Z(2)^0 ], 
  [ 0*Z(2), Z(2)^0, Z(2)^0, 0*Z(2) ], [ 0*Z(2), Z(2)^0, 0*Z(2), 0*Z(2) ] ]
gap> phi := PolarityOfProjectiveSpace(mat,GF(32));
<polarity of PG(3, GF(2^5)) >
gap> ps := PolarSpace(phi);
Error, <polarity> is pseudo and does not induce a polar space called from
<function "unknown">( <arguments> )
 called from read-eval loop at line 10 of *stdin*
you can 'quit;' to quit to outer loop, or
you can 'return;' to continue
brk> quit;
gap> mat := IdentityMat(5,GF(7));
[ [ Z(7)^0, 0*Z(7), 0*Z(7), 0*Z(7), 0*Z(7) ], 
  [ 0*Z(7), Z(7)^0, 0*Z(7), 0*Z(7), 0*Z(7) ], 
  [ 0*Z(7), 0*Z(7), Z(7)^0, 0*Z(7), 0*Z(7) ], 
  [ 0*Z(7), 0*Z(7), 0*Z(7), Z(7)^0, 0*Z(7) ], 
  [ 0*Z(7), 0*Z(7), 0*Z(7), 0*Z(7), Z(7)^0 ] ]
gap> phi := PolarityOfProjectiveSpace(mat,GF(7));
<polarity of PG(4, GF(7)) >
gap> ps := PolarSpace(phi);
<polar space in ProjectiveSpace(4,GF(7)): x_1^2+x_2^2+x_3^2+x_4^2+x_5^2=0 >
 

6.4 Commuting polarities

FinInG constructs polarities of projective spaces as correlations. This allows polarities to be multiplied easily, resulting in a collineation. The resulting collineation is constructed in the correlation group but can be mapped onto its unique representative in the collineation group. We provide an example with two commuting polarities.

gap> mat := [[0,1,0,0],[1,0,0,0],[0,0,0,1],[0,0,1,0]]*Z(5)^0;
[ [ 0*Z(5), Z(5)^0, 0*Z(5), 0*Z(5) ], [ Z(5)^0, 0*Z(5), 0*Z(5), 0*Z(5) ], 
  [ 0*Z(5), 0*Z(5), 0*Z(5), Z(5)^0 ], [ 0*Z(5), 0*Z(5), Z(5)^0, 0*Z(5) ] ]
gap> phi := HermitianPolarityOfProjectiveSpace(mat,GF(25));
<polarity of PG(3, GF(5^2)) >
gap> mat2 := IdentityMat(4,GF(5));
[ [ Z(5)^0, 0*Z(5), 0*Z(5), 0*Z(5) ], [ 0*Z(5), Z(5)^0, 0*Z(5), 0*Z(5) ], 
  [ 0*Z(5), 0*Z(5), Z(5)^0, 0*Z(5) ], [ 0*Z(5), 0*Z(5), 0*Z(5), Z(5)^0 ] ]
gap> psi := PolarityOfProjectiveSpace(mat2,GF(25));
<polarity of PG(3, GF(5^2)) >
gap> phi*psi = psi*phi;
true
gap> g := CorrelationCollineationGroup(PG(3,25));
The FinInG correlation-collineation group PGammaL(4,25) : 2
gap> h := CollineationGroup(PG(3,25));
The FinInG collineation group PGammaL(4,25)
gap> hom := Embedding(h,g);
MappingByFunction( The FinInG collineation group PGammaL(4,25), The FinInG cor
relation-collineation group PGammaL(4,25) : 2, function( y ) ... end )
gap> coll := PreImagesRepresentative(hom,phi*psi);
< a collineation: <cmat 4x4 over GF(5,2)>, F^5>
 
 [Top of Book]  [Contents]   [Previous Chapter]   [Next Chapter] 
Goto Chapter: Top 1 2 3 4 5 6 7 8 9 10 11 12 13 14 A B C Bib Ind

generated by GAPDoc2HTML