[Next][Prev] [Right] [Left] [Up] [Index] [Root]

Fundamental Domains

Let D denote the unit disc and Γan arithmetic Fuchsian group. A fundamental domain in D for Γis a closed, hyperbolically convex region P ⊂D such that the translates of P by Γcover D and such that the interiors of all translates P are disjoint, i.e. D=bigcupγ∈Γ γP and ( int)(P) ∩( int)(γP) = emptyset for γ!= 1, where ( int)(P) denotes the interior of P.

Choosing a point p ∈D not fixed by any element of Γ- {1}, we obtain a fundamental domain by letting P={z ∈D:d(z, p) ≤d(z, γ(p))( for all )γ∈Γ}. Typically, one takes p=0.

One can similarly define a fundamental domain in the upper half-plane Hh, and one can bijectively map fundamental domains in D to those in Hh via a choice of conformal map between them. The unit disc is a more natural setting for our algorithms.

For each γ∈Γ- {1}, we define the isometric circle of γto be the circle C(γ)={z ∈C: |γ(z)|=|z| }. Then in fact P is the closure of the intersection of half-spaces given by bigcap_(γ∈Γ- {1}) C(γ)o where C(γ)o denotes the exterior of C(γ). Our algorithm recursively finds elements in Γto decrease the hyperbolic volume of this intersection until the volume vol(X) is reached; it relies upon a "reduction theory" with respect to a set of generators of Γ.

FundamentalDomain(G,D) : GrpPSL2, SpcHyd -> SeqEnum
Computes a fundamental domain in the unit disc D for the action of G.
FundamentalDomain(G) : GrpPSL2 -> SeqEnum
Computes a fundamental domain in the upper half-plane for the action of G.

Example GrpPSL2Shim_FundamentalDomains (H131E7)

We first compute a fundamental domain for a quaternion algebra defined over Q(ζ7)^ + which turns out to be the (2, 3, 7)-triangle group.

> K<z> := CyclotomicField(7);
> F := sub<K | z+1/z >;
> b := F! (z+1/z);
> A<i,j,k> := QuaternionAlgebra<F | b, b>;
> O := MaximalOrder(A);
> G := FuchsianGroup(O);
> P := FundamentalDomain(G, UnitDisc());
> P;
[
    0.0563466917619454773195578124639 - 
      0.265288162495691167957067899257*$.1,
    0.0563466917619454773195578124639 + 
      0.265288162495691167957067899257*$.1,
    -0.0886504855947700264615254294500 - 
      4.57194956512909992886313419322E-100*$.1
]
> P := FundamentalDomain(G);
> P;
[
    0.496970425395180896221180392445 + 
      (0.867767478235116240951536665696)*root(-1),
    -0.496970425395180896221180392445 + 
      (0.867767478235116240951536665696)*root(-1),
    6.94379666203368024633240684073E-100 + 
      (0.753423227948677598725236624130)*root(-1)
]
> ArithmeticVolume(P);
0.0238095238095238095238095238092
> ArithmeticVolume(G);
1/42
> ($1)*1.0;
0.0238095238095238095238095238095

We can visualize the domain P by using the postscript plotting tools of Chapter CONGRUENCE SUBGROUPS OF PSL2(R).


> DisplayPolygons(P, "/tmp/quat237triang.ps" : Show := true); [ -0.496970425395180896221180392445, 0.496970425395180896221180392445, 1.05000000000000000000000000000, 302.000000000000000000000000000 ]

We repeat this with the quaternion algebra over Q of discriminant 10.

> G := FuchsianGroup(QuaternionOrder(10));
> P := FundamentalDomain(G);

> DisplayPolygons(P, "/tmp/quat10.ps" : Show := true); [ -1.31448412972780982023636168140, 0.158113883008418966599944677206, 1.27912476227312394698179550056, 235.000000000000000000000000000 ] > U, m := Group(G); > U; Finitely presented group U on 3 generators Relations U.1^3 = Id(U) U.2^3 = Id(U) U.3^3 = Id(U) (U.1^-1 * U.2^-1 * U.3^-1)^3 = Id(U)

ShimuraReduceUnit(delta, gammagens, G, D) : AlgAssVOrdElt, SeqEnum[AlgAssVOrdElt], GrpPSL2, SpcHyd -> SeqEnum
ShimuraReduceUnit(delta, gammagens, G, D) : AlgQuatElt, SeqEnum[AlgQuatElt], GrpPSL2, SpcHyd -> SeqEnum
    CreateWord: BoolElt                 Default: false
    NextSmallest: BoolElt               Default: false
    z0: SpcHydElt                       Default: 0
    z1: SpcHydElt                       Default: 0
Reduce the unit delta moving z0 to z1 with respect to the generators in γ_(( gens)) by multiplying on the left or right by elements of γ_(( gens)) inside the arithmetic Fuchsian group G to minimize the distance to the origin in the unit disc D. Returns a sequence of triples containing reduced elements and the sequence on the left and right to obtain them. The argument CreateWord reduces δeven if δis in γ_(( gens)), disallowing the trivial word.

 [Next][Prev] [Right] [Left] [Up] [Index] [Root]

Version: V2.19 of Mon Dec 17 14:40:36 EST 2012