Elements of PSL2(R)

Contents

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 pmatrix(a & b
c & d), 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 PSL2(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 PSL2(Z), returns true if g and h are defined of the same field, and if Gg = Gh, i.e. if gh - 1∈G.
g in G : GrpPSL2Elt, GrpPSL2 -> BoolElt
For g an elements of PSL2(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 gn.

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 gn.

Example GrpPSL2_Creation-CongruenceSubgroups (H139E6)

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]
V2.28, 13 July 2023