|
[____]
The group GL^ + 2(R) of 2 by 2 matrices
defined over R with positive determinant acts on the upper half
complex plane Hh={x∈C | Im(x) > 0}} by fractional linear
transformation:
pmatrix(a & b c & d):z |-> (az + b /cz + d).
Any subgroup Γ of GL^ + 2(R) also acts on Hh. To
compactify the quotient Γ - Hh it is necessary to
adjoin the cusps, which are points in P1(Q)=Q∪{∞}.
We set Hh * := Hh ∪P1(Q).
A fundamental
domain for the action of Γ
is a region of Hh * containing a
representative of each orbit of the action.
The fundamental domain is most useful when it can be taken to be
compact with finite area under the hyperbolic metric on Hh.
This is the situation for congruence subgroups.
This chapter gives a description of how to work in Magma
with Hh * and with congruence subgroups and their action on Hh * .
This allows the computation of generators for congruence
subgroups, and various other information, such as coset
representatives.
Farey symbols are used for this computation, and can be computed
and manipulated by the user. Procedures are provided for
producing graphical images, in the form of postscript files,
which illustrate the fundamental domains.
These procedures can be used
to draw geodesics and polygons in the upper half plane.
This package
has been written by Helena Verrill,
and is partly based
on a java program for drawing fundamental domains
([Ver00]). The Farey sequence algorithm used here is
that described by Kulkarni [Kul91].
An example of what can be computed with this package.
> G := CongruenceSubgroup(0,35);
> G;
Gamma_0(35)
> Generators(G);
[
[1 1]
[0 1],
[ 11 -3]
[ 70 -19],
[ 13 -8]
[ 70 -43],
[ 8 -3]
[ 35 -13],
[ 29 -21]
[105 -76],
[ 11 -6]
[ 35 -19],
[ 29 -17]
[ 70 -41],
[ 16 -11]
[ 35 -24],
[ 22 -17]
[ 35 -27]
]
> C := CosetRepresentatives(G);
> H := UpperHalfPlaneWithCusps();
> triangle := [H|Infinity(),H.1,H.2];
> triangle_translates := [g*triangle : g in C];
> DisplayPolygons(triangle_translates,"/tmp/Gamma035.ps": Show := false);
[ 0.E-57, 1.000000000000000000000000000, 1.500000000000000000000000000, 300 ]
In the example the command DisplayPolygons
produces a postscript file "/tmp/Gamma035.ps"
of a drawing of all the translates of the given triangle under the
cosets of Γ0(35). If the Show option is set to true,
a system command is issued and a window pops up for viewing the
file created.
Continuing with the above example,
one can also find the vertices of a polygon defining the Fundamental
domain of the group:
> FD := FundamentalDomain(G);
> // Print a FD in a reasonable format:
> &cat[Sprintf(" %o ",c) : c in FD];
oo 0 1/6 1/5 1/4 3/11 2/7 1/3 2/5 3/7 1/2 4/7 3/5 5/8 2/3 5/7
3/4 1 oo
> DisplayPolygons([FD],"/tmp/Gamma0_35_Domain.ps": Show := false);
[ 0.E-28, 1.000000000000000000000000000, 1.500000000000000000000000000, 300 ]
[Next][Prev] [Right] [____] [Up] [Index] [Root]
|