[Next] [Prev] [Right] [Left] [Up] [Index] [Root]
The Collineation Group of a Plane

The Collineation Group of a Plane

The automorphism group (or collineation group) A of a plane P is always presented as a permutation group G acting on the standard support {1, ..v}, where v is the number of points of P. The reasons for this include the fact that if the group is represented as acting on a set of objects relating to the plane, printed permutations are often unreadable.

So the collineation group G of P does not act directly on P. Instead, G-sets are used to transfer the action of G to various sets associated with P. The two most important G-sets, corresponding to action of G on the point set and on the line set, are returned by each of the functions provided for constructing the collineation group or some specified subgroup of it.

In some circumstances, rather than viewing collineations as group elements, it is desirable to view them is as mappings of P into itself. Associated with each incidence structure is a mapping structure, Aut(P), which denotes the set of collineations of P. Note that Aut(P) is the parent of the collineations of G so that the function Aut(P) simply creates a shell structure rather than the actual collineation group of P. A transfer map is provided to convert a permutation of the collineation group G into a mapping belonging to Aut(P).

Subsections

The Collineation Group Function

CollineationGroup(P) : Plane -> GrpPerm, GSet, GSet, PowMap, Map
AutomorphismGroup(P) : Plane -> GrpPerm, GSet, GSet, PowMap, Map
PointGroup(P) : Plane -> GrpPerm, GSet, GSet, PowMap, Map
Construct the collineation group G of the plane P. The group G is returned as a permutation group on the standard support { 1 ... v }, where v is the number of points of P. The function also returns: a G-set Y being the point set of P acted on by G; a G-set W being the line set of P acted on by G; a power structure S; a transfer map t. Given a permutation g from G, one can create a map f = t(g) which represents the automorphism g as a mapping in S from P to P (which maps both point sets and line sets). The G-sets Y and W should be used if one wishes to compute stabilizers or similar such subgroups of G so that the appropriate action is used.
LineGroup(P) : Plane -> GrpPerm, PowMap, Map
Construct the collineation group G of the plane P in its action on the lines of P. The group G is returned as a permutation group on the standard support { 1 ... l }, where l is the number of lines of P. A power structure S and transfer map t are also returned, so that, given a permutation g from G, one can create a map f = t(g) which represents the automorphism g as a mapping in S from L to L, where L is the line set of P.
CollineationGroupStabilizer(P, k) : Plane, RngIntElt -> GrpPerm, GSet, GSet, PowMap, Map
A subgroup G of the collineation group of the plane P which stabilizes the first k base points, together with the points G-set, the lines G-set, the power structure A of all automorphisms of P, and the transfer map t from G into A.
CollineationSubgroup(P) : Plane -> GrpPerm, GSet, GSet, PowMap, Map
A subgroup G of the collineation group of the plane P generated by one element, together with the points G-set, the lines G-set, the power structure A of all automorphisms of P, and the transfer map t from G into A.

General Action of Collineations

The collineation group G of a plane P is given in its action on the standard support and it does not act directly on P. The action of G on P is obtained using the G-set mechanism. The two basic G-sets associated with P correspond to the action of G on the set of points V and the set of lines L of P. These two G-sets are given as return values of the function AutomorphismGroup or may be constructed directly. Additional G-sets associated with P may be built using the G-set constructors. Given a G-set Y for G, the action of G on Y may be studied using the permutation group functions that allow a G-set as an argument. In this section, only a few of the available functions are described: see the chapter on permutation groups for a complete list.

Image(g, Y, y) : GrpPermElt, GSet, Elt -> Elt
Let G be a subgroup of the collineation group for the plane P and let Y be a G-set for G. Given an element y belonging either to Y or to a G-set derived from Y, find the image of y under G.
Orbit(G, Y, y) : GrpPerm, GSet, Elt -> GSet
Let G be a subgroup of the collineation group for the plane P and let Y be a G-set for G. Given an element y belonging either to Y or to a G-set derived from Y, construct the orbit of y under G.
Orbits(G, Y) : GrpPerm, GSet -> [ GSet ]
Let G be a subgroup of the collineation group for the plane P and let Y be a G-set for G. This function constructs the orbits of the action of G on Y.
Stabilizer(G, Y, y) : GrpPerm, Elt -> GrpPerm
Let G be a subgroup of the collineation group for the plane P and let Y be a G-set for G. Given an element y belonging either to Y or to a G-set derived from Y, construct the stabilizer of y in G.
Action(G, Y) : GrpPerm, GSet -> Hom(Grp), GrpPerm, GrpPerm
Given a subgroup G of the collineation group of the plane P, and a G-set Y for G, construct the homomorphism phi: G -> L, where the permutation group L gives the action of G on the set Y. The function returns:
ActionImage(G, Y) : GrpPerm, GSet -> GrpPerm
Given a subgroup G of the collineation group of the plane P, and a G-set Y for G, construct the permutation group L giving the action of G on the set Y.
ActionKernel(G, Y) : GrpPerm, GSet -> GrpPerm
Given a subgroup G of the collineation group of the plane P, and a G-set Y for G, construct the kernel of the action of G on the set Y.

