In this post, I want to kind of bring together
the theme of curvature
and the theme of affine or projective geometry.
My goal is to introduce the *spaces of constant curvature*
as subspaces of Euclidean space
and explore their symmetries as groups of matrices.

## Table of Contents

## 1. The $n$-sphere in \(\mathbb{R}^{n+1}\)

Remember our equation for the unit circle?
\(x^2 + y^2 = 1\)?
This *curve* is a $1$-dimensional object living in \(\mathbb{R}^2\),
affectionately known as \(\mathbb{R}^{1+1}\)
and we can easily generalize this equation to \(\mathbb{R}^{n+1}\)
as \(x_1^2 + \cdots + x_{n+1}^2 = 1\).
This is the $n$-sphere sitting inside \(\mathbb{R}^{n+1}\).
For, like, precisely two values of \(n\),
we know what to expect: the unit circle in \(\mathbb{R}^2\)
and the unit *sphere* in \(\mathbb{R}^3\).
It’s a joy to imagine what the unit $n$-sphere
*feels* like for other values of \(n\).
For example, there ought to be a $0$-sphere in \(\mathbb{R}^{0+1}\),
and indeed there is:
the two points \(x\) such that \(x^2 = 1\).
Or the $3$-sphere,
which is somehow like and unlike $3$-dimensional space.

If you’ll permit me an aside,
here is my favorite way to think of the $3$-sphere;
actually it works for \(n\) arbitrary, but for \(3\) I can really picture something
if I wrack my brain a little.
Let’s go back to the circle:
pick a point on the circle, like say the point \((0,1)\),
and throw it away.
What you’re left with, if you kind of sit with it for a moment,
is kind of like an *open interval* in \(\mathbb{R}\), just curled up funny.
Actually, you can do something pretty neat with these leftover points,
called *stereographic projection.*
Imagine you’re a little surveyor standing
at the point \((0,1)\) in \(\mathbb{R}^2\),
and for each other point \((p,q)\) on the circle,
it’s your job to first draw the straight line from \((0,1)\) to \((p,q)\),
and then second, note down *where* that line hits the $x$-axis.

An equation for an arbitrary point on this line is \((tp, tq + (1 - t))\), so the point \((x,0)\) on the line will be such that \(x = tp\) and \(tq + (1 - t) = 0\). This latter equation implies that \(t = \frac{1}{1 - q}\), so \(x = \frac{p}{1 - q}\).

In \(n\) dimensions, the equation for the line becomes \((tx_1,\ldots,tx_n,tx_{n+1} + (1 - t))\), and the point on the hyperplane \(x_{n+1} = 0\) is \((\frac{x_1}{1 - x_{n+1}},\ldots,\frac{x_n}{1 - x_{n+1}},0)\).

Anyway, it's clear that you can reverse this process:
for *any* point \(\vec p\) on the hyperplane \(x_{n+1} = 0\),
there is a *unique* point \(\vec q\) on the unit $n$-sphere such that stereographic projection
from \((\vec 0, 1)\) through \(\vec q\) yields \(\vec p\).
As the point \(\vec q\) gets closer and closer to \((0,1)\), the point \(\vec p\)
goes “off to infinity”.
Thus, one way to think of the $n$-sphere is like $n$-dimensional space
with one extra point at infinity that “wraps it all up”.
Like, the circle is the real line \(\mathbb{R}\) wrapped up with one extra point,
the sphere is the plane wrapped up with one extra point… and \(S^3\),
the $3$-sphere,
is \(\mathbb{R}^3\) wrapped up with one extra point. Neat, huh?

Anyway, consider a linear transformation of \(\mathbb{R}^{n+1}\).
There are *many* such,
and *all* of them may be represented by \((n+1)\times(n+1)\) matrices!
The action of the transformation on \(\mathbb{R}^{n+1}\) is matrix multiplication.
I mean, the point of this post is we all love linear algebra, right?
Anyway, suppose we want two things to happen:
first, our transformation (or equivalently our matrix \(M\))
should be *invertible*
in the sense that we can *undo* it.
In terms of the matrix, this means that there exists a matrix \(M^{-1}\)
such that \(MM^{-1} = M^{-1}M = I\), the identity matrix.
If you remember linear algebra,
you might know that this comes down to a condition on the *determinant* of \(M\):
that determinant must not be \(0\).

