Elements of \({\operatorname{PSL}}_2({\mathbb{R}})\)#

Creation#

G ! x: GrpPSL2, . -> GrpPSL2#
G ! x: GrpPSL2, RngIntElt -> GrpPSL2#
G ! x: GrpPSL2, GrpMatElt -> GrpPSL2#
G ! x: GrpPSL2, AlgMatElt -> GrpPSL2#
G ! x: GrpPSL2, GrpPSL2Elt -> GrpPSL2#

If \(x\) is a sequence \(x = [a,b,c,d]\) of elements in the base ring of \(G\), this function returns \(\begin{pmatrix}a & b\\ c & d\end{pmatrix}\), provided this is an element of \(G\). If \(x\) is an integer the identity matrix is returned. If \(x\) is a matrix, it is coerced into \(G\) if possible.

Random(G, m): GrpPSL2, RngIntElt -> GrpPSL2Elt#

Returns a random element of the projective linear group \(G\), with \(m\) determining the size of the coefficients.

Membership and Equality Testing#

g eq h: GrpPSL2Elt, GrpPSL2Elt -> BoolElt#

For \(g\) and \(h\) elements of \({\operatorname{PSL}}_2({\mathbb{Z}})\), returns true if \(g, h\) have compatible coefficient rings and if \(g = h\), false otherwise. Since the group is projective, returns true if the matrices are equal up to a nonzero scalar multiple.

IsEquivalent(g, h, G): GrpPSL2Elt, GrpPSL2Elt, GrpPSL2 -> BoolElt#

For \(g\) and \(h\) elements of \({\operatorname{PSL}}_2({\mathbb{Z}})\), returns true if \(g\) and \(h\) are defined of the same field, and if \(Gg = Gh\), i.e. if \(gh^{-1}\in G\).

g in G: GrpPSL2Elt, GrpPSL2 -> BoolElt#

For \(g\) an elements of \({\operatorname{PSL}}_2({\mathbb{Z}})\), returns true if \(g\) is in the congruence subgroup \(G\), false otherwise.

Basic Functions#

For a matrix \(g\) in a congruence subgroup, and an integer \(n\), returns \(g^n\).

Eltseq(g): GrpPSL2Elt -> SeqEnum#

Returns the sequence of four numbers which are the entries of the matrix \(g\).

g * h: GrpPSL2Elt, GrpPSL2Elt -> GrpPSL2Elt#

If \(g\) and \(h\) have the same parent then this returns their product.

g ^ n: GrpPSL2Elt, RngIntElt -> GrpPSL2Elt#

For a matrix \(g\) and integer \(n\) returns \(g^n\).

Example: Creation CongruenceSubgroups (ex-baea46)#

Define congruence subgroups as in the following examples:

> // examples of defining matrix elements of congruence subgroups:
>
> G := PSL2(Integers());
> G![2,0,0,2];
[1 0]
[0 1]

> H := CongruenceSubgroup([2,3,6]);
> H![7,6,8,7];
[7 6]
[8 7]

Run in calculator