Example Plane_CollineationGSet (H57E12)

We illustrate the use of the G-sets returned by the CollineationGroup function.

> P := ProjectivePlane(3);
> G, Y, W := CollineationGroup(P);
Compute the stabilizer of the first point of P:

> Stabilizer(G, Y, Points(P)[1]);
Permutation group acting on a set of cardinality 13
    (3, 9)(5, 7)(6, 11)(8, 12)
    (2, 8, 12)(3, 9)(4, 6, 7, 10, 5, 11)
    (2, 9)(3, 4)(5, 8)(10, 13)
    (2, 8)(3, 9)(4, 5)(6, 10)
    (2, 3)(4, 13)(6, 8)(9, 10)
    (2, 13, 8)(3, 6, 4)(5, 10, 9)
    (2, 3)(4, 9)(7, 12)(10, 13)
> Stabilizer(G, Y, Points(P)[1]) eq CollineationGroupStabilizer(P, 1);
true
Compute the stabilizer of the first line of P:

> Stabilizer(G, W, Lines(P)[1]); 
Permutation group acting on a set of cardinality 13
    (1, 8, 12, 4, 7, 9)(2, 3, 5)(6, 13)
    (3, 5, 11)(6, 7, 9)(8, 12, 13)
    (4, 10)(5, 11)(6, 7)(8, 12)
    (1, 10, 6, 7)(2, 11)(3, 5)(4, 13, 9, 12)
    (5, 11)(6, 12)(7, 8)(9, 13)
    (1, 10)(3, 5)(6, 7)(12, 13)
    (1, 4, 10)(3, 11)(6, 13, 9, 8, 7, 12)

Example Plane_Collineation (H57E13)

The following function Bundle returns a projective bundle in PG_2(q).

