[Next] [Prev] [_____] [Left] [Up] [Index] [Root]
Element Operations

Element Operations

Subsections

Arithmetic

In the list of arithmetic operations below x and y denote class functions in the same ring, and a denotes a scalar, which is any element coercable into a cyclotomic field. Also, j denotes an integer.

+ y : AlgChtrElt -> AlgChtrElt
- y : AlgChtrElt -> AlgChtrElt
x + y : AlgChtrElt, AlgChtrElt -> AlgChtrElt
x - y : AlgChtrElt, AlgChtrElt -> AlgChtrElt
x / y : AlgChtrElt, AlgChtrElt -> AlgChtrElt
x * y : AlgChtrElt, AlgChtrElt -> AlgChtrElt
a * x : FldCycElt, AlgChtrElt -> AlgChtrElt
x / a : AlgChtrElt, FldCycElt -> AlgChtrElt
x ^ j : AlgChtrElt, RngIntElt -> AlgChtrElt

Predicates and Booleans

The following Boolean-valued functions are available. Note that with the exception of in, notin, IsReal and IsFaithful, these functions use the table of irreducible characters, which will be created if it is not available yet.

a in F : FldFunElt, FldFun -> BoolElt
a notin F : FldFunElt, FldFun -> BoolElt
x eq y : AlgChtrElt, AlgChtrElt -> BoolElt
x ne y : AlgChtrElt, AlgChtrElt -> BoolElt
IsOne(x) : AlgChtrElt -> BoolElt
IsMinusOne(x) : AlgChtrElt -> BoolElt
IsZero(x) : AlgChtrElt -> BoolElt
x in y : AlgChtrElt, AlgChtrElt -> BoolElt
True if the inner product of x and y is non-zero, otherwise false. If x is irreducible and y is a character, this tests whether or not x is a constituent of y.
x notin y : AlgChtrElt, AlgChtrElt -> BoolElt
True if the inner product of x and y is zero, otherwise false. If x is irreducible and y is a character, this tests whether or not x is not a constituent of y. True if the character x is not a constituent of the character y, otherwise false.
IsCharacter(x) : AlgChtrElt -> BoolElt
True if the class function x is a character, otherwise false. A class function is a character if and only if all inner products with the irreducible characters are non-negative integers.
IsGeneralizedCharacter(x) : AlgChtrElt -> BoolElt
True if the class function x is a generalized character, otherwise false. A class function is a generalized character if and only if all inner products with the irreducible characters are integers.
IsIrreducible(x) : AlgChtrElt -> BoolElt
True if the character x is an irreducible character, otherwise false.
IsLinear(x) : AlgChtrElt -> BoolElt
True if the character x is a linear character, otherwise false.
IsFaithful(x) : AlgChtrElt -> BoolElt
True if the character x is faithful, i.e. has trivial kernel, otherwise false.
IsReal(x) : AlgChtrElt -> BoolElt
True if the character x is a real character, i.e. takes real values on all of the classes of G, otherwise false.

Accessing Class Functions

In this table T is a character table, and x is any class function. A character table is an enumerated sequence of characters that behaves only special with respect to printing; in particular its entries can be accessed with the ordinary sequence indexing operations.

T[i] : TabChtr, RngIntElt -> AlgChtrElt
Given the table T of ordinary characters of G, return the i-th character of G, where i is an integer in the range [1..k].
T[i][j] : TabChtr, RngIntElt, RngIntElt -> FldCycElt
The value of the i-th irreducible character (from the character table T) on the j-th conjugacy class of G.
# T : SeqEnum -> RngIntElt
Given a character table T (or any sequence of character), return the number of entries.
x(g) : AlgChtrElt, GrpElt -> FldCycElt
g @ x : GrpElt, AlgChtrElt -> FldCycElt
The value of the class function x on the element g of G.
x[i] : AlgChtrElt, RngIntElt -> FldCycElt
The value of the class function x on the i-th conjugacy class of G.
# x : AlgChtrElt -> RngIntElt
Given a class function x on G return its length (which equals the number of conjugacy classes group the group G).

