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

7 Polarities of Projective Spaces
 7.1 Creating polarities of projective spaces
 7.2 Operations, attributes and properties for polarties of projective spaces
 7.3 Polarities, absolute points, totally isotropic elements and finite classical polar spaces
 7.4 Commuting polarities

7 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. Construction of correlations of a projective space is described in Chapter 6. In this chapter we describe methods and operations dealing with the construction and use of polarities of projective spaces in FinInG.

7.1 Creating polarities of projective spaces

Since polarities of a projective space necessarily have an involutory field automorphism as companion automorphism and the standardduality 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 polaritiy 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 by α is mapped to the element with underlying subspace α, i.e. the subspace of V(n+1,q) orhtogonal to α with relation 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 6.8) garantuees 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.

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

Returns: a polarity of a projective space

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

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)) >
 

7.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 mat, frob, f as matrix, field automorphism, field, and the standardduality of the projective space. It is checked whether the mat satisfies the necessary conditions to induce a polaritiy, 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 the method 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
 

7.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)) >
 

7.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;
 

7.2 Operations, attributes and properties for polarties of projective spaces

7.2-1 SesquilinearForm
‣ SesquilinearForm( f )( attribute )

Returns: a sesquilinear form

The sesquilinear form corresponding to the given polarity 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 >
 

7.2-2 BaseField
‣ BaseField( f )( attribute )

Returns: a field

the basefield over which the polarity 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)
 

7.2-3 GramMatrix
‣ GramMatrix( f )( attribute )

Returns: a matrix

the Gram matrix of the polarity.

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);
[ [ 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) ] ]
 

7.2-4 CompanionAutomorphism
‣ CompanionAutomorphism( f )( attribute )

Returns: a field automorphism

the involutory fieldautomorphism accompanying the polarity

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) )
 

7.2-5 IsHermitianPolarityOfProjectiveSpace
‣ IsHermitianPolarityOfProjectiveSpace( f )( property )

Returns: true or false

The polarity f 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
 

7.2-6 IsSymplecticPolarityOfProjectiveSpace
‣ IsSymplecticPolarityOfProjectiveSpace( f )( property )

Returns: true or false

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

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
 

7.2-7 IsOrthogonalPolarityOfProjectiveSpace
‣ IsOrthogonalPolarityOfProjectiveSpace( f )( property )

Returns: true or false

The polarity f 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
 

7.2-8 IsPseudoPolarityOfProjectiveSpace
‣ IsPseudoPolarityOfProjectiveSpace( f )( property )

Returns: true or false

The polarity f 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(8));
<polarity of PG(3, GF(2^3)) >
gap> IsPseudoPolarityOfProjectiveSpace(phi);
true
 

7.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 vectorspace is totally isotropic with relation 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 speudo 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 8.

7.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 polartiy, 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)>
 

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

Returns: a set of points

This operation returns all points that are absolute with relation 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> ]
 

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

7.4 Commuting polarities

FinInG constructs polarites 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: [ [ 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) ] ], 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 Bib Ind

generated by GAPDoc2HTML