Some Tikz pictures

Most LaTeX-ers know about Tikz, which allows the user to create images in LaTeX without having to embed images created from an external program. The main advantages are that

  1. The ambient LaTeX fonts are used in the image, so labels and such conform to the ambient style of the document.
  2. The size of the .tex file is kept small, since it is only text you are creating.
  3. It yields a picture that is smooth and that looks good upon zooming in (i.e., the resolution of the picture is good).
  4. It is functional code so that you can automate the drawing of many pictures by giving commands such as “draw a line between these two points”.

The main disadvantage, is that there is a steep learning curve. The best way to learn is through examples, and even though I’m still a hack, my tikz code has improved via my copying segments of other people’s code. For geometry, there isn’t much out there, so I thought that I would dump some images here. Below are some Tikz pictures of configurations in finite geometry that I’ve collected and think should be available for everyone else to use. A big thanks to Stephen Glasby who went to a lot of trouble to make the two generalised hexagons of order 2. If you have suggestions on how I can simplify my code, please let me know.

Desargues’ configuration, two ways


\tikzstyle{point1}=[ball color=cyan, circle, draw=black, inner sep=0.1cm]
\tikzstyle{point2}=[ball color=green, circle, draw=black, inner sep=0.1cm]
\tikzstyle{point3}=[ball color=red, circle, draw=black, inner sep=0.1cm]
\node (v1) at (0,8) [ball color=blue, circle, draw=black, inner sep=0.1cm] {};
\node (v2) at (0,6) [point1] {};
\node (v3) at (2,5.5) [point1] {};
\node (v4) at (1.5,4) [point1] {};
\node (v5) at (0,0) [point2] {};
\node (v6) at (2.75*2,8-2.75*2.5) [point2] {};
\node (v7) at (1.5*1.5,8-1.5*4) [point2] {};
\draw (v1) -- (v2) -- (v5);
\draw (v1) -- (v3) -- (v6);
\draw (v1) -- (v4) -- (v7);
\draw (v2) -- (v3) -- (v4) -- (v2);
\draw (v5) -- (v6) -- (v7) -- (v5);
\node (v8) at (intersection of v2--v3 and v5--v6) [point3] {};
\node (v9) at (intersection of v2--v4 and v5--v7) [point3] {};
\node (v10) at (intersection of v3--v4 and v6--v7) [point3] {};
\draw (v3) -- (v8) -- (v6);
\draw (v4) -- (v9) -- (v7);
\draw (v4) -- (v10) -- (v7);
\draw (v8) -- (v9) -- (v10);

… and the second one:

