Class functions of groups.

This module implements a wrapper of GAP’s ClassFunction function.

NOTE: The ordering of the columns of the character table of a group corresponds to the ordering of the list. However, in general there is no way to canonically list (or index) the conjugacy classes of a group. Therefore the ordering of the columns of the character table of a group is somewhat random.

AUTHORS:

  • Franco Saliola (November 2008): initial version
  • Volker Braun (October 2010): Bugfixes, exterior and symmetric power.
sage.groups.class_function.ClassFunction(group, values)

Construct a class function.

INPUT:

  • group – a group.
  • values – list/tuple/iterable of numbers. The values of the class function on the conjugacy classes, in that order.

EXAMPLES:

sage: G = CyclicPermutationGroup(4)
sage: G.conjugacy_classes()
[Conjugacy class of () in Cyclic group of order 4 as a permutation group,
 Conjugacy class of (1,2,3,4) in Cyclic group of order 4 as a permutation group,
 Conjugacy class of (1,3)(2,4) in Cyclic group of order 4 as a permutation group,
 Conjugacy class of (1,4,3,2) in Cyclic group of order 4 as a permutation group]
sage: values  = [1, -1, 1, -1]
sage: chi = ClassFunction(G, values); chi
Character of Cyclic group of order 4 as a permutation group
class sage.groups.class_function.ClassFunction_gap(G, values)

Bases: sage.structure.sage_object.SageObject

A wrapper of GAP’s ClassFunction function.

Note

It is not checked whether the given values describes a character, since GAP does not do this.

EXAMPLES:

sage: G = CyclicPermutationGroup(4)
sage: values  = [1, -1, 1, -1]
sage: chi = ClassFunction(G, values); chi
Character of Cyclic group of order 4 as a permutation group
sage: loads(dumps(chi)) == chi
True
adams_operation(k)

Return the k-th Adams operation on self.

Let \(G\) be a finite group. The \(k\)-th Adams operation \(\Psi^k\) is given by

\[\Psi^k(\chi)(g) = \chi(g^k).\]

The Adams operations turn the representation ring of \(G\) into a \(\lambda\)-ring.

EXAMPLES:

sage: G = groups.permutation.Alternating(5)
sage: chars = G.irreducible_characters()
sage: [chi.adams_operation(2).values() for chi in chars]
[[1, 1, 1, 1, 1],
 [3, 3, 0, -zeta5^3 - zeta5^2, zeta5^3 + zeta5^2 + 1],
 [3, 3, 0, zeta5^3 + zeta5^2 + 1, -zeta5^3 - zeta5^2],
 [4, 4, 1, -1, -1],
 [5, 5, -1, 0, 0]]
sage: chars[4].adams_operation(2).decompose()
((1, Character of Alternating group of order 5!/2 as a permutation group),
 (-1, Character of Alternating group of order 5!/2 as a permutation group),
 (-1, Character of Alternating group of order 5!/2 as a permutation group),
 (2, Character of Alternating group of order 5!/2 as a permutation group))

REFERENCES:

central_character()

Returns the central character of self.

EXAMPLES:

sage: t = SymmetricGroup(4).trivial_character()
sage: t.central_character().values()
[1, 6, 3, 8, 6]
decompose()

Returns a list of the characters that appear in the decomposition of chi.

EXAMPLES:

sage: S5 = SymmetricGroup(5)
sage: chi = ClassFunction(S5, [22, -8, 2, 1, 1, 2, -3])
sage: chi.decompose()
((3, Character of Symmetric group of order 5! as a permutation group),
 (2, Character of Symmetric group of order 5! as a permutation group))
degree()

Returns the degree of the character self.

EXAMPLES:

sage: S5 = SymmetricGroup(5)
sage: irr = S5.irreducible_characters()
sage: [x.degree() for x in irr]
[1, 4, 5, 6, 5, 4, 1]
determinant_character()

Returns the determinant character of self.

EXAMPLES:

sage: t = ClassFunction(SymmetricGroup(4), [1, -1, 1, 1, -1])
sage: t.determinant_character().values()
[1, -1, 1, 1, -1]
domain()

