Constructions for Characters

Contents

Induction, Restriction and Lifting

Induction(x, G) : AlgChtrElt, Grp -> AlgChtrElt
Induction(Q, G) : SeqEnum[AlgChtrElt], Grp -> SeqEnum[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.

The Induction command may also be used to induce a sequence of characters of a particular subgroup (such as a character table) to the given supergroup.

LiftCharacter(c, f, G) : AlgChtrElt, Map, 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], Map, 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 also be applied to it.
Restriction(x, H) : AlgChtrElt, Grp -> AlgChtrElt
Restriction(Q, H) : SeqEnum[AlgChtrElt], Grp -> SeqEnum[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.

The Restriction intrinsic may also be applied to a sequence of class functions.

SubgroupFusion(G, H) : Grp, Grp -> SeqEnum[RngIntElt]
For group G with subgroup H, return a sequence giving the numbers of the conjugacy class of G containing each conjugacy class of H.

Symmetrization

Let λ be a partition. If we need to refer to the entries of λ, we shall do so with parenthesis, possibly also writing (λ). We write {λ} for the SymmetricCharacter associated to λ.

Let χ be a character of a group. We then have χ tensor m= bigoplus|λ|=m cλ(1)m χ^({λ}), where cλ(1)m is a generalized Littlewood-Richardson coefficient defined as the Sλ coefficient of S(1)m for the Schur symmetric functions S. For example, χ tensor χ tensor χ= χ(3) direct-sum 2χ(2, 1) direct-sum χ(1, 1, 1).

The character χ^({λ}) is then called the λ-symmetrization of χ, and can be defined as χ^({λ})(g)=(1/n!) biggl(∑ρ∈Sym(n){λ}(ρ) ∏k=1n χ(gk)ak(ρ)biggr), where n=|λ| and ak(ρ) is the number of cycles of length k in ρ. In practice, to compute this one sums over conjugacy classes of Sym(n).

One can similarly define characters [λ] or < λ > corresponding to orthogonal and symplectic components. Here one has (see [Lit40, S11.9], though the formula II erroneously has {η} instead of [η]) {λ}=bigoplusδbigoplusη cλδ, η[η] (and) {λ}= bigoplusβbigoplusη cλβ, η< η > where δ runs over partitions into even parts only, while β runs over partitions where each part appears an even number of times (conjugate partitions to the δ), and η runs over all partitions. The significant property of these is the multiplication rules (see [Lit58, Theorems I,II]). Recalling the Littlewood-Richardson rule {λ}{μ}=∑ρ cλ, μρ{ρ}, we define Kλ, μρ by ∑ξζ, ν cξ, ζλ cξ, νμ{ζ}{ν}= ∑ρ Kλ, μρ{ρ} and we then have [λ][μ]=∑ρKλ, μρ[ρ] (and) < λ >< μ >= ∑ρKλ, μρ< ρ >. As noted in [New51], there are "modification rules" for [λ] and < λ > when twice the number of parts of the partition exceeds the ambient dimension of the orthogonal or symplectic group. Indeed, the [λ] or < λ > with no more than k parts in dimension 2k or 2k + 1 form a basis, with the characters from partitions with more parts being linearly dependent on them.

Given an orthogonal or respectively symplectic character χ, one can then compute the symmetrization with respect to the character [λ] or < λ >. See [Fra82] (or [Mur58]).

Previously the Magma implementation had hand-coded formulas for partitions of numbers no greater than 6. Furthermore, the cases of partitions of 6 had various bugs. Below we list the relevant formulas for these cases. {1}=[1]=< 1 > {2}=[2] + []=< 2 > {1, 1}=[1, 1]=< 1, 1 > + < > {3}=[3] + [1]=< 3 > {2, 1}=[2, 1] + [1]=< 2, 1 > + < 1 > {1, 1, 1}=[1, 1, 1] + [1]=< 1, 1, 1 >

{4}=[4] + [2] + []=< 4 > {3, 1}=[3, 1] + [2] + [1, 1]=< 3, 1 > + < 2 > {2, 2}=[2, 2] + [2] + []=< 2, 2 > + < 1, 1 > + < > {2, 1, 1}=[2, 1, 1] + [1, 1]= < 2, 1, 1 > + < 2 > + < 1, 1 > {1, 1, 1, 1}=[1, 1, 1, 1]= < 1, 1, 1, 1 > + < 1, 1 > + < >

{5}=[5] + [3] + [1]=< 5 > {4, 1}=[4, 1] + [3] + [2, 1] + [1]=< 4, 1 > + < 3 > {3, 2}=[3, 2] + [3] + [2, 1] + [1]= < 3, 2 > + < 2, 1 > + < 1 > {3, 1, 1}=[3, 1, 1] + [2, 1] + [1, 1, 1]= < 3, 1, 1 > + < 3 > + < 2, 1 > {2, 2, 1}=[2, 2, 1] + [2, 1] + [1]= < 2, 2, 1 > + < 2, 1 > + < 1, 1, 1 > + < 1 > {2, 1, 1, 1}=[2, 1, 1, 1] + [1, 1, 1]= < 2, 1, 1, 1 > + < 2, 1 > + < 1, 1, 1 > + < 1 > {1, 1, 1, 1, 1}=[1, 1, 1, 1, 1]= < 1, 1, 1, 1, 1 > + < 1, 1, 1 > + < 1 >

{6}=[6] + [4] + [2] + []=< 6 > {5, 1}=[5, 1] + [4] + [3, 1] + [2] + [1, 1]=< 5, 1 > + < 4 > {4, 2}=[4, 2] + [4] + [3, 1] + [2, 2] + 2[2] + []= < 4, 2 > + < 3, 1 > + < 2 > {4, 12}=[4, 1, 1] + [3, 1] + [2, 1, 1] + [1, 1]= < 4, 1, 1 > + < 4 > + < 3, 1 > {3, 3}=[3, 3] + [3, 1] + [1, 1]= < 3, 3 > + < 2, 2 > + < 1, 1 > + < > {3, 2, 1}=[3, 2, 1] + [3, 1] + [22] + [2, 12] + [2] + [12]= < 3, 2, 1 > + < 3, 1 > + < 22 > + < 2, 12 > + < 2 > + < 12 > {3, 13}=[3, 13] + [2, 1, 1] + [14]= < 3, 13 > + < 3, 1 > + < 2, 1, 1 > + < 2 > {2, 2, 2}=[2, 2, 2] + [2, 2] + [2] + []= < 2, 2, 2 > + < 2, 1, 1 > + < 2 > {22, 12}=[22, 12] + [2, 12] + [12]= < 22, 12 > + < 22 > + < 2, 12 > + < 14 > + 2< 12 > + < > {2, 14}=[2, 14] + [14]= < 2, 14 > + < 2, 1, 1 > + < 14 > + < 2 > + < 1, 1 > {16}=[16]= < 16 > + < 14 > + < 12 > + < >

Finally, there are intrinsics to determine whether a character is orthogonal or symplectic. For irreducible characters, this can be determined simply by the Schur indicator. In general, the fact that SO2n∩Sp2n=Un implies that for all χ the character χ direct-sum barχ is both orthogonal and symplectic (orthogonal meaning that it preserves a full rank symmetric form, the same with alternating for symplectic).

When ψ is not real, then it is neither orthogonal nor symplectic. We decompose ψ=∑χ aχχ into irreducibles, and for ψ real this implies aχ=a_(bar(χ)) for nonreal χ. For real χ we can further reduce the aχ modulo 2. For ψ to be declared orthogonal, we then require every remaining constituent to be itself orthogonal, and similarly for symplectic.

Symmetrization(chi, p) : AlgChtrElt, [ RngIntElt ] -> AlgChtrElt
Given a character χ and partition p return the symmetrized character χ^({p}). The power map for the parent of χ must be available.
OrthogonalSymmetrization(chi, p) : AlgChtrElt, [ RngIntElt ] -> AlgChtrElt
Given an orthogonal character χ and a partition p return the character χ[p]. The power map for the parent of χ must be available.
SymplecticSymmetrization(chi, p) : AlgChtrElt, [ RngIntElt ] -> AlgChtrElt
Given a symplectic character χ and a partition p return the character χ< p >. The power map for the parent of χ must be available.

Example Chtr_tensprod-check (H98E6)

This example verifies the tensor product rule for some characters and partitions.
> S := SFA(Integers());
> function tensprod(chi,m)
>   F := S.1^m;
>   return &+[Coefficient(F,p)*Symmetrization(chi,p) : p in Support(F)];
> end function;
> CT := CharacterTable(SU(2,7));
> for chi in CT, m in [1..6] do
>   assert tensprod(chi,m) eq chi^m;
> end for;

Example Chtr_symp-and-orthog (H98E7)

Here we compute the orthogonal and symplectic symmetrizations of some characters. Note that these need not be characters (but virtual ones) in cases where the degree of the character is smaller than twice the number of parts in the partition. This is consistent with the above-mentioned modification rules.
> CT := CharacterTable(SU(2,5));
> chi := rep{chi: chi in CT | Degree(chi) eq 4 and IsOrthogonalCharacter(chi)};
( 4, 4, 1, 0, -1, -1, 1, -1, -1 )
> [OrthogonalSymmetrization(chi,p) : p in Partitions(6)];
[
    ( 49, 49, 1, 1, -1, -1, 1, -1, -1 ),
    ( 70, 70, -2, -2, 0, 0, -2, 0, 0 ),
    ( 42, 42, 0, 2, 2, 2, 0, 2, 2 ),
    ( 25, 25, 1, 1, 0, 0, 1, 0, 0 ),
    ( 14, 14, 2, -2, -1, -1, 2, -1, -1 ),
    ( 0, 0, 0, 0, 0, 0, 0, 0, 0 ),
    ( 0, 0, 0, 0, 0, 0, 0, 0, 0 ),
    ( -10, -10, 2, -2, 0, 0, 2, 0, 0 ),
    ( -9, -9, 0, -1, 1, 1, 0, 1, 1 ),
    ( -1, -1, -1, -1, -1, -1, -1, -1, -1 ),
    ( 0, 0, 0, 0, 0, 0, 0, 0, 0 )
]
> CT := CharacterTable(SU(2,7));
> chi := CT[7]; chi;
( 6, -6, 0, 0, 0, -1, -1, Sqrt(2), -Sqrt(2), 1, 1 )
> [SymplecticSymmetrization(chi,p) : p in Partitions(6)];
[
    ( 462, 462, 3, -10, 3, 0, 0, -2, -2, 0, 0 ),
    ( 924, 924, -3, 4, -3, 0, 0, 0, 0, 0, 0 ),
    ( 924, 924, 0, -12, 0, 0, 0, 0, 0, 0, 0 ),
    ( 525, 525, 3, 5, 3, 0, 0, 1, 1, 0, 0 ),
    ( 385, 385, 4, 9, 4, 0, 0, 1, 1, 0, 0 ),
    ( 512, 512, -4, 0, -4, 1, 1, 0, 0, 1, 1 ),
    ( 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ),
    ( 84, 84, 3, -4, 3, 0, 0, 0, 0, 0, 0 ),
    ( 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ),
    ( -70, -70, -1, 2, -1, 0, 0, 2, 2, 0, 0 ),
    ( -14, -14, 1, -2, 1, 0, 0, 0, 0, 0, 0 )
]
IsOrthogonalCharacter(chi) : AlgChtrElt -> BoolElt
IsSymplecticCharacter(chi) : AlgChtrElt -> BoolElt
Given a character of a finite group, determine whether it is orthogonal or symplectic.

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) : [ AlgChtrElt ], [RngElt] -> AlgChtrElt
Given a sequence or table of characters T for the group G and a sequence q of k elements of Qm (possibly Q), create the class function q1 * T1 + ... + qk * Tk, where Ti is the i-th character in T.
Decomposition(T, y) : [AlgChtrElt], AlgChtrElt -> [ FldCycElt ], AlgChtrElt
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=[q1, ..., ql] of cyclotomic field elements and a class function z. For 1≤i≤l, the i-th term of q is defined to be the ratio of inner products (y, Ti)/(Ti, Ti), where Ti is the i-th entry of T. The sequence q determines a class function x=q1.T1 + ... + ql.Tl which will equal y if T is the complete table of irreducible characters. The difference z=y - x is the second return value. If the entries in T are mutually orthogonal, then z is the zero class function if and only if y is a linear combination of the Ti.

