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

2 Accessing the data library

Sections

  1. Low level access functions
  2. Finding matrix groups with given properties

This chapter describes various ways of accessing groups in the data library. It is possible to access individual groups in the lists provided (see Section Low level access functions), or to search for groups with certain properties (see Section Finding matrix groups with given properties).

2.1 Low level access functions

The access functions described in this section allow to check for the availability of data, the number of groups in each list calAn,q, individual groups in such a list, and the corresponding irreducible but not absolutely irreducible groups (see Chapter Overview).

  • IsAvailableIrreducibleSolvableGroupData(n, q) F

    This function tests whether the irreducible solvable subgroup of GL(n,q) which cannot be written over a proper subfield of Fq are part of the IRREDSOL library.

  • IndicesIrreducibleSolvableMatrixGroups(n, q, d) F

    Let n, d be positive integers and q a prime power. This function returns a set of integers parametrising the groups in the IRREDSOL library which are subgroups of GL(n,q) that cannot be written over a proper subfield of Fq and have splitting field Fq^d. This set is empty unless d divides n. An error is raised if the relevant data is not available (see IsAvailableIrreducibleSolvableGroupData for information how to check this first).

  • IrreducibleSolvableMatrixGroup(n, q, d, k) F

    Let n be a positive integer and q a prime power. This function returns the k-th irreducible solvable subgroup of GL(n,q) which cannot be written over a proper subfield of Fq. An error is raised if the relevant data is not available (see IsAvailableIrreducibleSolvableGroupData for information how to check this first), or if k is not in IndicesIrreducibleSolvableMatrixGroups(n, q, d) (see IndicesIrreducibleSolvableMatrixGroups). For the groups returned, the attrbutes and properies described in Additional functionality for matrix groups are set to their appropriate values.

  • IsAvailableAbsolutelyIrreducibleSolvableGroupData(n, q) F

    This function tests whether the absolutely irreducible solvable subgroup of GL(n,q) which cannot be written over a proper subfield of Fq are in the IRREDSOL library.

  • IndicesAbsolutelyIrreducibleSolvableMatrixGroups(n, q) F

    Let n be a positive integer and q a prime power. This function returns a set of integers parametrising the absolutely irreducible groups in the IRREDSOL library which are subgroups of GL(n,q) that cannot be written over a proper subfield of Fq.

  • AbsolutelyIrreducibleSolvableMatrixGroup(n, q, k) F

    Let n be a positive integer and q a prime power. This function returns the k-th absolutely irreducible solvable subgroup of GL(n,q) which cannot be written over a proper subfield of Fq. An error is raised if the relevant data is not available (see IsAvailableAbsolutelyIrreducibleSolvableGroupData for information how to check this first), or if k does not lie in IndicesAbsolutelyIrreducibleSolvableMatrixGroups(n, q) (see IndicesAbsolutelyIrreducibleSolvableMatrixGroups). For the groups returned, the attrbutes and properies described in Additional functionality for matrix groups are set to their appropriate values.

  • IndicesMaximalAbsolutelyIrreducibleSolvableMatrixGroups(n, q) F

    Let n be a positive integer and q a prime power. This function returns a set of integers parametrising the absolutely irreducible groups in the IRREDSOL library which are subgroups of GL(n,q) that cannot be written over a proper subfield of Fq and which is maximal with respect to being solvable. An error is raised if the relevant data is not available (see IsAvailableAbsolutelyIrreducibleSolvableGroupData for information how to check this first).

    gap> Reread("/Macintosh HD/Applications (Mac OS 9)/gap/4.0/pkg/irredsol/lib/loading.gi");
    gap> inds := IndicesMaximalAbsolutelyIrreducibleSolvableMatrixGroups (2,3);
    [ 2 ] # there is only one maximal solvable subgroup of GL(2,3)
    gap> max := AbsolutelyIrreducibleSolvableMatrixGroup (2,3,2); # construct it
    Group([ [ [ Z(3), 0*Z(3) ], [ 0*Z(3), Z(3)^0 ] ], [ [ Z(3)^0, Z(3) ], [ 0*Z(3), Z(3)^0 ] ], 
      [ [ Z(3), Z(3)^0 ], [ Z(3)^0, Z(3)^0 ] ], [ [ 0*Z(3), Z(3)^0 ], [ Z(3), 0*Z(3) ] ], 
      [ [ Z(3), 0*Z(3) ], [ 0*Z(3), Z(3) ] ] ])
    gap> max = GL(2,3); # it is the whole GL
    true
    

    2.2 Finding matrix groups with given properties

    This section describes three functions (AllIrreducibleSolvableMatrixGroups, OneIrreducibleSolvableMatrixGroup, IteratorIrreducibleSolvableMatrixGroups) which allow you to find matrix groups with special properties. These functions are usually more efficient than to construct each group in the library using the functions in Section Low level access functions.

  • AllIrreducibleSolvableMatrixGroups(func_1, arg_1, func_2, arg_2, ...) F

    This function returns a list of all irreducible solvable matrix groups G in the IRREDSOL library for which the return value of funci(G) lies in arg_i. The arguments func_1, func_2, ..., must be GAP functions which take matrix group as their only argument and return a value, and arg_1, arg_2, ..., must be lists. If arg_i is not a list, arg_i is replaced by the list [arg_i]. One of the functions must be DegreeOfMatrixGroup (or one of its equivalents, see below), and one function must be FieldOfMatrixGroup (or Field). All groups G in the data library have the property that they cannot be written over a subfield of FieldOfMatrixGroup(G); see Design of the group library for details. For the groups returned, the attrbutes and properies described in Additional functionality for matrix groups are set to their appropriate values.

    Note that there is also a function IteratorIrreducibleSolvableMatrixGroups (see IteratorIrreducibleSolvableMatrixGroups) which allows to run through the list produced by AllIrreducibleSolvableMatrixGroups without having to store all of the groups simultaneously.

    The following functions func_i are handled particularly efficiently. For the definitions of most of these functions, see Chapter Additional functionality for matrix groups.

    --
    DegreeOfMatrixGroup (or Degree, Dimension, DimensionOfMatrixGroup),
    --
    CharacteristicOfField (or Characteristic)
    --
    FieldOfMatrixGroup (or Field)
    --
    Order (or Size)
    --
    IsMaximalAbsolutelyIrreducibleSolvableMatrixGroup
    --
    IsAbsolutelyIrreducibleMatrixGroup (or IsAbsolutelyIrreducible)
    --
    MinimalBlockDimensionOfMatrixGroup (or MinimalBlockDimension)
    --
    IsPrimitiveMatrixGroup (or IsPrimitive, IsLinearlyPrimitive)

    Except for groups which are irreducible but not absolutely irreducible and functions MinimalBlockDimensionOfMatrixGroup and IsPrimitiveMatrixGroup (or their equivalents), the return values of the above functions can be read off the IRREDSOL library without actually constructing the relevant matrix group. But even in this last case, some groups can be ruled out before constructing them.

    # get just those groups which cannot be written over GF(3)
    gap> l := AllIrreducibleSolvableMatrixGroups (Degree, 1, Field, GF(9));;
    gap> List (l, Order);
    [ 4, 8 ]
    # get all irreducible subgroups
    gap> l := AllIrreducibleSolvableMatrixGroups (Degree, 1, Field, Subfields (GF(9)));;
    gap> List (l, Order);
    [ 1, 2, 4, 8 ]
    # get only maximal absolutely irreducible ones
    gap> l := AllIrreducibleSolvableMatrixGroups (Degree, 4, Field, GF(3),
    >             IsMaximalAbsolutelyIrreducibleSolvableMatrixGroup, true);
    gap> SortedList (List (l, Order));
    [ 320, 640, 2304, 4608 ]
    gap> l := AllIrreducibleSolvableMatrixGroups (Degree, 4, Field, GF(3),
    > IsAbsolutelyIrreducibleMatrixGroup, true);;
    gap> Collected (List (l, Order));
    [ [ 20, 1 ], [ 32, 7 ], [ 40, 2 ], [ 64, 10 ], [ 80, 2 ], [ 96, 6 ], 
      [ 128, 9 ], [ 160, 3 ], [ 192, 9 ], [ 256, 6 ], [ 288, 1 ], [ 320, 2 ], 
      [ 384, 4 ], [ 512, 1 ], [ 576, 3 ], [ 640, 1 ], [ 768, 1 ], [ 1152, 4 ], 
      [ 2304, 3 ], [ 4608, 1 ] ]
    

  • OneIrreducibleSolvableMatrixGroup(func_1, arg_1, func_2, arg_2, ...) F

    This function returns a matrix group G from the IRREDSOL library such that funci(G) lies in arg_i, or fail if no such group exists. The arguments func_1, func_2, ..., must be GAP functions taking one argument and returning a value, and arg_1, arg_2, ..., must be lists. If arg_i is not a list, arg_i is replaced by the list [arg_i]. One of the functions must be DegreeOfMatrixGroup (or one of its equivalents, see below), and one function must be FieldOfMatrixGroup (or Field). All groups G in the data library have the property that they cannot be written over a subfield of FieldOfMatrixGroup(G); see see Design of the group library for details. For the group returned, the attrbutes and properies described in Additional functionality for matrix groups are set to their appropriate values.

    For a list of functions which are handled particularly efficiently, see AllIrreducibleSolvableMatrixGroups (AllIrreducibleSolvableMatrixGroups).

  • IteratorIrreducibleSolvableMatrixGroups(func_1, arg_1, func_2, arg_2, ...) F

    This function returns an iterator which runs through the list of all matrix groups G in the IRREDSOL library such that funci(G) lies in arg_i. The arguments func_1, func_2, ..., must be GAP functions taking one argument and returning a value, and arg_1, arg_2, ..., must be lists. If arg_i is not a list, arg_i is replaced by the list [arg_i]. One of the functions must be DegreeOfMatrixGroup (or one of its equivalents, see below), and one function must be FieldOfMatrixGroup (or Field).

    For a list of functions which are handled particularly efficiently, see AllIrreducibleSolvableMatrixGroups (AllIrreducibleSolvableMatrixGroups).

    Using

    IteratorIrreducibleSolvableMatrixGroups(func_1, arg_1, func_2, arg_2, ...))

    is functionally equivalent to

    Iterator(AllIrreducibleSolvableMatrixGroups(func_1, arg_1, func_2, arg_2, ...))

    (see Iterators for details) but does not compute all relevant matrix groups at the same time. This may save some memory. For the groups returned, the attrbutes and properies described in Additional functionality for matrix groups are set to their appropriate values.

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

    IRREDSOL manual
    April 2004