The Point-Set and Line-Set of a Plane

Contents

Introduction

An affine or projective plane in Magma consists of three objects: the plane P itself, the point--set V of P, and the line--set L of P.

Although called the point--set and line--set, V and L are not actual Magma sets. They simply act as the parent structures for the points and lines (respectively) of the plane P, enabling easy creation of these objects via the ! and . operators.

The point--set V belongs to the Magma category PlanePtSet, and the line--set L to the category PlaneLnSet.

In this section, the functions used to create point--sets, line--sets and the points and lines themselves are described.

Creating Point-Sets and Line-Sets

As mentioned above, the point--set and line--set are returned as the second and third arguments of any function which creates a plane. They can also be created via the following two functions.

PointSet(P) : Plane -> PlanePtSet
Given a plane P, return the point--set V of P.
LineSet(P) : Plane -> PlaneLnSet
Given a plane P, return the line--set L of P.

Using the Point-Set and Line-Set to Create Points and Lines

For efficiency and clarity, the points and lines of a plane are given special types in Magma. The category names for points and lines are PlanePt and PlaneLn respectively. They can be created in the following ways.

V . i : PlanePtSet, RngIntElt -> PlanePt
Given the point--set V of a plane P and an integer i, return the i-th point of P.
V ! [a, b, c] : PlanePtSet, SeqEnum -> PlanePt
Given the point--set V of a classical projective plane P = PG2(K), and elements a, b, c of the finite field K, create the projective point (a : b : c) in the plane P.
V ! [a, b] : PlanePtSet, SeqEnum -> PlanePt
Given the point--set V of a classical affine plane P = AG2(K), and elements a, b of the finite field K, create the point (a, b) in the plane P.
V ! x : PlanePtSet, Elt -> PlanePt
Given the point--set V of a plane P, return the point of P corresponding to the element x, which should be coercible into the underlying point set for P. (In the case of classical planes, x should be coercible to a vector.)
Representative(V) : PlanePtSet -> PlanePt
Rep(V) : PlanePtSet -> PlanePt
Given the point--set V of a plane P, return a representative point of P.
Random(V) : PlanePtSet -> PlanePt
Given the point--set V of a plane P, return a random point of P.
L . i : PlanePtSet, RngIntElt -> PlanePt
Given the line--set L of a plane P and an integer i, return the i-th line of P.
L ! [a, b, c] : PlaneLnSet, SeqEnum -> PlaneLn
Given the line set L of a classical plane P defined over a finite field K, and elements a, b, c of K, create the line <a : b : c> (i.e. the line given by the equation ax + by + cz = 0 if P is projective, or ax + by + c = 0 if P is affine).
L ! [m, b] : PlaneLnSet, SeqEnum -> PlaneLn
Given the line set L of a classical affine plane P = AG2(K), and elements m, b of the finite field K, create the affine line y = mx + b in P.
L ! S : PlaneLnSet, SetEnum -> PlaneLn
L ! S : PlaneLnSet, SeqEnum -> PlaneLn
Given the line--set L of a plane P and a set or sequence S of collinear points of P, return the line containing the points of S.
L ! l : PlaneLnSet, PlaneLn -> PlaneLn
Given the line--set L of a plane P and a line l of a (possibly) different plane (generally a subplane of P), return the line of P corresponding to l.
Representative(L) : PlaneLnSet -> PlaneLn
Rep(L) : PlaneLnSet -> PlaneLn
Given the line--set L of a plane P, return a representative line of P.
Random(L) : PlaneLnSet -> PlaneLn
Given the line--set L of a plane P, return a random line of P.

Example Plane_points-lines (H150E2)

The following example shows how points and lines of a plane can be created. First we study a classical projective plane.
> P, V, L := FiniteProjectivePlane(5);
> V;
Point-set of Projective Plane PG(2, 5)
> L;
Line-set of Projective Plane PG(2, 5)
Create the third point of P:
> V.3;
( 0 : 0 : 1 )
Create the point (1:2:3) of P:
> V![1, 2, 3];
( 1 : 2 : 3 )
Choose a random point of P:
> Random(V);
( 1 : 0 : 0 )
> Random(V);
( 0 : 0 : 1 )
Create the sixth line of P:
> L.6;
< 1 : 1 : 3 >
Create the line of P given by the equation 4x + 3y + 2z = 0:
> L![4, 3, 2];
< 1 : 2 : 3 >
Create the line of P containing the points (0:0:1) and (0:1:0):
> L![ V | [0, 0, 1], [0, 1, 0] ];
< 1 : 0 : 0 >
Get a representative from the line-set of P, and a random line:
> Rep(L);
< 1 : 0 : 0 >
> Random(L);
< 1 : 2 : 4 >
Now we look at a non-classical plane.
> V := {2, 4, 6, 8};
> A, P, L := FiniteAffinePlane< SetToIndexedSet(V) | Setseq(Subsets(V, 2)) >;
> A: Maximal;
Affine Plane of order 2
Points: {@ 2, 4, 6, 8 @}
Lines:
    {6, 8},
    {2, 6},
    {2, 8},
    {2, 4},
    {4, 6},
    {4, 8}
> P;
Point-set of Affine Plane of order 2
> L;
Line-set of Affine Plane of order 2
Get the third point of A:
> P.3;
6
Create the point of A given by the integer 4:
> P!4;
4
Get a representative from the point--set of A:
> Rep(P);
2
Get the third line of A:
> L.3;
{2, 8}
Create the line of A containing the integers 2 and 6:
> L![2, 6];
{2, 6}
Choose a random line from A:
> Random(L);
{6, 8}

Retrieving the Plane from Points, Lines, Point-Sets and Line-Sets

The ParentPlane function allows you to access the plane to which a point, line, point--set or line--set belongs.

ParentPlane(V) : PlanePtSet -> Plane, PlanePtSet, PlaneLnSet
The plane P for which V is the point--set.
ParentPlane(L) : PlaneLnSet -> Plane, PlanePtSet, PlaneLnSet
The plane P for which L is the line--set.
ParentPlane(p) : PlanePt -> Plane, PlanePtSet, PlaneLnSet
The plane P for which p is a point.
ParentPlane(l) : PlaneLn -> Plane, PlanePtSet, PlaneLnSet
The plane P for which l is a line.
V2.28, 13 July 2023