Conjugation of Class Functions

x ^ g : AlgChtrElt, GrpElt -> AlgChtrElt
Given a class function x on a normal subgroup N of the group G, and an element g of G, construct the conjugate class function x^g of x which is defined as follows: x^g(n) = x( g^(-1)ng), for all n in N.
x ^ H : AlgChtrElt, Grp -> { AlgChtrElt }
Given a class function x on a normal subgroup N of the group G, and a subgroup H of G, construct the sequence of conjugates of x under the action of the subgroup H. The action of an element of H on x is that defined above.
GaloisConjugate(x, j) : AlgChtrElt, RngIntElt -> AlgChtrElt
Let Q(x) be the subfield of Qm generated by Q and the values of the G-character x. This function returns the Galois conjugate x^j of x under the action of the element of the Galois group Gal(Q(x)/Q) determined by the integer j. The integer j must be coprime to m.
GaloisOrbit(x) : AlgChtrElt -> { AlgChtrElt }
Let Q(x) be the subfield of Qm generated by Q and the values of the G-character x. This function returns the the sequence of Galois conjugates of x under the action of the Galois group Gal(Q(x)/Q).
ClassPowerCharacter(x, j) : AlgChtrElt, RngIntElt -> AlgChtrElt
Given a class function x on the group G and a positive integer j, construct the class function x^j which is defined as follows: x^j(g) = x(g^j).

Functions Returning a Scalar

Degree(x) : AlgChtrElt -> RngIntElt
The degree of the class function x, i.e. the value of x on the identity element of G.
InnerProduct(x, y) : AlgChtrElt, AlgChtrElt -> FldCycElt
The inner product of the class functions x and y, where x and y are class functions belonging to the same character ring.
Order(x) : AlgChtrElt -> RngIntElt
Given a linear character of the group G, determine the order of x as an element of the group of linear characters of G.
Norm(x) : AlgChtrElt -> FldCycElt
Norm of the class function x (which is the inner product with itself).
Schur(x, k) : AlgChtrElt, RngIntElt -> FldCycElt
Given class function x and a positive integer k, return the generalised Frobenius-Schur indicator which is defined as follows: Suppose g is some element of G, and set T_k(g) = |{ h in G | h^k = g}|. The value of Schur(x, k) is the coefficient a_x in the expression T_k = sum_( x in Irr(G)) a_x x.
StructureConstant(G, i, j, k) : Grp, RngIntElt, RngIntElt, RngIntElt -> RngIntElt
The structure constant a_(i, j, k) for the centre of the group algebra of the group G. If K_i is the formal sum of the elements of the i-th conjugacy class, a_(i, j, k) is defined by the equation K_i * K_j = sum_k a_(i, j, k) * K_k.

Attribute

AssertAttribute(x, "IsCharacter", b) : AlgChtrElt, MonStgElt, BoolElt ->
Procedure that, given a class function x and a Boolean value b, stores the information with x that the value of the predicate IsCharacter(x) equals b.

Induction, Restriction, Extension

Induction(x, G) : AlgChtrElt, Grp -> AlgChtrElt
Given a class function x on the subgroup H of the group G, construct the class function obtained by induction of x to G. Note that if x is a character of H, then Induction(x, G) will return a character of G.
LiftCharacter(x, f, G) : AlgChtrElt, MapHom, Grp -> AlgChtrElt
Extension(x, f, G) : AlgChtrElt, MapHom, Grp -> AlgChtrElt
Given a class function c of the quotient group Q of the group G and the natural homomorphism f : G -> Q, lift c to a class function of G.
LiftCharacters(T, f, G) : AlgChtrElt, MapHom, Grp -> AlgChtrElt
Extension(T, f, G) : AlgChtrElt, MapHom, Grp -> AlgChtrElt
Given a sequence T of class functions of the quotient group Q of the group G and the natural homomorphism f : G -> Q, lift T to a sequence of corresponding class functions of G. Since a character table is just a sequence of class functions which is printed in a special way, this intrinsic may be applied to it as well.
Restriction(x, H) : AlgChtrElt, Grp -> AlgChtrElt
Given a class function x on the group G and a subgroup H of G, construct the restriction of x to H (a class function). Note that if x is a character of G, then Restriction(x, H) will return a character of H.

