The Schur Index

Magma incorporates functions for computing the Schur index of an ordinary irreducible character over various number fields and local fields. The routines below are all based on the function SchurIndices(x), which computes the Schur Indices of the given character over all the completions of the rationals.

The algorithm is based on calculations with characters, groups and fields, and does not compute representations. The character table methods of S2 and S3 of [Fei83] are used as much as possible to avoid calculations in the group.

The algorithm was devised by Gabi Nebe and Bill Unger, with code written by Bill Unger. The extension to compute a Schur index over a number field was written by Claus Fieker.

The construction of the previous example is used in the following two intrinsics.

Contents

SchurIndex(x) : AlgChtrElt -> RngIntElt
SchurIndex(x, Q) : AlgChtrElt, FldRat -> RngIntElt
SchurIndex(x, F) : AlgChtrElt, FldAlg -> RngIntElt
The Schur index of the character x over the given field. When no field is given, the Schur index over the rationals is returned. The character x must be a complex irreducible character. The field F must be an absolute number field.
SchurIndices(x) : AlgChtrElt -> SeqEnum
SchurIndices(x, Q) : AlgChtrElt, FldRat -> SeqEnum
SchurIndices(x, F) : AlgChtrElt, FldAlg -> SeqEnum
SchurIndices(C, s, F) : FldAlg, SeqEnum, FldAlg -> SeqEnum
Compute the Schur indices of the character x over the completions of the given field. The character x must be a complex irreducible character. The field F must be an absolute number field. When no field is specified the rational field is assumed. The last form takes the character field, C, and the output from SchurIndices(x), s, as well as a number field. This is sufficient to compute the Schur indices over the number field without repeating group and character computations when a number of fields are being considered for one character.

The return value is a sequence of pairs. Each pair gives a completion at which the Schur index is not 1, followed by the Schur index over the complete field. For the rational field, a completion is specified by an integer. The integer zero specifies the archimedean completion (the real numbers), while a prime p specifies the p-adic field Qp. When a number field is given, the completions are specified by a place of the field, an object of type PlcNumElt.

If the character has Schur index 1 over the given field the return value will be an empty sequence. Otherwise, the Schur index over the given field is the least common multiple of the second entries of the tuples returned.

Example Chtr_SchurIndex (H98E4)

We first look at the faithful irreducible character of the Dihedral group of order 8. It has Schur index 1.
> T := CharacterTable(SmallGroup(8, 3));
> T[5];
( 2, -2, 0, 0, 0 )
> SchurIndex(T[5]);
1
> SchurIndices(T[5]);
[]
The corresponding character of the quaternion group of order 8 has non-trivial Schur index.
> T := CharacterTable(SmallGroup(8, 4));
> T[5];
( 2, -2, 0, 0, 0 )
> SchurIndex(T[5]);
2
> SchurIndices(T[5]);
[ <0, 2>, <2, 2> ]
The Schur index is 2 over the real numbers and Q2. For all odd primes p, the Schur index over Qp is 1. We look at the Schur index of this character over some number fields. First we look at some cyclotomic fields.
> [SchurIndex(T[5], CyclotomicField(n)):n in [3..20]];
[ 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1 ]
> SchurIndices(T[5], CyclotomicField(7));
[ <Place at Prime Ideal
Two element generators:
  [2, 0, 0, 0, 0, 0]
  [1, 1, 0, 1, 0, 0], 2>, <Place at Prime Ideal
Two element generators:
  [2, 0, 0, 0, 0, 0]
  [1, 0, 1, 1, 0, 0], 2> ]
The cyclotomic field of order 7 gives Schur index 2. An archimedean completion of this field is necessarily the field of complex numbers, hence no infinite places give Schur index greater than 1. There are now two 2-adic completions which give Schur index 2.
> P<t> := PolynomialRing(Rationals());
> F := ext<Rationals()|t^3-2>;
> SchurIndex(T[5], F);
2
> SchurIndices(T[5], F);
[ <1st place at infinity, 2>, <Place at Prime Ideal
Two element generators:
  [2, 0, 0]
  [0, 1, 0], 2> ]
For the non-normal field F, one archimedean completion is real, the other complex. Thus the real field features in the output of SchurIndices, along with the 2-adic completion.

Example Chtr_recipe-for-schur-index (H98E5)

We will use a general construction for a character with given Schur index over the rationals to construct a character with Schur index 6. Given an integer n ge1, we select a prime p such that p = kn + 1 where k and n are coprime. We take an integer a such that a has order n modulo p. We then consider the metacyclic group G = < <x, y|xn2, yp, yx = ya >. The order of G is n2p. The subgroup of G generated by xn and y is cyclic, normal and self-centralizing in G with order np. If λ is any faithful linear character of this subgroup, then λG is an irreducible character of G with Schur index n over the rational field. The correctness of this construction is proved in Lemma 3 of [Tur01].

The group G is constructed in two stages. The first stage is to construct G as a finitely presented group using the procedure described above. Then the (soluble) fp-group is converted to a group defined by a pc-presentation for further computation. We take n=6, p=7 and a = 3.

> G1 := Group<x, y|x^36, y^7, y^x = y^3>;
> G, f := SolubleQuotient(G1, 36*7);
> x := f(G1.1); y := f(G1.2);
> C := sub<G|x^6,y>;
> IsCyclic(C);
true
> IsNormal(G, C);
true
> Centralizer(G,C) eq C;
true
> exists(l){l:l in LinearCharacters(C)|IsFaithful(l)};
true;
> c := Induction(l, G);
> IsIrreducible(c);
true
> Degree(c);
6
> CharacterField(c);
Cyclotomic Field of order 3 and degree 2 in sparse
representation
> SchurIndex(c);
6
SchurIndexGroup(n: parameters) : RngIntElt -> GrpPC
    Prime: RngIntElt                    Default: 
Return a group having a faithful character with Schur index n over the rational field. The construction used is as in the previous example. The parameter Prime may be used to supply the prime p. (The necessary conditions on p are not checked. If these conditions are not met, an error is possible.) If Prime is not set, then the least prime meeting the conditions is used.
CharacterWithSchurIndex(n: parameters) : RngIntElt -> AlgChtrElt. GrpPC
    Prime: RngIntElt                    Default: 
Return a character with Schur index n over the rational field. The construction used is as in the previous example. The second return value is the group of the character, equal to SchurIndexGroup(n). The parameter Prime is as for SchurIndexGroup.

Attribute

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