70 Monomiality Questions

This chapter describes functions dealing with the monomiality of finite (solvable) groups and their characters.

All these functions assume characters to be class function objects as described in Chapter Class Functions, lists of character values are not allowed.

The usual property tests of GAP that return either true or false are not sufficient for us. When we ask whether a group character c has a certain property, such as quasiprimitivity, we usually want more information than just yes or no. Often we are interested in the reason why a group character c was proved to have a certain property, e.g., whether monomiality of c was proved by the observation that the underlying group is nilpotent, or whether it was necessary to construct a linear character of a subgroup from which c can be induced. In the latter case we also may be interested in this linear character. Therefore we need test functions that return a record containing such useful information. For example, the record returned by the function TestQuasiPrimitive (see TestQuasiPrimitive) contains the component isQuasiPrimitive (which is the known boolean property flag), and additionally the component comment, a string telling the reason for the value of the isQuasiPrimitive component, and in the case that the argument c was not quasiprimitive also the component character, which is an irreducible constituent of a nonhomogeneous restriction of c to a normal subgroup. Besides these test functions there are also the known properties, e.g., the property IsQuasiPrimitive which will call the attribute TestQuasiPrimitive, and return the value of the isQuasiPrimitive component of the result.

A few words about how to use the monomiality functions seem to be necessary. Monomiality questions usually involve computations in many subgroups and factor groups of a given group, and for these groups often expensive calculations such as that of the character table are necessary. So one should be careful not to construct the same group over and over again, instead the same group object should be reused, such that its character table need to be computed only once. For example, suppose you want to restrict a character to a normal subgroup N that was constructed as a normal closure of some group elements, and suppose that you have already computed with normal subgroups (by calls to NormalSubgroups or MaximalNormalSubgroups) and their character tables. Then you should look in the lists of known normal subgroups whether N is contained, and if so you can use the known character table. A mechanism that supports this for normal subgroups is described in Storing Normal Subgroup Information.

Also the following hint may be useful in this context. If you know that sooner or later you will compute the character table of a group G then it may be advisable to compute it as soon as possible. For example, if you need the normal subgroups of G then they can be computed more efficiently if the character table of G is known, and they can be stored compatibly to the contained G-conjugacy classes. This correspondence of classes list and normal subgroup can be used very often.

Several examples in this chapter use the symmetric group S4 and the special linear group SL(2,3). For running the examples, you must first define the groups, for example as follows.

gap> S4:= SymmetricGroup( 4 );;  SetName( S4, "S4" );
gap> Sl23:= SL( 2, 3 );;

  • InfoMonomial V

    Most of the functions described in this chapter print some (hopefully useful) information if the info level of the info class InfoMonomial is at least 1 (see Info Functions for details).

    Sections

    1. Character Degrees and Derived Length
    2. Primitivity of Characters
    3. Testing Monomiality
    4. Minimal Nonmonomial Groups

    [Top] [Previous] [Up] [Next] [Index]

    GAP 4 manual
    February 2000