|
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.
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, 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.
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 Q 2. For all odd primes p,
the Schur index over Q p 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.
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|x n2, y p, y x = y a >.
The order of G is n 2p. The subgroup of G generated by x n 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
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.
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.
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.
[Next][Prev] [Right] [Left] [Up] [Index] [Root]
|