Returns the domain of the self.

OUTPUT:

The underlying group of the class function.

EXAMPLES:

sage: ClassFunction(SymmetricGroup(4), [1,-1,1,1,-1]).domain()
Symmetric group of order 4! as a permutation group
exterior_power(n)

Returns the anti-symmetrized product of self with itself n times.

INPUT:

  • n – a positive integer.

OUTPUT:

The n-th anti-symmetrized power of self as a ClassFunction.

EXAMPLES:

sage: chi = ClassFunction(SymmetricGroup(4), [3, 1, -1, 0, -1])
sage: p = chi.exterior_power(3)   # the highest anti-symmetric power for a 3-d character
sage: p
Character of Symmetric group of order 4! as a permutation group
sage: p.values()
[1, -1, 1, 1, -1]
sage: p == chi.determinant_character()
True
induct(G)

Return the induced character.

INPUT:

  • G – A supergroup of the underlying group of self.

OUTPUT:

A ClassFunction of G defined by induction. Induction is the adjoint functor to restriction, see restrict().

EXAMPLES:

sage: G = SymmetricGroup(5)
sage: H = G.subgroup([(1,2,3), (1,2), (4,5)])
sage: xi = H.trivial_character(); xi
Character of Subgroup of (Symmetric group of order 5! as a permutation group) generated by [(4,5), (1,2), (1,2,3)]
sage: xi.induct(G)
Character of Symmetric group of order 5! as a permutation group
sage: xi.induct(G).values()
[10, 4, 2, 1, 1, 0, 0]
irreducible_constituents()

Returns a list of the characters that appear in the decomposition of chi.

EXAMPLES:

sage: S5 = SymmetricGroup(5)
sage: chi = ClassFunction(S5, [22, -8, 2, 1, 1, 2, -3])
sage: irr = chi.irreducible_constituents(); irr
(Character of Symmetric group of order 5! as a permutation group,
 Character of Symmetric group of order 5! as a permutation group)
sage: list(map(list, irr))
[[4, -2, 0, 1, 1, 0, -1], [5, -1, 1, -1, -1, 1, 0]]
sage: G = GL(2,3)
sage: chi = ClassFunction(G, [-1, -1, -1, -1, -1, -1, -1, -1])
sage: chi.irreducible_constituents()
(Character of General Linear Group of degree 2 over Finite Field of size 3,)
sage: chi = ClassFunction(G, [1, 1, 1, 1, 1, 1, 1, 1])
sage: chi.irreducible_constituents()
(Character of General Linear Group of degree 2 over Finite Field of size 3,)
sage: chi = ClassFunction(G, [2, 2, 2, 2, 2, 2, 2, 2])
sage: chi.irreducible_constituents()
(Character of General Linear Group of degree 2 over Finite Field of size 3,)
sage: chi = ClassFunction(G, [-1, -1, -1, -1, 3, -1, -1, 1])
sage: ic = chi.irreducible_constituents(); ic
(Character of General Linear Group of degree 2 over Finite Field of size 3,
 Character of General Linear Group of degree 2 over Finite Field of size 3)
sage: list(map(list, ic))
[[2, -1, 2, -1, 2, 0, 0, 0], [3, 0, 3, 0, -1, 1, 1, -1]]
is_irreducible()

Returns True if self cannot be written as the sum of two nonzero characters of self.

EXAMPLES:

sage: S4 = SymmetricGroup(4)
sage: irr = S4.irreducible_characters()
sage: [x.is_irreducible() for x in irr]
[True, True, True, True, True]
norm()

Returns the norm of self.

EXAMPLES:

sage: A5 = AlternatingGroup(5)
sage: [x.norm() for x in A5.irreducible_characters()]
[1, 1, 1, 1, 1]
restrict(H)

Return the restricted character.

INPUT:

  • H – a subgroup of the underlying group of self.

OUTPUT:

A ClassFunction of H defined by restriction.

EXAMPLES:

