Element Operations
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.
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.
- x in y: AlgChtrElt, AlgChtrElt -> BoolElt
Returns
trueif the inner product of class functions \(x\) and \(y\) is non-zero, otherwisefalse. 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
trueif the inner product of class functions \(x\) and \(y\) is zero, otherwisefalse. If \(x\) is irreducible and \(y\) is a character, this tests whether or not \(x\) is not a constituent of \(y\). Returnstrueif the character \(x\) is not a constituent of the character \(y\), otherwisefalse.
- a in F: FldFunElt, FldFun -> BoolElt
- a notin F: FldFunElt, FldFun -> BoolElt
- x eq y: AlgChtrElt, AlgChtrElt -> BoolElt
- x ne y: AlgChtrElt, AlgChtrElt -> BoolElt
- IsCharacter(x): AlgChtrElt -> BoolElt
Returns
trueif the class function \(x\) is a character, otherwisefalse. 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
trueif the class function \(x\) is a generalized character, otherwisefalse. 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
trueif the character \(x\) is an irreducible character, otherwisefalse.
- IsLinear(x): AlgChtrElt -> BoolElt
Returns
trueif the character \(x\) is a linear character, otherwisefalse.
- IsFaithful(x): AlgChtrElt -> BoolElt
Returns
trueif the character \(x\) is faithful, i.e. has trivial kernel, otherwisefalse.
- IsReal(x): AlgChtrElt -> BoolElt
Returns
trueif the character \(x\) is a real character, i.e. takes real values on all of the classes of \(G\), otherwisefalse.
- IsOne(x): AlgChtrElt -> BoolElt
- IsMinusOne(x): AlgChtrElt -> BoolElt
- IsZero(x): AlgChtrElt -> BoolElt
- IsPermutationCharacter(c): AlgChtrElt -> BoolElt
Test if a character \(c\) of \(G\) is a virtual permutation character, that is \({\mathbb{C}}[X]-{\mathbb{C}}[Y]\) for some \(G\)-sets \(X\) and \(Y\). (The implementation relies on
BurnsideCokernel, and does not compute the subgroup lattice.)
- Example: Testing for Permutation Characters (ex-cd3c30)
In a symmetric group \(S_n\) every character is a virtual permutation character, but not in the quaternion group \(Q_8\).
> 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\).
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 for \(x^g\).
- GaloisConjugate(x, j): AlgChtrElt, RngIntElt -> AlgChtrElt
Let \({\mathbb{Q}}(x)\) be the subfield of \({\mathbb{Q}(\zeta_m)}\) generated by \({\mathbb{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 \({\operatorname{Gal}}({\mathbb{Q}}(x)/{\mathbb{Q}})\) determined by the integer \(j\). The integer \(j\) must be coprime to \(m\).
- GaloisOrbit(x): AlgChtrElt -> { AlgChtrElt }
Let \({\mathbb{Q}}(x)\) be the subfield of \({\mathbb{Q}(\zeta_m)}\) generated by \({\mathbb{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 \({\operatorname{Gal}}({\mathbb{Q}}(x)/{\mathbb{Q}})\).
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 \(T_k(g) = \vert\{ h\in G | h^k = g\}\vert\). The value of
Schur(x, k)is the coefficient \(a_x\) in the expression \(T_k = \sum_{ x\in{\operatorname{Irr}}(G)} a_x x\).The call
Indicator(x)is equivalent toSchur(x,2).
- 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\).