Achtung:

Sie haben Javascript deaktiviert!
Sie haben versucht eine Funktion zu nutzen, die nur mit Javascript möglich ist. Um sämtliche Funktionalitäten unserer Internetseite zu nutzen, aktivieren Sie bitte Javascript in Ihrem Browser.

Show image information

Two-generator subgroups of PSL(2,R)

The algorithms explained in

  • "The constructive membership problem for discrete free subgroups of SL(2,R)"
  • "The constructive membership problem for discrete two-generator subgroups of SL(2,R)"

have been implemented in Magma and can be downloaded here.

How to use this file with Magma:

The above package has to be loaded into your Magma workspace using:

> Attach("sl2r.m");

Constructing a two-generator subgoup

Suppose A, B are matrices over K. To generate the group G:= <A, B> as a subgroup of (P)SL(2,R) one uses the commands TwoGeneratorSubgroupSL2R and TwoGeneratorSubgroupPSL2R. Besides the matrices A and B they also expect an embedding of K into R as a third parameter. If K is the field of rationals, one has to use Infinity() as embedding.

> A:= Matrix(2, [ 2, 0, 2, 1/2 ]); > B:= Matrix(2, [ 5, 2, -3, -1 ]); > G:= TwoGeneratorSubgroupSL2R(A, B, Infinity()); G; Two generator subgroup of SL(2,R) generated by [ 2 0] [ 2 1/2], [ 5 2] [-3 -1]

Predicates of two-generator subgoups

The generators of G can be accessed as G.1 and G.2. The following functions

  • IsDiscrete
  • IsDiscreteAndFree
  • IsDiscreteAndFreeProduct
  • IsDiscreteAndElementary
  • IsTriangleGroup
  • IsFinite

can be used to decide if G is discrete, etc. In the example above,

> IsDiscreteAndFree(G); true

So the group G is discrete and free.

Constructive membership for two-generator subgoups

Whenever the group G is discrete, the membership problem can be decided using the Membership intrinsic. In the example above,

> Membership(G, A^10 * B^3 * A); true $.1^10 * $.2^3 * $.1 > Membership(G, -A); false

The first return value indicates whether the element is in G. If this is the case, then the second return value is a word in a free group of rank 2 that expresses the element in the generators of G. Note that if G was created as a subgroup of PSL(2,R) then the second membership test above would yield true:

> H:= TwoGeneratorSubgroupPSL2R(A, B, Infinity()); > Membership(H, -A); true $.1

As explained in the papers mentioned in the beginning, the algorithm usually computes a witness pair for G. The chosen witness pair can be obtained using the WitnessPair intrinsic.

Another example

We construct a (2,3,7)-triangle group:

> K:= NumberField( Polynomial([-1, 0, -2, 0, 1, 0, 1]) ); > eta:= K.1^2; > X:= Matrix(K, 2, [0, -K.1, K.1^5 + K.1^3 - 2*K.1, 0 ]); > Y:= Matrix(K, 2, [1/2, 1/2*(-K.1^5 - K.1^4 - K.1^3 + K.1 + 1), 1/2*(-K.1^5 + K.1^4 + 3*K.1 - 2) , 1/2] ); > plc:= InfinitePlaces(K)[1]; > G:= TwoGeneratorSubgroupSL2R(X, Y, plc); > IsTriangleGroup(G); true <2, 3, 7>

The University for the Information Society