Elements of Arithmetic Subgroups

class sage.modular.arithgroup.arithgroup_element.ArithmeticSubgroupElement(parent, x, check=True)

An element of an arithmetic subgroup of {\rm SL}_2(\ZZ).

__cmp__(right)

Compare self to right.

EXAMPLES:

sage: x = Gamma0(18)([19,1,18,1])
sage: x.__cmp__(3) is not 0
True
sage: x.__cmp__(x)
0

sage: x = Gamma0(5)([1,1,0,1])
sage: x == 0
False

This once caused a segfault (see trac #5443):

sage: r,s,t,u,v = Gamma0(2).gens()
sage: v == s*u
True
sage: s*u == v
True
__getitem__(q)

Fetch entries by direct indexing.

EXAMPLE::
sage: SL2Z([3,2,1,1])[0,0] 3
__init__(parent, x, check=True)

Create an element of an arithmetic subgroup.

INPUT: - parent - an arithmetic subgroup

  • x - data defining a 2x2 matrix over ZZ which lives in parent
  • check - if True, check that parent is an arithmetic subgroup, and that x defines a matrix of determinant 1

EXAMPLES:

sage: G = Gamma0(27)
sage: sage.modular.arithgroup.arithgroup_element.ArithmeticSubgroupElement(G, [4,1,27,7])
[ 4  1]
[27  7]
sage: sage.modular.arithgroup.arithgroup_element.ArithmeticSubgroupElement(Integers(3), [4,1,27,7])
...
TypeError: parent (= Ring of integers modulo 3) must be an arithmetic subgroup
sage: sage.modular.arithgroup.arithgroup_element.ArithmeticSubgroupElement(G, [2,0,0,2])
...
TypeError: matrix must have determinant 1
sage: sage.modular.arithgroup.arithgroup_element.ArithmeticSubgroupElement(G, [2,0,0,2], check=False)
[2, 0, 0, 2]

sage: x = Gamma0(11)([2,1,11,6])
sage: x == loads(dumps(x))
True

sage: x = Gamma0(5).0
sage: SL2Z(x)
[1 1]
[0 1]
sage: x in SL2Z
True
__invert__()

Return the inverse of self.

EXAMPLES:

sage: Gamma0(11)([1,-1,0,1]).__invert__()
[1 1]
[0 1]
__iter__()

EXAMPLES:

sage: Gamma0(2).0
[1 1]
[0 1]
sage: list(Gamma0(2).0)
[1, 1, 0, 1]
__nonzero__()

Return True, since the self lives in SL(2,Z), which does not contain the zero matrix.

EXAMPLES:

sage: x = Gamma0(5)([1,1,0,1])
sage: x.__nonzero__()
True
__repr__()

Return the string representation of self.

EXAMPLES:

sage: Gamma1(5)([6,1,5,1]).__repr__()
'[6 1]

[5 1]’

__weakref__
list of weak references to the object (if defined)
_mul_(right)

Return self * right.

EXAMPLES:

sage: x = Gamma0(7)([1,0,7,1]) * Gamma0(7)([3,2,7,5]) ; x # indirect doctest
[ 3  2]
[28 19]
sage: x.parent()
Congruence Subgroup Gamma0(7)
a()

Return the upper left entry of self.

EXAMPLES:

sage: Gamma0(13)([7,1,13,2]).a()
7
acton(z)

Return the result of the action of self on z as a fractional linear transformation.

EXAMPLES:

sage: G = Gamma0(15)
sage: g = G([1, 2, 15, 31])

An example of g acting on a symbolic variable:

sage: z = var('z')
sage: g.acton(z)
(z + 2)/(15*z + 31)

An example involving the Gaussian numbers:

sage: K.<i> = NumberField(x^2 + 1)
sage: g.acton(i)
1/1186*i + 77/1186

An example with complex numbers:

sage: C.<i> = ComplexField()
sage: g.acton(i)
0.0649241146711636 + 0.000843170320404721*I
b()

Return the upper right entry of self.

EXAMPLES:

sage: Gamma0(13)([7,1,13,2]).b()
1
c()

Return the lower left entry of self.

EXAMPLES:

sage: Gamma0(13)([7,1,13,2]).c()
13
d()

Return the lower right entry of self.

EXAMPLES:

sage: Gamma0(13)([7,1,13,2]).d()
2
det()

Return the determinant of self, which is always 1.

EXAMPLES:

sage: Gamma1(11)([12,11,-11,-10]).det()
1
determinant()

Return the determinant of self, which is always 1.

EXAMPLES:

sage: Gamma0(691)([1,0,691,1]).determinant()
1
matrix()

Return the matrix corresponding to self.

EXAMPLES:

sage: x = Gamma1(3)([4,5,3,4]) ; x
[4 5]
[3 4]
sage: x.matrix()
[4 5]
[3 4]
sage: type(x.matrix())
<type 'sage.matrix.matrix_integer_2x2.Matrix_integer_2x2'>

Previous topic

Arithmetic subgroups defined by permutations

Next topic

Congruence arithmetic subgroups of {\rm SL}_2(\ZZ)

This Page