# Understanding whether the addition of an element to a subgroup of an infinite group will result in an infinite group or not in GAP/SageMath

This is more of a software-related question, but I wanted to ask here because I am confident that most people in this forum are well-acquainted with GAP/SageMath and can provide more insight for the answer.

Essentially, I have a subgroup of SU(2) known as SL(2,5). I took the tensor product of the matrix elements from this group with the identity to obtain 4x4 matrices. Then, I attempted to add a matrix that does not belong to this subgroup to the matrix group. Finally, I wanted to check whether this combination results in an infinite or finite group.

I specifically intended to achieve this using software. There are two main software options for these kinds of group theory processes, one of which is SageMath. I attempted to code something in SageMath, but it was unsuccessful. I'm wondering if someone can assist me with this. Additionally, I'm curious about other methods to prove whether the combination of a finite subgroup with a different element yields a finite or infinite group.

Here is my code in sagemath (and I am fine if someone has it in GAP too)

addition = matrix([[1,0,0,0],[0,1,0,0],[1,0,0,1],[1,0,1,0]])
new_matrices_ = []
gens_ = MatrixGroup(SL(2,5)).gens() #the subgroup I am interested
print(len(gens_))
identity_mat = matrix([[1, 0], [0, 1]])#Identity(2)#matrix[[1, 0], [0, 1]]
for i in gens_:
i_matrix_ = matrix(i)
tensor_mat_= i.matrix().cross_product(identity_mat) #tried to tensor product of the group element with identity but can't achieve that
#tensor_mat_ = i.kronecker_product(gens_[0]) #tried to tensor product of the group element with identity but can't achieve that
#print(tensor_mat_)
new_matrices_.append(tensor_mat_)
is_infinite(MatrixGroup(new_matrices))


I am stuck in the line that make a tensor product of the group element with identity

addition = matrix([[1,0,0,0],[0,1,0,0],[1,0,0,1],[1,0,1,0]])
new_matrices_ = []
gens_ = MatrixGroup(SL(2,5)).gens() #the subgroup I am interested
for m in gens_:
tensor_mat_= m.matrix().tensor_product(identity_matrix(2))
new_matrices_.append(tensor_mat_)


Some elements:

new_matrices_[20:25]


returns

[
[2 0|2 0]  [1 0|4 0]  [1 0|1 0]  [3 0|3 0]  [1 0|3 0]
[0 2|0 2]  [0 1|0 4]  [0 1|0 1]  [0 3|0 3]  [0 1|0 3]
[---+---]  [---+---]  [---+---]  [---+---]  [---+---]
[3 0|1 0]  [4 0|2 0]  [1 0|2 0]  [2 0|4 0]  [0 0|1 0]
[0 3|0 1], [0 4|0 2], [0 1|0 2], [0 2|0 4], [0 0|0 1]
]


Now append addition:

sage: new_matrices_.append(addition)
sage: MatrixGroup(new_matrices_)
Matrix group over Finite Field of size 5 with 121 generators
sage: MatrixGroup(new_matrices_).is_finite()
True
sage: MatrixGroup(new_matrices_).cardinality()
18000000

• I was just writing an answer to this question with cordinality :) Commented Jul 6, 2023 at 4:33
• Careful: In GAP, SL(2,5) is defined over the field with 5 elements, which pushes everything into this characteristic, and in particular makes it finite. Since the OP writes $SU(2)$, I presume she wants groups in characteristic zero. Commented Jul 6, 2023 at 6:59
• hmm, how to make characteristic zero? can you provide an example? Commented Jul 6, 2023 at 11:36
• @j.doe no. I have no clue about sage, only GAP. Commented Jul 12, 2023 at 4:36
• You can get part of the way with this: G = SL(2,5); Ch = G.irreducible_characters(). Then if you evaluate [a.values()[0] for a in Ch], you can see the 0th entry in each character and see that two of them are equal to 2. Then a, b = Ch[1], Ch[2] will give you the relevant characters. I'm not sure how to then convert those to matrix groups in Sage. You could read the GAP documentation at docs.gap-system.org/doc/ref/chap71.html to see if you can reconstruct their algorithm. Commented Jul 12, 2023 at 4:42