# Restricting Characters on Sage

I am using Sage to obtain the character table of different permutation groups using the command G.character_table(). Is there any implemented command in Sage that restricts an irreducible character (ie, row of the table) to a given subgroup?

Alternatively, as I am mainly interested in Sylow p-subgroups, is it possible to delete from the character table all conjugacy classes whose order is not a power of p? I have been doing this manually using G.conjugacy_classes() and working out which conjugacy classes have order a power p as I did not manage to write a code that works out the order of the conjugacy classes.

edit retag close merge delete

Sort by ยป oldest newest most voted

Here is some sample situation, i hope that this case illustrates what can be done on the path of the question. I will work with the group $G=S_6$ with $6!=720$ elements. It has the following character_table:

sage: G = SymmetricGroup(6)
sage: G.character_table()
[ 1 -1  1 -1  1 -1  1 -1  1  1 -1]
[ 5 -3  1  1  2  0 -1 -1 -1  0  1]
[ 9 -3  1 -3  0  0  0  1  1 -1  0]
[ 5 -1  1  3 -1 -1  2  1 -1  0  0]
[10 -2 -2  2  1  1  1  0  0  0 -1]
[16  0  0  0 -2  0 -2  0  0  1  0]
[ 5  1  1 -3 -1  1  2 -1 -1  0  0]
[10  2 -2 -2  1 -1  1  0  0  0  1]
[ 9  3  1  3  0  0  0 -1  1 -1  0]
[ 5  3  1 -1  2  0 -1  1 -1  0 -1]
[ 1  1  1  1  1  1  1  1  1  1  1]


The columns correspond to the conjugacy classes in $G$. The rows are the different characters. For instance, to get the pyhtonically fourth, humanly fifth row, we are doing / may do the following. Use once for all times the ct variable for the above character table. Take the wanted row from it. We want this row, ct.rows()[4]. And let us associate to it the corresponding character - and immediately ask for the values of this character on representatives of the conjugacy classes:

sage: char4 = G.character( ct.rows()[4] )
sage: [ char4(g) for g in G.conjugacy_classes_representatives() ]
[10, -2, -2, 2, 1, 1, 1, 0, 0, 0, -1]
sage: char4.is_irreducible()
True


OK, we can go back and forth.

Some Sylow subgroup is now of interest. Let us take

sage: G.order().factor()
2^4 * 3^2 * 5
sage: H = G.sylow_subgroup(3)
sage: H.order()
9
sage: H
Subgroup generated by [(4,5,6), (1,2,3)] of (Symmetric group of order 6! as a permutation group)


It is easy now to restrict char4 to H:

sage: H = G.sylow_subgroup(3)
sage: H.order()
9
sage: H
Subgroup generated by [(4,5,6), (1,2,3)] of (Symmetric group of order 6! as a permutation group)
sage: H.is_abelian()
True
sage: H.structure_description()
'C3 x C3'

sage: char4H = char4.restrict(H)
sage: char4H
Character of Subgroup generated by [(4,5,6), (1,2,3)] of (Symmetric group of order 6! as a permutation group)

sage: [char4H(h) for h in H.conjugacy_classes_representatives()]
[10, 1, 1, 1, 1, 1, 1, 1, 1]


At this point, let us fix the group $G$ and some prime $p$, then plot the table of the values chi(g) for all irreducible chi and all representatives $g$ of conjugacy classes of order not a power of $p$:

p = 3
G = SymmetricGroup(6)
ct = G.character_table()

chi_list = [G.character(row) for row in ct.rows() if G.character(row).is_irreducible()]
g_list = [g for g in G.conjugacy_classes_representatives() if g.order().is_power_of(p)]

ct_submatrix = matrix([[chi(g) for g in g_list] for chi in chi_list])


And the submatrix is in our case:

sage: ct_submatrix
[ 1  1  1]
[ 5  2 -1]
[ 9  0  0]
[ 5 -1  2]
[10  1  1]
[16 -2 -2]
[ 5 -1  2]
[10  1  1]
[ 9  0  0]
[ 5  2 -1]
[ 1  1  1]

more