The other thing we want to have happen is that the matrix preserves the unit sphere.
But the equation \(x_1^2 + \cdots + x_{n+1}^2 = 1\)
has a *vector* interpretation:
if \(\vec x = (x_1,\ldots,x_n)\),
we have that the coordinates of \(\vec x\) satisfy the equation for the unit sphere
if and only if the *dot product* \(\vec x \cdot \vec x = x_1^2 + \cdots + x_{n+1}^2\) is \(1\).
This dot product may also be expressed as a matrix product
\(\vec x^T \vec x = 1\),
where we think of \(\vec x\) as a *column* vector
and \(\vec x^T\), its transpose, as the corresponding *row* vector.
Sneakily, we can put in *any* \((n+1)\times(n+1)\) matrix between \(\vec x^T\) and \(\vec x\)
and we’ll end up with a number.
To make sure we end up with the same number,
let’s just put \(I\), the identity matrix
\(\begin{pmatrix}
1 & 0 & \cdots & 0 \\
0 & 1 & \cdots & 0 \\
\vdots & \vdots & \ddots & \vdots \\
0 & 0 & \cdots & 1
\end{pmatrix}\) there.

Anyway, we want
\(M\vec x \cdot M \vec x = {(M \vec x)}^T M\vec x = \vec x^T M^TIM \vec x
= \vec x^T \vec x = 1\).
This turns out to happen just when \(M^TM = I\).
Actually this *implies* that \(M\) is invertible,
and furthermore that \(MM^T = I\) as well,
so that \(M^T\) is actually *the* inverse of \(M\).

Let’s suppose we’re working with the unit circle in \(\mathbb{R}^2\) and that we have a symmetry \(M\) which sends the point \((1,0)\) to \((p,q)\). Recall that this actually means that the first column of \(M\) is \((p,q)\)! Since we need \(M^TM = I\), if the other column of \(M\) is \((c,d)\), we compute

\(M^TM = \begin{pmatrix}p & q \\c & d\end{pmatrix}\cdot\begin{pmatrix}p & c \\q & d\end{pmatrix} = \begin{pmatrix} p^2 + q^2 & pc + qd \\ cp + dq & c^2 + d^2 \end{pmatrix} = \begin{pmatrix} 1 & 0 \\ 0 & 1 \end{pmatrix}\)

Since \(p^2 + q^2 = 1\), one of \(p\) or \(q\) is nonzero,
so we can divide by it to see that
(supposing it is \(p\))
\(c = -\frac{qd}{p}\).
Then \(c^2 + d^2 = 1\) implies \(\frac{q^2d^2}{p^2} + d^2 = 1\),
so (doing some tricksy algebra)
\(d^2 = p^2\).
So either \(d = p\), in which case \(c = -q\),
or \(d = -p\), in which case \(d = q\).
That is, there are exactly two choices for \(M\),
\(\begin{pmatrix}p & -q \\ q & p\end{pmatrix}\) and \(\begin{pmatrix}p & q \\ q & -p\end{pmatrix}\).
These are distinguished by the *sign of their determinant*
or equivalently by whether they “preserve or reverse orientation”,
meaning that one of them is more like a rotation,
while the other is a rotation followed by a flip.

Notice as well that if a matrix \(M\) preserves the $n$-sphere in \(\mathbb{R}^{n+1}\), it actually preserves the set of points satisfying \(x_1^2 + \cdots + x_{n+1}^2 = r^2\) for all \(r\)!

We can think of the $n$-sphere, \(S^n\)
as a *metric space* in two ways.
The first is to restrict the metric from Euclidean space to the sphere.
This works fine, but is a little weird:
the distance then on the circle from \((0,1)\) to \((1,0)\), say, is \(\sqrt{2}\),
but the actual *shortest path on the circle* from \((0,1)\) to \((1,0)\)
is *longer;* in fact it has length equal to the *arc length*
of the curve tracing out the part of the circle from \((0,1)\) to \((1,0)\).
Since we “know” that the perimeter of a circle is \(2\pi\) times its radius
and this curve is a quarter of that circle,
we should expect the distance between \((0,1)\) and \((1,0)\) to be \(\frac{pi}{2}\).

