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:
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()#
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()#
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()#
Return 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)#
Return the anti-symmetrized product of self with itself
n
times.INPUT:
n
– a positive integer.
OUTPUT:
The
n
-th anti-symmetrized power ofself
as aClassFunction
.EXAMPLES:
sage: chi = ClassFunction(SymmetricGroup(4), gap([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 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 generated by [(4,5), (1,2), (1,2,3)] 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]
- irreducible_constituents()#
Return 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()#
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()#
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 generated by [(4,5), (1,2), (1,2,3)] of (Symmetric group of order 5! as a permutation group) 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 ofself
as aClassFunction
.EXAMPLES:
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]
- 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:
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 anti-symmetrized product of
self
with itselfn
times.INPUT:
n
– a positive integer
OUTPUT:
The
n
-th anti-symmetrized power ofself
as aClassFunction
.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_libgap'> sage: libgap(chi) ClassFunction( CharacterTable( Group([ (1,2,3,4) ]) ), [ 1, -1, 1, -1 ] ) sage: type(_) <class 'sage.libs.gap.element.GapElement_List'>
- 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 generated by [(4,5), (1,2), (1,2,3)] 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]
- 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 generated by [(4,5), (1,2), (1,2,3)] of (Symmetric group of order 5! as a permutation group) 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]]