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.
Returns PSL_2(R), the projective linear group over the ring R.
The group Gamma_0(N) for any positive integer N.
The group Gamma_1(N) for any positive integer N.
The group Gamma^0(N) for any positive integer N.
The group Gamma^1(N) for any positive integer N.
The group Gamma(N) for any positive integer N.
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.
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}.
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.
The intersection of congruence subgroups G and H.
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)
Returns true if and only if the congruence subgroups G and H are equal.
For congruence subgroups G and H, returns true if and only if G is a subgroup of H.
For congruence subgroups G and H, returns the index of G in H provided G is a subgroup of H.
For G a congruence subgroup in PSL_2(Z), returns the index in PSL_2(Z).
The level of a congruence subgroup G.
Returns true if and only if G is a congruence subgroup.
Returns true if and only if G is equal to Gamma_0(N) for some integer N.
Returns true if and only if G is equal to Gamma_1(N) for some integer N.
Returns the base ring over which matrices of the congruence subgroup G are defined.
Returns the identity matrix in the congruence subgroup G.[Next][Prev] [Right] [Left] [Up] [Index] [Root]