Cabri menu for hyperbolic geometry

To produce many of the figures, I have used the Cabri menu hypermenu.men.
The menu contains some macros which are not particularly robust - several fail
if one of the chosen points is the centre of the disk. My priority was to produce
code that is easy to understand.

To use the menu items, we begin by defining the centre O and boundary circle C
of the poincare disk D. All constructions involve the selection of points of D and
the boundary C.

One cosmetic feature is the copy macro which produces a copy of a point P when
P lies in D, and nothing otherwise. By using the copies of points, we can ensure
that we obtain only figures within D. Many of our constructions are easy if one of
the points involved is O. This is done in the theory by using the Origin Lemma.
This is the reason for the invertcircle item, which gives the circle orthogonal to
the boundary which inverts a given P and the centre O. This is not a hyperbolic
object - it contains points outside D. The corresponding hyperbolic line is given
by invertline, but we need the entire circle since Cabri does not invert in arcs.

technical constructions

copy produces a copy of a point P provided P lies within the disk, and nothing otherwise
see above
invertcircle for P in the disk, this gives the circle C' orthogonal to C such that inversion in C'
interchanges P and O.
invertline for P in the disk, this gives the h-line H such that inversion in H interchanges P and O
of course, H is the intersection of C' above with the disk

hyperbolic objects

hline gives the complete h-line joining points P and Q in the disk
hsegment gives the h-segment joining points P and Q in the disk
hcircle gives the hyperbolic circle, centre P, through a point Q
hray gives the h-ray from P through Q, for P, Q in the disk
the order is significant - we must choose P then Q
hperp gives the hyperbolic perpendicular to the h-line QR from the point P
we must choose Q and R before P.
abisector gives the h-line bisecting <PQR internally and externally
we must choose the points in the order P,Q,R or R,P,Q.
hbisector gives the h-line which bisects the h-segment PQ in the hyperbolic sense

measurements

hlength gives the hyperbolic distance between P and Q, i.e. d(P,Q)
hratio gives the hyperbolic ratio h(P,Q,R) = ±sinh(d(P,Q))/sinh(d(Q,R)
with the + sign if and only if Q is between P and R.
hangle gives the angle <PQR in the range [0,π].
sum gives the sum of the interior angles of the hyperbolic ΔPQR

More comprehensive Cabri menus can be found at

hyperbolic geometry