sage: G = SymmetricGroup(5)
sage: chi = ClassFunction(G, [3, -3, -1, 0, 0, -1, 3]); chi
Character of Symmetric group of order 5! as a permutation group
sage: H = G.subgroup([(1,2,3), (1,2), (4,5)])
sage: chi.restrict(H)
Character of Subgroup of (Symmetric group of order 5! as a permutation group) generated by [(4,5), (1,2), (1,2,3)]
sage: chi.restrict(H).values()
[3, -3, -3, -1, 0, 0]
scalar_product(other)

Returns the scalar product of self with other.

EXAMPLES:

sage: S4 = SymmetricGroup(4)
sage: irr = S4.irreducible_characters()
sage: [[x.scalar_product(y) for x in irr] for y in irr]
[[1, 0, 0, 0, 0],
 [0, 1, 0, 0, 0],
 [0, 0, 1, 0, 0],
 [0, 0, 0, 1, 0],
 [0, 0, 0, 0, 1]]
symmetric_power(n)

Returns the symmetrized product of self with itself n times.

INPUT:

  • n – a positive integer.

OUTPUT:

The n-th symmetrized power of self as a ClassFunction.

EXAMPLES:

sage: chi = ClassFunction(SymmetricGroup(4), [3, 1, -1, 0, -1])
sage: p = chi.symmetric_power(3)
sage: p
Character of Symmetric group of order 4! as a permutation group
sage: p.values()
[10, 2, -2, 1, 0]
tensor_product(other)

EXAMPLES:

sage: S3 = SymmetricGroup(3)
sage: chi1, chi2, chi3 = S3.irreducible_characters()
sage: chi1.tensor_product(chi3).values()
[1, -1, 1]
values()

Return the list of values of self on the conjugacy classes.

EXAMPLES:

sage: G = GL(2,3)
sage: [x.values() for x in G.irreducible_characters()] #random
[[1, 1, 1, 1, 1, 1, 1, 1],
 [1, 1, 1, 1, 1, -1, -1, -1],
 [2, -1, 2, -1, 2, 0, 0, 0],
 [2, 1, -2, -1, 0, -zeta8^3 - zeta8, zeta8^3 + zeta8, 0],
 [2, 1, -2, -1, 0, zeta8^3 + zeta8, -zeta8^3 - zeta8, 0],
 [3, 0, 3, 0, -1, -1, -1, 1],
 [3, 0, 3, 0, -1, 1, 1, -1],
 [4, -1, -4, 1, 0, 0, 0, 0]]
class sage.groups.class_function.ClassFunction_libgap(G, values)

Bases: sage.structure.sage_object.SageObject

A wrapper of GAP’s ClassFunction function.

Note

It is not checked whether the given values describes a character, since GAP does not do this.

EXAMPLES:

sage: G = SO(3,3)
sage: values  = [1, -1, -1, 1, 2]
sage: chi = ClassFunction(G, values); chi
Character of Special Orthogonal Group of degree 3 over Finite Field of size 3
sage: loads(dumps(chi)) == chi
True
adams_operation(k)

Return the k-th Adams operation on self.

Let \(G\) be a finite group. The \(k\)-th Adams operation \(\Psi^k\) is given by

\[\Psi^k(\chi)(g) = \chi(g^k).\]

The Adams operations turn the representation ring of \(G\) into a \(\lambda\)-ring.

EXAMPLES:

sage: G = GL(2,3)
sage: chars = G.irreducible_characters()
sage: [chi.adams_operation(2).values() for chi in chars]
[[1, 1, 1, 1, 1, 1, 1, 1],
 [1, 1, 1, 1, 1, 1, 1, 1],
 [2, -1, 2, -1, 2, 2, 2, 2],
 [2, -1, 2, -1, -2, 0, 0, 2],
 [2, -1, 2, -1, -2, 0, 0, 2],
 [3, 0, 3, 0, 3, -1, -1, 3],
 [3, 0, 3, 0, 3, -1, -1, 3],
 [4, 1, 4, 1, -4, 0, 0, 4]]
sage: chars[5].adams_operation(3).decompose()
((1, Character of General Linear Group of degree 2 over Finite Field of size 3),
 (1, Character of General Linear Group of degree 2 over Finite Field of size 3),
 (-1, Character of General Linear Group of degree 2 over Finite Field of size 3),
 (1, Character of General Linear Group of degree 2 over Finite Field of size 3))

