Sí se puede hacer esto, siguiendo la documentación del manual de magma podemos hacer https://magma.maths.usyd.edu.au/magma/handbook/text/841
> G<s1,s2,s3> := Group< s1, s2, s3 | s1^2, s2^2, s3^2, (s1*s2)^4, (s1 * s3)^2, (s2*s3)^3>;
> Order(G);
48
> LowIndexSubgroups(G, <48 div 8, 48 div 8>);
[
Finitely presented group on 2 generators
Index in group G is 6 = 2 * 3
Generators as words in group G
$.1 = s2 * s1
$.2 = s3 * s2 * s1 * s2 * s3 * s1,
Finitely presented group on 3 generators
Index in group G is 6 = 2 * 3
Generators as words in group G
$.1 = s2
$.2 = s1 * s2 * s1
$.3 = s3 * s2 * s1 * s2 * s3 * s1,
Finitely presented group on 2 generators
Index in group G is 6 = 2 * 3
Generators as words in group G
$.1 = s1
$.2 = s3 * s2 * s1 * s2,
Finitely presented group on 3 generators
Index in group G is 6 = 2 * 3
Generators as words in group G
$.1 = s1
$.2 = s2 * s1 * s2
$.3 = s3 * s2 * s1 * s2 * s3 * s2,
Finitely presented group on 3 generators
Index in group G is 6 = 2 * 3
Generators as words in group G
$.1 = s1
$.2 = s2 * s1 * s2
$.3 = s3 * s2 * s1 * s2 * s3,
Finitely presented group on 3 generators
Index in group G is 6 = 2 * 3
Generators as words in group G
$.1 = s1
$.2 = s3
$.3 = s2 * s1 * s2 * s3 * s2 * s1 * s2,
Finitely presented group on 2 generators
Index in group G is 6 = 2 * 3
Generators as words in group G
$.1 = s1
$.2 = s2
]
true
>
> LowIndexSubgroups(G, <48 div 16, 48 div 16>);
[
Finitely presented group on 3 generators
Index in group G is 3
Generators as words in group G
$.1 = s1
$.2 = s2
$.3 = s3 * s2 * s1 * s2 * s3
]
true
Esto enumera distintas clases de conjugación de subgrupos y nos da generadores en términos de los originales $s_1,s_2,s_3$ . Si sólo queremos el número de clases ponemos un # delante:
> #LowIndexSubgroups(G, <48 div 16, 48 div 16>);
1
> #LowIndexSubgroups(G, <48 div 8, 48 div 8>);
7
Para obtener el número real de subgrupos, véase el comentario de Derek Holt más arriba.