Dedekind tessellation on the Poincaré disk

This is a continuation from Dedekind tessellation or circles all the way down. I am studying the very interesting paper by J. Kocik, aka Jurek, “A note on the Dedekind tessellation”. It is a pity that the paper is unpublished. I am not sure how much of its content I am allowed to reveal. I will take a risk and reveal just one goodie from this paper.

Here is the goodie:

Dedekind tessellation on the Poincaré disk and its neighborhood. Based on Ä note on the Dedekind tessellation”by J. Kocik.
Click on the image to open in full resolution.

And I will explain now how I produced this picture.

As I have explained it in Dedekind tessellation or circles all the way down, we have a nice tessellation of the upper half-plane. The upper half-plane is tessellated by circles which, in hyperbolic geometry are “straight lines”. Using Cayley transform we can move these circles to the unit disk. Kocik, in his paper, gives the algorithm for constructing the centers and the radii of these circles. I used Mathematica to implement this algorithm as follows:

Mathematica implementation based on Kocik’s algorithm

I did not follow exactly Kocik’s algorithm. Moreover I have rotated the data from his paper by 90 degrees, so that it agrees with the Cayley transform I was using before. I stored the list of positions and radii of the circles that I was using in a file: c200.m.

The red circle is the unit circle. Strictly speaking the Dedekind tessellation should be restricted to the inside of the unit circle. But It is amazing to plot the circles also in the outside region. After all the unit circle is just a boundary between two universes. Why should we restrict ourselves to only one side? The universe we are living in is, perhaps, also a boundary between different multidimensional universes of hyperdimensional physics.

Dedekind tessellation or circles all the way down

“Turtles all the way down” is an expression of the infinite regress problem in cosmology posed by the “unmoved mover” paradox. The metaphor in the anecdote represents a popular notion of the model that Earth is actually flat and is supported on the back of a World Turtle, which itself is propped up by a column of turtles.[1] Questioning what the final turtle might be standing on, the anecdote humorously concludes that it is “turtles all the way down”

The above quote comes from the Wikipedia entry Turtles all the way down

It is illustrated by the following story

Turtles all the way down

After a lecture on cosmology and the structure of the solar system, William James was accosted by a little old lady.

“Your theory that the sun is the centre of the solar system, and the earth is a ball which rotates around it has a very convincing ring to it, Mr. James, but it’s wrong. I’ve got a better theory,” said the little old lady.

“And what is that, madam?” Inquired James politely.

“That we live on a crust of earth which is on the back of a giant turtle,”

Not wishing to demolish this absurd little theory by bringing to bear the masses of scientific evidence he had at his command, James decided to gently dissuade his opponent by making her see some of the inadequacies of her position.

“If your theory is correct, madam,” he asked, “what does this turtle stand on?”

“You’re a very clever man, Mr. James, and that’s a very good question,” replied the little old lady, “but I have an answer to it. And it is this: The first turtle stands on the back of a second, far larger, turtle, who stands directly under him.”

“But what does this second turtle stand on?” persisted James patiently.

To this the little old lady crowed triumphantly. “It’s no use, Mr. James – it’s turtles all the way down.”
—J. R. Ross, Constraints on Variables in Syntax 1967

The Dedekind tessellation is a mathematical version of the flat Earth and turtles all the way down. Instead of the flat Earth we have the Poincaré disk, and instead of turtles we have circles – all the way down.

It is beautifully shown in the graphics taken from web pages of prof. J. Kocik from Department of Mathematics Southern Illinois University at Carbondale.

Dedekind tessellation on the Poincaré disk

I have mentioned this subject at the end of Geodesics on the upper half-plane – parametrization, two days ago. In the meantime prof. Kocik was kind enough to send me his unpublished paper “A note on the Dedekind tessellation“. Looking inside I have found that I have made a mistake in my Mathematica program that was supposed to create my own version of the tessellation. After fixing my mistake (I have forgotten one term in my formula for the centers of the circles) I was able to create my own poor man version of the Dedekind tessellation (Kocik gives a simple method of computing the centers and the radii of all circles in the Dedekind tessellation!), and here I am going to explain, in details, how I did it.