Symmetrization

Symmetrization(x, p) : AlgChtrElt, [ RngIntElt ] -> AlgChtrElt
Given a class function x and a partition p of n (2 <= n <= 6), this function returns the symmetrized character with respect to p; the partition must be specified in the form of a sequence of positive integers (adding up to n).
OrthogonalComponent(x, p) : AlgChtrElt, [ RngIntElt ] -> AlgChtrElt
Given a class function x and a partition p of n (2 <= n <= 6), this function returns the Murnaghan component of the orthogonal symmetrization of x with respect to p; the partition must be specified in the form of a sequence of positive integers (adding up to n). Here x may not be a linear character, and its Frobenius-Schur indicator must be 1.
SymplecticComponent(x, p) : AlgChtrElt, [ RngIntElt ] -> AlgChtrElt
Given a class function x and a partition p of n (2 <= n <= 6), this function returns the Murnaghan component of the symplectic symmetrization of x with respect to p; the partition must be specified in the form of a sequence of positive integers (adding up to n). Here x may not be a linear character, and its Frobenius-Schur indicator must be -1.
SymmetricComponents(x, n) : AlgChtrElt, RngIntElt -> SetEnum
Given a class function x, return the set of symmetrizations of x by all partitions of m with 2<m <= n <= 5.
OrthogonalComponents(x, n) : AlgChtrElt, RngIntElt -> SetEnum
Given a class function x, return the set of Murnaghan components for orthogonal symmetrizations of x by all partitions of m with 2<m <= n <= 6. Here x may not be a linear character, and its Frobenius-Schur indicator must be 1.
SymplecticComponents(x, n) : AlgChtrElt, RngIntElt -> SetEnum
Given a class function x, return the set of Murnaghan components for symplectic symmetrizations of x by all partitions of m with 2<m <= n <= 5. Here x may not be a linear character, and its Frobenius-Schur indicator must be -1.

Permutation Character

PermutationCharacter(G) : GrpPerm -> AlgChtrElt
Given group G represented as a permutation group, construct the character of G afforded by the defining permutation representation of G.
PermutationCharacter(G, H) : Grp, Grp -> AlgChtrElt
Given a group G and some subgroup H of G, construct the character of G afforded by the permutation representation of G given by the action of G on the right cosets of H in G.

Composition and Decomposition

Composition(T, q) : [ FldCycElt ], TabChtr -> AlgChtrElt
Given a sequence or table of irreducible characters T for the group G and a sequence q of k elements of Qm (possibly Q), create the class function q_1 * T_1 + ... + q_k * T_k, where T_i is the i-th irreducible character of G as defined by the table T.
Decomposition(T, y) : TabChtr, AlgChtrElt -> [ FldCycElt ]
Given a sequence or table of class functions T for G of length l and a class function y on G, attempt to express y as a linear combination of the elements of T.

The function returns two values: a sequence q=[q_1, ..., q_l] of cyclotomic field elements and a class function z. The i-th term of q is, for 1 <= i <= l defined to be the inner product of y and T_i, where T_i is the i-th entry of T. The sequence q determines a class function x=q_1.T_1 + ... + q_l.T_l which will equal y if T is a complete table of irreducible characters. The difference z=y - x is the second return value; it is the zero class function if and only if y is a linear combination of the T_i.

Finding Irreducibles

A common approach to finding the irreducible characters of a group is to start with an irreducible and generate new characters using SymmetricComponents, OrthogonalComponents or SymplecticComponents. Then by examining the norms and inner products, it is often possible to identify irreducible characters or at least characters with smaller norms. There are two package intrinsics available to help with this task.

