The modular group {\rm SL}_2(\ZZ)

class sage.modular.arithgroup.congroup_sl2z.SL2Z_class

The full modular group {\rm SL}_2(\ZZ), regarded as a congruence subgroup of itself.

__init__()

The modular group ${rm SL}_2(Z)$.

EXAMPLES:

sage: G = SL2Z; G
Modular Group SL(2,Z)
sage: G.gens()
([ 0 -1]
[ 1  0], [1 1]
[0 1])
sage: G.0
[ 0 -1]
[ 1  0]
sage: G.1
[1 1]
[0 1]
sage: latex(G)
\mbox{\rm SL}_2(\Bold{Z})
sage: G([1,-1,0,1])
[ 1 -1]
[ 0  1]
sage: loads(G.dumps()) == G
True
sage: SL2Z.0 * SL2Z.1
[ 0 -1]
[ 1  1]

sage: SL2Z == loads(dumps(SL2Z))
True
sage: SL2Z is loads(dumps(SL2Z))
True
__reduce__()

Used for pickling self.

EXAMPLES:

sage: SL2Z.__reduce__()
(<function _SL2Z_ref at ...>, ())
_latex_()

Return the LaTeX representation of self.

EXAMPLES:

sage: SL2Z._latex_()
'\\mbox{\\rm SL}_2(\\Bold{Z})'
sage: latex(SL2Z)
\mbox{\rm SL}_2(\Bold{Z})
_repr_()

Return the string representation of self.

EXAMPLES:

sage: SL2Z._repr_()
'Modular Group SL(2,Z)'
is_subgroup(right)

Return True if self is a subgroup of right.

EXAMPLES:

sage: SL2Z.is_subgroup(SL2Z)
True
sage: SL2Z.is_subgroup(Gamma1(1))
True
sage: SL2Z.is_subgroup(Gamma0(6))
False
random_element(bound=100)

Return a random element of {\rm SL}_2(\ZZ) with entries whose absolute value is strictly less than bound (default 100).

(Algorithm: Generate a random pair of integers at most bound. If they are not coprime, throw them away and start again. If they are, find an element of {\rm SL}_2(\ZZ) whose bottom row is that, and left-multiply it by \begin{pmatrix} 1 & w \\ 0 & 1\end{pmatrix} for an integer w randomly chosen from a small enough range that the answer still has entries at most bound.)

It is, unfortunately, not true that all elements of SL2Z with entries < bound appear with equal probability; those with larger bottom rows are favoured, because there are fewer valid possibilities for w.

EXAMPLES:

sage: SL2Z.random_element() # random
sage: SL2Z.random_element(5) # still random
reduce_cusp(c)

Return the unique reduced cusp equivalent to c under the action of self. Always returns Infinity, since there is only one equivalence class of cusps for $SL_2(Z)$.

EXAMPLES:

sage: SL2Z.reduce_cusp(Cusps(-1/4))
Infinity
sage.modular.arithgroup.congroup_sl2z._SL2Z_ref()

Return SL2Z. (Used for pickling SL2Z.)

EXAMPLES:

sage: sage.modular.arithgroup.congroup_sl2z._SL2Z_ref()
Modular Group SL(2,Z)
sage: sage.modular.arithgroup.congroup_sl2z._SL2Z_ref() is SL2Z
True
sage.modular.arithgroup.congroup_sl2z.is_SL2Z(x)

Return True if x is the modular group {\rm SL}_2(\ZZ).

EXAMPLES:

sage: from sage.modular.arithgroup.all import is_SL2Z
sage: is_SL2Z(SL2Z)
True
sage: is_SL2Z(Gamma0(6))
False

Previous topic

Congruence Subgroup \Gamma(N)

Next topic

General Hecke Algebras and Hecke Modules

This Page