Sie sind auf Seite 1von 56

Technische Universität München

Department of Mathematics

Bachelor’s Thesis

Visualization of Finite Projective


Planes Using Singer’s Theorem
Michael Martin Katzenberger

Supervisor: Prof. Dr. Dr. Jürgen Richter-Gebert


Advisor: Dr. Aaron Montag; Dr. Bernhard Werner
Submission Date: 15.10.2020
I assure the single handed composition of this bachelor’s thesis only supported by
declared resources.

Garching, 14.10.2020,
Zusammenfassung
In dieser Arbeit wird das nötige Wissen vermittelt, um die zyklische Symmetrie endlicher
projektiver Ebenen darzustellen. Um an das Thema heranzuführen, wird zuerst die
kleinste projektive Ebene und verschiedene Darstellungen dieser projektiven Ebene
vorgestellt. Danach werden zunächst ein paar grundlegende Aussagen über projektive
Ebenen bewiesen und dann homogene Koordinaten eingeführt, welche es ermöglichen
algebraische Hilfsmittel zu nutzen. Diese werden anhand der reellen projektive Ebene
anschaulich erklärt. Daraufhin werden einige wichtige Resultate der Algebra aufge-
führt und im Kapitel “Constructive Closure” genutzt um Parallelen zwischen projek-
tiver Geometrie und Körpertheorie aufzuzeigen. Im letzten Teil der Arbeit wird an-
fangs das zuvor erworbene Wissen genutzt um den Satz von Singer zu beweisen, welcher
aussagt, dass es in jeder projektiven Ebene mit q Punkten über einem endlichen Kör-
per eine Kollineation der Periode q gibt. Nach dem Beweis folgen verschiedene Arten
das Resultat zu nutzen, um projektive Ebenen zu visualisieren. Diese können auch im
beiliegenden CindyJS Programm1 ausprobiert werden.

1 https://www.dropbox.com/s/8boh3n38jxq857u/Visualization%20of%20Finite%20Projective%

20Planes.html?dl=0
Contents

Contents
1. Introduction 1

2. Basic facts about finite projective planes 4

3. Ingredients for Singer’s theorem 6


I. Idea . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
II. Homogeneous coordinates . . . . . . . . . . . . . . . . . . . . . . . . . . 7
III. The real projective plane . . . . . . . . . . . . . . . . . . . . . . . . . . . 10

4. Finite fields and finite projective planes 13


I. Algebra . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
II. Constructive closure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16

5. Singer’s theorem and visualization 20


I. Proof of Singer’s theorem . . . . . . . . . . . . . . . . . . . . . . . . . . 20
II. Distance sets . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
III. Describing lines with parametrized curves . . . . . . . . . . . . . . . . . 29

6. Summary 34

7. References 35
1 INTRODUCTION

1. Introduction
The aim of this thesis is to provide the reader with an elaborate proof of James Singer’s
theorem in finite projective geometry and to use it to visualize projective planes over
finite fields. We start with a fundamental definition:
Definition 1.1. A projective plane is a triple pP, L , I q. The set P consists of the
points, and the set L consists of the lines of the geometry. The relation I Ď P ˆL
is called incidence relation and fulfills three axioms:
(i) Let P ‰ Q P P then there exists exactly one L P L such that P and Q are
both incident to L. Write P I L and QI l.
(ii) Let L ‰ M P L then there exists exactly one P P P such that L and M are
both incident to P .

(iii) There are four points such that no line is incident with more than two of them.
We say such points are in general position.
Note that points and lines in a projective plane are just abstract concepts. And
although they can be drawn as points and lines in the usual geometric sense, it is
nowhere stated that e.g. lines have to be straight, so some configurations might be
counterintuitive even though they are valid in terms of projective geometry. These
axioms alone already give us a blueprint to construct our first projective plane, in fact
the smallest projective plane. We start by taking four points in general position:

A B

D C

Figure 1: four points in general position

1
1 INTRODUCTION

Now we construct the six lines that pass through all six pairs of points:

A B

C
D

Figure 2: six lines connecting the four points

As all pairs of lines need a point of intersection we need to introduce three more points:

A B

E G

C
D

Figure 3: three points of intersection

To finish the construction we can draw another line through these three points and all
axioms are satisfied:
F

A B

E G

C
D

Figure 4: the last line

This projective plane with seven points and seven lines is also called the Fano plane.

2
1 INTRODUCTION

Now, one can experiment with the positions of the points and lines to get to the
following equivalent depiction of it. Here, different colors are used to make it easier
to distinguish the different lines. We observe that the symmetry group of this object
B
A C

E G

D F

Figure 5: circular Fano plane