This latter distance, measuring the *angle* between \(\vec p\) and \(\vec q\),
is connected to their *dot product.*
For the unit sphere in \(\mathbb{R}^{n+1}\), we have
that this angle \(\theta\)
satisfies \(\vec p \cdot \vec q = \cos\theta\).
(In general one has to account for the *norms* of \(\vec p\) and \(\vec q\).)
Anyway, this distance
\(d(\vec p, \vec q) = \arccos(\vec p \cdot \vec q)\),
is called the *round metric* on the unit $n$-sphere in \(\mathbb{R}^{n+1}\).
With respect to this metric,
the embedding of \(S^n\) into \(\mathbb{R}^{n+1}\) is an *isometric* embedding,
and by our earlier calculations of curvature,
we see that \(S^n\) equipped with this metric has *constant sectional curvature \(1\).*

## 2. Euclidean space

As we've seen in previous posts,
there is a useful way of thinking of affine subspaces of \(\mathbb{R}^n\)
as *linear* subspaces of \(\mathbb{R}^{n+1}\),
namely if \(p_1,\ldots,p_k\) are affinely independent points in \(\mathbb{R}^n\),
the subspace that they generate
may be thought of as the *linear* subspace of \(\mathbb{R}^{n+1}\)
spanned by the *vectors* \(v_1,\ldots,v_k\),
where \(v_i = (p_i, 1)\).
That is, \(v_i\) is the vector whose first \(n\) coordinates
are the coordinates of the point \(p_i\)
and whose last coordinate is \(1\).
One reason for setting the last coordinate to something nonzero
is that if one of the \(p_i\) is the origin,
thinking of it as a vector is unproductive:
the zero vector is never part of a linearly independent set.

