matrix calculation for the hyperbolic-projective theorem

We have a matrix C such that the map c(x) = Cx fixes Z(0,0,1),
and has the property that CTKC = K, where K = diag(1,1,-1).

Since c maps Z to Z, the third column of C must be (0,0,1)T.
We partition the matrices into the top left-hand 2x2 matrix,
and 2x1, 1x2 and 1x1 blocks.

K =
|I 0|
|0T -1|
C =
|U O|
|uT 1|

where 0 is the zero vector in R2, u is some vector in R2, and
U is a 2x2 matrix.

A direct calculation shows that

CTKC =
|UTU-uuT -u|
|-uT -1|

But this is K, so u = 0, and hence UTU = I, so that U is orthogonal,
and so U acts on R2 as a rotation about O, or reflection in some line
through O. It follows that C acts on R3 is a rotation about the z-axis
or a reflection in a plane through the z-axis.

the hyperbolic-projective theorem