Bases: sage.modular.arithgroup.congroup_generic.CongruenceSubgroup
The principal congruence subgroup .
Check if the cusps and
are equivalent under the action of this group.
ALGORITHM: The cusps and
are equivalent modulo
if and only if
.
EXAMPLE:
sage: Gamma(7).are_equivalent(Cusp(2/3), Cusp(5/4))
True
Return the image of this group modulo , as a subgroup of
. This is just the trivial subgroup.
EXAMPLE:
sage: Gamma(3).image_mod_n()
Matrix group over Ring of integers modulo 3 with 1 generators (
[1 0]
[0 1]
)
Return the index of self in the full modular group. This is given by
Return the number of cusps of this subgroup .
EXAMPLES:
sage: [Gamma(n).ncusps() for n in [1..19]]
[1, 3, 4, 6, 12, 12, 24, 24, 36, 36, 60, 48, 84, 72, 96, 96, 144, 108, 180]
sage: Gamma(30030).ncusps()
278691840
sage: Gamma(2^30).ncusps()
432345564227567616
Return the number of irregular cusps of self. For principal congruence subgroups this is always 0.
EXAMPLE:
sage: Gamma(17).nirregcusps()
0
Return the number of elliptic points of order 3 for this arithmetic
subgroup. Since this subgroup is for
, there are
no such points, so we return 0.
EXAMPLE:
sage: Gamma(89).nu3()
0
Calculate the unique reduced representative of the equivalence of the
cusp modulo this group. The reduced representative of an
equivalence class is the unique cusp in the class of the form
with
coprime,
minimal, and
minimal for that
.
EXAMPLES:
sage: Gamma(5).reduce_cusp(1/5)
Infinity
sage: Gamma(5).reduce_cusp(7/8)
3/2
sage: Gamma(6).reduce_cusp(4/3)
2/3
TESTS:
sage: G = Gamma(50); all([c == G.reduce_cusp(c) for c in G.cusps()])
True
Return the congruence subgroup .
EXAMPLES:
sage: Gamma(5) # indirect doctest
Congruence Subgroup Gamma(5)
sage: G = Gamma(23)
sage: G is Gamma(23)
True
sage: TestSuite(G).run()
Test global uniqueness:
sage: G = Gamma(17)
sage: G is loads(dumps(G))
True
sage: G2 = sage.modular.arithgroup.congroup_gamma.Gamma_class(17)
sage: G == G2
True
sage: G is G2
False
Return True if x is a congruence subgroup of type Gamma.
EXAMPLES:
sage: from sage.modular.arithgroup.all import is_Gamma
sage: is_Gamma(Gamma0(13))
False
sage: is_Gamma(Gamma(4))
True