Module: sage.modular.congroup
Author: William Stein
TODO: - added "gens" functions for each subgroup (since this is such a frequently requested features).
Module-level Functions
c, d, N) |
If this Manin symbol is (c,d) viewed modulo N, this function computes and returns a list [a,b, c',d'] that defines a 2x2 matrix with determinant 1 and integer entries, such that c=c'(mod N) and d=d'(mod N).
Class: CongruenceSubgroup
self, level) |
Functions: are_equivalent,
coset_reps,
generators,
is_abelian,
is_finite,
is_subgroup,
level,
order
Special Functions: __call__,
__cmp__,
_repr_
Class: Gamma0
sage: G = Gamma0(11); G Congruence Subgroup Gamma0(11) sage: loads(G.dumps()) == G True
self, level) |
Functions: coset_reps,
generators,
is_subgroup
self) |
Return representatives for the right cosets of this
congruence subgroup in
as a generator.
Use list(self.coset_reps())
to obtain coset reps as a
list.
self) |
Return generators for this congruence subgroup. These are
computed using coset representatives, a naive algorithm
(Todd-Coxeter?), and generators for
.
ALGORITHM: Given coset representatives for a finite index
subgroup
of
we compute generators for
as
follows. Let
be a set of coset representatives for
.
Let
be defined by
0,-1,1,0]
and
1,1,0,1
, respectively. Define maps
as
follows. If
, then there exists a unique
such that
. Let
. Likewise, there
is a unique
such that
and we let
. Note that
and
are in
for
all
. Then
is generated by
. There are
more sophisticated algorithms using group actions on trees
(and Farey symbols) that give smaller generating sets.
self, right) |
Return True if self is a subgroup of right.
Special Functions: __cmp__,
_latex_,
_repr_
Class: Gamma1
sage: G = Gamma1(11); G Congruence Subgroup Gamma1(11) sage: loads(G.dumps()) == G True
self, level) |
Functions: is_subgroup
self, right) |
Return True if self is a subgroup of right.
sage: Gamma1(3).is_subgroup(SL2Z()) True sage: Gamma1(3).is_subgroup(Gamma1(5)) False sage: Gamma1(3).is_subgroup(Gamma1(6)) False sage: Gamma1(6).is_subgroup(Gamma1(3)) True
Special Functions: __cmp__,
_latex_,
_repr_
Class: GammaH
TODO: This is NOT really implemented yet.
self, level, H) |
Special Functions: _latex_,
_repr_
Class: SL2Z
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(\mbox{\bf{}Z}) sage: G([1,-1,0,1]) [ 1 -1] [ 0 1] sage: loads(G.dumps()) == G True
self) |
Functions: gen,
gens,
is_subgroup,
ngens
self, right) |
Return True if self is a subgroup of right.
Special Functions: __call__,
_latex_,
_repr_
See About this document... for information on suggesting changes.