Element Operations

Contents

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 coercible 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
a * x : FldCycElt, AlgChtrElt -> 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 yet available.

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
Returns true if the inner product of class functions 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
Returns true if the inner product of class functions 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. Returns true if the character x is not a constituent of the character y, otherwise false.
IsCharacter(x) : AlgChtrElt -> BoolElt
Returns 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
Returns 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
Returns true if the character x is an irreducible character, otherwise false.
IsLinear(x) : AlgChtrElt -> BoolElt
Returns true if the character x is a linear character, otherwise false.
IsFaithful(x) : AlgChtrElt -> BoolElt
Returns true if the character x is faithful, i.e. has trivial kernel, otherwise false.
IsReal(x) : AlgChtrElt -> BoolElt
Returns true if the character x is a real character, i.e. takes real values on all of the classes of G, otherwise false.
IsPermutationCharacter(c) : AlgChtrElt -> BoolElt
Test if a character c of G is a virtual permutation character, that is C[X] - C[Y] for some G-sets X and Y. (The implementation relies on BurnsideCokernel, and does not compute the subgroup lattice.)

Example Chtr_grp-ispermutationcharacter (H98E3)

In a symmetric group Sn every character is a virtual permutation character, but not in the quaternion group Q8.
> C:=CharacterTable(Group("S5"));
> [IsPermutationCharacter(c): c in C];
[ true, true, true, true, true, true, true ]
> C:=CharacterTable(Group("Q8"));
> [IsPermutationCharacter(c): c in C];
[ true, true, true, true, false ]

Accessing Class Functions

In this subsection T is a character table, and x is any class function. A character table is an enumerated sequence of characters that has a special print function attached. 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 characters), 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 of 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 xg of x which is defined as follows: xg(n) = x( g - 1ng), 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 for xg.
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 xj 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 sequence of Galois conjugates of x under the action of the Galois group Gal(Q(x)/Q).
IsConjugate(x, y) : AlgChtrElt, AlgChtrElt -> BoolElt, RngIntElt
Determine if x and y are galois conjugate characters. Return false if not. If so, return true, and j such that texttt{GaloisConjugate(x, j)} is y.
ClassPowerCharacter(x, j) : AlgChtrElt, RngIntElt -> AlgChtrElt
Given a class function x on the group G and a positive integer j, construct the class function xj which is defined as follows: xj(g) = x(gj).

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
Indicator(x) : AlgChtrElt -> 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 Tk(g) = |{ h∈G | hk = g}|. The value of Schur(x, k) is the coefficient ax in the expression Tk = ∑ x∈Irr(G) ax x.

The call Indicator(x) is equivalent to Schur(x,2).

StructureConstant(G, i, j, k) : Grp, RngIntElt, RngIntElt, RngIntElt -> RngIntElt
The structure constant ai, j, k for the centre of the group algebra of the group G. If Ki is the formal sum of the elements of the i-th conjugacy class, ai, j, k is defined by the equation Ki * Kj = ∑k ai, j, k * Kk.
V2.28, 13 July 2023