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 onself
.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 antisymmetrized product of self with itself
n
times.INPUT:
n
– a positive integer.
OUTPUT:
The
n
th antisymmetrized power ofself
as aClassFunction
.EXAMPLES:
sage: chi = ClassFunction(SymmetricGroup(4), [3, 1, 1, 0, 1]) sage: p = chi.exterior_power(3) # the highest antisymmetric power for a 3d 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 ofself
.
OUTPUT:
A
ClassFunction
ofG
defined by induction. Induction is the adjoint functor to restriction, seerestrict()
.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 ofself
.
OUTPUT:
A
ClassFunction
ofH
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 ofself
as aClassFunction
.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 onself
.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 antisymmetrized product of
self
with itselfn
times.INPUT:
n
– a positive integer
OUTPUT:
The
n
th antisymmetrized power ofself
as aClassFunction
.EXAMPLES:
sage: chi = ClassFunction(SymmetricGroup(4), [3, 1, 1, 0, 1]) sage: p = chi.exterior_power(3) # the highest antisymmetric power for a 3d 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 ofself
.
OUTPUT:
A
ClassFunction
ofG
defined by induction. Induction is the adjoint functor to restriction, seerestrict()
.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
ifself
cannot be written as the sum of two nonzero characters ofself
.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 ofself
.
OUTPUT:
A
ClassFunction
ofH
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
withother
.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 itselfn
times.INPUT:
n
– a positive integer
OUTPUT:
The
n
th symmetrized power ofself
as aClassFunction
.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
andother
.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]]
