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

Congruence Subgroups

We denote by SL_2(Z) the group of 2 by 2 matrices with integer coefficients and determinant 1. The group PSL_2(Z) is the projectivization of SL_2(Z). For any integer N we have groups Gamma_0(N)={pmatrix(a & b cr c & d) in SL_2(Z) Big| pmatrix(a & b cr c & d) = pmatrix(* & * cr 0 & * ) mod N} Gamma_1(N)={pmatrix(a & b cr c & d) in SL_2(Z) Big| pmatrix(a & b cr c & d) = pmatrix(1 & * cr 0 & 1) mod N} Gamma(N)={pmatrix(a & b cr c & d) in SL_2(Z) Big| pmatrix(a & b cr c & d) = pmatrix(1 & 0cr 0 & 1) mod N} Gamma^1(N)={pmatrix(a & b cr c & d) in SL_2(Z) Big| pmatrix(a & b cr c & d) = pmatrix(1 & 0cr * & 1) mod N} Gamma^0(N)={pmatrix(a & b cr c & d) in SL_2(Z) Big| pmatrix(a & b cr c & d) = pmatrix(* & 0cr * & * ) mod N} A congruence subgroup is any discrete subgroup Gamma of SL_2(R) which is commensurable with SL_2(Z), that is, Gammaintersect SL_2(Z) has finite index in Gamma and in SL_2(Z), and such that Gamma(N) is contained in G for some N. The level N of a congruence subgroup G is the greatest integer N such that Gamma(N) is contained in Gamma. We will abuse notation and also refer to the projectivizations of these groups by the same names.

Subsections

Creation of Subgroups of PSL_2(R)

PSL2(R) : Rng -> GrpPSL2
Returns PSL_2(R), the projective linear group over the ring R.
Gamma0(N) : RngIntElt -> GrpPSL2
The group Gamma_0(N) for any positive integer N.
Gamma1(N) : RngIntElt -> GrpPSL2
The group Gamma_1(N) for any positive integer N.
GammaUpper0(N) : RngIntElt -> GrpPSL2
The group Gamma^0(N) for any positive integer N.
GammaUpper1(N) : RngIntElt -> GrpPSL2
The group Gamma^1(N) for any positive integer N.
CongruenceSubgroup(N) : RngIntElt -> GrpPSL2
The group Gamma(N) for any positive integer N.
CongruenceSubgroup(i,N) : RngIntElt, RngIntElt -> GrpPSL2
For a positive integer N and i=0, 1, 2, 3, or 4, this is the group Gamma_0(N), Gamma_1(N), Gamma(N), Gamma^1(N) or Gamma^0(N) respectively.
CongruenceSubgroup([N,M,P]) : SeqEnum -> GrpPSL2
For integers N, M, P, with M|NP, the congruence subgroup {pmatrix(a & b cr c & d) in SL_2(Z) | c = 0 mod N, a = d = 1 mod M, b = 0 mod P}.
CongruenceSubgroup(N,char) : SeqEnum, GrpDrchElt -> GrpPSL2
Given N = [n, m, p], this returns the congruence subgroup consisting of 2 by 2 matrices with integer coefficients [a, b, c, d] with b = 0 mod p, and c = 0 mod n, and char(a) = 1 for char a Dirichlet character mod m.
Intersection(G,H) : GrpPSL2, GrpPSL2 -> GrpPSL2
G meet H : GrpPSL2, GrpPSL2 -> GrpPSL2
The intersection of congruence subgroups G and H.

Example GrpPSL2_Creation (H33E2)

Examples of defining different congruence subgroups:


> G := PSL2(Integers());
> H := CongruenceSubgroup([2,3,6]);
> H;
Gamma_0(2) intersection Gamma^1(3) intersection Gamma^0(2)
> K := CongruenceSubgroup(0,5);
> K meet H;
Gamma_0(10) intersection Gamma^1(3) intersection Gamma^0(2)


Relations

G eq H : GrpPSL2, GrpPSL2 -> BoolElt
Returns true if and only if the congruence subgroups G and H are equal.
IsSubgroup(G,H) : GrpPSL2, GrpPSL2 -> BoolElt
For congruence subgroups G and H, returns true if and only if G is a subgroup of H.
Index(G,H) : GrpPSL2, GrpPSL2 -> RngIntElt
For congruence subgroups G and H, returns the index of G in H provided G is a subgroup of H.
Index(G) : GrpPSL2 -> RngIntElt
For G a congruence subgroup in PSL_2(Z), returns the index in PSL_2(Z).

Basic Attributes

Level(G) : GrpPSL2 -> RngIntElt
The level of a congruence subgroup G.
IsCongruence(G) : GrpPSL2 -> BoolElt
Returns true if and only if G is a congruence subgroup.
IsGamma0(G) : GrpPSL2 -> BoolElt
Returns true if and only if G is equal to Gamma_0(N) for some integer N.
IsGamma1(G) : GrpPSL2 -> BoolElt
Returns true if and only if G is equal to Gamma_1(N) for some integer N.
BaseRing(G) : GrpPSL2 -> Rng
Returns the base ring over which matrices of the congruence subgroup G are defined.
Identity(G) : GrpPSL2 -> GrpPSL2Elt
Returns the identity matrix in the congruence subgroup G.

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