> Bundle := function(q)
>     K<w> := GF(q^3);
>     P, V, L := ProjectivePlane(q^3);
>     G, Y := CollineationGroup(P);
>     S := Support(P);  // normalized vectors
>     sig := sub< G |
>               [Index(P, V ! [S[i][1], S[i][2]^q, S[i][3]^q]) : i in [1..#V]]>;
>                       // group of planar collineations of order 3
>     p := V ! [1, w^2, w];
>     T := Orbit(sig, Y, p);
>     e2 := V![0, 1, 0];
>     e3 := V![0, 0, 1];
>     S := Points(SubfieldSubplane(P, GF(q)));
>     c23 := Conic(P, T join {e2, e3}) meet S;
>     e1 := Rep(S diff c23);
>     c12 := (Conic(P, T join {e1, e2}) meet S) diff { e1 };
>     c13 := (Conic(P, T join {e1, e3}) meet S) diff { e1 };
>     bundle := [ Conic(P, T join {e1, e}) meet S : e in c23 ] cat
>               [ Conic(P, T join {v1, v2}) meet S : v2 in c13, v1 in c12 ];
>     return ProjectivePlane< S | bundle >;
> 
> end function;
>                 
> PB := Bundle(3);
> PB;
Projective Plane of order 3

Example Plane_baer (H57E14)

The function BaerDerivation below uses a Baer subplane to construct an affine plane.

> BaerDerivation := function(q)
> //---------------------------
> // Construct an affine plane by the technique of derivation using 
> // Baer subplanes
>
>    Fq2< w > := FiniteField(q^2);
>    V := VectorSpace(Fq2, 3);
>    Plane, Pts, Lns := ProjectivePlane(V);
>    G, Y := CollineationGroup(Plane);

Construct a Baer subplane:

>    Subplane := SubfieldSubplane(Plane, GF(q));

The Baer segment consists of those points of the Baer subplane that lie on the line at infinity. Take the line x = 0 as the line at infinity.

>    LineInf := Lns![1, 0, 0];
> 
>    BaerSeg := Points(Subplane) meet LineInf;

We now find the subgroup of the collineation group that fixes the Baer segment. The translates of the Baer subplane under this subgroup will give us those Baer subplanes that contain the set BaerSeg. We use the G-set Y to specify the action of G on the points of Plane.

>    StabSeg := Stabilizer(G, Y, BaerSeg);

Rather than computing the translates of the entire Baer subplane, we compute the translates of Subplane - BaerSeg so that we get exactly those sets which become new affine lines.

>    BaerLines := Orbit(StabSeg, Y, Points(Subplane) diff BaerSeg);

We complete the new plane by taking those lines of PG(2, q^2) which intersect the line at infinity at points other than those in the Baer segment. Upon removing the intersection point with LineInf, each such line becomes a line of the new affine plane.

>    AffLines := BaerLines join { Set(l) diff LineInf : l in Lns | 
>                                (BaerSeg meet l) eq {} };

> return AffinePlane< SetToIndexedSet(&join(AffLines)) | Setseq(AffLines) > : Check := false >;

> end function; /*BaerDerivation*/


Central Collineations

Let p be a point and l a line of a projective plane P. A (p, l)-central collineation is a collineation alpha of P which fixes l pointwise and p linewise. The line l is called the axis of alpha and the point p is called the centre of alpha.

CentralCollineationGroup(P, p, l) : Plane, PlanePt, PlaneLn -> GrpPerm, PowMap, Map
The group G of (p, l)-central collineations of a projective plane P. A power structure S and transfer map t are also returned, so that, given a permutation g from G, one can create a map f = t(g) which represents the permutation g as a mapping in S from P to P. (which maps both point sets and line sets).
CentralCollineationGroup(P, p) : Plane, PlanePt -> GrpPerm, PowMap, Map
The group of central collineations with centre p of a projective plane P. A power structure S and transfer map t are also returned, so that, given a permutation g from G, one can create a map f = t(g) which represents the permutation g as a mapping in S from P to P. (which maps both point sets and line sets).
CentralCollineationGroup(P, l) : Plane, PlaneLn -> GrpPerm, PowMap, Map
The group of central collineations with axis l of a projective plane P. A power structure S and transfer map t are also returned, so that, given a permutation g from G, one can create a map f = t(g) which represents the permutation g as a mapping in S from P to P. (which maps both point sets and line sets).
IsCentralCollineation(P, g) : Plane, GrpPermElt -> BoolElt, PlanePt, PlaneLn
True iff the collineation g of the projective plane P is a central collineation; if true, also returns the centre and axis of g. The support of the parent of g must be the point set of P or the standard support { 1 ... v }, where v is the number of points of P.

Example Plane_cent-coll (H57E15)

We find a group of central collineations of a plane P, and check that a random element of the group is in fact a central collineation and has the correct axis and centre.

> P, V, L := ProjectivePlane< 13 | {1, 2, 3, 4}, {1, 5, 6, 7}, {1, 8, 9, 10},
>                               {1, 11, 12, 13}, {2, 5, 8, 11}, {2, 6, 9, 12},
>                               {2, 7, 10, 13}, {3, 5, 9, 13}, {3, 6, 10, 11},
>                               {3, 7, 8, 12}, {4, 5, 10, 12}, {4, 6, 8, 13},
>                               {4, 7, 9, 11} >;
> p := V!3;
> l := L.1;
> G := CentralCollineationGroup(P, p, l);
> G;
Permutation group G acting on a set of cardinality 13
Order = 3
    (5, 13, 9)(6, 11, 10)(7, 12, 8)
> g := Random(G);
> g;
(5, 9, 13)(6, 10, 11)(7, 8, 12)
> is_cent_coll, centre, axis := IsCentralCollineation(P, g);
> is_cent_coll;
true
> centre eq p;
true
> axis eq l;
true

Transitivity Properties

IsPointTransitive(P) : Plane -> BoolElt
IsTransitive(P) : Plane -> BoolElt
True iff the collineation group of the plane P acts transitively on the points of P.
IsLineTransitive(P) : Plane -> BoolElt
True iff the collineation group of the plane P acts transitively on the lines of P.

Example Plane_trans (H57E16)

We check the transitivity of the collineation group of AG_2(4).

> P := AffinePlane(4);
> IsPointTransitive(P);
true
> IsLineTransitive(P); 
true

[Next] [Prev] [Right] [Left] [Up] [Index] [Root]