# 54.11 TestMonomial

`TestMonomial( chi )`
`TestMonomial( G )`

returns a record containing information about monomiality of the group G or the group character chi of a solvable group, respectively.

If a character chi is proved to be monomial the result contains components `isMonomial` (then `true`), `comment` (a string telling a reason for monomiality), and if it was necessary to compute a linear character from that chi is induced, also a component `character`.

If chi or G is proved to be nonmonomial the component `isMonomial` is `false`, and in the case of G a nonmonomial character is contained in the component `character` if it had been necessary to compute it.

If the program cannot prove or disprove monomiality then the result record contains the component `isMonomial` with value `"?"`.

This case occurs in the call for a character chi if and only if chi is not induced from the inertia subgroup of a component of any reducible restriction to a normal subgroup. It can happen that chi is monomial in this situation.

For a group this case occurs if no irreducible character can be proved to be nonmonomial, and if no decision is possible for at least one irreducible character.

`IsMonomial( G )` `IsMonomial( chi )`

returns `true` if the group G or the character chi of a solvable group can be proved to be monomial, `false` if it can be proved to be nonmonomial, and the string `"?"` otherwise.

```    gap> TestMonomial( S4 );
rec(
isMonomial := true,
comment := "abelian by supersolvable group" )
gap> TestMonomial( Sl23 );
rec(
isMonomial := false,
comment := "list Delta( G ) contains entry > 1" ) ```

`IsMonomial( n )`

for a positive integer n returns `true` if every solvable group of order n is monomial, and `false` otherwise.

```    gap> Filtered( [ 1 .. 111 ], x -> not IsMonomial( x ) );
[ 24, 48, 72, 96, 108 ] ```

GAP 3.4.4
April 1997