REFERENCES:

central_character()

Return the central character of self.

EXAMPLES:

sage: t = SymmetricGroup(4).trivial_character()
sage: t.central_character().values()
[1, 6, 3, 8, 6]
decompose()

Return a list of the characters that appear in the decomposition of self.

EXAMPLES:

sage: S5 = SymmetricGroup(5)
sage: chi = ClassFunction(S5, [22, -8, 2, 1, 1, 2, -3])
sage: chi.decompose()
((3, Character of Symmetric group of order 5! as a permutation group),
 (2, Character of Symmetric group of order 5! as a permutation group))
degree()

Return the degree of the character self.

EXAMPLES:

sage: S5 = SymmetricGroup(5)
sage: irr = S5.irreducible_characters()
sage: [x.degree() for x in irr]
[1, 4, 5, 6, 5, 4, 1]
determinant_character()

Return the determinant character of self.

EXAMPLES:

sage: t = ClassFunction(SymmetricGroup(4), [1, -1, 1, 1, -1])
sage: t.determinant_character().values()
[1, -1, 1, 1, -1]
domain()

Return the domain of self.

OUTPUT:

The underlying group of the class function.

EXAMPLES:

sage: ClassFunction(SymmetricGroup(4), [1,-1,1,1,-1]).domain()
Symmetric group of order 4! as a permutation group
exterior_power(n)

Return the anti-symmetrized product of self with itself n times.

INPUT:

  • n – a positive integer

OUTPUT:

The n-th anti-symmetrized power of self as a ClassFunction.

EXAMPLES:

sage: chi = ClassFunction(SymmetricGroup(4), [3, 1, -1, 0, -1])
sage: p = chi.exterior_power(3)   # the highest anti-symmetric power for a 3-d character
sage: p
Character of Symmetric group of order 4! as a permutation group
sage: p.values()
[1, -1, 1, 1, -1]
sage: p == chi.determinant_character()
True
gap()

Return the underlying LibGAP element.

EXAMPLES:

sage: G = CyclicPermutationGroup(4)
sage: values  = [1, -1, 1, -1]
sage: chi = ClassFunction(G, values);  chi
Character of Cyclic group of order 4 as a permutation group
sage: type(chi)
<class 'sage.groups.class_function.ClassFunction_gap'>
sage: gap(chi)
ClassFunction( CharacterTable( Group( [ (1,2,3,4) ] ) ), [ 1, -1, 1, -1 ] )
sage: type(_)
<class 'sage.interfaces.gap.GapElement'>
induct(G)

Return the induced character.

INPUT:

  • G – A supergroup of the underlying group of self.

OUTPUT:

A ClassFunction of G defined by induction. Induction is the adjoint functor to restriction, see restrict().

EXAMPLES:

sage: G = SymmetricGroup(5)
sage: H = G.subgroup([(1,2,3), (1,2), (4,5)])
sage: xi = H.trivial_character(); xi
Character of Subgroup of (Symmetric group of order 5! as a permutation group) generated by [(4,5), (1,2), (1,2,3)]
sage: xi.induct(G)
Character of Symmetric group of order 5! as a permutation group
sage: xi.induct(G).values()
[10, 4, 2, 1, 1, 0, 0]
irreducible_constituents()

Return a list of the characters that appear in the decomposition of self.

EXAMPLES:

sage: S5 = SymmetricGroup(5)
sage: chi = ClassFunction(S5, [22, -8, 2, 1, 1, 2, -3])
sage: irr = chi.irreducible_constituents(); irr
(Character of Symmetric group of order 5! as a permutation group,
 Character of Symmetric group of order 5! as a permutation group)
sage: list(map(list, irr))
[[4, -2, 0, 1, 1, 0, -1], [5, -1, 1, -1, -1, 1, 0]]

