# Finding and Identifying Finite Subgroups in SageMath

I have a finite subgroup, which I determined to be finite using the is_finite() function. The cardinality() function helped me establish how many matrices are present in this subgroup. Now, I am curious to know if there is a way to identify this specific finite subgroup in SageMath, for example, is it actually the XX* subgroup? Alternatively, to which group does this subgroup belong? Perhaps there exists a database where we can conveniently check the nature of this subgroup.

I am also wondering if we can directly check if the 'MatrixGroup(new_matrices_)' group is actually an XX* group using a function like if MatrixGroup(new_matrices) == XX. Additionally, I have a related question: How can I locate a specific subgroup in SageMath? For example, I have several subgroups defined in this paper: A Monograph on the Classification of the Discrete Subgroups of SU (4), and if I want to access, let's say the XX subgroup, how can I do it in SageMath? Sorry for the many little questions. I thought that they are all related, so instead of asking a new question for each little question, I combined them into one question and asked them all together.

Here is the minimal code for my matrix group:

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_)
MatrixGroup(new_matrices_)
MatrixGroup(new_matrices_).is_finite()
MatrixGroup(new_matrices_).cardinality()

edit retag close merge delete

( 2023-07-19 14:03:00 +0200 )edit

I have updated the question

( 2023-07-20 02:22:55 +0200 )edit

Sort by ยป oldest newest most voted

Let us introduce the given group $G$, for short:

A = matrix([[1,0,0,0],[0,1,0,0],[1,0,0,1],[1,0,1,0]])
I2 = identity_matrix(2)
matrices = [A] + [g.matrix().tensor_product(I2) for g in MatrixGroup(SL(2, 5)).gens()]
G = MatrixGroup(matrices)


sage: G.is_finite()
True
sage: G.order()
18000000
sage: G.cardinality()
18000000
sage: G.structure_description()
'(C5 x C5 x C5 x C5) : (SL(2,5) x (SL(2,5) : C2))'


Now all the posted little questions are not really well defined for my taste. They depend on the $XX*$ stuff, which is not a "standard stuff". If you have further other groups, then implement them in sage, and check first for order and structure, if two of them are matching you should have a fairly positive answer, else not.

Note: Almost the same question appears also on the MSE site and there we have a link to the paper:

This information is missing here, but would have been of interest. On the other hand, here we have some code sample, which is missing on the MSE cousin question. I am relatively active on both sites, and well, one of them is in some partial order "worse" regarding activity and responsivity, your feeling on MSE was that "sagemath is really worse in that sense[...]". Well, yes, this may be the case, so feel free to voluntarily improve and answer questions on both sites.

At any rate, my problem with the question was related to the still unclear $XX^$ notation. Please understand that question *here should come self-contained, should define all non-standard objects here - and if references are given, these references should give a straightforward definition. Please do not expect that somebody reads an article in full length, then try to guess and match objects through their similar notations.

more