Finding Irreducibles

A common approach to finding the irreducible characters of a group is to start with an irreducible character and generate new characters by applying Symmetrization, or the orthogonal or symplectic variants. Then, by examining norms and inner products, it is often possible to identify irreducible characters or at least characters with smaller norms. There are two Magma intrinsics available to help with this task.

RemoveIrreducibles(I, C) : [ AlgChtrElt ], [ AlgChtrElt ] -> [ AlgChtrElt ], [ AlgChtrElt ]
Remove occurrences of the irreducible characters in the sequence I from the characters in the sequence 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 the sequence 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 (H98E8)

This example shows how the above functions can be used to construct the character table for A5 (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)
We now create a character ring, corresponding to the character ring for A5, but without a group, using the data displayed above. We then assert the irreducible of degree 4, and produce another irreducible via asserting the power map for R and looking at a symmetrized power.
> Q := [<1,1>, <2,15>, <3,20>, <5, 12>, <5,12>];
> R := CharacterRing(Q);
> x := R![4,0,1,-1,-1];
> x`IsIrreducible := true;
> x;
( 4, 0, 1, -1, -1 )
> #KnownIrreducibles(R);
2
> pm := [[1],[2,1],[3,3,1],[4,5,5,4,1],[5,4,4,5,1]];
> R`PowerMap := pm;
> y := Symmetrization(x, [2]);
> InnerProduct(y, R!1);
1
> y := y - R!1;
> InnerProduct(y, x);
1
> y := y - x;
> y;
( 5, 1, -1, 0, 0 )
> Norm(y);
1
> y`IsIrreducible := true;
> #KnownIrreducibles(R);
3
V2.28, 13 July 2023