Here is my final result that is a poor imitation of the beautiful and clever Kocik’s interactive graphics:

Fig. 1: Dedekind tessellation. Click on the image to open the full size version.

Instead of the disk it is better to use the upper half-plane, where the group SL(2,R) acts by fractional linear transformations. Let me recall the action. With

(1)   \begin{equation*}A=\begin{bmatrix}\alpha&\beta\\ \gamma&\delta\end{bmatrix}\end{equation*}

the action on the upper half-plane, the set of complex numbers z with \mathrm{Im}(z)>0, is given by

(2)   \begin{equation*}A:z\mapsto A\cdot z=\frac{\delta z+\gamma}{\beta z+\alpha}.\end{equation*}

Remark: In many places a different convention is being used, with A\cdot z defined as (\alpha z+\beta)/(\gamma z +\delta). There is a simple relation between the two actions: we can obtain one action from another by composing it with the similarity transformation A\mapsto \left[\begin{smallmatrix}0&1\\1&0\end{smallmatrix}\right]A\left[\begin{smallmatrix}0&1\\1&0\end{smallmatrix}\right].

The group SL(2,R) has a discrete subgroup SL(2,Z), often called the modular group, the group of 2\times 2 matrices with entries that are integers. For instance the following two matrices:

(3)   \begin{equation*}S=\begin{bmatrix}0&-1\\1&0\end{bmatrix},\quad T=\begin{bmatrix}1&0\\1&1\end{bmatrix}.\end{equation*}

In his online notes on SL(2,Z) Keith Conrad ( I recommend watching the great illusion on one of his web pages) shows that these two matrices generate (by taking inverses and products) the whole group SL(2,Z). In fact his T is transposed to the one above, but that does not matter.

Dedekind tessellation of the upper half-plane is an analogue of the tessellation of the usual Euclidean plane into squares of unit side length. All the plane can be nicely covered by translations of just one square, namely by translations by an integer amount in horizontal and vertical direction. In the case of the upper half-plane instead of a square we have a triangle, so called fundamental domain. In the picture below, taken from Condrad’s \mathrm{SL}_2(\mathbf{Z}) paper, we see the (grayed) standard fundamental domain consisting of complex numbers z with |z|\geq 1 and -1/2\leq \mathrm{Re}(z)\leq 1/2.

Fundamental domain for SL(2,Z)

Sure it does not look like a triangle, but it is a triangle, with the top vertex at infinity! The bottom side is a part of the unit circle – therefore a geodesic in the hyperbolic geometry we are dealing with.

By acting on this one triangle with matrices from the group SL(2,Z) we can nicely triangulate the whole upper half-plane – that is called the Dedekind tessellation. In Wikipedia article on Modular Group, in the section on Tessellation of the hyperbolic plane, it is accompanied with the following image:

Wikipedia Dedekind tessellation

Looking at this image it occurred to me that instead of acting on the fundamental domain I can as well act on the unit half-circle and on the two vertical lines. In order to do this I need a formula how elements of SL(2,Z) transform the unit circle and the two vertical lines. And I am interested in the resulting circles, I do not care about vertical lines as they do not add much to the tessellation. Using mathematical software (I use Mathematica most of the time) the task was not too difficult.

Suppose we have a circle of radius r_0 with center at x_0 on the real axis. We apply the transformation z\mapsto A\cdot z to this circle using matrix A in SL(2,R). The result is, as it can be verified without much difficulty using any computer algebra software, the circle (x_1,r_1) with

(4)   \begin{equation*}x_1= \frac{-\alpha  \gamma +\beta  \delta  r_0^2-\beta  \delta  x_0^2-\alpha  \delta  x_0-\beta  \gamma  x_0}{-\alpha ^2+\beta ^2 r_0^2-\beta ^2 x_0^2-2 \alpha  \beta x_0},\end{equation*}

