# Matrix representation of elements in PSL(2,q) - SageMath

I just started using SageMath and am not sure how to represent the elements of PSL(2,q) as 2x2 matrices (instead of permutations).

For the case q = 7, I tried an explicit contruction based on this generator pair

MS = MatrixSpace(GF(7), 2)
gens = [MS([[2,0],[0,4]]),MS([[-1,1],[-1,0]])]
G = MatrixGroup(gens)
G.conjugacy_classes_representatives() # I want this to show representatives as 2x2 matrices


which doesn't work because it generates the group SL(2,7) instead of PSL(2,7).

• Interesting references about PSL(2,q) here Apr 14 at 20:59

The following constructs the groups $$S$$, the special linear group of size two over $$F=\Bbb F_7$$, and the group $$G$$ which is the PSL-group of interest, the quotient of $$S$$ w.r.t. its center $$\pm I$$.

For the question, i would define and use a morphism $$f:S\to G$$. Then for the purpose of having matrices instead of permutations, just check which matrices of $$S$$ are mapped to the specific element of $$G$$ (implemented by sage, inherited from GAP as a permutation).

F = GF(7)

S =  SL(2, F)
G = PSL(2, F)

f = S.Hom(G)(G.gens())    # this maps the generators of SL to those of PSL

print(f"The conjugacy classes of\nG = {G}\nare as follows:\n")

for c in G.conjugacy_classes_representatives():
print(f"Class of {c!s:20} represented by "
f"{[m.list() for m in S if f(m) == c]}")


This delivers:

The conjugacy classes of
G = The projective special linear group of degree 2 over Finite Field of size 7
are as follows:

Class of ()                   represented by [[[1, 0], [0, 1]], [[6, 0], [0, 6]]]
Class of (3,5,7)(4,6,8)       represented by [[[5, 0], [0, 3]], [[2, 0], [0, 4]]]
Class of (2,3,5,4,7,8,6)      represented by [[[1, 1], [0, 1]], [[6, 6], [0, 6]]]
Class of (2,4,6,5,8,3,7)      represented by [[[1, 3], [0, 1]], [[6, 4], [0, 6]]]
Class of (1,2)(3,4)(5,8)(6,7) represented by [[[0, 2], [3, 0]], [[0, 5], [4, 0]]]
Class of (1,2,3,5)(4,8,7,6)   represented by [[[3, 3], [2, 0]], [[4, 4], [5, 0]]]


Some comments: Interactively we can ask for the used ingredients.

sage: F
Finite Field of size 7
sage: F.multiplicative_generator()
3
sage: S
Special Linear Group of degree 2 over Finite Field of size 7
sage: S.gens()
(
[3 0]  [6 1]
[0 5], [6 0]
)
sage: [s.order() for s in S.gens()]
[6, 3]
sage: G.gens()
((3,7,5)(4,8,6), (1,2,6)(3,4,8))
sage: [g.order() for g in G.gens()]
[3, 3]
sage: f
Group morphism:
From: Special Linear Group of degree 2 over Finite Field of size 7
To:   The projective special linear group of degree 2 over Finite Field of size 7
sage: for s in S.gens():
....:     print(f"The matrix\n{s}\nin S is mapped to:\n{f(s)}\n")
....:
The matrix
[3 0]
[0 5]
in S is mapped to:
(3,7,5)(4,8,6)

The matrix
[6 1]
[6 0]
in S is mapped to:
(1,2,6)(3,4,8)


In words:

$$F$$ is the field $$\Bbb F_7$$, a multiplicative generator is $$w=3$$. Then the generators of $$S=\operatorname{SL}(2, F)$$ are $$\begin{bmatrix} w \\ & w^{-1} \end{bmatrix} = \begin{bmatrix} 3 & 0 \\ 0 & 5 \end{bmatrix}$$ and $$\begin{bmatrix} -1 & 1 \\ 1 & 0\end{bmatrix}$$. (GAP's choices). These elements have orders $$6$$, respectively $$3$$. The two generators for $$G=\operatorname{PSL}(2, F)$$ are two permutations with the same cyclic pattern. The morphism $$f$$ from $$S$$ to $$G$$ maps generators into generators. (The order may have been an issue, but is not, on the side of $$G$$ we have the "same pattern".)

The print shows also which are explicitly the images of the $$S$$-generators.

There is also a method f.preimage, but it is not for this purpose. Instead, i used an ad-hoc preimage, using list comprehension.

For instance, let us use some random element $$s$$ of $$S$$:

sage: s = S.random_element()
sage: s
[0 2]
[3 2]
sage: g = f(s)
sage: g
(1,4,7,5,3,6,2)


Then the ad-hoc preimage is:

[s for s in S if f(s) == g]


And the interpreter gives:

sage: [s for s in S if f(s) == g]
....:
[
[0 5]  [0 2]
[4 5], [3 2]
]


We have then explicit access to each of the representatives.

• I don't know why my previous comment was not posted, but thanks a lot for a very informative answer! Apr 23 at 15:23

$$2$$ is not primitive in $$\mathbb{F}_7$$. Use $$\omega=3$$, $$\omega^{-1}=5$$.

• Thanks, I completely missed that. But the generated group is still just SL(2,7) even by correcting 2,4 to 3,5. Apr 14 at 17:42