RemoveIrreducibles(I, C) : [ AlgChtrElt ], [ AlgChtrElt ] -> [ AlgChtrElt ], [ AlgChtrElt ]
Remove occurences of the irreducible characters in I from the characters in C and look for characters of norm 1 among the reduced characters. Return a sequence of new irreducibles found and the sequence of reduced characters.
ReduceCharacters(I, C) : [ AlgChtrElt ], [ AlgChtrElt ] -> [ AlgChtrElt ], [ AlgChtrElt ]
Make the norms of the characters in C smaller by computing the differences of appropriate pairs. Return a sequence of new irreducibles found and a sequence of reduced characters.

Example Chtr_A5 (H22E1)

This example shows how the above functions can be used to construct the character table for A_5 (compare Isaacs, p64), using only characters on subgroups.

> A := AlternatingGroup(GrpPerm, 5);
> R := CharacterRing(A);
The first character will be the principal character

> T1 := R ! 1;
> T1;
( 1, 1, 1, 1, 1 )
Next construct the permutation character

> pc := PermutationCharacter(A);
> T2 := pc - T1;
> InnerProduct(pc, T1), InnerProduct(T2, T2);
1 1
> T2;
( 4, 0, 1, -1, -1 )
It follows that pc - T1 is an irreducible character

> B := Stabilizer(A, 5);
> r := RootOfUnity(3, CyclotomicField(3));
> S := CharacterRing(B);
> lambda := S ! [1, 1, r, r^2 ];
> IsLinear(lambda);
true
This defines a linear character on a subgroup of index 5 in A

> T3 := Induction(lambda, A);
> InnerProduct(T3, T3);
1
> T3;
( 5, 1, -1, 0, 0 )
Finally we use characters on the cyclic subgroup of order 5:

> K := sub<A |  (1,2,3,4,5) >;
> Y := CharacterTable(K);
> Y;

Character Table of Group K --------------------------

------------------------------- Class | 1 2 3 4 5 Size | 1 1 1 1 1 Order | 1 5 5 5 5 ------------------------------- p = 5 1 1 1 1 1 ------------------------------- X.1 + 1 1 1 1 1 X.2 0 1 Z1 Z1#2 Z1#3 Z1#4 X.3 0 1 Z1#2 Z1#4 Z1 Z1#3 X.4 0 1 Z1#3 Z1 Z1#4 Z1#2 X.5 0 1 Z1#4 Z1#3 Z1#2 Z1

Explanation of Symbols: -----------------------

# denotes algebraic conjugation, that is, # k indicates replacing the root of unity w by w^k

Z1 = -1 - zeta_5 - zeta_5^2 - zeta_5^3

> mu := Induction(Y[2], A);

We subtract what we already know from mu and get a new irreducible. We use decomposition with respect to a sequence.

> _, T4 := Decomposition([T1, T2, T3], mu);
> InnerProduct(T4, T4);
1
> T4;
( 3, -1, 0, (1 + zeta_5^2 + zeta_5^3), (-zeta_5^2 - zeta_5^3) )
> T5 := GaloisConjugate(T4, 2);
> T5;
( 3, -1, 0, (-zeta_5^2 - zeta_5^3), (1 + zeta_5^2 + zeta_5^3) )
Compare this to the standard character table:

> CharacterTable(A);

Character Table of Group A --------------------------

--------------------------- Class | 1 2 3 4 5 Size | 1 15 20 12 12 Order | 1 2 3 5 5 --------------------------- p = 2 1 1 3 5 4 p = 3 1 2 1 5 4 p = 5 1 2 3 1 1 --------------------------- X.1 + 1 1 1 1 1 X.2 + 3 -1 0 Z1 Z1#2 X.3 + 3 -1 0 Z1#2 Z1 X.4 + 4 0 1 -1 -1 X.5 + 5 1 -1 0 0

Explanation of Symbols: -----------------------

# denotes algebraic conjugation, that is, # k indicates replacing the root of unity w by w^k

Z1 =(1 + zeta_5^2 + zeta_5^3)

[Next] [Prev] [_____] [Left] [Up] [Index] [Root]