(5)   \begin{equation*} r_1=\frac{r_0}{|\alpha^2+\beta^2 \left(x_0^2-r_0^2\right)+2 \alpha  \beta  x_0|} \end{equation*}

We are interested in transformations of one particular circle with x_0=0 and r_0=1. Then the formulas simplify:

(6)   \begin{equation*} x_1=\frac{\beta  \delta -\alpha  \gamma }{\beta ^2-\alpha ^2}, \end{equation*}

(7)   \begin{equation*} r_1=\frac{1}{|\alpha ^2-\beta ^2|}. \end{equation*}

Of course we are interested only in the cases where the denominator is non zero.

Now suppose we have a vertical line at x_0. It is transformed into a circle (x_1,r_1) with

(8)   \begin{equation*}x_1=\frac{\alpha  \delta +\beta  \gamma +2 \beta  \delta  x_0}{2 \beta  (\alpha +\beta  x_0)},\end{equation*}

(9)   \begin{equation*} r_1=\frac{1}{2 |\beta (\alpha +\beta  x_0)|}. \end{equation*}

We are interested in two cases x_0=\pm 1/2, and only when the denominator is non zero.

Using generators S,T above, taking their inverses and products, in different orders, I generated 35416 SL(2,Z) matrices. They can be downloaded as the file sl2.zip. The file has the format:

\{\{\{0, 1\},	\{-1, -17\}\},....,\}

Separate matrices look as \{\{\alpha, \beta\},\{\gamma,\delta\}\}.

I will describe now, step by step, how i have created Fig. 1 above, using Mathematica. It is certainly not an optimal way, but my description may help to understand how to create Dedekind tessellation using different methods.

m=Import[“H:/sl2z.m”];

x1[a_]:=(a[[1]][[2]]*a[[2]][[2]]-a[[1]][[1]]*a[[2]][[1]])/(a[[1]][[2]]^2-a[[1]][[1]]^2);
r1[a_]:=1/Abs[(a[[1]][[2]]^2-a[[1]][[1]]^2)];
r1i[a_]:=Abs[(a[[1]][[2]]^2-a[[1]][[1]]^2)];

These are the definitions of x_1,r_1 as in Eqs. (6,7). The last one is the inverse of the radius. We want it to be >0. Thus we create a sublist m1:

m1=Select[m, r1i[#]>0 &]

Then m1 has 35350 elements. We now use the first two lines to create the list of centers and radii:

mc = Table[{x1[m1[[i]]], r1[m1[[i]]]}, {i, 1, Length[m1]}];

But now there will be repeated elements in the list. To get rid of them I use

mc = Union[mc];

And I care only about circles with radius, say, >1/100:

mc100 = Select[mc, #[[2]] > 1/100 &];

There are only 1923 such circles.

We can already do the plot:

Dedekind tessellation Mathematica plot

The rest is optional. I added to these circles 12 circles obtained from the two vertical lines. Then I used paintnet software to invert the colors. The end result is in the Fig. 1 above.

From SU(1,1) to the Lorentz group

From the two-dimensional disk we are moving to three-dimensional space-time. We will meet Einstein-Poincare-Minkowski special relativity, though in a baby version, with x and y, but without z in space. It is not too bad, because the famous Lorentz transformations, with length contraction and time dilation happen already in two-dimensional space-time, with x and t alone. We will discover Lorentz transformations today. First in disguise, but then we will unmask them.

First we recall, from The disk and the hyperbolic model, the relation between the coordinates (x,y) on the Poincare disk x^2+y^2<1, and (X,Y,T) on the unit hyperboloid T^2-X^2-Y^2=1.

Space-time hyperboloid and the Poincare disk models

(1)   \begin{eqnarray*} X&=&\frac{2x}{1-x^2-y^2},\\ Y&=&\frac{2y}{1-x^2-y^2},\\ T&=&\frac{1+x^2+y^2}{1-x^2-y^2}. \end{eqnarray*}

(2)   \begin{eqnarray*} x&=&\frac{X}{1+T},\\ y&=&\frac{Y}{1+T}. \end{eqnarray*}

We have the group SU(1,1) acting on the disk with fractional linear transformations. With z=x+iy and A in SU(1,1)

(3)   \begin{equation*}A=\begin{bmatrix}\lambda&\mu\\ \nu&\rho\end{bmatrix},\end{equation*}

the fractional linear action is

(4)   \begin{equation*}A:z\mapsto z_1=\frac{\rho z+\nu}{\mu z+\lambda}.\end{equation*}

By the way, we know from previous notes that A is in SU(1,1) if and only if

(5)   \begin{equation*}\nu=\bar{\mu},\,\rho=\bar{\lambda},\quad|\lambda|^2-|\mu|^2=1.\end{equation*}

Having the new point on the disk, with coordinates (x_1,y_1) we can use Eq. (1) to calculate the new space-time point coordinates (X_1,Y_1,T_1). This is what we will do now. We will see that even if z_1 depends on z in a nonlinear way, the space-time coordinates transform linearly. We will calculate the transformation matrix L(A), and express it in terms of \lambda and \mu. We will also check that this is a matrix in the group SO(1,2).

The program above involves algebraic calculations. Doing them by hand is not a good idea. Let me recall a quote from Gottfried Leibniz, who, according to Wikipedia

He became one of the most prolific inventors in the field of mechanical calculators. While working on adding automatic multiplication and division to Pascal’s calculator, he was the first to describe a pinwheel calculator in 1685[13] and invented the Leibniz wheel, used in the arithmometer, the first mass-produced mechanical calculator. He also refined the binary number system, which is the foundation of virtually all digital computers.


“It is unworthy of excellent men to lose hours like slaves in the labor of calculation which could be relegated to anyone else if machines were used.”
— Gottfried Leibniz

I used Mathematica as my machine. The same calculations can be certainly done with Maple, or with free software like Reduce or Maxima. For those interested, the code that I used, and the results can be reviewed as a separate HTML document: From SU(1,1) to Lorentz.

Here I will provide only the results. It is important to notice that while the matrix A has complex entries, the matrix L(A) is real. The entries of L(A) depend on real and imaginary parts of \lambda and \mu

(6)   \begin{equation*}\lambda=\lambda_r+i\lambda_i,\, \mu=\mu_r+i\mu_i.\end{equation*}

Here is the calculated result for L(A):

(7)   \begin{equation*}L(A)=\begin{bmatrix}   -\lambda_i^2+\lambda_r^2-\mu_i^2+\mu_r^2 & 2 \lambda_i \lambda_r-2 \mu_i \mu_r & 2 \lambda_r \mu_r-2 \lambda_i \mu_i \\  -2 \lambda_i \lambda_r-2 \mu_i \mu_r & -\lambda_i^2+\lambda_r^2+\mu_i^2-\mu_r^2 & -2 \lambda_r \mu_i-2 \lambda_i \mu_r \\  2 \lambda_i \mu_i+2 \lambda_r \mu_r & 2 \lambda_i \mu_r-2 \lambda_r \mu_i & \lambda_i^2+\lambda_r^2+\mu_i^2+\mu_r^2  \end{bmatrix}\end{equation*}

In From SU(1,1) to Lorentz it is first verified that the matrix L(A) is of determinant 1. Then it is verified that it preserves the Minkowski space-time metric. With G defined as

(8)   \begin{equation*}G=\begin{bmatrix}-1&0&0\\0&-1&0\\0&0&1\end{bmatrix}\end{equation*}

we have

(9)   \begin{equation*}L(A)GL(A)^T=G.\end{equation*}

Since L(A)_{3,3}= \lambda_i^2+\lambda_r^2+\mu_i^2+\mu_r^2 =1+2|\mu|^2\geq 1>0, the transformation L(A) preserves the time direction. Thus L(A) is an element of the proper Lorentz group \mathrm{SO}^{+}(1,2).

Remark: Of course we could have chosen G with (+1,+1,-1) on the diagonal. We would have the group SO(2,1), and we would write the hyperboloid as X^2+Y^2-T^2=-1. It is a question of convention.

In SU(1,1) straight lines on the disk we considered three one-parameter subgroups of SU(1,1):

(10)   \begin{eqnarray*} X_1&=&\begin{bmatrix}0&i\\-i&0\end{bmatrix},\\ X_2&=&\begin{bmatrix}0&1\\1&0\end{bmatrix},\\ X_3&=&\begin{bmatrix}i&0\\0&-i\end{bmatrix}. \end{eqnarray*}

(11)   \begin{eqnarray*} A_1(t)&=& \exp(tX_1)=\begin{bmatrix}\cosh(t)&i\sinh(t)\\-i\sinh(t)&\cosh(t)\end{bmatrix},\\ A_2(t)&=& \exp(tX_2)=\begin{bmatrix}\cosh(t)&\sinh(t)\\ \sinh(t)&\cosh(t)\end{bmatrix},\\ A_3(t)&=& \exp(tX_3)=\begin{bmatrix}e^{it}&0\\ 0&e^{-it}\end{bmatrix}. \end{eqnarray*}

We can now use Eq. (7) in order to see which space-time transformations they implement. Again I calculated it obeying Leibniz and using a machine (see From SU(1,1) to Lorentz).

A replica of the Stepped Reckoner of Leibniz form 1923 (original is in the Hannover Landesbibliothek)

Here are the results of the machine work:

(12)   \begin{equation*}L_1(t)=L(A_1(t))=\begin{bmatrix}  1 & 0 & 0 \\  0 & \cosh (2 t) & -\sinh (2 t) \\  0 & -\sinh (2 t) & \cosh (2 t)\end{bmatrix},\end{equation*}

(13)   \begin{equation*}L_2(t)=L(A_2(t))=\begin{bmatrix}  \cosh (2 t) & 0 & \sinh (2 t) \\  0 & 1 & 0 \\  \sinh (2 t) & 0 & \cosh (2 t) \end{bmatrix},\end{equation*}

(14)   \begin{equation*}L_3(\phi)=L(A_3(\phi))=\begin{bmatrix}  \cos (2 \phi ) & \sin (2 \phi ) & 0 \\  -\sin (2 \phi ) & \cos (2 \phi ) & 0 \\  0 & 0 & 1 \\ \end{bmatrix},\end{equation*}

The third family is a simple Euclidean rotation in the (X,Y) plane. That is why I denoted the parameter with the letter \phi. In order to “decode” the first two one-parameter subgroups it is convenient to introduce new variable v and set 2t=\mathrm{arctanh}(v). The group property L(t_1)L(t_2)=L(t_1+t_2) is then lost, but the matrices become evidently those of special Lorentz transformations, L_1(v) transforming Y and T, leaving X unchanged, and L_2(v) transforming (X,T) and leaving Y unchanged (though with a different sign of v). Taking into account the identities

(15)   \begin{eqnarray*} \cosh(\mathrm{arctanh} (v))&=&\frac{1}{\sqrt{1-v^2}},\\ \sinh(\mathrm{arctanh} (v))&=&\frac{v}{\sqrt{1-v^2}} \end{eqnarray*}

we get

(16)   \begin{equation*}L_1(v)=\begin{bmatrix}  1 & 0 & 0 \\  0 & \frac{1}{\sqrt{1-v^2}} & -\frac{v}{\sqrt{1-v^2}} \\  0 & -\frac{v}{\sqrt{1-v^2}} & \frac{1}{\sqrt{1-v^2}}\end{bmatrix},\end{equation*}

(17)   \begin{equation*}L_2(v)=\begin{bmatrix} \frac{1}{\sqrt{1-v^2}} & 0 & \frac{v}{\sqrt{1-v^2}} \\  0 & 1 & 0 \\ \frac{v}{\sqrt{1-v^2}} & 0 & \frac{1}{\sqrt{1-v^2}} \end{bmatrix},\end{equation*}

In the following posts we will use the relativistic Minkowski space distance on the hyperboloid for finding the distance formula on the Poincare disk.