\tikzstyle{point} = [ball color=black, circle,  draw=black, inner sep=0.1cm]
\foreach\x in {0, 72, 144, 216, 288}{
      \coordinate (o1) at (-0.588, -0.809);
      \coordinate (o2) at (0.588, -0.809);
      \coordinate (c1) at (-1.1, 4.6);
      \coordinate (c2) at (1.1, 4.6);
      \coordinate (o3) at (0, 3.236);
      \draw[color=black] (o3) -- (3.236*-0.588, 3.236*-0.809);
      \draw[color=blue] (o1) ..  controls (c1) and (c2) ..  (o2);
\foreach\x in {0, 72, 144, 216, 288}{
      \coordinate (o2) at (0.588, -0.809);
      \coordinate (o3) at (0, 3.236);
      \fill[point] (o2) circle (2pt);
      \fill[point] (o3) circle (2pt);

The generalised quadrangle of order 2

I think Gordon gave me the original tikz code for this and then I tweaked it.

\tikzstyle{point}=[ball color=magenta, circle, draw=black, inner sep=0.1cm]
\foreach \x in {18,90,...,306}{
\node [point] (t\x) at (\x:2.65){};
\foreach \x in {54,126,...,342}{
\draw [color=blue, double=green](\x:1cm) circle (1.17557cm);
\fill [white] (0,0) circle (1cm);
\foreach \x in {54,126,...,342}{
\node[point] (i\x) at (\x:1cm) {};
\node[point] (o\x) at (\x:2.17557cm) {};

\draw [color=blue,double=green] (t90)--(o126)--(t162)--(o198)--(t234)--(o270)--(t306)--(o342)--(t18)--(o54)--(t90);
\draw (t90)--(i270)--(o270);
\draw (t162)--(i342)--(o342);
\draw (t234)--(i54)--(o54);
\draw (t306)--(i126)--(o126);
\draw (t18)--(i198)--(o198);

The two generalised hexagons of order 2

These pictures were originally drawn by Schroth in his 1999 paper, and then appeared in Burkard Polster’s book “A geometrical picture book”.


    \foreach\n in {0, 1,..., 6}{
        \coordinate (a0) at (10,0);
        \coordinate (b0) at (7,0);
        \coordinate (c0) at (1.45,0);
        \coordinate (d0) at (4.878,-0.4878);
        \coordinate (e0) at (2.1729,0.37976);
        \coordinate (f0) at (1.45,0.612);
        \coordinate (g0) at (2.78,-0.585);
        \coordinate (h0) at (4.074,0.7846);
        \coordinate (i0) at (6.0976,2.9268);
        \foreach\k in {1, 2,..., 6}{
          \foreach\p in {a,b,c,d,e,f,g,h,i}{
            \coordinate (\p\k) at ($ (0,0)!1! \k*51.4286:(\p0) $);
        \draw[thick,blue] (a0)--(b0)--(c0);
        \draw[thick,blue] (d0)--(e0)--(f0);
        \draw[thick,black] (g0)--(h0)--(i0);
        \draw[thick,black] (a0)--(g1)--(a3);
        \draw[thick,green] (i0)--(d1)--(i2);
        \draw[thick,black] (c0)--(g3)--(d3);
        \draw[thick,color=purple] (b0) .. controls (5.7,-1.8) and (4.6,-2.2)
           .. (h6) .. controls (1.5,-3.2) and (-1,-2.4) .. (e4);
        \draw[thick,black] (b0)--(h0)--(e2);
        \draw[thick,purple] (f6)--(c0)--(f0);
        \foreach\k in {1, 2,..., 6}{
          \foreach\p in {a,b,c,d,e,f,g,h,i}{
            \draw[fill] (\p\k) circle [radius=0.12];



  \foreach\n in {0, 1,..., 6}{
        \coordinate (a0) at (85,0);
        \coordinate (b0) at (55,0);
        \coordinate (c0) at (12.5,0);
        \coordinate (d0) at (8.5,1.3);
        \coordinate (e0) at (16.2,9);
        \coordinate (f0) at (30,14.3);
        \coordinate (g0) at (26.6,17.0);
        \coordinate (h0) at (26.3,22.4);
        \coordinate (i0) at (29.5,28);
        \foreach\k in {1, 2,..., 6}{
          \foreach\p in {a,b,c,d,e,f,g,h,i}{
            \coordinate (\p\k) at ($ (0,0)!1! \k*51.4286:(\p0) $);
        \draw[thick,black] (a0)--(e1)--(a3);
        \draw[thick,green] (b0)--(h0)--(b2);
        \draw[thick,purple] (f0)--(g0)--(f1);
        \draw[thick,blue] (h0)--(i0)--(a1);
        \draw[thick,purple] (h6)--(c0)--(d0);
        \draw[thick,purple] (f0)--(e0)--(i3);
        \draw[thick,black] (b0)--(i6)--(g6);
        \draw[thick,color=blue] (g0) .. controls (27,2) and (17,-5)
           .. (d6) .. controls (-7,-5) and (-5,-5) .. (c3);
        \draw[thick,color=blue] (c0) .. controls (16,3) and (17,5)
           .. (e0) .. controls (15,13) and (8,15) .. (d1);
        \foreach\k in {1, 2,..., 6}{
          \foreach\p in {a,b,c,d,e,f,g,h,i}{
            \draw[fill] (\p\k) circle [radius=1.1];

The first is the Split Cayley hexagon as it is usually given, whilst the second is its dual.


The projective plane of order 2


\tikzstyle{point}=[ball color=cyan, circle, draw=black, inner sep=0.1cm]
\node (v7) at (0,0) [point] {};
\draw (0,0) circle (1cm);
\node (v1) at (90:2cm) [point] {};
\node (v2) at (210:2cm) [point] {};
\node (v4) at (330:2cm) [point] {};
\node (v3) at (150:1cm) [point] {};
\node (v6) at (270:1cm) [point] {};
\node (v5) at (30:1cm) [point] {};
\draw (v1) -- (v3) -- (v2);
\draw (v2) -- (v6) -- (v4);
\draw (v4) -- (v5) -- (v1);
\draw (v3) -- (v7) -- (v4);
\draw (v5) -- (v7) -- (v2);
\draw (v6) -- (v7) -- (v1);


The Minister for Education (finally) announced the ARC Future Fellowships commencing in 2013 this morning, and simultaneously, the DECRA’s and Discovery Projects. Our research group missed out on a grant of the first and second kind, but we had success with two Discovery Projects:

  1. Cheryl Praeger, Stephen Glasby, and Alice Niemeyer (“Finite linearly representable geometries & symmetries).
  2. Gordon (“Real chromatic roots of graphs & matroids”)

I remember last summer when both grant applications were being written, and it was a lot of work for all involved, so it’s great to see that both have awarded to support cutting edge research.

Using “atlasrep” to find maximal subgroups

One of the things I do most often in the computer algebra software GAP is call for subgroups, and in particular, maximal subgroups of a classical group. There is work in progress (John Bray, Derek Holt, Colva Roney-Dougal) to have the maximal subgroups of low-dimensional classical groups available in GAP and Magma, but for the moment, there is a neat way to have access to these subgroups using the atlasrep package (developed by Robert Wilson, Richard Parker, Simon Nickerson, John Bray, Thomas Breuer).

In short, the atlasrep package allows the user to access permutation and matrix representations of almost simple groups that are in the online Atlas of Finite Group Representations. I often need a one-line command to get the maximal subgroups of a group that is in the ‘atlas’, and so I’ve fashioned my own little function, and I thought I should share it:

AtlasMaximalSubgroups := function( name )
  local tocs, gapname, numbers, maxs;
  if AtlasOfGroupRepresentationsInfo.remote = true  then
     tocs := AtlasTableOfContents( "remote" ).TableOfContents;
     tocs := AtlasTableOfContents( "local" ).TableOfContents;
  gapname := First( AtlasOfGroupRepresentationsInfo.GAPnames, pair -> pair[1] = name );
  gapname := gapname[2];
  numbers := List(tocs!.(gapname)!.maxes, t -> t[2]);
  maxs := List(numbers, t -> AtlasSubgroup(name, t));
  return maxs;

To use it, here is an example for PSp(6,2) (which is called “S6(2)” in the ‘atlas’ world), which GAP will struggle to do without using atlasrep:

gap> LoadPackage("atlasrep");
gap> group := AtlasGroup( "S6(2)" );
gap> maximals := AtlasMaximalSubgroups( "S6(2)" );
gap> Index(group, maximals[3]);

Transitive projective planes

A little while ago, Gordon wrote about a conjecture about projective planes whose automorphism group acts transitively on points. It is thought that the Desarguesian planes are the only examples.

The best results on groups acting on projective planes in the last five years are due solely to Nick Gill, and he has recently posted a preprint to the arxiv containing an astonishing result. Gill’s work seems to have not gained the profile it deserves and so we want to make special mention of his main theorems (n.b., O(G) is the largest odd-order normal subgroup of G):

Theorem A: Suppose that a group G acts transitively on the set of points of a finite non-Desarguesian projective plane. Then the rank of the largest elementary-abelian 2-subgroup of G is at most 1.

Theorem B: Suppose that a group G acts transitively on the set of points of a non-Desarguesian projective plane. Then we have the following possibilities:

  1. G has a normal 2-complement (and so G is soluble).
  2. G/O(G) is isomorphic to SL_2(3) or to a non-split degree 2 extension
    of SL_2(3) (and so G is soluble).
  3. G = O(G) : SL_2(5) or G = (O(G) : (SL_2(5)).2

So to summarise, if a group G acts transitively on a finite non-Desarguesian projective plane, then the Sylow 2-subgroups of G are cyclic or generalized quaternion, and if G is insoluble, then G/O(G) is isomorphic to SL_2(5) or SL_2(5).2.

Well done Nick!

Irreducible cyclic groups of classical groups

One of the most useful things to know about the finite general linear group GL(d, q) are the Singer cycles, what they do and what they are about. A subgroup G of GL(d, q) is irreducible if it fixes no proper nontrivial subspace of the vector space GF(q)^d, in the natural action of G on this vector space. Consider GF(q^d) as a vector space over its subfield GF(q). Then the multiplicative group S:=GF(q^d)\backslash\{0\} acts on the nonzero vectors of GF(q^d) by right multiplication, and this action is clearly regular. But what about similar elements in the classical groups?

An important map in the following will be the relative trace map Tr_{q^d\to q^i}:GF(q^d)\to GF(q^i), where i divides d, and it is defined by

Tr_{q^d\to q^i}(x) = \sum_{j=0}^{d/i-1}x^{(q^i)^j}. Continue reading “Irreducible cyclic groups of classical groups”

Commuting graphs of groups

Over the summer I have had the pleasure of supervising a vacation student Aedan Pope. This is a program funded by the Australian Mathematical Sciences Institute which allows maths students to spend 6 weeks working on a project in the summer vacation (usually after third year) and also funds a trip to Sydney for the student to go to the CSIRO‘s Big Day In.

Aedan Pope’s research project focussed on commuting graphs of groups and we have just submitted a paper  with the results. It is available on the arxiv. I will outline the work here.

Given a group G, the commuting graph of G is the graph whose vertices are the elements of G which do not lie in the centre of G and two vertices are adjacent if they commute.  The commuting graph of a group appears to have first been studied in Brauer and Fowler’s paper `On groups of even order‘. Though they don’t actually use the words “commuting graph” they do study the distance between two elements of the group in what would be the commuting graph.

My interest in commuting graphs was piqued by the paper `On the commuting graph associated with the symmetric and alternating groups‘ by Iranmanesh and Jafarzadeh. This paper shows that when the commuting graph of the alternating group is connected it has diameter at most 5.  They also make the following conjecture:

There is an absolute constant c such that if the commuting graph of a finite group is connected, it has diameter at most c.

Continue reading “Commuting graphs of groups”

Projective Planes I : PG(2,q)

This is an elementary description of the finite desarguesian projective plane {PG(2,q)} and its automorphism group {P\Gamma L(3,q)}. I needed to explain this to a non-combinatorialist, so thought I would just add it to the blog. The required background is just elementary linear algebra, elementary group theory and the concepts of a finite field and an incidence structure.

We start with the finite field {GF(q)} where {q = p^h} is necessarily some power of a prime {p}. An automorphism of a field is a permutation {\sigma} of the field elements such that

\displaystyle  \sigma(x+y) = \sigma(x)+\sigma(y) \qquad \sigma(xy) = \sigma(x)\sigma(y)

and the collection of all automorphisms forms a group. The automorphism group of {GF(p^h)} is the cyclic group {C_h} of order {h} generated by the automorphism {\rho: x \rightarrow x^p}.

Next we construct the three-dimensional vector space {V = GF(q)^3} with vectors being triples of elements of {GF(q)} which we shall view as row-vectors. If {A} is an invertible matrix with entries in {GF(q)}, then the map {v \rightarrow vA} is a permutation of {V} (fixing {0}). The collection of all such invertible matrices forms a group called the general linear group and denoted {GL(3,q)}. We can build a matrix in {GL(3,q)} by picking an arbitrary non-zero vector {v_1} for the first row, then choosing any vector {v_2} that is not a multiple of {v_1} for the second row and then any vector {v_3} not in the span of {\{v_1, v_2\}} for the third row. Therefore the order of the general linear group is given by

\displaystyle  |GL(3,q)| = (q^3-1)(q^3-q)(q^3-q^2).

Continue reading “Projective Planes I : PG(2,q)”

Up ↑