is the cyclic group Z{7Z. A logical next step is to wonder if it is possible to find a
visualization with the cyclic symmetry group Z{qZ for any finite projective plane with
q points. This question will be answered for finite projective planes generated by
fields over the course of the next chapters. Incidentally, this is not the only symmetric
depiction of the Fano plane. Another one, also the most famous one, is shown in the
next figure. Here we can see that this projective plane also has threefold symmetry.
A

E G
D

C F B

Figure 6: triangular Fano plane

3
2 BASIC FACTS ABOUT FINITE PROJECTIVE PLANES

2. Basic facts about finite projective planes


Before we can start to answer our question, we need more knowledge of finite projective
planes. The following results can all be found in the book “Perspectives on Projective
Geometry” by Jürgen Richter-Gebert (cf. [1]). From Definition 1.1 we already know,
that every pair of points has a line connecting them and every pair of lines has a point
of intersection. We call them join and meet, respectively.

Notation 2.1. Let pP, L , I q be a projective plane, P ‰ Q P P be two points and


L ‰ M P L be two lines. Write

P _ Q or joinpP, Qq for the unique line connecting P and Q and


L ^ M or meetpL, M q for the unique intersection point of L and M.

Lemma 2.2. If for P, Q P P and L, M P L it is true that P I L, P I M, QI L and


QI M , then either P “ Q or L “ M .

Proof. If P ‰ Q then axiom 1.1.(i) implies L “ M and if L ‰ M then axiom 1.1.(ii)


implies P “ Q.
Lemma 2.3. Every line of a projective plane is incident with at least three points.
Proof. Let L P L be any line of the projective plane and assume for contradiction
that L contains less than three points. Let P, Q, R, S be the four points in general
position. Assume without loss of generality that P and Q are not incident with L,
while S and R may, or may not lie on it (in Figure 7 they do). Consider the lines
P _ Q, P _ R, P _ S. Since all of them are incident with P , they must be distinct by
Axiom 1.1.(iii) and must have three distinct intersections with L by Lemma 2.2.

L
R
S

pP _ Qq ^ L Q P

Figure 7: Visualization of Lemma 2.3

Lemma 2.4. For every point P there is at least one line not incident with P .
Proof. Let L and M be arbitrary lines. If P ‰ L ^ M , P is either not incident with
L or M and we are done. So assume P “ L ^ M . We know from the lemma above,
that there have to exist two points PL and PM distinct from P , such that PL I L and
PM I M . Axiom 1.1.(i) implies that P is not incident with PL _ PM .

4
2 BASIC FACTS ABOUT FINITE PROJECTIVE PLANES

PL
L
P
M PM

Figure 8: Visualization of Lemma 2.4

Theorem 2.5. Let pP, L , I q be a projective plane with finite sets P and L . Also
define for P P P and L P L :

PpLq :“ tP P P | P I Lu and LpP q :“ tL P L | P I Lu.

Then there exists a number n P N such that |PpLq| “ |LpP q| “ n ` 1 for any P P P
and L P L . We will call n the order of the projective plane.
Proof. Let L and M be two distinct lines and assume that L contains n ` 1 points,
with n P N. We want to show that both lines contain the same number of points.
Let P “ L ^ M be their meet and let L1 be a line through P distinct from L and
M . Now consider a point Q on L1 distinct from P , which exists by Lemma 2.3. Let
tA1 , A2 , ..., An u “ PpLqztP u be the n points on L distinct from P and consider the
n lines Li “ Ai _ Q; i “ 1, ..., n. Each of these lines intersects the line M in a point
Bi “ Li ^ M . All these points have to be distinct, since otherwise there would be
lines Li , Lj that intersect twice, in contradiction to Lemma 2.2. Thus the number of
points on M is at least as big as the number of points on L (See Figure 9). Similarly,
we can argue that the number of points on L is at least as big as the number of points
on M . Hence both numbers have to be equal. Thus the number of points on a line
is the same for any line. Now let P be any point and let L be a line that does not
contain P and let tP1 , P2 , ..., Pn`1 u be the n ` 1 points on L. Joining these points
with P generates n ` 1 lines through P . In fact, these lines must be all lines through
P , since any line through P must have an intersection with L by Axiom 1.1.(ii). This
implies that the number of lines that pass through P must also be equal to n ` 1. As
P was arbitrarily chosen, we are done.

Theorem 2.6. Let pP, L , I q be a projective plane with finite sets P and L of order
n. Then we have |P| “ |L | “ n2 ` n ` 1.
Proof. Let P P P be any point. From the last theorem we know that n ` 1 lines are
incident to P and each of those lines contains n additional points which are all distinct
as otherwise two lines would intersect twice. So we have 1 ` pn ` 1q ¨ n “ n2 ` n ` 1
points. An analogous calculation results in the same number for the lines.

5
3 INGREDIENTS FOR SINGER’S THEOREM

Ln L
L1 L2 L3
An
P A 3 ...
A1 A2
B1 B2
B3 ... M
Bn

Figure 9: Proof that all lines contain the same number of points

3. Ingredients for Singer’s theorem


I. Idea
Assume we draw a projective plane consisting of q points A0 , A1 , ..., Aq´1 in a circular
arrangement. Also assume there exists a bijection τ : P Ñ P such that τ pAi q “ Ai`1
for i ď q ´ 2 and τ pAq´1 q “ A0 with the property that collinear points, i.e. points that
are incident with the same line, get mapped to collinear points. Then the application
of this map would just rotate the image by 360q degrees and it would look exactly the
same.

τ τ
τ
... Aq´1 A0 A1
A2
τ

A3
τ
A4
...

Figure 10: the map τ

6
3 INGREDIENTS FOR SINGER’S THEOREM

Definition 3.1. A bijection τ : P Ñ P that maps collinear points to collinear points


is called collineation.
Definition 3.2. Let τ be a collineation and A P P any point. The smallest number
q P N, such that
τ q pAq “ A,
is called the period of τ with respect to the point A. Now let
A1 “ τ pAq, A2 “ τ 2 pAq, ..., Aq´1 “ τ q´1 pAq
then it is obvious that the period of τ with respect to the point Ai is also q for all
i P t1, 2, ..., q ´ 1u. Thus, if q is equal to the total number of points in the finite
projective plane, one can speak of q being the period of τ .
To find such a map τ with period q we still need a better way to do calculations with
points and lines. Therefore homogeneous coordinates will be introduced next.

II. Homogeneous coordinates


Definition 3.3. Let K be an arbitrary
! field.
) We define the following equivalence
3 T
relation for vectors V, W P K z p0, 0, 0q :

V „ W ô V “ λ ¨ W for some λ P K z t0u.


Then the equivalence class of V is
( (
rV s “ V 1 P K3 z p0, 0, 0qT | V 1 “ λ ¨ V for some λ P K z t0u
and the set of all equivalence classes is denoted by
(
K3 z p0, 0, 0qT
,
K z t0u
i.e. all nonzero vectors modulo nonzero scalar multiples. Define
( (
K3 z p0, 0, 0qT K3 z p0, 0, 0qT
PK :“ LK :“
K z t0u K z t0u
as sets of points and lines using two different copies of the set of equivalence classes
and define the incidence relation IK Ď PK ˆ LK via
rP sIK rLs :ðñ xP, Ly “ 0.
This is well-defined as it is invariant under the choice of the representants. To show
that, let 0 ‰ λ, µ P K, then
xλ ¨ P, µ ¨ Ly “ 0 ðñ λ ¨ µ ¨ xP, Ly “ 0 ðñ xP, Ly “ 0.
We will omit the brackets and just speak of points P and lines L, keeping in mind
that non-zero scalar multiples still refer to the same objects. The above described
representation of points, lines and incidences is called homogeneous coordinates.

7
3 INGREDIENTS FOR SINGER’S THEOREM

Behind this definition lies the idea to view the projective plane as a two-dimensional
affine subspace of a three-dimensional vector space over a field and describe points
in the plane by the set of vectors that pass through it. Lines are then described by
planes, with the homogeneous coordinates being the normal vector of the respective
plane. A point is incident to a line, if the vector describing the point lies inside of the
plane describing the line. This allows us to use a lot of tools from linear algebra. One
can, for example, immediately see that this gives us the possibility to calculate the
join of two points, or the meet of two lines, using the cross product. Let P, Q P PK .
Then ¨ ˛ ¨ ˛ ¨ ˛
Px Qx Py Qz ´ Pz Qy
L :“ P ˆ Q “ ˝Py ‚ˆ ˝Qy ‚ “ ˝Pz Qx ´ Px Qz ‚
Pz Qz Px Qy ´ Py Qx
satisfies xP, Ly “ xQ, Ly “ 0. So, L “ P _ Q. We can also find a formula to check for
collinearity of points or concurrency of lines (that is, if multiple lines pass through the
same point).
Lemma 3.4. Let P, Q, R P PK and L, M, N P LK . Then P, Q, R are collinear if, and
only if ¨ ˛
Px Qx Rx
rP, Q, Rs :“ det ˝Py Qy Ry ‚ “ 0.
Pz Qz Rz
And L, M, N are concurrent if, and only if
¨ ˛
Lx Mx Nx
rL, M, N s :“ det ˝Ly My Ny ‚ “ 0.
Lz Mz Nz

Proof. P, Q, R collinear ðñ P IK pQ_Rq ðñ xP, QˆRy “ 0 ðñ P “ λ¨Q`µ¨R


for some λ, µ P K ðñ rP, Q, Rs “ 0. The same reasoning can be applied to the
lines.
Theorem 3.5. Let K be a field, then KP2 :“ pPK , LK , IK q is a projective plane.
Proof. We need to check the three axioms:

(i) Let P ‰ Q P PK . Then P ˆ Q is incident with both P and Q.


(ii) Let L ‰ M P LK . Then L ˆ M is incident with both L and M .
(iii) Every field contains 0 and 1. So the points
¨ ˛ ¨ ˛ ¨ ˛ ¨ ˛
0 0 1 1
˝0‚, ˝1‚, ˝0‚, ˝1‚
1 0 0 1

are in PK , are different and no three of them are collinear by Lemma 3.4.

8
3 INGREDIENTS FOR SINGER’S THEOREM

This representation of points and lines also gives us the possibility to express certain
collineations through matrices.
Definition 3.6. Let M P K3ˆ3 be a regular matrix and let τ be defined by

τ : PK Ñ PK , τ pP q “ M ¨ P.

Then τ is called projective transformation.


Lemma 3.7. Every projective transformation is a collineation.

Proof. We need to show that collinear points get mapped to collinear points. Let
P, Q, R P PK . Then

rτ pP q, τ pQq, τ pRqs “ rM ¨ P, M ¨ Q, M ¨ Rs “ det pM q ¨ rP, Q, Rs .


looomooon
‰0

So τ pP q, τ pQq and τ pRq are collinear if, and only if, P, Q and R are collinear.
Theorem 3.8. A projective transformation is determined by four points in general
position and their respective images also in general position.

Proof. Let P, Q, R and S be four points in general position and let A, B, C and D be
another four points in general position. We will construct the matrix M such that
M ¨ P “ A, M Q9 “ B, M ¨ R “ C and M ¨ S “ D. Without loss of generality, let
¨ ˛ ¨ ˛ ¨ ˛ ¨ ˛
0 0 1 1
P “ ˝0‚, Q “ ˝1‚, R “ ˝0‚ and S “ ˝1‚.
1 0 0 1

This is possible, because if we could find a matrix M1 that maps above coordinates
to A, B, C and D then we would also be able to find a matrix M2 that maps them to
P, Q, R and S. Then M2´1 ¨ M1 maps P, Q, R and S to A, B, C and D respectively.
As M ¨ P is just the first column of M and M ¨ Q and M ¨ R the second and third, M
has to be of the form ¨ ˛
α ¨ Ax β ¨ Bx γ ¨ Cx
M “ ˝α ¨ Ay β ¨ By γ ¨ Cy ‚.
α ¨ Az β ¨ B z γ ¨ C z
Now M ¨ S has to be equal to D, which is equivalent to
¨ ˛ ¨ ˛ ¨ ˛
Ax Bx Cx α Dx
˝Ay By Cy ‚¨ ˝β ‚ “ ˝Dy ‚.
Az B z C z
looooooooomooooooooon γ Dz
“:M
Ă

As the points were assumed to be in general position we can now solve for α, β and γ
by inverting M
Ă.

9
3 INGREDIENTS FOR SINGER’S THEOREM

III. The real projective plane


For a better understanding of the concept of projective planes we will start with the
Euclidean plane E “ pPE , LE , IE q and construct its projective extension. For more
details on this topic, see “Perspectives on Projective Geometry” (cf. [1]). We can
easily identify PE with R2 since a point in the usual planar Euclidean geometry has
two coordinates, x and y. Lines are sets of points, described by equations of the
form ax ` by ` c “ 0. A point is incident to it if the equation is true for the point’s
coordinates. For all pairs of points there exists a line connecting them. Let
ˆ ˙ ˆ ˙
x1 x2
and
y1 y2

be two points. Then the line incident to both of them is described by the equation

py2 ´ y1 q ¨ x ` px1 ´ x2 q ¨ y ` x2 ¨ y1 ´ y2 ¨ x1 “ 0.

But not all pairs of lines have a point of intersection, as parallel lines like

x ` y ` 1 “ 0 and x ` y ` 2 “ 0

have no common point in R2 . So we have to add new points to PE , which will only
be formally introduced for now, as we have no coordinates left to describe them. Let
L be a line and rLs be the set of all lines parallel to L. Then the point PrLs will be
defined to be incident to all lines in rLs.

$ L L
&
rLs ÝÑ PrLs
%

Figure 11: the point PrLs

Now all pairs of lines do intersect by construction, but we need to connect the different
PrLs . This will be done by introducing the line at infinity L8 defined as the set of
all PrLs . This way pPR , LR , IR q with

PR “ PE Y PrLs | L P LE
(

LR “ LE Y tL8 u
IR “ IE Y PrLs , L | L P LE Y PrLs , L8 | L P LE
` ˘ ( ` ˘ (

defines a projective plane, the real projective plane.

10
3 INGREDIENTS FOR SINGER’S THEOREM

L8
PrN s PrLs

PrM s PrM s

PrLs PrN s

Figure 12: The real projective plane simplified

Now we will see how this fits into the setting of homogeneous coordinates. The first
thing we observe, is that a line described by the equation ax ` by ` c “ 0 will also be
described by λ ¨ ax ` λ ¨ bx ` λ ¨ c “ 0, λ ‰ 0. So we can represent a line L described
by the equation
¨ ˛
Lx
Lx ¨ x ` Ly ¨ y ` Lz “ 0 through the vector ˝Ly ‚
Lz
or any non-zero scalar multiple of it. With this in mind, we embed the set of points
PE “ R2 into the R3 as the plane with z “ 1 through the map
¨ ˛
ˆ ˙ x
x
φ : R2 Ñ R 3 , ÞÑ ˝y ‚.
y
1
We will call this the standard embedding. Let P be a point and L a line. Then P
is incident to L, if
C¨ ˛ ¨ ˛ G
Px Lx
0 “ Lx ¨ Px ` Ly ¨ Py ` Lz “ ˝Py ‚, ˝Ly ‚ “ xP, Ly .
1 Lz
So using these three-dimensional coordinates, the incidence between points and lines
can be expressed via the convenient scalar product, just as in the definition of homo-
geneous coordinates. Additionally this representation of points is now also invariant
under non-zero scalar multiples. This way a point
¨ ˛ ¨ ˛ ¨ ˛
Px ˆ
Px{Pz
˙ Px Px{Pz

P “ ˝Py ‚ P R3 corresponds to the point Py P R2 as ˝Py ‚ „ ˝Py{Pz ‚.


{Pz
Pz Pz 1

11
3 INGREDIENTS FOR SINGER’S THEOREM

Now we take a look at the points PrLs from above. Assume we have a point P and a
direction R. Define P α through:
¨ ˛ ¨ ˛ ¨ ˛ ¨ ˛
Px Rx Px ` α ¨ Rx Px{α ` R
x
P “ ˝Py ‚, R “ ˝Ry ‚, P α “ ˝Py ` α ¨ Ry ‚ „ ˝Py{α ` Ry ‚, with α P Rzt0u.
1 0 1 1{α

If we move this point infinitely far in direction R, i.e. α Ñ 8, we approach the point
¨ ˛
Rx
˝Ry ‚ “ R.
0

As P and R were chosen arbitrarily, we see that all parallel lines meet in a single point
that is infinitely far away, just as we defined PrLs earlier, so PrLs “ R. With L being
in this case ¨ ˛
´Ry
L“P ˆR“˝ Rx ‚.
Px R y ´ R x P y
Note that α Ñ ´8 would converge to the same point and here scalar multiples also
do not matter. We observe that all of the infinite points (Pz “ 0) lie on the line
¨ ˛
0
˝0‚ “: L8 ,
1

so it makes sense to choose it as the line at infinity, also explaining why we gave it this
name. Another way to see this, is that the plane described through this normal vector
is the only plane that does not intersect the plane with z “ 1, i.e. where we embedded
the projective plane in. After this digression to the RP2 we will learn the basics of
field theory and see some correspondences between algebra and projective geometry.

12
4 FINITE FIELDS AND FINITE PROJECTIVE PLANES

4. Finite fields and finite projective planes


I. Algebra
Many proofs in this section are left out, as they would require a lot of group- and
ring theory. This however would go beyond the scope of this thesis. The following
results, except of theorem 4.20, can all be found with a lot more details in “Algebra”
by Christian Karpfinger and Kurt Meyberg (cf. [2]) including all proofs. We need this
knowledge for a further characterization of finite projective planes and for the proof
of Singer’s theorem.
Definition 4.1. A group G is called cyclic, if there exists a P G such that
(
xay :“ ak | k P Z “ G.
We call a a generator of G.
Theorem 4.2. In a finite group G with neutral element n we have a|G| “ n for all
a P G.
Definition 4.3. Let K be a field, then the smallest p P N with the property that
1looooooomooooooon
` 1 ` ... ` 1 “ 0
p times

is called the characteristic of K. We write charpKq “ p. If there is no such p, then


the characteristic of K is 0.
Lemma 4.4. If the characteristic of a field K is not 0, then it is a prime number.
Proof. Assume there are m, n P N such that m ¨ n “ p. We know
0 “ 1looooooomooooooon
` 1 ` ... ` 1 “ loooooooomoooooooon
p1 ` 1 ` ... ` 1q ¨ loooooooomoooooooon
p1 ` 1 ` ... ` 1q
p times m times n times

implying that either


1 ` 1 ` ... ` 1 “ 0 or 1looooooomooooooon
looooooomooooooon ` 1 ` ... ` 1 “ 0.
m times n times

But as p is the smallest number with this property we get n “ p or m “ p.


Definition 4.5. Let K and L be fields such that K Ď L. then K is called a subfield
of L and L is called an extension field of K. We call L{K a field extension.
We observe that L and K must have the same characteristic, because 1L “ 1K . As the
intersection of fields is again a field, we can make the following definition.
Definition 4.6. For a field K define
č
P “ tU | U is a subfield of Ku.
We call P the prime field of K.

13
4 FINITE FIELDS AND FINITE PROJECTIVE PLANES

Lemma 4.7. Let P be the prime field of K then:


(i) charpKq “ 0 ùñ P – Q

(ii) charpKq “ p ‰ 0 ùñ P – Z{pZ


Now let L and K be fields and let L{K be a field extension. We can observe that L is a
K-vector space as the field-axioms directly imply the vector space-axioms by just using
the addition in L as the addition in the K-vector space and defining the multiplication
with scalars in the K-vector space through the multiplication in L:

d : K ˆ L Ñ L, pλ, vq ÞÑ λ ¨ v

We write dimK pLq for the dimension of the vector space L over the field K. For example
the complex numbers C are a field extension of the real numbers R and thus also a
two-dimensional R-vector space.

Definition 4.8. Let L{K be a field extension and a P L then Kpaq is defined as the
smallest subfield of L containing a and K.
Theorem 4.9. Every finite field K is a finite extension field over its prime field
e
P – Z{pZ with p “ charpKq. If dimP pKq “ e, K has exactly pe elements and ap “ a
for all a P K.

Proof. K is an extension field of its prime field P . As K is finite it can only contain
finitely many linearly independent elements over P . So dimP pKq “ e P N. Let
pb1 , ..., be q be a basis of K over P . Then every element a P K has a unique representation
as linear combination of the bi , i.e. a “ λ1 b1 ` ... ` λe be with λ1 , ..., λe P P and
a ÞÑ pλ1 , ..., λe q is an isomorphism of P ´vector spaces from K into P e . This implies

|K| “ |P e | “ |P |e “ pe .

The unit group Kˆ :“ Kzt0u of K is, with multiplication in K, a group of order


e´1 e
pe ´ 1, so ap “ 1 for all a ‰ 0. So we get ap “ a for all a P K.
Definition 4.10. Let K be a field. We write K rxs for the ring of polynomials with
coefficients in K and indeterminant x.
Definition 4.11. Let L{K be a field extension and a P L. a is called algebraic over
K if there exists a f P K rxs such that f paq “ 0. The field extension L{K is called
algebraic, if all a P L are algebraic over K.
Definition 4.12. Let L be a field such that every polynomial f P L rxs of degree d ě 1
has a root in L then L is algebraically closed. If L{K is an algebraic field extension,
then L is called algebraic closure of K and we denote it with K.
Theorem 4.13. For every field K exists an algebraic closure K.

14
4 FINITE FIELDS AND FINITE PROJECTIVE PLANES

Remark 4.14. The complex numbers are algebraically closed and also the algebraic
closure of the real numbers, as they are an algebraic field extension of them, namely
C “ Rpiq. But they are not the algebraic closure of the rational numbers, because e.g.
π or e are not algebraic over Q. So an algebraically closed field is not necessarily the
algebraic closure of all its subfields.
Definition 4.15. Let K be a field and f be a polynomial with coefficients in K. The
smallest field that contains all roots of f is called the splitting field of f over K.
Theorem 4.16. For every p prime and e P N exists up to isomorphism exactly one
e
field called Fpe with pe elements, namely the splitting field of the polynomial xp ´ x
e
p
over Z{pZ. In fact all elements of Fpe are roots of x ´ x.
This also implies that all finite field extensions over Fp are algebraic.
Lemma 4.17. For any finite field K the unit group Kˆ “ Kz t0u is cyclic. A generator
of Kˆ is called primitive element of K.
For example in F5 the unit group is t1, 2, 3, 4u and a primitive element of it is 2, as
22 “ 4, 23 “ 3 and 24 “ 1.
Definition 4.18. Let K be a field. A polynomial f P K rxs is called irreducible if it
has only trivial divisors in K rxs.

Lemma 4.19. Let L{K be a field extension and a P L algebraic over K. Then there
exists a unique normalized irreducible polynomial f P K rxs with minimal degree, such
that f paq “ 0. This polynomial is called minimal polynomial of a over K and its
degree is equal to dimK pKpaqq.

Definition 4.20. Let K and L be fields, L a field extension of K and λ a primitive


element of L. The minimal polynomial of λ over K is called primitive polynomial.
For instance in F2 the only irreducible polynomial of degree 2 is f pxq “ x2 ` x ` 1. If
a is a root of f , then F22 – F2 paq containing the elements 0, 1, a and a ` 1. Because
1 cannot be a generator of the unit group, a or a ` 1 have to. And as a ` 1 is also a
root of f ,
2
f pa ` 1q “ pa ` 1q ` a ` 1 ` 1 “ a2 ` 2a ` 1 ` a “ a2 ` a ` 1 “ f paq “ 0

f has to be a primitive polynomial.


Theorem 4.21 (Characterization of projective planes over finite fields). For any
prime p and 1 ď e P N, PFpe , LFpe , IFpe is a projective plane that consists of
` ˘

p2e ` pe ` 1 points and p2e ` pe ` 1 lines. Each line contains exactly pe ` 1 points and
each point lies on exactly pe ` 1 lines. The order of the projective plane is pe .
Proof. This is just a direct conclusion of the theorems 2.5, 2.6, 3.5 and 4.14.

15
4 FINITE FIELDS AND FINITE PROJECTIVE PLANES

II. Constructive closure


For the rest of this section we will analyze the projective plane we get by taking four
points in general position in the Fpe P2 , construct the lines connecting them, then
intersect these lines to get more points, et cetera. Without loss of generality we will
always assume to be in the standard embedding.
Definition 4.22. Let pP, L , I q and pP 1 , L 1 , I 1 q be projective planes. A map
Φ : P1 Ñ P
such that collinear points in P 1 get mapped to collinear points in P (This implies
that concurrent lines will also get mapped to concurrent lines) is be called projective
plane-homomorphism. If Φ is bijective, we say projective plane-isomorphism
and call the projective planes isomorphic.
Definition 4.23. Let pP, L , I q and pP 1 , L 1 , I 1 q be projective planes. We say
pP 1 , L 1 , I 1 q is a projective sub-plane of pP, L , I q if there exists an injective
projective plane-homomorphism Φ : P 1 Ñ P and write pP 1 , L 1 , I 1 q Ă pP, L , I q.
pP 1 , L 1 , I 1 q is a proper projective sub-plane of pP, L , I q if Φ is not surjective.
In this case, write pP 1 , L 1 , I 1 q Ĺ pP, L , I q.
For the next theorem we need to introduce von-Staudt-constructions, which are
used to mimic addition and multiplication on a line in a projective plane using special
configurations of points and lines. In the Euclidean geometry this is done the following
way:

Addition Multiplication
B
A B
A

0 X Y X `Y 0 1 X Y X ¨Y

Figure 13: Von-Staudt-constructions

With all lines that look parallel being parallel. If the coordinates of 0, 1, X and Y are
ˆ ˙ ˆ ˙ ˆ ˙ ˆ ˙
0 1 x y
, , , and ,
0 0 0 0
respectively, then the coordinates of X ` Y and X ¨ Y will be
ˆ ˙ ˆ ˙
x`y x¨y
and ,
0 0
so the labels are justified. These constructions can be generalized to fit in the setting
of a projective plane by introducing the intersection points of parallel lines. This leads
to the configurations in Figure 14.

16
4 FINITE FIELDS AND FINITE PROJECTIVE PLANES

D
C
C D
L8 L8 B
A B
A
8 8
0 X Y X `Y 0 1 X Y X ¨Y

Figure 14: Von-Staudt-constructions in a projective plane

Example 4.24. Choose the homogeneous coordinates of 0, X, Y, 8 as for instance:


¨ ˛ ¨ ˛ ¨ ˛ ¨ ˛
0 x y 1
0 “ ˝0‚ X “ ˝0‚ Y “ ˝0‚ 8 “ ˝0‚
1 1 1 0

We will now calculate the coordinates for the point X `Y . First of all, the line through
0, X, Y, 8 is ¨ ˛
0
0 ˆ 8 “ ˝1‚ “: L.
0
A line parallel to L, i.e. incident with 8, would be
¨ ˛
0
˝1‚ “: M.
1

The next step is to choose a point A on M and construct:

C “ pA _ Xq ^ L8 D “ pA _ 0q ^ L8
B “ pD _ Y q ^ M X ` Y “ pC _ Bq ^ L

Let ¨ ˛
x
A “ ˝´1‚,
1
then
¨ ˛ ¨ ˛ ¨ ˛ ¨ ˛ ¨ ˛
0 ´x x`y ´x ´ y x`y
C “ ˝´1‚, D “ ˝ 1 ‚, B “ ˝ ´1 ‚, X ` Y “ ˝ 0 ‚ „ ˝ 0 ‚.
0 0 1 ´1 1

So von-Staudt-constructions also work in projective geometry. For a formal proof see


“Perspectives on Projective Geometry” (cf. [1]). 4

17
4 FINITE FIELDS AND FINITE PROJECTIVE PLANES

Theorem 4.25. Let K and L be fields. Then

KP2 Ă LP2 ðñ K is a subfield of L.

Proof. “ðù”: Let K be a subfield of L. We immediately get the projective plane-


homomorphism Φ : PK Ñ PL , P ÞÑ P so KP2 Ă LP2 .
“ùñ”: Let KP2 Ă LP2 , so we have a projective plane-homomorphism Φ : PK Ñ PL .
First of all, we may assume that |K| ă |L|, because |K| ą |L would imply |PK | ą |PL |
contradicting PK Ă PL and |K| “ |L| would imply K “ L. As we can mimic
addition and multiplication on a line in K and L using von-Staudt-constructions in
the respective projective planes KP2 and LP2 and as all configurations in KP2 can be
embedded into LP2 using Φ, all calculations done in K can also be done in L with the
same result, so K is a subfield of L.
Remark 4.26. This means we can always embed the Fp P2 into the Fpe P2 .

Definition 4.27. Let K be a field, 1 ď k P N and P1 , P2 , ..., Pk P PK . Define

P0 :“ tP1 , P2 , ..., Pk u
L0 :“ tP ˆ Q | P, Q P P0 and P ‰ Qu

and inductively

Pn`1 :“ tL ˆ M | L, M P Ln and L ‰ M u
Ln`1 :“ tP ˆ Q | P, Q P Pn`1 and P ‰ Qu .
´ ¯
Then P,
ĂLĂ, IĂ with

8
ď
P
Ă“ Pi
i“0
ď8
L
Ă“ Li
i“0
´ ¯
IĂ“ LĂˆ P
Ă X IK

´ ¯
is called the constructive closure of P1 , ..., Pk , write ccl pP1 , ..., Pk q :“ P,
ĂLĂ, IĂ .

Lemma 4.28. If at least four of the Pi are in general position the constructive closure
cclpP1 , ..., Pk q is a projective plane. Also it is a projective sub-plane of the projective
plane KP2 the points are taken from.
Proof. We need to check the three axioms:

(i) @ p, q P P
Ă D! l P L
Ă such that pIĂl and q IĂl:
This is clear from the definition of L
Ă.

18
4 FINITE FIELDS AND FINITE PROJECTIVE PLANES

(ii) @ l, m P LĂ D! p P P
Ă such that pIĂl and pIĂm:
This is clear from the definition of P.
Ă

(iii) There exist four points such that no three of them lie on the same line:
This is the assumption.
It becomes a projective sub-plane of KP2 through the projective plane-homomorphism

Φ:P
Ă Ñ PK , P ÞÑ P.

Theorem 4.29 (Theorem of Pappos). Let K be a field and KP2 be a projective plane.
Let P1 , ..., P9 P PK such that the following triples of points are collinear:

pP1 , P3 , P5 q, pP2 , P4 , P6 q,
pP1 , P7 , P2 q, pP5 , P9 , P6 q,
pP5 , P7 , P4 q, pP3 , P9 , P2 q,
pP1 , P8 , P6 q, pP3 , P8 , P4 q

Then the points P7 , P8 and P9 are also collinear.


Proof.

P3
P5
P1

P7 P8 P9

P4 P2 P6

Figure 15: The theorem of Pappos

For a detailed proof see again “Perspectives on Projective Geometry” (cf. [1]).
Theorem 4.30. Let pP, L , I q be a projective plane. Then there exists a field such
that KP2 is isomorphic to pP, L , I q if, and only if, the theorem of Pappos holds in
pP, L , I q
Proof. This theorem is proven in “Grundlagen der Geometrie” (cf. [3]).
Lemma 4.31. If cclpP1 , ..., Pk q is a projective plane, it is generated by a field.
Proof. We need to check if Pappos theorem is true for cclpP1 , ..., Pk q, but this property
is inherited directly from the projective plane KP2 it is embedded in.

19
5 SINGER’S THEOREM AND VISUALIZATION

Theorem 4.32. The constructive closure cclpP1 , ..., P4 q of four points P1 , ..., P4 in
general position in Fpe P2 is isomorphic to Fp P2 .
Proof. W.l.o.g. we can assume
¨ ˛ ¨ ˛ ¨ ˛ ¨ ˛
0 0 1 1
P1 “ ˝0‚, P2 “ ˝1‚, P3 “ ˝0‚, P4 “ ˝1‚.
1 0 0 1

As there would exist a projective transformation τ mapping the points to these posi-
tions. Now as the coordinates of the four points are all either 0 or 1, they are contained
in the smallest subfield of Fpe , namely Fp . Cross products, which only use addition and
multiplication of the coordinates are the only operations we use to construct further
lines and points from P1 , ..., P4 , so we stay in Fp . This implies that cclpP1 , ..., P4 q is a
projective sub-plane of Fp P2 through the projective plane-homomorphism

Φ:P
Ă Ñ PF , P ÞÑ P
p

and also generated by a field (see Lemma 4.31). But as Fp has no proper subfields,
cclpP1 , ..., P4 q has to be isomorphic to Fp P2 .

5. Singer’s theorem and visualization


Now after a lot of theory in projective geometry and algebra we finally have the tools
to state and prove the central theorem of this thesis.
Theorem 5.1. There is always at least one collineation of period q “ p2e ` pe ` 1 in
the Fpe P2 (cf. [4]).

I. Proof of Singer’s theorem


We will prove this theorem over the course of this section and use it to visualize finite
projective planes. The first thing we need is a primitive polynomial of degree three
with coefficients in Fpe , so we need to show its existence.
Lemma 5.2. There exists a primitive polynomial of degree three in Fpe rxs.
Proof. We know that the field Fp3e exists and that Fp3e {Fpe is a field extension. As
the unit group Fˆ
p3e is cyclic, it is generated by one primitive element λ. This implies
3e
Fp3e “ Fpe pλq. As all elements a in Fp3e satisfy the equation ap ´ a “ 0 they are all
algebraic over Fpe . So there exists a minimal polynomial of λ in Fpe which also is a
primitive polynomial as λ is a primitive element.
Let
f pxq :“ x3 ´ a3 x2 ´ b3 x ´ c3
be such a primitive polynomial of degree three with coefficients in Fpe and let λ P Fp3e
be such that f pλq “ 0. As λ is the root of a primitive polynomial it is a primitive

20
5 SINGER’S THEOREM AND VISUALIZATION

(
element in Fp3e , so the set λi | 1 ď i ď p3e ´ 1 is the whole Fˆ p3e . Also we can find
i 2
numbers ai , bi , ci P Fpe such that λ “ ai λ ` bi λ ` ci or, equivalently, such that the
vector ¨ ˛
ai
˝ bi ‚ P F3pe
ci
(
describes λi as an element in a three-dimensional Fpe -vector space with basis λ2 , λ, 1 .
We will refer to them as the coordinates of λi and determine them the following way:
For i ă 3 we immediately get
¨ ˛ ¨ ˛ ¨ ˛
0 0 1
λ0 – ˝0‚, λ1 – ˝1‚, λ2 – ˝0‚
1 0 0

and for i “ 3 we get a3 , b3 and c3 directly from the coefficients of the primitive
polynomial. Now assume λi “ ai λ2 ` bi λ ` ci , then
` ˘
λi`1 “ λ ¨ λi “ λ ¨ ai λ2 ` bi λ ` ci “ ai λ3 ` bi λ2 ` ci λ.

But as λ3 “ a3 λ2 ` b3 λ ` c3 , this is equivalent to


` ˘
λi`1 “ ai a3 λ2 ` b3 λ ` c3 ` bi λ2 ` ci λ “ pai a3 ` bi q ¨ λ2 ` pai b3 ` ci q ¨ λ ` ai c3 .

So by induction we are done. We can use this to define our map τ from section 3.I.
Lemma 5.3. The map τ defined by
¨ ˛ ¨ ˛
a a3 a ` b
τ : ˝ b ‚ ÞÑ ˝ b3 a ` c ‚
c c3 a

maps the coordinates of λi to the coordinates of λi`1 for any i.


Proof. for i ě 3 it follows directly from the calculation above. For i ă 3 we observe:
¨ ˛ ¨ ˛ ¨ ˛ ¨ ˛ ¨ ˛ ¨ ˛
0 0 0 1 1 a3
τ ˝0‚ “ ˝1‚, τ ˝1‚ “ ˝0‚, τ ˝0‚ “ ˝ b3 ‚
1 0 0 0 0 c3

This concludes the proof.


Example 5.4. In the F5 , the polynomial x3 ´ x ´ 2 is primitive. This means the map
τ has the following form: ¨ ˛ ¨ ˛
a b
τ : ˝ b ‚ ÞÑ ˝a ` c‚
c 2a

21
5 SINGER’S THEOREM AND VISUALIZATION

Let λ be a root of the polynomial, then the first few powers of lambda will be described
by the subsequent vectors. We start with λ3 as the lower powers are again the unit
vectors.
¨ ˛ ¨ ˛ ¨ ˛ ¨ ˛ ¨ ˛ ¨ ˛
0 1 2 1 4 0
λ3 – ˝1‚, λ4 – ˝2‚, λ5 – ˝1‚, λ6 – ˝4‚, λ7 – ˝0‚, λ8 – ˝2‚, ...
2 0 2 4 3 3
Incidentally, as |Fˆ
53 | “ 124 and thus its biggest subgroup has 62 elements, one could
show that x3 ` 4x ` 3 is primitive by applying τ a total of 62 times to check if
¨ ˛ ¨ ˛ ¨ ˛ ¨ ˛
0 0 0 0
˝0‚, τ ˝0‚, τ 2 ˝0‚, ... , τ 62 ˝0‚
1 1 1 1
are all pairwise different. However this proof is left out for the convenience of the
reader. 4

What we want to show next, is that we are in the setting of a projective plane over the
field Fpe with the powers of λ being the homogeneous coordinates. We already know
from section 3 that points and lines are described by vectors in the three-dimensional
Fpe -vector space F3pe . We additionally know from section 4 that the Fp3e is also a
three-dimensional Fpe -vector space. So to show this one just has to put the pieces
together. We start by taking a look at the powers of λ. The Fˆ 3e
p3e has p ´ 1 elements,
while the Fˆ e ˆ ˆ
pe has p ´ 1 elements. As the Fpe is a subgroup of Fp3e , we get

p3e ´ 1
λiq P Fˆ e
pe , i “ 0, 1, ..., p ´ 2 with q “ “ p2e ` pe ` 1.
pe ´ 1
But this is also the number of elements in the Fpe P2 , giving us the intuition to define
the following equivalence relation on Fˆ
p3e :

λu „ λv ô u “ v mod q
Now assume λu „ λv , keeping in mind that λu´v P Fˆ
pe , we can describe the coordinates
of λu in dependence of λv :
λu “ λu´v ¨ λv
` ˘
ùñ au λ2 ` bu λ ` cu “ λu´v ¨ av λ2 ` bv λ ` cv
¨ ˛ ¨ ˛
au av
ùñ ˝ bu ‚ “ λu´v ¨ ˝ bv ‚
cu cv
So this equivalence relation does the same thing as the one from Definition 3.3., i.e.
identifying all coordinates that differ by nonzero scalar multiples. Suppose we have the
q points A0 , A1 , ...Aq´1 from the projective plane Fpe P2 and, without loss of generality,
assume the homogeneous coordinates of Au to be the equivalence class generated by
au , bu and cu . Then Au could equivalently be identified with the equivalence class
generated by λu as shown above. So we are in the setting of a projective plane.

22
5 SINGER’S THEOREM AND VISUALIZATION

Lemma 5.5. The map τ from Lemma 5.3 is a collineation with period qp“ p2e `pe `1q.
Proof. Define the matrix T as follows:
¨ ˛
a3 1 0
T :“ ˝ b3 0 1‚
c3 0 0
and observe that τ pvq “ T ¨ v for all v P F3pe and detpT q “ c3 . We know that
c3 ‰ 0, as otherwise our primitive polynomial would be divisible by x and thus not
irreducible. So τ is a projective transformation. According to Lemma 3.7 all projective
transformations are collineations, so also τ is a collineation. τ has period q, as the
first p3e ´ 1 powers of λ are different and
τ q pλu q “ λu`q „ λu @u “ 0, ..., p3e ´ 2.
This means we always have a collineation of period q in the Fpe P2 , so Theorem 5.1 is
proven.

II. Distance sets


Now that we know that there is always at least one collineation of period q in the
Fpe P2 (with q being the number of points p2e ` pe ` 1), we can theoretically depict
every projective plane over a finite field such that its symmetry group Z{pe Z becomes
visible. But to actually create a picture of it we will need a way to characterize lines
by the points they are incident with, because the positions of the points are already
fixed, being equidistant on the edge of a circle. In such a depiction all lines are just
rotated copies of the same line, so it suffices to make this characterization for only
one line. We will choose without loss of generality the line L0 that passes through the
points A0 and A1 and identify it with the set D :“ tk | Ak is incident to L0 u. This
set will be called distance set of Fpe P2 , as it describes in a way how far the points
on L0 are away from A0 .
Example 5.6 (Continuation of Example 5.4). As the point Ak is represented by the
coordinates of λk , or any non-zero scalar multiple of them, we get for A0 , A1 and the
line L0 connecting them:
¨ ˛ ¨ ˛ ¨ ˛
0 0 1
A0 “ ˝0‚, A1 “ ˝1‚, L0 “ A0 ˆ A1 “ ˝0‚
1 0 0
Of the points from Example 5.4 two more are incident to L0 , namely
¨ ˛ ¨ ˛
0 0
A3 “ ˝1‚ and A8 “ ˝2‚.
2 3
A whole distance set of F5 P2 would be t0, 1, 3, 8, 12, 18u. As a line in the F5 P2 is
incident to exactly six points, this can easily be shown by just calculating the next ten
powers of λ and checking if A12 and A18 are incident to L0 . 4

23
5 SINGER’S THEOREM AND VISUALIZATION

The distance set actually has the all information we need for the visualization, be-
cause it contains every incidence through the projective plane’s structure. The proof
of Singer’s theorem is constructive, so we can deduce an algorithm to calculate the
distance set of an arbitrary projective plane over a finite field by just following it step
by step. One can use the programming environment SageMath, as for the algorithm
to work finite fields have to be already implemented.

Algorithm 1 Distance set algorithm


Input: A prime number p and e P N
Output: A distance set of Fpe P2
1: function irredpoly(p, e)
2: for all ā3 , b̄3 P Fpe do
3: for all c̄3 P Fpe z t0u do
4: irred Ð true
5: for all x P Fpe do
6: if x3 ´ ā3 x2 ´ b̄3 x ´ c̄ “ 0 then
7: irred Ð false
8: end if
9: end for
10: if irred “ true then
11: return ā3 , b̄3 , c̄3
12: end if
13: end for
14: end for
15: end function

16: `` 1 , µ˘2 , µ3 , λ1 , λ2 , λ3 , a,
function times(µ ˘ b, c)
17: η1 Ð λ1 ¨ a2 ` b ¨ µ1 ` aµ2 ` µ3 ` λ2 ¨ paµ1 ` µ2 q ` λ3 µ1
18: η2 Ð λ1 ¨ ppab ` cq ¨ µ1 ` bµ2 q ` λ2 ¨ pbµ1 ` µ3 q ` λ3 µ2
19: η3 Ð λ1 ¨ pacµ1 ` cµ2 q ` λ2 cµ1 ` λ3 µ3
20: return pη1 , η2 , η3 q
21: end function

22: function nthpower(λ1 , λ2 , λ3 , a, b, c, n)


23: µ1 Ð λ1
24: µ2 Ð λ2
25: µ3 Ð λ3
26: for i Ð 2 to n do
27: pµ1 , µ2 , µ3 q Ð timespµ1 , µ2 , µ3 , λ1 , λ2 , λ3 , a, b, cq
28: end for
29: end function

24
5 SINGER’S THEOREM AND VISUALIZATION

30: function primele(a, b, c, p, e)


31: for all pλ1 , λ2 , λ3 q P F3pe do
32: µ1 Ð λ1
33: µ2 Ð λ2
34: µ3 Ð λ3
35: isprim Ð true Y 3e ]
36: for i Ð 1 to p 2´1 do
37: µ1 , µ2 , µ3 Ð timespµ1 , µ2 , µ3 , λ1 , λ2 , λ3 , a, b, cq
38: if µ1 “ λ1 and µ2 “ λ2 and µ3 “ λ3 then
39: isprim Ð false
40: end if
41: end for
42: if isprim “ true then
43: return pλ1 , λ2 , λ3 q
44: end if
45: end for
46: end function

47: function primpoly(λ1 , λ2 , λ3 , a, b, c, p, e)


48: for all a3 , b3 , c3 P Fpe do
49: if nthpowerpλ1 , λ2 , λ3 , a, b, c, 3q “
50: a3 ¨ nthpowerpλ1 , λ2 , λ3 , a, b, c, 2q ` b3 ¨ pλ1 , λ2 , λ3 q ` c3 then
51: return a3 , b3 , c3
52: end if
53: end for
54: end function

55: procedure DistanceSetAlgorithm(p, e)


56: ā3 , b̄3 , c̄3 Ð irredpolypp,` eq ˘
57: pλ1 , λ2 , λ3 q Ð primele ` ā3 , b̄ 3 , c̄ 3 , p, e ˘
58: a3 , b3 , c3 Ð primpoly λ1 , λ2 , λ3 , ā3 , b̄3 , c̄3 , p, e
59: lambdas Ð empty list of vectors in F3pe
60: append p0, 0, 1q to lambdas
61: for i Ð 2 to p2e ` pe ` 1 do
62: pλ1 , λ2 , λ3 q Ð last element of lambdas
63: append pa3 λ1 ` λ2 , b3 λ1 ` λ3 , c3 λ1 q to lambdas
64: end for
65: distset Ð empty list of integers
66: iÐ0

25
5 SINGER’S THEOREM AND VISUALIZATION

67: for all pλ1 , λ2 , λ3 q in lambdas do


68: if λ1 “ 0 then
69: append i to distset
70: iÐi`1
71: end if
72: end for
73: end procedure

Theorem 5.7. Algorithm 1 calculates a distance set of Fpe for any p prime and e P N.
Proof. Assume irredpoly calculates the coefficients ā3 , b̄3 , c̄3 of an irreducible poly-
nomial x3 ´ ā3 x2 ´ b̄3 x ´ c̄3 in Fpe rxs and that primele calculates the representation
T
pλ1 , λ2 , λ3 q of a primitive
( element in Fp3e in a three-dimensional Fpe -vector space
with the basis µ2 , µ, 1 where µ is a root of the irreducible polynomial. Additionally
assume that primpoly calculates the coefficients a3 , b3 , c3 of a primitive polynomial
x3 ´ a3 x2 ´ b3 x ´ c3 in Fpe rxs using the primitive element from primele. We show
now that, under these assumptions, DistanceSetAlgorithm calculates a distance
set of Fpe . Afterwards we show that these functions are correct, too.

As we have a primitive polynomial x3 ´ a3 x2 ´ b3 x ´ c3 we know that if we use a


root λ of it to construct the extension field Fp3e of Fpe , every element in Fp3e can be
written as a power of λ. The list defined in line 59 will represent the elements of Fp3e .
We start by adding ¨ ˛
0
˝0‚ – λ0
1
to it. In the for-loop in the lines 61 to 64 the next p2e ` pe representations of powers
of λ are added to the list, by taking the last element of the list, applying the map
¨ ˛ ¨ ˛
a a3 a ` b
τ : ˝ b ‚ ÞÑ ˝ b3 a ` c ‚
c c3 a

from Lemma 5.3 to it and adding it at the end of the list. These vectors will be used
to describe the p2e ` pe ` 1 points in the projective plane. As the line through the first
two points ¨ ˛ ¨ ˛
0 0
A0 “ ˝0‚ and A1 “ ˝1‚
1 0
is described by the homogeneous coordinate vector
¨ ˛
1
˝0‚,
0

26
5 SINGER’S THEOREM AND VISUALIZATION

we will add all i such that the first coordinate of λi is zero to the distance set distset,
which happens in the lines 67 to 72. So distset is a distance set of Fpe P2 . Now we just
need to show that our assumptions are true.

irredpoly: This function calculates an irreducible polynomial, as it just tests for


every polynomial x3 ´ ax2 ´ bx ´ c with c ‰ 0 if it is irreducible. And we know that
in every field an irreducible polynomial of degree three with c ‰ 0 exists.

primele: First of all we need to show that the times function calculates the product of
λ, µ in Fp3e represented as elements of the three-dimensional Fpe -vector space F3pe with
(
the basis ν 2 , ν, 1 where ν is the root of an irreducible polynomial x3 ´ ax2 ´ bx ´ c.
Let λ and µ be represented by
¨ ˛ ¨ ˛
λ1 µ1
˝λ2 ‚ and ˝µ2 ‚.
λ3 µ3

So λ “ λ1 ν 2 ` λ2 ν ` λ3 and µ “ µ1 ν 2 ` λ2 ν ` λ3 . Thus we can write


` ˘
µ ¨ λ “ µ ¨ λ1 ν 2 ` λ2 ν ` λ3 “ λ1 ν 2 µ ` λ2 νµ ` λ3 µ

Now a multiplication with ν is again just an application of a map


¨ ˛ ¨ ˛
a ā3 a ` b
τ 1 : ˝ b ‚ ÞÑ ˝ b̄3 a ` c ‚
c c̄3 a

as in Lemma 5.3. (The only difference here is that the unit group of Fp3e is not
generated by ν, as it is not necessarily a root of a primitive polynomial) So we get
2
µ ¨ λ “ λ1 ¨ τ 1 pµq ` λ2 ¨ τ 1 pµq ` λ3 µ
¨` 2 ˘ ˛ ¨ ˛ ¨ ˛
a ` b ¨ µ1 ` aµ2 ` µ3 aµ1 ` µ2 µ1
“ λ1 ¨ ˝ pab ` cq ¨ µ1 ` bµ2 ‚` λ2 ¨ ˝ bµ1 ` µ3 ‚` λ3 ¨ ˝µ2 ‚,
acµ1 ` cµ2 cµ1 µ3

which is just what happens in the lines 17 to 19. The primele function uses this to
test for every element λ if it is a generator of the unit group by calculating all powers
λi up to half of the unit group’s order and checking if λi “ λ. If this is not the case
for all i, then λ is primitive.

primpoly: This function tests for all a3 , b3 , c3 P Fpe if

λ3 “ a3 λ2 ` b3 λ ` c3

with nthpower being calculated by applying the times function multiple times. If
such a3 , b3 , c3 are found, x3 ´ a3 x2 ´ b3 x ´ c3 defines a primitive polynomial. So we
are done.

27
5 SINGER’S THEOREM AND VISUALIZATION

Note that there are also more efficient algorithms without using brute force to deter-
mine primitive polynomials, for example in the article “A Fast Algorithm To Compute
Irreducible and Primitive Polynomials in Finite Fields” (cf. [5]). However, this would
go beyond the scope of this thesis. Now that we have a way to determine such a dis-
tance set, the next step is to generate pictures from it. The following ways to do this
can also be found, and interactively explored, in the accompanying CindyJS program.
As we learned in the very beginning of this thesis all pairs of points have a line of
intersection. If we define the distance of two points Ai , Aj by

dpAi , Aj q :“ minti ´ j mod q, j ´ i mod qu,

this describes how often one has to apply the map τ or τ ´1 (i.e. either going clockwise
or counterclockwise, depending on what is closer) to get from Ai to Aj . Using this
definition of distances and the fact that all lines are rotated copies of the line L0 , we
observe that if we measure the distances between all pairs of points incident to the
same line we have to get every number in
! Y q ])
1, 2, ..., .
2
Also we must not get any number twice as this would contradict lemma 2.2. This
result can be nicely depicted by connecting all pairs of points incident to L0 . We will
call this the distance set polygon.

A0 A1
A3

13
14 A8
15

10

6 A12
A18

Figure 16: Distance set polygon for the F5 P2 using the distance set t0, 1, 3, 8, 12, 18u

For greater clarity only a few distances are shown, but one can easily observe that
indeed every distance from 1 to 15 appears exactly once. However this visualization
gets quickly less insightful the more points the projective plane has, as the number of
lines increases with the square of the order of the projective plane.

28
5 SINGER’S THEOREM AND VISUALIZATION

III. Describing lines with parametrized curves


The original question was if there exists a way to visualize the Z{qZ symmetry of a
projective plane with q points. We will do this now, again using the distance set from
above. As we already know which points are collinear, we only need a nice way to
connect the points.
Definition 5.8. A parametrized curve in Rn is a map γ : pt0 , t1 q Ñ Rn with
´8 ă t0 ă t1 ă 8.
Definition 5.9. Let γ be a differentiable parametrized curve, then its derivative γptq
9
is called the tangent vector of γ at the point γptq.
The name tangent vector comes from the fact that γptq 9 is a tangent to the image of
γ, i.e. γpIq “ tγptq | t P Iu, at the point γptq (cf. [6]). The approach taken here to
visualize a line is to always connect two points that lie next to another on a line with a
parametrized curve, such that at the points where different curves meet, their tangent
vectors have the same direction.

γ1

γ91 pt1 q “ γ92 pt0 q

γ2

Figure 17: Two parametrized curves that meet in a point

To get parametrized curves that fulfill this requirement one could do it the following
way. For convenience reasons, choose the circle our points lie on to be the unit circle.
Then we can describe it with the parametrized curve
¨ ´ ¯˛

sin q ¨ t
γcircle : r0, qq Ñ R2 , t ÞÑ ˝ ´ ¯‚

cos q ¨ t

such that γcircle piq, i P N is exactly the position of the point Ai . Multiplying the radius
of the unit circle with 1 ` 2¨sinpπ¨tq
q , we get the modified map
¨ ´ ¯˛
sin 2π t
ˆ ˙
2 ¨ sinpπ ¨ tq q ¨
γptq “ 1 ` ¨˝ ´ ¯‚.
q 2π
cos q ¨ t

29
5 SINGER’S THEOREM AND VISUALIZATION

Figure 18: The map γ

This way the segments between the points already look like they can be used for our
task. Our aim is to use such a segment to visualize the part of the line between two
points Ai , Aj . So now we just need to make it dependent on the two points Ai , Aj
that one arc should connect and dependent on the arc being inside or outside the unit
circle. Also we must adapt the amplitude such that the tangent vectors still have
the same direction. These parametrized curves will then be γi,jout
: p0, 1q Ñ R2 and
in 2
γi,j : p0, 1q Ñ R .
´¨ ¯˛
i`t¨pj´i mod qq
sin 2π
ˆ ˙
out 2 ¨ pj ´ i mod qq ¨ sinpπ ¨ tq ¨ q
γi,j ptq “ 1` ¨˝ ´ ¯‚
q cos 2π ¨ i`t¨pj´iq mod qq
¨ ´ ¯˛
i`t¨pj´i mod qq
sin 2π
ˆ ˙
in 2 ¨ pj ´ i mod qq ¨ sinpπ ¨ tq ¨ q
γi,j ptq “ 1 ´ ¨˝ ´ ¯‚
q cos 2π ¨ i`t¨pj´iq mod qq

Theorem 5.10. Let q P N and i, j, k all be smaller than q such that i ‰ j mod q and
j ‰ k mod q. Then there exist λ, µ ‰ 0 such that:
out in in out
γ9 i,j p1q “ λ ¨ γ9 j,k p0q and γ9 i,j p1q “ µ ¨ γ9 j,k p0q,

i.e. at the point j where the two parametrized curves meet (either starting inside or
outside the unit circle) both tangent vectors have the same direction.

30
5 SINGER’S THEOREM AND VISUALIZATION

Proof.
¨ ´ ¯˛
i`t¨pj´i mod qq
out 2 ¨ pj ´ i mod qq ¨ cospπ ¨ tq ¨ π sin 2π ¨ q
γ9 i,j ptq “ ¨˝ ´ ¯‚
q cos 2π ¨ i`t¨pj´i mod qq
q
¨ ´ ¯ ˛
cos 2π ¨ i`t¨pj´iq mod qq
ˆ ˙
2 ¨ pj ´ i mod qq ¨ sinpπ ¨ tq
` 1` ¨˝ ´ ¯‚
q ´ sin 2π ¨ i`t¨pj´i mod qq
q

2π ¨ pj ´ i mod qq
¨
q
¨ ´ ¯˛
j`t¨pk´j mod qq
in 2 ¨ pk ´ j mod qq ¨ cospπ ¨ tq ¨ π sin 2π ¨ q
γ9 j,k ptq “ ´ ¨˝ ´ ¯‚
q cos 2π ¨ j`t¨pk´j mod qq
q
¨ ´ ¯ ˛
cos 2π ¨ j`t¨pk´j mod qq
ˆ ˙
2 ¨ pk ´ j mod qq ¨ sinpπ ¨ tq q
` 1´ ¨˝ ´ ¯‚
q ´ sin 2π ¨ j`t¨pk´j mod qq
q

2π ¨ pk ´ j mod qq
¨
q
out in
Thus we get for γ9 i,j p1q and γ9 j,k p0q:
¨ ´ ¯ ˛ ¨ ´ ¯˛
j j
out 2π ¨ pj ´ i mod qq cos 2π ¨ q 2 ¨ pj ´ i mod qq ¨ π sin 2π ¨ q ‚
γ9 i,j p1q “ ¨˝ ´ ¯‚ ´ ¨˝ ´ ¯
q ´ sin 2π ¨ q j q cos 2π ¨ qj
¨ ´ ¯ ´ ¯ ˛
j j
2π ¨ pj ´ i mod qq ˝ cos 2π ¨ q ´ sin 2π ¨ q ‚
“ ¨ ´ ¯ ´ ¯
q ´ sin 2π ¨ qj ´ cos 2π ¨ qj
¨ ´ ¯ ˛ ¨ ´ ¯˛
j j
in 2π ¨ pk ´ j mod qq cos 2π ¨ q 2 ¨ pk ´ j mod qq ¨ π sin 2π ¨ q
γ9 j,k p0q “ ¨˝ ´ ¯‚ ´ ¨˝ ´ ¯‚
q ´ sin 2π ¨ j q cos 2π ¨ j
q q
¨ ´ ´ ¯ ¯ ˛
j j
2π ¨ pk ´ j mod qq ˝ cos 2π ¨ q ´ sin 2π ¨ q ‚
“ ¨ ´ ¯ ´ ¯
q ´ sin 2π ¨ qj ´ cos 2π ¨ qj

As i ‰ j mod q and j ‰ k mod q they are non-zero multiples of each other. The same
in out
calculation also works for γ9 i,j p1q and γ9 j,k p0q.

31
5 SINGER’S THEOREM AND VISUALIZATION

out
Remark 5.11. One should also note that the angle between γ9 circle pjq and e.g. γ9 i,j p1q
˝
is 45 for every j P N, 0 ă j ă q ´ 1.
Proof.
¨ ´ ¯ ˛

cos q ¨j 2π
γ9 circle pjq “ ˝ ´ ¯‚ ¨
´ sin 2π
¨j q
q

Now multiply γ9 circle pjq with the rotational matrix for the angle 45˝ . We ignore scalar
factors as they do not change the direction.
¨ ` ˘˛ ¨ ´ ¯ ˛ ¨ ´ ¯ ´ ¯ ˛
cos 2π cos 2π ¨ j ´ sin 2π
` ˘
cos π4 sin π4 q ¨j 1 q q ¨j
˝ ` ˘‚ ¨ ˝ ´ ¯‚ “ ? ˝ ´ ¯ ´ ¯‚
2 ´ sin 2π ¨ j ´ cos 2π ¨ j
` ˘
´ sin π4 cos π4 ´ sin 2π q ¨ j q q

out
This is a multiple of γ9 i,j p1q.

out in
Figure 19: The maps γ0,j and γ0,j , 0 ă j ă 30 with 31 points on the unit circle

in out
Knowing that γi,j and γi,j meet our requirements we can finally use them to visualize
finite projective planes. Let td0 , d1 , ..., dpe u be a distance set of a projective plane
Fpe P2 then the line that is incident to Ad0 , Ad1 , ..., Adpe will be visualized by
$


’γdout0 ,d1
ptq for 0 ă t ď 1

&γ in pt ´ 1q for 1 ă t ď 2

d1 ,d2
γtd0 ,d1 ,...,dpe u : p0, pe q Ñ R2 , t ÞÑ

’ γdout
2 ,d3
pt ´ 2q for 2 ă t ď 3
%... ..



.

i.e. every point in the distance set is the starting point for one arc that goes to the
next point and we alternate between outside and inside.

32
5 SINGER’S THEOREM AND VISUALIZATION

Figure 20: The image of γt0,1,3,8,12,18u

To plot every line in the projective plane and thus get the cyclic symmetry we wanted,
one can just increase every number in the distance set by 1 to q ´ 1 to get q different
distance sets and use different colors to distinguish the lines.

Figure 21: The whole F5 P2

33
6 SUMMARY

6. Summary
We recall the very beginning of this thesis, where we constructed our first projective
plane, the Fano plane. It will be used as an example to summarize the most important
results. We start with homogeneous coordinates. For every field K, pPK , LK , IK q is
a projective plane, with:
( (
K3 z p0, 0, 0qT K3 z p0, 0, 0qT
PK :“ , LK :“ , P IK L : ðñ xP, Ly “ 0.
K z t0u K z t0u

In fact, the smallest field F2 generates the Fano plane, as we get the seven vectors
¨ ˛ ¨ ˛ ¨ ˛ ¨ ˛ ¨ ˛ ¨ ˛ ¨ ˛
0 0 1 0 1 1 1
˝0‚, ˝1‚, ˝0‚, ˝1‚, ˝0‚, ˝1‚, ˝1‚.
1 0 0 1 1 0 1

This already contains a part of the next key result, namely that there exists a projective
plane for every finite field Fpe with p2e ` pe ` 1 points and lines and pe ` 1 points per
line and vice versa. After that we learned that there exists a collineation of period q
for every projective plane over a finite field with q points. This collineation can be
derived from a primitive polynomial of degree 3. In the F2 the polynomial x3 ` x ` 1
is primitive, thus the map ¨ ˛ ¨ ˛
a b
τ : ˝ b ‚ ÞÑ ˝a ` c‚
c a
is such a collineation. We can also see this by applying it seven times to a point:
¨ ˛ ¨ ˛ ¨ ˛ ¨ ˛ ¨ ˛ ¨ ˛ ¨ ˛ ¨ ˛
0 0 1 0 1 1 1 0
˝0‚ ÞÝ τ τ τ τ τ τ τ
Ñ ˝0‚ ÞÝ
Ñ ˝1‚ ÞÝ Ñ ˝1‚ ÞÝ Ñ ˝1‚ ÞÝÑ ˝1‚ ÞÝ Ñ ˝0‚ ÞÝ Ñ ˝0‚
1 0 0 1 0 1 1 1

The last important step was to calculate a distance set, the set of indices k such that
Ak is incident to L0 :“ A0 ˆ A1 with
¨ ˛
0
Ak “ τ k ˝0‚.
1

This leads to the distance set t0, 1, 3u for F2 . Hopefully this thesis could provide the
reader with enough knowledge of projective geometry and finite fields to embrace the
beauty of finite projective geometry.

34
7 REFERENCES

7. References
[1] Jürgen Richter-Gebert. Perspectives on Projective Geometry. Springer, 2011.
[2] Christian Karpfinger; Kurt Meyberg. Algebra. Springer, 2017.
[3] David Hilbert. Grundlagen der Geometrie. Teubner, 13 edition, 1987.
[4] James Singer. A theorem in finite projective geometry and some applications to
number theory. Transactions of the American Mathematical Society, 43(3), May
1938.
[5] J. Rifà; J. Borrell. A fast algorithm to compute irreducible and primitive polyno-
mials in finite fields. Mathematical Systems Theory, 28, 1995.
[6] Andrew Pressley. Elementary Differential Geometry. Springer, 2 edition, 2012.

35
Appendix

Appendix
Manual for the CindyJS program

One line mode: The line beginning at the point closest to the cursor will be shown.
(See Figure 20.)

All lines mode: All lines will be shown. (See Figure 21.)

Dist. set polygon mode: The distance set polygon will be shown. (See Figure 16.)

Join mode: Click on a point, then the unique line connecting this point and the
point closest to the cursor will be shown.

Meet mode: Click on a point, then the unique point of intersection of the line starting
at this point and the line starting at the point closest to the cursor will be shown.

Constructive closure mode: Click on multiple points, then the constructive closure
of these will be shown.

Change prime and exponent: Click on the box and enter a number.
Note: primeexponent should not be greater than 40.

SageMath code to calculate a distance set:


F . <s > = GF ( prime ^ exponent )
PF . <x > = F []
liste = F . list ()[1:]
for a in F . list ():
for b in F . list ():
for c in F . list ()[1:]:
poly = x ^3 - a * x ^2 - b * x - c
is_irred = true
for d in liste :
if poly ( d ) == 0:
is_irred = false
if is_irred == true :
break
Prototype_FP_2 . <t > = F . extension ( poly )
for primitive in Prototype_FP_2 :
is_primitive = true
for v in divisors ( Prototype_FP_2 . order () - 1)[0: -1]:
if primitive ^ v == 1:
is_primitive = false
if ( is_primitive == true ) & ( primitive != 0):

36
Appendix

break
for a in F . list ():
for b in F . list ():
for c in F . list ():
if primitive ^3 == a * primitive ^2 + b * primitive + c :
coords = (a ,b , c )
primitive_poly = x ^3 - a * x ^2 - b * x - c
break
Singer_FP_2 . <u > = F . extension ( primitive_poly )
a = coords [0]
b = coords [1]
c = coords [2]
lambdas = []
lambdas . append ( vector (F ,[0 ,0 ,1])) # lambda hoch 0
lambdas . append ( vector (F ,[0 ,1 ,0])) # Lambda hoch 1
lambdas . append ( vector (F ,[1 ,0 ,0])) # Lambda hoch 2
lambdas . append ( vector (F ,[ a ,b , c ])) # Lambda hoch 3
M = matrix (F ,[[ a ,1 ,0] ,[ b ,0 ,1] ,[ c ,0 ,0]])
for x in range (4 , prime ^(2* exponent ) + prime ^ exponent + 1):
lambdas . append ( M * lambdas [ -1]) # Lambda hoch x
l = vector (F ,[1 ,0 ,0]) # linie l die 0 und 1 verbindet
dist_set = [0 ,1]
for h in range (2 , prime ^(2* exponent ) + prime ^ exponent ):
if l . dot_product ( lambdas [ h ]) == 0: # lambda ^ h liegt auf l
dist_set . append ( h )
Alternative SageMath code to calculate a distance set:
if exponent == 0:
return
if exponent == 1:
F = GF ( prime )
else :
F . <s > = GF ( prime ^ exponent )
FP_2 . <t > = GF ( prime ^(3* exponent ))
FE = R e l a t i v e F i n i t e F i e l d E x t e n s i o n ( FP_2 , F )
Lambda = FP_2 . pr imitive_ element ()
coords = []
for x in range (0 , prime ^(2* exponent ) + prime ^ exponent ):
coords . append ( FE . r e l a t i v e _ f i e l d _ r e p r e s e n t a t i o n ( Lambda ^ x ))
l = coords [0]. cross_product ( coords [1])
dist_set = []
for y in range (0 , prime ^(2* exponent ) + prime ^ exponent ):
if l . dot_product ( coords [ y ]) == 0:
dist_set . append ( y )

37
Appendix

The code for the CindyJS program:


<! DOCTYPE html >
< html >
< head >
< meta charset =" UTF -8" >
< title > Finite projective planes </ title >
< script type =" text / javascript "
src =" https :// cindyjs . org / dist / latest / Cindy . js " > </ script >
< script id =" csinit " type =" text /x - cindyscript " >
// this script is called only once at initialization
distsets = [
[] ,
[0 , 1 , 3] ,
[0 , 1 , 4 , 6] ,
[0 , 1 , 4 , 14 , 16] ,
[0 , 1 , 4 , 10 , 12 , 17] ,
[] ,
[0 , 1 , 6 , 15 , 22 , 26 , 45 , 55] ,
[0 , 1 , 3 , 7 , 15 , 31 , 36 , 54 , 63] ,
[0 , 1 , 3 , 9 , 27 , 49 , 56 , 61 , 77 , 81] ,
[] ,
[0 , 1 , 8 , 14 , 30 , 45 , 47 , 56 , 66 , 106 , 109 , 129] ,
[] ,
[0 , 1 , 4 , 28 , 34 , 46 , 60 , 71 , 126 , 133 , 135 , 143 , 148 , 164] ,
[] ,
[] ,
[0 , 1 , 4 , 16 , 26 , 57 , 64 , 91 , 93 , 99 , 104 , 123 , 143 , 205 , 219 ,
228 , 256] ,
[0 , 1 , 9 , 15 , 86 , 109 , 119 , 151 , 175 , 179 , 191 , 210 , 232 , 253 ,
258 , 271 , 278 , 305] ,
[] ,
[0 , 1 , 14 , 24 , 36 , 51 , 53 , 85 , 118 , 129 , 148 , 195 , 204 , 220 ,
268 , 274 , 294 , 336 , 374 , 377] ,
[] ,
[] ,
[] ,
[0 , 1 , 12 , 14 , 31 , 68 , 73 , 88 , 91 , 190 , 228 , 234 , 238 , 260 ,
335 , 344 , 369 , 390 , 433 , 440 , 473 , 502 , 518 , 526] ,
[] ,
[0 , 1 , 12 , 20 , 27 , 29 , 50 , 92 , 158 , 206 , 239 , 276 , 307 , 310 ,
323 , 366 , 430 , 435 , 476 , 490 , 508 , 530 , 565 , 569 , 575 , 627] ,
[] ,
[0 , 1 , 58 , 97 , 112 , 147 , 196 , 272 , 316 , 319 , 323 , 350 , 375 ,
386 , 490 , 507 , 516 , 528 , 599 , 607 , 609 , 623 , 629 , 652 , 671 ,

38
Appendix

684 , 689 , 717] ,


[] ,
[0 , 1 , 4 , 41 , 49 , 63 , 74 , 102 , 154 , 192 , 209 , 222 , 364 , 366 ,
398 , 476 , 494 , 530 , 559 , 565 , 615 , 625 , 634 , 641 , 646 , 692 ,
734 , 749 , 828 , 848] ,
[] ,
[0 , 1 , 20 , 24 , 33 , 90 , 95 , 105 , 116 , 132 , 172 , 246 , 258 , 293 ,
337 , 380 , 386 , 487 , 565 , 587 , 590 , 604 , 645 , 663 , 714 , 774 ,
782 , 820 , 827 , 929 , 963 , 965] ,
[0 , 1 , 3 , 7 , 15 , 31 , 54 , 63 , 109 , 127 , 138 , 219 , 255 , 277 ,
298 ,338 , 348 , 439 , 452 , 511 , 528 , 555 , 597 , 677 , 697 , 702 ,
754 , 792 , 879 , 905 , 924 , 990 , 1023] ,
[] ,
[] ,
[] ,
[] ,
[0 , 1 , 4 , 136 , 279 , 316 , 333 , 344 , 365 , 405 , 427 , 482 , 506 ,
551 , 581 , 601 , 657 , 669 , 671 , 710 , 715 , 728 , 753 , 762 , 813 ,
840 , 920 , 953 , 968 , 1090 , 1113 , 1121 , 1187 , 1194 , 1213 ,
1223 , 1229 , 1344] ,
[] ,
[] ,
[]
];

writemode = false ;
shownprimetext = "2";
shown exponent text = "1";
p = 2;
e = 1;
q = p^e;
n = q ^2+ q +1;
positions = apply (1.. n , k ,
( sin (2* pi * k / n ) , cos (2* pi * k / n ));
);

activeMode = 1;
c1 = [0.9 ,0.9 ,0.9];
c2 = [0.9 ,0.9 ,0.9];
c3 = [0.9 ,0.9 ,0.9];
c4 = [0.9 ,0.9 ,0.9];
c5 = [0.9 ,0.9 ,0.9];
c6 = [0.9 ,0.9 ,0.9];

joinpoints = [];

39
Appendix

joinlines = [];
e x p o n e n t t e x t bo x c o l o r = [0.7 ,0.7 ,0.7];
prime textboxc olor = [0.7 ,0.7 ,0.7];
buttonPos = ( -5 ,1.5);

join (A , B ):=(
forall (1.. n , k ,
if ( contains ( distset , mod ( A - k , n )) & contains ( distset , mod ( B
- k , n )) & A != B ,
plotaline ( k );
joinline = k ;
);
);
joinline ;
);

meet (L , M ):=(
if ( L != M ,
meetpoint = L ~~ M ;
draw (( sin (( meetpoint_1 )/ n *2* pi ) , cos (( meetpoint_1 )/ n *2* pi )) ,
color - >[1 ,1 ,1] , size - >6);
,
meetpoint = [];
);
meetpoint ;
);

plotbuttons ( pos ):=(


oneLi neModeBu tton = pos ;
oneLineModeText = " One line mode ";
on eL in eMo de Te xtP os = pos + (0.15 , -0.08);

al lL in esM od eB utt on = pos + (0 , -0.3);


allLinesModeText = " All lines mode ";
a ll L i ne s Mo d eT e x tP o s = pos + (0.15 , -0.08) + (0 , -0.3);

polyModeButton = pos + (0 , -0.6);


polyModeText = " Dist . set polygon mode ";
polyModeTextPos = pos + (0.15 , -0.08) + (0 , -0.6);

joinModeButton = pos + (0 , -0.9);


joinModeText = " Join mode ";
joinModeTextPos = pos + (0.15 , -0.08) + (0 , -0.9);

meetModeButton = pos + (0 , -1.2);

40
Appendix

meetModeText = " Meet mode ";


meetModeTextPos = pos + (0.15 , -0.08) + (0 , -1.2);

cClModeButton = pos + (0 , -1.5);


cClModeText = " Constructive closure mode ";
cClModeTextPos = pos + (0.15 , -0.08) + (0 , -1.5);

drawtext ( oneLineModeTextPos , oneLineModeText );


drawtext ( allLinesModeTextPos , allLinesModeText );
drawtext ( polyModeTextPos , polyModeText );
drawtext ( joinModeTextPos , joinModeText );
drawtext ( meetModeTextPos , meetModeText );
drawtext ( cClModeTextPos , cClModeText );

draw ( oneLineModeButton , color - > c1 , size - >7);


draw ( allLinesModeButton , color - > c2 , size - >7);
draw ( polyModeButton , color - > c3 , size - >7);
draw ( joinModeButton , color - > c4 , size - >7);
draw ( meetModeButton , color - > c5 , size - >7);
draw ( cClModeButton , color - > c6 , size - >7);
);

plotsquare ( pos , len , hei , sqcolor ):=(


A = pos ; // bottom left corner
B = ( pos_1 + len , pos_2 );
C = ( pos_1 + len , pos_2 + hei );
D = ( pos_1 , pos_2 + hei );
draw (A ,B , color - > sqcolor , size - >3);
draw (B ,C , color - > sqcolor , size - >3);
draw (C ,D , color - > sqcolor , size - >3);
draw (D ,A , color - > sqcolor , size - >3);
);

dotextbox ( pos , len , hei , sqcolor , textinside , textoutside ):=(


plotsquare ( pos , len , hei , sqcolor );
drawtext ( pos + (0.07 ,0.05) , textinside );
drawtext ( pos + ( len + 0.07 , 0.05) , textoutside );
);

plotsin ( p1 , p2 , inside ):=(


if ( inside == 1 ,
plot ([(1+( mod ( p2 - p1 , n )/ n )*2* sin ( pi * t ))* sin (2* pi *( t * p2 +
(1 - t )* p1 )/ n ) , (1+( mod ( p2 - p1 , n )/ n )*2* sin ( pi * t ))*

41
Appendix

cos (2* pi *( t * p2 + (1 - t )* p1 )/ n )] , t , start - >0 , stop - >1 ,


color - > hue ( k / n ));
,
plot ([(1 -( mod ( p2 - p1 , n )/ n )*2* sin ( pi * t ))* sin (2* pi *( t * p2 + (1 -
t )* p1 )/ n ) , (1 -( mod ( p2 - p1 , n )/ n )*2* sin ( pi * t ))* cos (2* pi *( t * p2
+ (1 - t )* p1 )/ n )] , t , start - >0 , stop - >1 , color - > hue ( k / n ));
);
);

plotfastsin ( p1 , p2 , inside ):=(


if ( inside == 1 ,
if ( mod ( p2 - p1 , n ) > n /3 ,
connect (
apply (0..60 , t ,
[(1+( mod ( p2 - p1 , n )/ n )*2* sin ( pi * t /60))* sin (2* pi *( t /60* p2
+ (1 - t /60)* p1 )/ n ) , (1+( mod ( p2 - p1 , n )/ n )*2* sin ( pi * t /
60))* cos (2* pi *( t /60* p2 + (1 - t /60)* p1 )/ n )];
) , color - > hue ( k / n ) , size - >3
);
,
connect (
apply (0..20 , t ,
[(1+( mod ( p2 - p1 , n )/ n )*2* sin ( pi * t /20))* sin (2* pi *( t /20* p2
+ (1 - t /20)* p1 )/ n ) , (1+( mod ( p2 - p1 , n )/ n )*2* sin ( pi * t /
20))* cos (2* pi *( t /20* p2 + (1 - t /20)* p1 )/ n )];
) , color - > hue ( k / n ) , size - >3
);
);
,
if ( mod ( p2 - p1 , n ) > n /3 ,
connect (
apply (0..60 , t ,
[(1 -( mod ( p2 - p1 , n )/ n )*2* sin ( pi * t /60))* sin (2* pi *( t /60* p2
+ (1 - t /60)* p1 )/ n ) , (1 -( mod ( p2 - p1 , n )/ n )*2* sin ( pi * t /
60))* cos (2* pi *( t /60* p2 + (1 - t /60)* p1 )/ n )];
) , color - > hue ( k / n ) , size - >3
);
,
connect (
apply (0..20 , t ,
[(1 -( mod ( p2 - p1 , n )/ n )*2* sin ( pi * t /20))* sin (2* pi *( t /20* p2
+ (1 - t /20)* p1 )/ n ) , (1 -( mod ( p2 - p1 , n )/ n )*2* sin ( pi * t /
20))* cos (2* pi *( t /20* p2 + (1 - t /20)* p1 )/ n )];
) , color - > hue ( k / n ) , size - >3
);

42
Appendix

);
);
);
pl ot qu adr at ic cur ve ( p1 , p2 , inside ):=(
p11 = sin ( p1 / n *2* pi );
p12 = cos ( p1 / n *2* pi );
p21 = sin ( p2 / n *2* pi );
p22 = cos ( p2 / n *2* pi );
eta = sqrt (2)/2;
coeffc = p11 ;
coefff = p12 ;
if ( inside == 1 ,
adbmal = ( p22 - p12 )/(( - p11 + p12 - p21 - p22 )*( eta * pi / n ));
coeffb = (2* eta * pi / n )*( p12 + p11 )* adbmal ;
coeffe = (2* eta * pi / n )*( p12 - p11 )* adbmal ;
coeffa = ( eta * pi / n )*( p22 - p21 - p12 - p11 )* adbmal ;
coeffd = ( eta * pi / n )*( p11 - p12 - p21 - p22 )* adbmal ;
plot ([ coeffa * t ^2 + coeffb * t + coeffc , coeffd * t ^2 + coeffe * t
+ coefff ] , t , start - >0 , stop - >1 , color - > hue ( k / n ));
,
);
);

plotaline ( start ):=(


distset = distsets_q ;
if ( length ( distset ) > 1 ,
z = length ( distset ) - 1;
forall (1.. z , j ,
plotfastsin ( distset_j + start , distset_ ( j +1)+ start , mod (j ,
2));
);
);
);

plotalllines ():=(
forall (1.. n , k ,
plotaline ( k );
);
);

plotdistsetpoly ():=(
z = length ( distsets_q ) - 1;
forall (1.. z , j ,
forall ( j .. length ( distsets_q ) , l ,
if ( mod ( k + ( distsets_q_j ) , n ) == 0 ,

43
Appendix

connect ([ positions_ ( n ) , positions_ ( mod ( distsets_q_l +


k , n ))]);
,
if ( mod ( k + ( distsets_q_l ) , n ) == 0 ,
connect ([ positions_ ( mod ( distsets_q_j + k , n )) ,
positions_ ( n )]);
,
connect ([ positions_ ( mod ( distsets_q_j + k , n )) ,
positions_ ( mod ( distsets_q_l + k , n ))]);
);
);
);
);
);

</ script >


< script id =" csdraw " type =" text /x - cindyscript " >
if (| oneLineModeButton , mouse ()| < 0.13 ,
c1 = [0.8 ,0.8 ,0.8];
,
c1 = [0.9 ,0.9 ,0.9];
);

if (| allLinesModeButton , mouse ()| < 0.13 ,


c2 = [0.8 ,0.8 ,0.8];
,
c2 = [0.9 ,0.9 ,0.9];
);

if (| polyModeButton , mouse ()| < 0.13 ,


c3 = [0.8 ,0.8 ,0.8];
,
c3 = [0.9 ,0.9 ,0.9];
);

if (| joinModeButton , mouse ()| < 0.13 ,


c4 = [0.8 ,0.8 ,0.8];
,
c4 = [0.9 ,0.9 ,0.9];
);

if (| meetModeButton , mouse ()| < 0.13 ,


c5 = [0.8 ,0.8 ,0.8];
,
c5 = [0.9 ,0.9 ,0.9];

44
Appendix

);

if (| cClModeButton , mouse ()| < 0.13 ,


c6 = [0.8 ,0.8 ,0.8];
,
c6 = [0.9 ,0.9 ,0.9];
);

plotbuttons ( buttonPos );
dotextbox ([ -5.125 , -0.43] ,0.5 ,0.25 ,
primetextboxcolor , shownprimetext , " prime ");
dotextbox ([ -5.125 , -0.73] ,0.5 ,0.25 ,
exponenttextboxcolor , shownexponenttext , " exponent ");
drawtext ([ -5.125 , -1.03] , " Dist . set : " + distsets_q );

if ( activeMode == 2 ,
draw ( allLinesModeButton , color - >[0 ,0 ,0] , size - >3);
plotalllines ();
forall (1.. n , k ,
p = positions_k ;
draw (p , color - > hue ( k / n ) , size - >4);
);
);

if ( activeMode == 3 ,
draw ( polyModeButton , color - >[0 ,0 ,0] , size - >3);
if (| mouse ()| < 2 ,
alpha = - arctan2 ( mouse ()) + pi /2;
if ( alpha < 0 ,
alpha = alpha + 2* pi ;
);
k = mod ( round ( alpha /(2* pi ) * n ) , n );
alpha = k ;
plotdistsetpoly ();
forall (1.. n , k ,
p = positions_k ;
draw (p , color - > hue ( k / n ) , size - >4);
);
);
);

if ( activeMode == 1 ,
forall (1.. n , k ,
p = positions_k ;
draw (p , color - > hue ( k / n ) , size - >4);

45
Appendix

);
draw ( oneLineModeButton , color - >[0 ,0 ,0] , size - >3);
if (| mouse ()| < 2 ,
alpha = - arctan2 ( mouse ()) + pi /2;
if ( alpha < 0 ,
alpha = alpha + 2* pi ;
);
k = mod ( round ( alpha /(2* pi ) * n ) , n );
alpha = k ;
plotaline ( k );
draw ( positions_k , color - >[0 ,0 ,0] , size - >1);
forall (1.. length ( distset ) , l ,
if ( mod ( k + ( distset_l ) , n ) == 0 ,
draw ( positions_n , color - > hue (0) , size - >6);
,
draw ( positions_ ( mod ( k + ( distset_l ) , n )) , color - >
hue ( mod ( k + ( distset_l ) , n )/ n ) , size - >6);
);
);
);
);

if ( activeMode == 4 ,
draw ( joinModeButton , color - >[0 ,0 ,0] , size - >3);
if (| mouse ()| < 2 ,
alpha = - arctan2 ( mouse ()) + pi /2;
if ( alpha < 0 ,
alpha = alpha + 2* pi ;
);
alpha = mod ( round ( alpha /(2* pi ) * n ) , n );
distset = distsets_q ;
join ( alpha , joinpoint );
);
forall (1.. n , k ,
p = positions_k ;
draw (p , color - > hue ( k / n ) , size - >4);
);
draw (( sin ( joinpoint / n *2* pi ) , cos ( joinpoint / n *2* pi )) , color -
>[1 ,1 ,1] , size - >6);
draw (( sin ( alpha / n *2* pi ) , cos ( alpha / n *2* pi )) , color - > hue ( alpha /
n ) , size - >6);
);

if ( activeMode == 5 ,
k = meetline ;

46
Appendix

plotaline ( k );
draw ( meetModeButton , color - >[0 ,0 ,0] , size - >3);
if (| mouse ()| < 2 ,
alpha = - arctan2 ( mouse ()) + pi /2;
if ( alpha < 0 ,
alpha = alpha + 2* pi ;
);
k = mod ( round ( alpha /(2* pi ) * n ) , n );
alpha = k ;
plotaline ( k );
meetdistset = distsets_q ;
forall (1.. length ( meetdistset ) , l ,
meetdistset_l = mod ( meetdistset_l + k , n );
);
forall (1.. n , k ,
p = positions_k ;
draw (p , color - > hue ( k / n ) , size - >4);
);
meet ( meetlinedistset , meetdistset );
);
);

if ( activeMode == 6 ,
forall (1.. n , k ,
p = positions_k ;
draw (p , color - > hue ( k / n ) , size - >4);
);
draw ( cClModeButton , color - >[0 ,0 ,0] , size - >3);
if (| mouse ()| < 2 ,
alpha = - arctan2 ( mouse ()) + pi /2;
if ( alpha < 0 ,
alpha = alpha + 2* pi ;
);
alpha = mod ( round ( alpha /(2* pi ) * n ) , n );
);
forall ( joinlines , jline ,
k = jline ;
plotaline ( k );
);
forall ( meetpoints , jpoint ,
if ( contains ( joinpoints , jpoint ) ,
draw (( sin ( jpoint / n *2* pi ) , cos ( jpoint / n *2* pi )) , color -
>[1 ,1 ,1] , size - >6);
,
draw (( sin ( jpoint / n *2* pi ) , cos ( jpoint / n *2* pi )) , color -

47
Appendix

> hue ( jpoint / n ) , size - >6);


);
);
if (| mouse ()| < 2 ,
draw (( sin ( alpha / n *2* pi ) , cos ( alpha / n *2* pi )) , color -
> hue ( alpha / n ) , size - >6);
);
);
</ script >

< script id =" csmouseclick " type =" text /x - cindyscript " >

if ( activeMode == 6 ,
if (| mouse ()| < 2 ,
if ( contains ( joinpoints , alpha ) ,
joinpoints = remove ( joinpoints , [ alpha ]);
meetpoints = joinpoints ;
joinlines = [];
,
joinpoints = append ( joinpoints , alpha );
meetpoints = joinpoints ;
joinlines = [];
);
distset = distsets_q ;
forall (1.. q , i ,
forall (1.. length ( meetpoints ) , mpoint ,
forall (( mpoint + 1).. length ( meetpoints ) , mpoint2 ,
joinline = join ( meetpoints_mpoint ,
me et po int s_mp oin t2 );
if ( contains ( joinlines , joinline ) == false ,
joinlines = append ( joinlines , joinline );
);
);
);
forall (1.. length ( joinlines ) , jline ,
forall (( jline +1).. length ( joinlines ) , jline2 ,
jlinedistset = distset ;
forall (1.. length ( jlinedistset ) , l ,
jlinedistset_l = mod ( jlinedistset_l +
joinlines_jline , n );
);
jline2distset = distset ;
forall (1.. length ( jline2distset ) , l ,
jline2distset_l = mod ( jline2distset_l +
joinlines_jline2 , n );

48
Appendix

);
meetpoint = meet ( jlinedistset , jline2distset );
if ( contains ( meetpoints , meetpoint_1 ) == false ,
meetpoints = append ( meetpoints , meetpoint_1 );
);
);
);
);
);
);

if ( activeMode == 5 ,
meetlinedistset = meetdistset ;
meetline = k ;
);

if ( activeMode == 4 ,
joinpoint = alpha ;
meetpoints = [];
joinlines = [];
joinpoints = [];
);
if (| oneLineModeButton , mouse ()| < 0.13 ,
activeMode = 1;
meetpoints = [];
joinlines = [];
joinpoints = [];
);

if (| allLinesModeButton , mouse ()| < 0.13 ,


activeMode = 2;
meetpoints = [];
joinlines = [];
joinpoints = [];
);

if (| polyModeButton , mouse ()| < 0.13 ,


activeMode = 3;
meetpoints = [];
joinlines = [];
joinpoints = [];
);

if (| joinModeButton , mouse ()| < 0.13 ,


activeMode = 4;

49
Appendix

meetpoints = [];
joinlines = [];
joinpoints = [];
);

if (| meetModeButton , mouse ()| < 0.13 ,


activeMode = 5;
meetpoints = [];
joinlines = [];
joinpoints = [];
);

if (| cClModeButton , mouse ()| < 0.13 ,


activeMode = 6;
meetpoints = [];
joinlines = [];
joinpoints = [];
);

if (( mouse (). xy ) _1 >= -5.125 & ( mouse (). xy ) _1 <= ( -5.125 + 0.5) ,
if (( mouse (). xy ) _2 >= -0.43 & ( mouse (). xy ) _2 <= ( -0.43 + 0.25) ,
joinpoints = [];
meetlinedistset = [];
meetline = [];
meetpoints = [];
joinlines = [];
exponenttext = sh ownexpon enttext ;
e = parse ( exponenttext );
q = p^e;
n = q ^2 + q + 1;
positions = apply (1.. n , k ,
( sin (2* pi * k / n ) , cos (2* pi * k / n ));
shownprimetext = "";
write modeexpo nent = false ;
prime textboxc olor = [0.25 ,0.25 ,0.25];
e x p o n e n t t e x t bo x c o l o r = [0.7 ,0.7 ,0.7];
writemodeprime = true ;
,
if (( mouse (). xy ) _2 >= -0.73 & ( mouse (). xy ) _2 <= ( -0.73 +
0.25) ,
joinpoints = [];
meetlinedistset = [];
meetline = [];
meetpoints = [];
joinlines = [];

50
Appendix

primetext = shownprimetext ;
p = parse ( primetext );
q = p^e;
n = q ^2 + q + 1;
positions = apply (1.. n , k ,
( sin (2* pi * k / n ) , cos (2* pi * k / n ));
shown exponent text = "";
writemodeprime = false ;
prime textboxc olor = [0.7 ,0.7 ,0.7];
e x p o n e n t t e x tb o x c ol o r = [0.25 ,0.25 ,0.25];
write modeexpo nent = true ;
,
primetext = shownprimetext ;
exponenttext = shownexpon enttext ;
e = parse ( exponenttext );
p = parse ( primetext );
q = p^e;
n = q ^2 + q + 1;
positions = apply (1.. n , k ,
( sin (2* pi * k / n ) , cos (2* pi * k / n ));
writemodeprime = false ;
prime textboxc olor = [0.7 ,0.7 ,0.7];
e x p o n e n t t e x tb o x c ol o r = [0.7 ,0.7 ,0.7];
write modeexpo nent = false ;
);
);
,
writemodeprime = false ;
prime textboxc olor = [0.7 ,0.7 ,0.7];
e x p o n e n t t e x tb o x c o l o r = [0.7 ,0.7 ,0.7];
write modeexpo nent = false ;
);

</ script >


< script id =" cskeytyped " type =" text /x - cindyscript " >

if ( writemodeprime == true ,
shownprimetext = shownprimetext + key ();
e = parse ( shown exponent text );
p = parse ( shownprimetext );
q = p^e;
n = q ^2 + q + 1;
positions = apply (1.. n , k ,
( sin (2* pi * k / n ) , cos (2* pi * k / n ));
);

51
Appendix

if ( writ emodeexp onent == true & length ( show nexponen ttext ) < 1 ,
shown exponent text = showne xponentt ext + key ();
e = parse ( shown exponent text );
p = parse ( shownprimetext );
q = p^e;
n = q ^2 + q + 1;
positions = apply (1.. n , k ,
( sin (2* pi * k / n ) , cos (2* pi * k / n ));
);

</ script >

< script type =" text / javascript " >


CindyJS ({
scripts : " cs *" ,
geometry : [] ,
ports : [
{ id : " CSCanvas " , width : 1500 , height : 1500 , transform : [ {
visibleRect : [ -5.5 , 0 , 3 , -4] } ] , background :
" rgb (255 ,255 ,255)" } ] ,
});
</ script >
</ head >
< body >
< canvas id =" CSCanvas " > </ canvas >
</ body >
</ html >

52

Das könnte Ihnen auch gefallen