Class functions of groups. - Groups

Skip to content
Back to top
View this page
Edit this page

# 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

      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

  Python

      >>> from sage.all import *
      >>> G = CyclicPermutationGroup(Integer(4))
      >>> 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]
      >>> values  = [Integer(1), -Integer(1), Integer(1), -Integer(1)]
      >>> 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: `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

      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

  Python

      >>> from sage.all import *
      >>> G = CyclicPermutationGroup(Integer(4))
      >>> values  = [Integer(1), -Integer(1), Integer(1), -Integer(1)]
      >>> chi = ClassFunction(G, values); chi
      Character of Cyclic group of order 4 as a permutation group
      >>> 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

        sage: G = groups.permutation.Alternating(5)
        sage: chars = sorted(G.irreducible_characters(), key=lambda chi:str(chi.values()))
        sage: [chi.adams_operation(2).values() for chi in chars]
        [[1, 1, 1, 1, 1],
         [3, 3, 0, zeta5^3 + zeta5^2 + 1, -zeta5^3 - zeta5^2],
         [3, 3, 0, -zeta5^3 - zeta5^2, zeta5^3 + zeta5^2 + 1],
         [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))

    Python

        >>> from sage.all import *
        >>> G = groups.permutation.Alternating(Integer(5))
        >>> chars = sorted(G.irreducible_characters(), key=lambda chi:str(chi.values()))
        >>> [chi.adams_operation(Integer(2)).values() for chi in chars]
        [[1, 1, 1, 1, 1],
         [3, 3, 0, zeta5^3 + zeta5^2 + 1, -zeta5^3 - zeta5^2],
         [3, 3, 0, -zeta5^3 - zeta5^2, zeta5^3 + zeta5^2 + 1],
         [4, 4, 1, -1, -1],
         [5, 5, -1, 0, 0]]
        >>> chars[Integer(4)].adams_operation(Integer(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:

    - Wikipedia article Adams_operation

  central_character()

    Return the central character of `self`.

    EXAMPLES:

    Sage

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

    Python

        >>> from sage.all import *
        >>> t = SymmetricGroup(Integer(4)).trivial_character()
        >>> t.central_character().values()
        [1, 6, 3, 8, 6]

  decompose()

    Return a list of the characters appearing the decomposition of `self`.

    EXAMPLES:

    Sage

        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))

    Python

        >>> from sage.all import *
        >>> S5 = SymmetricGroup(Integer(5))
        >>> chi = ClassFunction(S5, [Integer(22), -Integer(8), Integer(2), Integer(1), Integer(1), Integer(2), -Integer(3)])
        >>> 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

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

    Python

        >>> from sage.all import *
        >>> S5 = SymmetricGroup(Integer(5))
        >>> irr = S5.irreducible_characters()
        >>> [x.degree() for x in irr]
        [1, 4, 5, 6, 5, 4, 1]

  determinant_character()

    Return the determinant character of `self`.

    EXAMPLES:

    Sage

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

    Python

        >>> from sage.all import *
        >>> t = ClassFunction(SymmetricGroup(Integer(4)), [Integer(1), -Integer(1), Integer(1), Integer(1), -Integer(1)])
        >>> t.determinant_character().values()
        [1, -1, 1, 1, -1]

  domain()

    Return the domain of the `self`.

    OUTPUT: the underlying group of the class function

    EXAMPLES:

    Sage

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

    Python

        >>> from sage.all import *
        >>> ClassFunction(SymmetricGroup(Integer(4)), [Integer(1),-Integer(1),Integer(1),Integer(1),-Integer(1)]).domain()
        Symmetric group of order 4! as a permutation group

  exterior_power(n)

    Return the antisymmetrized product of `self` with itself \(n\) times.

    INPUT:

    - `n` – positive integer

    OUTPUT: the \(n\)-th antisymmetrized power of `self` as a `ClassFunction`

    EXAMPLES:

    Sage

        sage: chi = ClassFunction(SymmetricGroup(4), gap([3, 1, -1, 0, -1]))
        sage: p = chi.exterior_power(3)   # the highest antisymmetric 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

    Python

        >>> from sage.all import *
        >>> chi = ClassFunction(SymmetricGroup(Integer(4)), gap([Integer(3), Integer(1), -Integer(1), Integer(0), -Integer(1)]))
        >>> p = chi.exterior_power(Integer(3))   # the highest antisymmetric power for a 3-d character
        >>> p
        Character of Symmetric group of order 4! as a permutation group
        >>> p.values()
        [1, -1, 1, 1, -1]
        >>> 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

        sage: G = SymmetricGroup(5)
        sage: H = G.subgroup([(1,2,3), (1,2), (4,5)])
        sage: xi = H.trivial_character(); xi
        Character of Subgroup generated by [(1,2,3), (1,2), (4,5)] of
         (Symmetric group of order 5! as a permutation group)
        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]

    Python

        >>> from sage.all import *
        >>> G = SymmetricGroup(Integer(5))
        >>> H = G.subgroup([(Integer(1),Integer(2),Integer(3)), (Integer(1),Integer(2)), (Integer(4),Integer(5))])
        >>> xi = H.trivial_character(); xi
        Character of Subgroup generated by [(1,2,3), (1,2), (4,5)] of
         (Symmetric group of order 5! as a permutation group)
        >>> xi.induct(G)
        Character of Symmetric group of order 5! as a permutation group
        >>> 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 chi.

    EXAMPLES:

    Sage

        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]]

    Python

        >>> from sage.all import *
        >>> S5 = SymmetricGroup(Integer(5))
        >>> chi = ClassFunction(S5, [Integer(22), -Integer(8), Integer(2), Integer(1), Integer(1), Integer(2), -Integer(3)])
        >>> 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)
        >>> list(map(list, irr))
        [[4, -2, 0, 1, 1, 0, -1], [5, -1, 1, -1, -1, 1, 0]]
        >>> G = GL(Integer(2),Integer(3))
        >>> chi = ClassFunction(G, [-Integer(1), -Integer(1), -Integer(1), -Integer(1), -Integer(1), -Integer(1), -Integer(1), -Integer(1)])
        >>> chi.irreducible_constituents()
        (Character of General Linear Group of degree 2 over Finite Field of size 3,)
        >>> chi = ClassFunction(G, [Integer(1), Integer(1), Integer(1), Integer(1), Integer(1), Integer(1), Integer(1), Integer(1)])
        >>> chi.irreducible_constituents()
        (Character of General Linear Group of degree 2 over Finite Field of size 3,)
        >>> chi = ClassFunction(G, [Integer(2), Integer(2), Integer(2), Integer(2), Integer(2), Integer(2), Integer(2), Integer(2)])
        >>> chi.irreducible_constituents()
        (Character of General Linear Group of degree 2 over Finite Field of size 3,)
        >>> chi = ClassFunction(G, [-Integer(1), -Integer(1), -Integer(1), -Integer(1), Integer(3), -Integer(1), -Integer(1), Integer(1)])
        >>> 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)
        >>> 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

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

    Python

        >>> from sage.all import *
        >>> S4 = SymmetricGroup(Integer(4))
        >>> irr = S4.irreducible_characters()
        >>> [x.is_irreducible() for x in irr]
        [True, True, True, True, True]

  norm()

    Return the norm of `self`.

    EXAMPLES:

    Sage

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

    Python

        >>> from sage.all import *
        >>> A5 = AlternatingGroup(Integer(5))
        >>> [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

        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 generated by [(1,2,3), (1,2), (4,5)] of
         (Symmetric group of order 5! as a permutation group)
        sage: chi.restrict(H).values()
        [3, -3, -3, -1, 0, 0]

    Python

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

  scalar_product(other)

    Return the scalar product of `self` with `other`.

    EXAMPLES:

    Sage

        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]]

    Python

        >>> from sage.all import *
        >>> S4 = SymmetricGroup(Integer(4))
        >>> irr = S4.irreducible_characters()
        >>> [[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` – positive integer

    OUTPUT: the `n`-th symmetrized power of `self` as a `ClassFunction`

    EXAMPLES:

    Sage

        sage: chi = ClassFunction(SymmetricGroup(4), gap([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]

    Python

        >>> from sage.all import *
        >>> chi = ClassFunction(SymmetricGroup(Integer(4)), gap([Integer(3), Integer(1), -Integer(1), Integer(0), -Integer(1)]))
        >>> p = chi.symmetric_power(Integer(3))
        >>> p
        Character of Symmetric group of order 4! as a permutation group
        >>> p.values()
        [10, 2, -2, 1, 0]

  tensor_product(other)

    EXAMPLES:

    Sage

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

    Python

        >>> from sage.all import *
        >>> S3 = SymmetricGroup(Integer(3))
        >>> chi1, chi2, chi3 = S3.irreducible_characters()
        >>> chi1.tensor_product(chi3).values()
        [1, -1, 1]

  values()

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

    EXAMPLES:

    Sage

        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]]

    Python

        >>> from sage.all import *
        >>> G = GL(Integer(2),Integer(3))
        >>> [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: `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

      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

  Python

      >>> from sage.all import *
      >>> G = SO(Integer(3),Integer(3))
      >>> values  = [Integer(1), -Integer(1), -Integer(1), Integer(1), Integer(2)]
      >>> chi = ClassFunction(G, values); chi
      Character of Special Orthogonal Group of degree 3 over Finite Field of size 3
      >>> 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

        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))

    Python

        >>> from sage.all import *
        >>> G = GL(Integer(2),Integer(3))
        >>> chars = G.irreducible_characters()
        >>> [chi.adams_operation(Integer(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]]
        >>> chars[Integer(5)].adams_operation(Integer(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:

    - Wikipedia article Adams_operation

  central_character()

    Return the central character of `self`.

    EXAMPLES:

    Sage

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

    Python

        >>> from sage.all import *
        >>> t = SymmetricGroup(Integer(4)).trivial_character()
        >>> t.central_character().values()
        [1, 6, 3, 8, 6]

  decompose()

    Return a list of the characters appearing the decomposition of `self`.

    EXAMPLES:

    Sage

        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))

    Python

        >>> from sage.all import *
        >>> S5 = SymmetricGroup(Integer(5))
        >>> chi = ClassFunction(S5, [Integer(22), -Integer(8), Integer(2), Integer(1), Integer(1), Integer(2), -Integer(3)])
        >>> 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

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

    Python

        >>> from sage.all import *
        >>> S5 = SymmetricGroup(Integer(5))
        >>> irr = S5.irreducible_characters()
        >>> [x.degree() for x in irr]
        [1, 4, 5, 6, 5, 4, 1]

  determinant_character()

    Return the determinant character of `self`.

    EXAMPLES:

    Sage

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

    Python

        >>> from sage.all import *
        >>> t = ClassFunction(SymmetricGroup(Integer(4)), [Integer(1), -Integer(1), Integer(1), Integer(1), -Integer(1)])
        >>> 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

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

    Python

        >>> from sage.all import *
        >>> ClassFunction(SymmetricGroup(Integer(4)), [Integer(1),-Integer(1),Integer(1),Integer(1),-Integer(1)]).domain()
        Symmetric group of order 4! as a permutation group

  exterior_power(n)

    Return the antisymmetrized product of `self` with itself `n` times.

    INPUT:

    - `n` – positive integer

    OUTPUT: the `n`-th antisymmetrized power of `self` as a `ClassFunction`

    EXAMPLES:

    Sage

        sage: chi = ClassFunction(SymmetricGroup(4), [3, 1, -1, 0, -1])
        sage: p = chi.exterior_power(3)   # the highest antisymmetric 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

    Python

        >>> from sage.all import *
        >>> chi = ClassFunction(SymmetricGroup(Integer(4)), [Integer(3), Integer(1), -Integer(1), Integer(0), -Integer(1)])
        >>> p = chi.exterior_power(Integer(3))   # the highest antisymmetric power for a 3-d character
        >>> p
        Character of Symmetric group of order 4! as a permutation group
        >>> p.values()
        [1, -1, 1, 1, -1]
        >>> p == chi.determinant_character()
        True

  gap()

    Return the underlying LibGAP element.

    EXAMPLES:

    Sage

        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_libgap'>
        sage: libgap(chi)
        ClassFunction( CharacterTable( Group([ (1,2,3,4) ]) ), [ 1, -1, 1, -1 ] )
        sage: type(_)
        <class 'sage.libs.gap.element.GapElement_List'>

    Python

        >>> from sage.all import *
        >>> G = CyclicPermutationGroup(Integer(4))
        >>> values  = [Integer(1), -Integer(1), Integer(1), -Integer(1)]
        >>> chi = ClassFunction(G, values);  chi
        Character of Cyclic group of order 4 as a permutation group
        >>> type(chi)
        <class 'sage.groups.class_function.ClassFunction_libgap'>
        >>> libgap(chi)
        ClassFunction( CharacterTable( Group([ (1,2,3,4) ]) ), [ 1, -1, 1, -1 ] )
        >>> type(_)
        <class 'sage.libs.gap.element.GapElement_List'>

  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

        sage: G = SymmetricGroup(5)
        sage: H = G.subgroup([(1,2,3), (1,2), (4,5)])
        sage: xi = H.trivial_character(); xi
        Character of Subgroup generated by [(1,2,3), (1,2), (4,5)] of
         (Symmetric group of order 5! as a permutation group)
        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]

    Python

        >>> from sage.all import *
        >>> G = SymmetricGroup(Integer(5))
        >>> H = G.subgroup([(Integer(1),Integer(2),Integer(3)), (Integer(1),Integer(2)), (Integer(4),Integer(5))])
        >>> xi = H.trivial_character(); xi
        Character of Subgroup generated by [(1,2,3), (1,2), (4,5)] of
         (Symmetric group of order 5! as a permutation group)
        >>> xi.induct(G)
        Character of Symmetric group of order 5! as a permutation group
        >>> 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

        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]]

    Python

        >>> from sage.all import *
        >>> S5 = SymmetricGroup(Integer(5))
        >>> chi = ClassFunction(S5, [Integer(22), -Integer(8), Integer(2), Integer(1), Integer(1), Integer(2), -Integer(3)])
        >>> 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)
        >>> list(map(list, irr))
        [[4, -2, 0, 1, 1, 0, -1], [5, -1, 1, -1, -1, 1, 0]]

        >>> G = GL(Integer(2),Integer(3))
        >>> chi = ClassFunction(G, [-Integer(1), -Integer(1), -Integer(1), -Integer(1), -Integer(1), -Integer(1), -Integer(1), -Integer(1)])
        >>> chi.irreducible_constituents()
        (Character of General Linear Group of degree 2 over Finite Field of size 3,)
        >>> chi = ClassFunction(G, [Integer(1), Integer(1), Integer(1), Integer(1), Integer(1), Integer(1), Integer(1), Integer(1)])
        >>> chi.irreducible_constituents()
        (Character of General Linear Group of degree 2 over Finite Field of size 3,)
        >>> chi = ClassFunction(G, [Integer(2), Integer(2), Integer(2), Integer(2), Integer(2), Integer(2), Integer(2), Integer(2)])
        >>> chi.irreducible_constituents()
        (Character of General Linear Group of degree 2 over Finite Field of size 3,)
        >>> chi = ClassFunction(G, [-Integer(1), -Integer(1), -Integer(1), -Integer(1), Integer(3), -Integer(1), -Integer(1), Integer(1)])
        >>> 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)
        >>> 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

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

    Python

        >>> from sage.all import *
        >>> S4 = SymmetricGroup(Integer(4))
        >>> irr = S4.irreducible_characters()
        >>> [x.is_irreducible() for x in irr]
        [True, True, True, True, True]

  norm()

    Return the norm of `self`.

    EXAMPLES:

    Sage

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

    Python

        >>> from sage.all import *
        >>> A5 = AlternatingGroup(Integer(5))
        >>> [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

        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 generated by [(1,2,3), (1,2), (4,5)] of
         (Symmetric group of order 5! as a permutation group)
        sage: chi.restrict(H).values()
        [3, -3, -3, -1, 0, 0]

    Python

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

  scalar_product(other)

    Return the scalar product of `self` with `other`.

    EXAMPLES:

    Sage

        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]]

    Python

        >>> from sage.all import *
        >>> S4 = SymmetricGroup(Integer(4))
        >>> irr = S4.irreducible_characters()
        >>> [[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` – positive integer

    OUTPUT: the `n`-th symmetrized power of `self` as a `ClassFunction`

    EXAMPLES:

    Sage

        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]

    Python

        >>> from sage.all import *
        >>> chi = ClassFunction(SymmetricGroup(Integer(4)), [Integer(3), Integer(1), -Integer(1), Integer(0), -Integer(1)])
        >>> p = chi.symmetric_power(Integer(3))
        >>> p
        Character of Symmetric group of order 4! as a permutation group
        >>> p.values()
        [10, 2, -2, 1, 0]

  tensor_product(other)

    Return the tensor product of `self` and `other`.

    EXAMPLES:

    Sage

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

    Python

        >>> from sage.all import *
        >>> S3 = SymmetricGroup(Integer(3))
        >>> chi1, chi2, chi3 = S3.irreducible_characters()
        >>> chi1.tensor_product(chi3).values()
        [1, -1, 1]

  values()

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

    EXAMPLES:

    Sage

        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]]

    Python

        >>> from sage.all import *
        >>> G = GL(Integer(2),Integer(3))
        >>> [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]]