sage: G = GL(2,3)
sage: chi = ClassFunction(G, [-1, -1, -1, -1, -1, -1, -1, -1])
sage: chi.irreducible_constituents()
(Character of General Linear Group of degree 2 over Finite Field of size 3,)
sage: chi = ClassFunction(G, [1, 1, 1, 1, 1, 1, 1, 1])
sage: chi.irreducible_constituents()
(Character of General Linear Group of degree 2 over Finite Field of size 3,)
sage: chi = ClassFunction(G, [2, 2, 2, 2, 2, 2, 2, 2])
sage: chi.irreducible_constituents()
(Character of General Linear Group of degree 2 over Finite Field of size 3,)
sage: chi = ClassFunction(G, [-1, -1, -1, -1, 3, -1, -1, 1])
sage: ic = chi.irreducible_constituents(); ic
(Character of General Linear Group of degree 2 over Finite Field of size 3,
 Character of General Linear Group of degree 2 over Finite Field of size 3)
sage: list(map(list, ic))
[[2, -1, 2, -1, 2, 0, 0, 0], [3, 0, 3, 0, -1, 1, 1, -1]]
is_irreducible()

Return True if self cannot be written as the sum of two nonzero characters of self.

EXAMPLES:

sage: S4 = SymmetricGroup(4)
sage: irr = S4.irreducible_characters()
sage: [x.is_irreducible() for x in irr]
[True, True, True, True, True]
norm()

Return the norm of self.

EXAMPLES:

sage: A5 = AlternatingGroup(5)
sage: [x.norm() for x in A5.irreducible_characters()]
[1, 1, 1, 1, 1]
restrict(H)

Return the restricted character.

INPUT:

  • H – a subgroup of the underlying group of self.

OUTPUT:

A ClassFunction of H defined by restriction.

EXAMPLES:

sage: G = SymmetricGroup(5)
sage: chi = ClassFunction(G, [3, -3, -1, 0, 0, -1, 3]); chi
Character of Symmetric group of order 5! as a permutation group
sage: H = G.subgroup([(1,2,3), (1,2), (4,5)])
sage: chi.restrict(H)
Character of Subgroup of (Symmetric group of order 5! as a permutation group) generated by [(4,5), (1,2), (1,2,3)]
sage: chi.restrict(H).values()
[3, -3, -3, -1, 0, 0]
scalar_product(other)

Return the scalar product of self with other.

EXAMPLES:

sage: S4 = SymmetricGroup(4)
sage: irr = S4.irreducible_characters()
sage: [[x.scalar_product(y) for x in irr] for y in irr]
[[1, 0, 0, 0, 0],
 [0, 1, 0, 0, 0],
 [0, 0, 1, 0, 0],
 [0, 0, 0, 1, 0],
 [0, 0, 0, 0, 1]]
symmetric_power(n)

Return the symmetrized product of self with itself n times.

INPUT:

  • n – a positive integer

OUTPUT:

The n-th symmetrized power of self as a ClassFunction.

EXAMPLES:

sage: chi = ClassFunction(SymmetricGroup(4), [3, 1, -1, 0, -1])
sage: p = chi.symmetric_power(3)
sage: p
Character of Symmetric group of order 4! as a permutation group
sage: p.values()
[10, 2, -2, 1, 0]
tensor_product(other)

Return the tensor product of self and other.

EXAMPLES:

sage: S3 = SymmetricGroup(3)
sage: chi1, chi2, chi3 = S3.irreducible_characters()
sage: chi1.tensor_product(chi3).values()
[1, -1, 1]
values()

Return the list of values of self on the conjugacy classes.

EXAMPLES:

sage: G = GL(2,3)
sage: [x.values() for x in G.irreducible_characters()] #random
[[1, 1, 1, 1, 1, 1, 1, 1],
 [1, 1, 1, 1, 1, -1, -1, -1],
 [2, -1, 2, -1, 2, 0, 0, 0],
 [2, 1, -2, -1, 0, -zeta8^3 - zeta8, zeta8^3 + zeta8, 0],
 [2, 1, -2, -1, 0, zeta8^3 + zeta8, -zeta8^3 - zeta8, 0],
 [3, 0, 3, 0, -1, -1, -1, 1],
 [3, 0, 3, 0, -1, 1, 1, -1],
 [4, -1, -4, 1, 0, 0, 0, 0]]