Thus the line in \(\mathbb{R}^2\) through the points \((3,7)\) and \((4,5)\) corresponds to the linear subspace (a plane) in \(\mathbb{R}^3\) spanned by the vectors \((3,7,1)\) and \((4,5,1)\). (Strictly speaking, we should be careful to think of vectors as either row or column vectors, but I am assuming here that you don't care either.) Indeed, if you look at this plane in \(\mathbb{R}^3\), the places where it slices through the plane \(z = 1\) in \(\mathbb{R}^3\) forms a line which passes through the given points.

Consider the (column) vector \(\vec v = (x, y, z)\)
and a \(3\times3\) matrix \(M\).
The last coordinate of the matrix \(M\vec v\)
is the *dot product* of the last *row* of \(M\)
(thought of as a column vector)
with \(\vec v\).
In other words, if the last row of \(M\) is \((m_{31}, m_{32}, m_{33})\),
we have that the last coordinate of \(M\vec v\) is
\(m_{31}x + m_{32}y + m_{33}z\).

Suppose that the first two entries, \(x\) and \(y\) of \(\vec v\) are allowed
to be arbitrary—whatever numbers you want—but that \(z = 1\).
For \(M\) to preserve this property,
that is, for \(M\) to send the \(z = 1\) plane in \(\mathbb{R}^3\) to itself,
we see that we *must* have \(m_{31} = m_{32} = 0\),
while \(m_{33} = 1\).
In other words, we can write \(M\) in *block* form as
\(\begin{pmatrix}
A & \vec w \\
\vec 0 & 1
\end{pmatrix}\),
where \(A\) is a \(2\times2\) matrix,
\(\vec w\) is a \(2\times 1\) matrix (affectionately known as a column vector),
\(\vec 0\) is the zero \(1 \times 2\) row vector
and \(1\) is, well, \(1\).
Invertible matrices of this form are part of the *affine group,*
which is so named because it preserves the affine plane \(z = 1\).
In fact, for a matrix of this form to be invertible,
it turns out to suffice to ask that \(A\) is invertible.
Indeed, doing block matrix multiplication we see that

\(\begin{pmatrix} A^{-1} & -A^{-1}\vec w \\ \vec 0 & 1\end{pmatrix}\begin{pmatrix} A & \vec w \\ \vec 0 & 1\end{pmatrix} =\begin{pmatrix} A^{-1}A & A^{-1}\vec w - A^{-1}\vec w \\ 0 & 1\end{pmatrix} = I\).

Anyway, to be a *rigid motion* of Euclidean space,
we want *distances* to be preserved.
Recall that the *distance* between vectors \(\vec v\) and \(\vec w\)
is \(\|\vec v - \vec w\| = \sqrt{(\vec v - \vec w) \cdot (\vec v - \vec w)}\).
Notice that for vectors on the affine plane \(z = 0\),
the distance between vectors corresponds to the usual
*Euclidean distance* between *points* on the plane.
In other words \(d((\vec v, 1), (\vec w, 1)) = d(\vec v, \vec w)\),
because the last coordinate becomes zero.

Doing a little matrix multiplication,
we see that in \(n\) dimensions,
the image of the vector \((\vec v, 1)\) under the matrix \(M\) above
is \((A\vec v + \vec w, 1)\).
Therefore the matrix \(M\) will preserve distances on the hyperplane \(x_{n+1} = 1\)
*just when the matrix \(A\) satisfies \(A\vec v \cdot A \vec v = \vec v \cdot \vec v\).*
In other words, the matrix \(A\)
actually be one that preserves the $(n-1)$-sphere in \(\mathbb{R}^n\)!
That’s pretty neat.

Actually, before I go on to talk about hyperbolic space, I want to point out a neat fact: Since \(AA^T = 1\), doing block-matrix multiplication, we see that

\(M\begin{pmatrix}I & 0 \\ 0 & 0 \end{pmatrix}M^T = \begin{pmatrix}A & \vec w \\ \vec 0 & 1\end{pmatrix}\begin{pmatrix}A^T & \vec 0\\ \vec 0 & 0 \end{pmatrix} = \begin{pmatrix} I & \vec 0 \\ \vec 0 & 0 \end{pmatrix}\).

Actually, writing \(g\) for the matrix \(\begin{pmatrix}I & \vec 0 \\ \vec 0 & 0 \end{pmatrix}\), we see that a matrix \(M\) preserving the hyperplane \(x_{n+1} = 1\) is a rigid motion of Euclidean space if and only if it satisfies \(MgM^T = g\).

## 3. Hyperbolic space

Okay, bear with me, this one is kind of weird but also very very cool.
Earlier, when we stipulated that an \((n+1)\times(n+1)\) matrix \(M\)
belonged to the symmetry group of \(S^n\) when it satisfied
\(M^T I M = I\) or \(M I M^T = I\),
*we actually may replace \(I\) with any \((n+1)\times(n+1)\) matrix we’d like.*
We already did this a little right at the end of the previous section,
where \(I\) was replaced with \(g\), the matrix whose first \(n\) diagonal entries are \(1\)
and whose last entry is \(0\).
Interestingly, when that last entry is \(1\),
we had a space with “constant sectional curvature equal to \(1\)”,
when we gave it the *round* metric.
and when it was \(0\), we got a space with constant sectional curvature equal to \(0\).
It’s extremely tempting to see what might happen if we let that last entry be \(-1\) instead!

So let \(g\) be the matrix
\(\begin{pmatrix}I & \vec 0 \\ \vec 0 & -1 \end{pmatrix}\)
and suppose \(M\) is a matrix satisfying \(M^TgM = g\).
Notice that \(M\) preserves the (one-sheeted) *hyperboloid*
comprising those points in \(\mathbb{R}^{n+1}\) satisfying
\(x_1^2 + \cdots + x_n^2 - x_{n+1}^2 = 1\):
these are just the vectors \(\vec x\) for which \(\vec x^T g \vec x = 1\).
But actually it *also* preserves the *two-sheeted* hyperboloid
\(x_{n+1}^2 - x_1^2 - \cdots - x_n^2 = 1\).
One way to see this is to note that it is the set of vectors for which
\(\vec x^T g \vec x = -1\),
and if \(M^TgM = g\),
then \(\vec x^T g \vec x = \vec x^T M^TgM \vec x\),
so if the left hand equation is \(-1\), so is the right-hand equation.

One reason to prefer the two-sheeted hyperboloid is that it doesn’t have a “hole”, and another is that, like the sphere \(S^n\) and \(\mathbb{R}^n\) as the hyperplane \(x_{n+1} = 1\), the two-sheeted hyperboloid includes the point \((\vec 0, 1)\).

Since \(g\) is invertible, the equation \(M^T g M = g\) implies that \(M\) is invertible.
The *group* of matrices satisfying \(M^TgM = g\)
is kind of curious:
an element of this group may swap the two sheets of the hyperboloid,
or it may fix them.
Let’s suppose it fixes them,
so that \(\vec v_{n+1} > 0\) implies that \({(M\vec v)}_{n+1} > 0\).

### 3.1. A metric on hyperbolic space

Just as we found the *round metric* on the $n$-sphere in \(\mathbb{R}^{n+1}\),
it would be nice to have a formula for the distance between two points on the hyperboloid.
It’s a little tough to know precisely what we’re asking for here,
but one reasonable thing to ask would be for
*linear* subspaces of \(\mathbb{R}^{n+1}\),
when intersected with one of the sheets of the hyperboloid,
to be *convex* in the hyperboloid,
in the sense that the “shortest path” in this metric
should stay within this linear subspace.
In particular, if we set one of our points to be \((\vec 0, 1)\),
the other point will lie on a *sub-hyperbola* of the hyperboloid.

That is, let’s think in \(\mathbb{R}^2\).
There are many ways to *parametrize* the hyperbola,
but I’d like to argue that the best one
is maybe the weirdest:
\(t \mapsto (\sinh t, \cosh t)\).
The functions \(\cosh\) and \(\sinh\)
are pronounced “cosh” (like as in “oshkosh”)
and “cinch” (like as in “it’ll be a cinch!” maybe more phonetically “sin-tch”).
You maybe met them in a Calculus class once upon a time
and they’re defined as

\(\cosh x = \frac{e^{x} + e^{-x}}{2}\) and \(\sinh x = \frac{e^{x} - e^{-x}}{2}\).

Let’s do a little math, shall we? First of all notice that \(e^{-x} = \frac{1}{e^x}\), so if we write \(a = e^x\), we can compute

\[\sinh^2 x - \cosh^2 x = \frac{{(a - \frac{1}{a})}^2}{4} - \frac{{(a + \frac{1}{a})}^2}{4} = \frac{a^2 - 2 + \frac{1}{a^2}}{4} - \frac{a^2 + 2 + \frac{1}{a^2}}{4} = -\frac{4}{4} = -1\].

Therefore this really is the parametrization of the upper sheet of the hyperboloid.

The reason I prefer this parametrization
is that the *derivative* of \(\sinh t\) with respect to \(t\)
is, one checks, \(\cosh t\) and vice versa.
Thus the velocity vector of the curve \(t \mapsto (\sinh t, \cosh t)\)
is \(\vec v = (\cosh t, \sinh t)\),
which satisfies \(\vec v^T g \vec v = 1\).
In other words,
with respect to a funky way \(g\) of measuring “norms” of vectors,
the vector \(\vec v\) is a *unit* vector.

This is significant, because it says that with respect to our funky norm,
the curve \(t \mapsto (\sinh t, \cosh t)\)
is *parametrized by arc length.*
In other words, we can define a *distance*
between points \((\sinh s, \cosh s)\) and \((\sinh t, \cosh t)\)
on the hyperbola as \(|s - t|\)!

If we let \(s = 0\), notice that this quantity, \(|t|\), is related to the $y$-coordinate of the point \((p,q) = (\sinh t, \cosh t)\) whose distance to \((0,1)\) we are trying to measure. In fact, we have

\[\sinh s \sinh t - \cosh s \cosh t = -\frac{e^{s - t} + e^{t - s}}{2} = -\cosh (s - t),\]

so we can compute this distance based on knowing the vectors \(\vec v\) and \(\vec w\) as \(\operatorname{arccosh} (-\vec v^T g \vec w)\).

As it turns out, this metric on the hyperboloid
turns it into a Riemannian manifold of dimension \(n\) and constant sectional curvature \(-1\).
Since, as it turns out,
the embedding of the hyperboloid into \(\mathbb{R}^{n+1}\)
is *not* isometric,
we can't compute this directly from the definition of the hyperboloid.
This is maybe one situation where the curvature tensor actually turns out to be useful.

There's much more I'd like to say about hyperbolic space, but this post is long in the tooth as it is, so I'll sign off here for now.