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

Contents

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. This support may be regarded as the indices of the points of 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. 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.

The action of the collineation group on the plane may also be obtained using the ^ operator.

y ^ g : Elt, GrpPermElt -> Elt
Let G be a subgroup of the collineation group for the plane P and suppose g∈G. Given an element y that is either a point or line of P, return the image of y under g.
y ^ G : Elt, GrpPerm -> GSet
Let G be a subgroup of the collineation group for the plane P. Given an element y that is either a point or line of P, return the orbit of y under G.
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, GSet, 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 φ: G -> L, where the permutation group L gives the action of G on the set Y. The function returns:
(a)
The natural homomorphism φ: G -> L;
(b)
The induced group L;
(c)
The kernel of the action (a subgroup of G).
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 (H150E12)

We illustrate the use of the G--sets returned by the CollineationGroup function.
> P := FiniteProjectivePlane(3);
> G, Y, W := CollineationGroup(P);
Compute the stabilizer of the first point of P:
> H := Stabilizer(G, Y, Points(P)[1]);
> H;
Permutation group H 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)
> H eq CollineationGroupStabilizer(P, 1);
true
> lines := {m : m in Lines(P) | Points(P)[1] in m};
> l := Random(lines);
> l ^ H;
GSet{
  < 0 : 1 : 0 >,
  < 0 : 0 : 1 >,
  < 0 : 1 : 2 >,
  < 0 : 1 : 1 >
}
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 (H150E13)

The following function Bundle returns a projective bundle in PG2(q).
> Bundle := function(q)
>     K<w> := GF(q^3);
>     P, V, L := FiniteProjectivePlane(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 FiniteProjectivePlane< S | bundle >;
>
> end function;
>
> PB := Bundle(3);
> PB;
Projective Plane of order 3

Example Plane_baer (H150E14)

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 := FiniteProjectivePlane(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, q2) 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 FiniteAffinePlane< 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 α of P which fixes l pointwise and p linewise. The line l is called the axis of α and the point p is called the centre of α.

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
Returns 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 (H150E15)

We find a group of central collineations of a plane P, and check that a generator of the group is in fact a central collineation and has the correct axis and centre.
> P, V, L := FiniteProjectivePlane< 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 := G.1;
> 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
Any line through the centre of a central collineation must be fixed by the collineation.
> lines := {m : m in Lines(P) | p in m};
> m := Random(lines);
> m;
{3, 7, 8, 12}
> m ^ G;
GSet{
  {3, 7, 8, 12}
}

Transitivity Properties

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

Example Plane_trans (H150E16)

We check the transitivity of the collineation group of AG2(4).
> P := FiniteAffinePlane(4);
> IsPointTransitive(P);
true
> IsLineTransitive(P);
true
V2.28, 13 July 2023