Goto Chapter: Top 1 2 3 4 5 Bib Ind
Top of Book Previous Chapter Next Chapter

1. Introduction to the AtlasRep Package
1.1 An ATLAS of Group Representations
1.2 The GAP Interface to the ATLAS of Group Representations
1.3 Web Services for the AtlasRep Package
1.4 Installing the AtlasRep Package
1.5 Loading the AtlasRep Package
1.6 Maintaining the Local Data of the AtlasRep Package
1.6-1 ReloadAtlasTableOfContents
1.6-2 StoreAtlasTableOfContents
1.6-3 ReplaceAtlasTableOfContents
1.6-4 AtlasOfGroupRepresentationsTestTableOfContentsRemoteUpdates
1.7 User Parameters for the AtlasRep Package
1.7-1 Local or Remote Access
1.7-2 Adding and Removing Servers
1.7-3 Accessing Data Files with the GAP Package IO or with `wget`
1.7-4 Compressed or Uncompressed Data Files
1.7-5 Customizing `DisplayAtlasInfo`
1.7-6 Customizing the Access to Data Files
1.7-7 Reading Large Matrices over Finite Fields
1.7-8 AtlasOfGroupRepresentationsShowUserParameters
1.8 Extending the ATLAS Database
1.9 What's New in AtlasRep, Compared to Older Versions?
1.9-1 What's New in Version 1.3?
1.9-2 What's New in Version 1.2?
1.9-3 What's New in Version 1.1?
1.10 Acknowledgments

### 1. Introduction to the AtlasRep Package

The aim of the GAP 4 package AtlasRep is to provide a link between GAP and the "ATLAS of Group Representations", a database that comprises representations of many almost simple groups and information about their maximal subgroups. This database has been available independent of GAP at

http://brauer.maths.qmul.ac.uk/Atlas

The AtlasRep package consists of this database (see Section 1.1) and a GAP interface (see Section 1.2); the latter is extended by further information available via the internet (see Section 1.3).

Information about installing and customizing the package can be found in the sections 1.4, 1.5, and 1.6, 1.7, 1.8.

Finally, Section 1.9 lists the changes w.r.t. previous releases of the package, and Section 1.10 acknowledges contributions of non-authors to the package.

#### 1.1 An ATLAS of Group Representations

The ATLAS of Group Representations consists of matrices over various rings, permutations, and shell scripts encoding so-called black box programs (see [Nic06] and Section 4.2). Many of these scripts are straight line programs (see [BSWW01], [SWW00], and Reference: Straight Line Programs) and straight line decisions (see Section 4.1). These programs can be used to compute certain elements in a group G from its standard generators (see [Wil96] and Reference: Standard Generators of Groups), for example generators of maximal subgroups of G or representatives of conjugacy classes of G.

The ATLAS of Group Representations has been prepared by Robert Wilson, Peter Walsh, Jonathan Tripp, Ibrahim Suleiman, Richard Parker, Simon Norton, Simon Nickerson, Steve Linton, John Bray, and Rachel Abbott (in reverse alphabetical order).

The information was computed and composed using computer algebra systems such as MeatAxe (see [Rin98]), Magma (see [CP96]), and GAP (in reverse alphabetical order). Part of the constructions have been documented in the literature on almost simple groups, or the results have been used in such publications, see for example the references in [CCNPW85] and [BN95].

If you use the ATLAS of Group Representations to solve a problem then please send a short email to R.A.Wilson@qmul.ac.uk about it. The ATLAS of Group Representations database should be referenced with the entry [ATLAS] in the bibliography of this manual.

If your work made use of functions of the GAP interface (see Section 1.2) then you should also reference this interface, as follows.

    @misc{ AtlasRep1.3.0,
      author =       {Wilson, R. A. and Parker, R. A. and Nickerson, S. and
                      Bray, J. N. and Breuer, T.},
      title =        {{AtlasRep}, A \textsf{GAP} Interface to the Atlas of
                      Group Representations,
                      {V}ersion 1.3.0},
      month =        {June},
      year =         {2007},
      note =         {Refereed \textsf{GAP} package},
      howpublished = {http://www.math.rwth-aachen.de/\~{}Thomas.Breuer/atlasrep}
    }

For referencing the GAP system in general, use the entry [GAP] in the bibliography of this manual, see also

http://www.gap-system.org.

#### 1.2 The GAP Interface to the ATLAS of Group Representations

The GAP interface to the ATLAS of Group Representations consists of essentially two parts.

First, there is the user interface which allows the user to get an overview of the contents of the database, and to access the data in GAP format; this is described in Chapter 2.. Advanced users may add their own data to the database, this is described in Chapter 3..

Second, there is administrational information, which covers also the declaration of GAP objects such as straight line decisions and black box programs. This is important mainly for users interested in the actual implementation (e. g., for modifying the package) or in using it together with the `C`-MeatAxe standalone (see [Rin98]); this is described in Chapter 5..

Information concerning the `C`-MeatAxe, including the manual [Rin98], can be found at

http://www.math.rwth-aachen.de/LDFM/homes/MTX

The GAP interface should be regarded as preliminary. Hopefully it will become more user-friendly when the ATLAS of Group Representations will be integrated into a larger GAP database of groups and their representations, character tables, and tables of marks.

The interface and this manual have been provided by Thomas Breuer, except for the interpreter for black box programs (see Section 4.2), which is due to Simon Nickerson. Comments, bug reports, and hints for improving the interface can be sent to sam@math.rwth-aachen.de.

#### 1.3 Web Services for the AtlasRep Package

The home page of the AtlasRep package is

http://www.math.rwth-aachen.de/~Thomas.Breuer/atlasrep

Besides package archives and introductory package information, it provides

- the current file with the table of contents (the file `gap/atlasprm.g` of the package), cf. `ReloadAtlasTableOfContents` (1.6-1),

- a starter archive containing many small representations and programs,

- the list of changes of server files in HTML format (cf. `AtlasOfGroupRepresentationsTestTableOfContentsRemoteUpdates` (1.6-4)), and

- an overview of the data available via the GAP interface to the ATLAS of Group Representations, in HTML format; this is similar to the information shown by `DisplayAtlasInfo` (2.5-1); further information can be found on the home page of the ATLAS (see the introduction to this chapter).

#### 1.4 Installing the AtlasRep Package

To install the package, unpack the archive file in a directory in the `pkg` directory of your local copy of GAP 4. This might be the `pkg` directory of the GAP 4 root directory, see Reference: Installing a GAP Package for details. It is however also possible to keep an additional `pkg` directory in your private directories, see Section Reference: GAP Root Directory. The latter possibility must be chosen if you do not have write access to the GAP root directory.

Data files (in the subdirectories `datagens` and `dataword` of the package) that are available from an earlier version of the package are in principle kept; see `AtlasOfGroupRepresentationsTestTableOfContentsRemoteUpdates` (1.6-4) for necessary updates.

If it is likely that one will work offline, it makes sense to install the "starter archive" that can be downloaded from the package's homepage.

The package consists entirely of GAP code, no external binaries need to be compiled for the package itself. However, if the GAP package IO [Neu07] is used to access remote data files (see Section 1.7-3) then its external binary must be available.

After unpacking the package archive, it should be checked whether the subdirectories `datagens` and `dataword` of the package directory have write permissions for those users who will download files from the servers. The recommended permissions under UNIX are set as follows.

    you@unix> chmod 1777 atlasrep/data*
    you@unix> ls -ld atlasrep/data*
    drwxrwxrwt   3 you      you          1024 Oct 31 12:34 datagens
    drwxrwxrwt   3 you      you          1024 Oct 31 12:34 dataword

For checking the installation of the package, you should start GAP, load the package (see Section 1.5), and then call

    gap> ReadPackage( "atlasrep", "tst/testinst.g" );

If the installation is o.k. then the GAP prompt appears without anything else being printed; otherwise the output lines tell you what should be changed.

More test files are available in the `tst` directory of the package, see Section 5.8 for details.

`PDF` and HTML versions of the package manual are available in the `doc` directory of the package.

#### 1.5 Loading the AtlasRep Package

The AtlasRep package may be loaded automatically when GAP is started, for example when other GAP packages require it, or it has to be loaded within the GAP session as follows.

    gap> LoadPackage( "atlasrep" );
    true

See Reference: Loading a GAP Package for details about these alternatives.

#### 1.6 Maintaining the Local Data of the AtlasRep Package

The current table of contents of the database is contained in the file `gap/atlasprm.g` of the AtlasRep package. This file is read by default when the package is loaded. It may happen that new data files have been added to the servers since the last release of the AtlasRep package, thus it is useful to update the table of contents of the package from time to time.

For that, one can fetch the most recent version of the file `gap/atlasprm.g` from the home page of the package (see Section 1.3), either by calling `ReloadAtlasTableOfContents` (1.6-1) in a GAP session or "by hand". In the latter case, the new file can then be read into the GAP session via `ReplaceAtlasTableOfContents` (1.6-3). Alternatively, one can add a line to the user's `.gaprc` file (see Reference: The .gaprc file), which assigns the filename of the current `gap/atlasprm.g` file (as an absolute path or relative to the user's home directory, cf. `Directory` (Reference: Directory)) to the global variable `ATLASREP_TOCFILE`; in this case, this file is read instead of the one from the package distribution when the package is loaded.

Users who have write access to the directory where the AtlasRep package is installed can alternatively use the `maketoc` script in the `etc` directory of the package for regularly updating the file `gap/atlasprm.g`. Users without this write access can store the new file in a different place, and read it with `ReplaceAtlasTableOfContents` (1.6-3).

##### 1.6-1 ReloadAtlasTableOfContents

`> ReloadAtlasTableOfContents`( dirname ) | ( function )

Returns: `fail` if the required table of contents could not be reloaded, otherwise `true`.

Let dirname be a string, which must be one of `"remote"`, `"local"`, or the name of a private data directory (see Chapter 3.).

In the case of `"remote"`, the file `atlasprm.g` is fetched from the package's home page, and then read into GAP. In the case of `"local"`, the subset of the data listed in the `"remote"` table of contents is considered that are actually available in the local data directories. In the case of a private directory, its contents is inspected, and the table of contents for dirname is replaced by the one obtained from inspecting the actual contents of the data directories (see Section 5.7).

##### 1.6-2 StoreAtlasTableOfContents

`> StoreAtlasTableOfContents`( filename ) | ( function )

Let filename be a string. This function prints the loaded table of contents of the servers to the file with name filename.

##### 1.6-3 ReplaceAtlasTableOfContents

`> ReplaceAtlasTableOfContents`( filename ) | ( function )

Let filename be the name of a file that has been created with `StoreAtlasTableOfContents` (1.6-2).

`ReplaceAtlasTableOfContents` first removes the information that GAP has stored about the table of contents of the servers, and then reads the file with name filename, thus replacing the previous information by the stored one.

##### 1.6-4 AtlasOfGroupRepresentationsTestTableOfContentsRemoteUpdates

`> AtlasOfGroupRepresentationsTestTableOfContentsRemoteUpdates`( ) | ( function )

Returns: the list of names of all locally available data files that should be removed.

This function fetches the file `changes.html` from the package's home page, extracts the times of changes for the data files in question, and compares them with the times of the last changes of the local data files. For that, the GAP package IO [Neu07] is needed; if it is not available then an error message is printed, and `fail` is returned.

If the time of the last modification of a server file is later than that of the local copy then the local file must be updated. (This means that `touch`ing files in the local directories will cheat this function.)

It is useful that a system administrator (i. e., someone who has the permission to remove files from the data directories) runs this function from time to time, and afterwards removes the files in the list that is returned. This way, new versions of these files will be fetched automatically from the servers when a user asks for their data.

#### 1.7 User Parameters for the AtlasRep Package

This section lists global parameters for which it might make sense to change their defaults by assignments to global variables, either just for the current GAP session or as user preferences in the user's `.gaprc` file (see Reference: The .gaprc file).

##### 1.7-1 Local or Remote Access

There are two possibilities to use the AtlasRep package.

Local access only (offline)

  You can restrict he access to the data that are actually stored in the local installation of GAP.

Remote access (online)

  If your computer is connected to a network that provides access to the ATLAS data (for example the internet) then the functions of the package may fetch the requested data automatically from remote servers when they are required for the first time; these data are then by default stored in the local copy, so later access to them needs no network transfer.

The latter possibility is presently not used by other GAP packages, so it may be regarded as an important feature of the AtlasRep package. Anyhow it requires a few words of explanation.

The possibility of online access reflects in particular the fact that the ATLAS of Group Representations is designed as an open database, it is expected to grow. As soon as the developers of the ATLAS of Group Representations add new information to the servers, these data become available in GAP when remote access is enabled, after one has updated the corresponding table of contents (see Section 1.6).

Remote access is enabled if and only if the value of the `remote` component of the global variable `AtlasOfGroupRepresentationsInfo` (5.1-5) is `true`. If one wants to work offline, i.e., if one does not want GAP to attempt accessing remote data then this value must be set to `false`.

Conversely, if the default value of the `remote` component in your GAP installation is `false` then changing this value to `true` may be not successful. First, it might be the case that no server is reachable. And second, if one can in principle download files from a server then it might be impossible to actually store these files in the data directories of the installed package; in this case, it is advisable to install the whole package or just its data directories in a private directory, see Reference: GAP Root Directory for details.

##### 1.7-2 Adding and Removing Servers

When access to remote data is enabled (see Section 1.7-1) then the available servers are given by the `servers` component of the global variable `AtlasOfGroupRepresentationsInfo` (5.1-5).

Removing entries from this list means to disable access to the corresponding servers, adding entries makes the corresponding servers available. Of course the latter makes sense only if the new servers really exist, for example in a local network.

Currently there is just one remote server. As soon as other servers become available, or a server name is changed which makes it necessary to adjust the `servers` component, this will be announced in the GAP Forum, cf. Tutorial: Further Information about GAP. The same holds when upgrades of the package become available.

##### 1.7-3 Accessing Data Files with the GAP Package IO or with `wget`

When access to remote data is enabled (see Section 1.7-1) then one needs either the GAP package IO [Neu07] or the external program `wget` for accessing data files.

The chosen alternative is given by the value of the `wget` component of the global variable `AtlasOfGroupRepresentationsInfo` (5.1-5).

If this component has the value `true` then only `wget` is tried, if the value is `false` then only the IO package is used. If this component is not bound or bound to another value than `true` or `false` (this is also the default) then the IO package is preferred to `wget` if this package is available, and otherwise `wget` is tried.

Note that the system program `wget` may be not available, and that it may require some work to install it; hints for that can be found on the home page of the AtlasRep package (see Section 1.3).

##### 1.7-4 Compressed or Uncompressed Data Files

When used with UNIX, GAP can read `gzip`ped files, see Reference: Saving and Loading a Workspace. If the component `compress` of `AtlasOfGroupRepresentationsInfo` (5.1-5) has the value `true` then each MeatAxe format file that is fetched from a remote server is afterwards compressed with `gzip`. This saves a lot of space if many MeatAxe format files are accessed. (Note that data files in other formats are very small.) For example, at the time of the release of version 1.3 there were about 8,400 data files in MeatAxe format, which needed about 1,400 MB in uncompressed text format and about 275 MB in compressed text format. The default value for the component `compress` is `false`.

##### 1.7-5 Customizing `DisplayAtlasInfo`

The way how `DisplayAtlasInfo` (2.5-1) shows the requested overview is controlled by the component `displayFunction` of `AtlasOfGroupRepresentationsInfo` (5.1-5). The default value is `Print` (Reference: Print), another useful value is `Pager` (Reference: Pager).

##### 1.7-6 Customizing the Access to Data Files

By default, local data files are stored in the subdirectories `datagens` and `dataword` of the package, and the files are exactly the text files provided on the servers. However, a more flexible approach may be useful.

First, one may want to use different file formats, for example the MeatAxe binary files that are provided by the servers parallel to the MeatAxe text files. Second, one may want to use a different directory structure, for example the same structure as used on the servers –this makes sense for example if a local mirror of a server is available, because then one can read the server files directly, without transferring/copying them to another directory.

As a consequence, one would like to customize the meaning of the following three access steps.

Are the required filed locally available?

  The required files may have a different name or a different path, and the data can be available in one file or can be distributed to several files.

How can a file be made locally available?

  A different server file may be fetched or some postprocessing may be required.

How is the data of a file accessed by GAP?

  A different function may be needed to read the file.

Details how to achieve this can be found in Section 5.2.

##### 1.7-7 Reading Large Matrices over Finite Fields

Matrices over finite fields in GAP can be represented in a compressed format that needs less space than the corresponding text file. Such a MeatAxe format text file can be read by `ScanMeatAxeFile` (5.3-1) either line by line (which is the default) or as a whole; the latter is faster but needs more space than the former. For example, a 4,370 by 4,370 matrix over the field with two elements (as occurs for an irreducible representation of the Baby Monster) requires less than 3 MB space in GAP but the corresponding MeatAxe format text file is more than 19 MB large, which means that when one reads the file with the fast variant, GAP will temporarily grow by more than this value. One can change the mode by setting the global variable `CMeatAxe.FastRead` (5.1-4) to `true` or `false`, respectively.

Note that this parameter is meaningful only when `ScanMeatAxeFile` (5.3-1) is used. It has no effect for example if MeatAxe binary files are read, cf. `FFMatOrPermCMtxBinary` (5.3-5).

##### 1.7-8 AtlasOfGroupRepresentationsShowUserParameters

`> AtlasOfGroupRepresentationsShowUserParameters`( ) | ( function )

This function prints an overview of the current values of the user parameters introduced in this section.

#### 1.8 Extending the ATLAS Database

Users who have computed new representations that might be interesting for inclusion into the ATLAS of Group representations can send the data in question to R.A.Wilson@qmul.ac.uk.

It is also possible to store "private" representations and programs in local directories, and to use them in the same way as the "official" data. See Chapter 3. for details.

#### 1.9 What's New in AtlasRep, Compared to Older Versions?

##### 1.9-1 What's New in Version 1.3?

- The database was extended, see Section 1.7-4 for the number and size of files.

- New data types and corresponding GAP objects have been introduced, for representing semi-presentations, presentations, and programs for finding standard generators. For details, see `AtlasProgram` (2.5-3), Chapter 4., and Section 5.6.

- The records returned by the functions `AtlasGenerators` (2.5-2), `OneAtlasGeneratingSetInfo` (2.5-4), and `AllAtlasGeneratingSetInfos` (2.5-5) now contain the name and (if known) the order of the group in question, and also components describing the degree in the case of permutation representations or the dimension and the base ring of the natural module in the case of matrix representations.

- For many of the groups, information about the minimal degree of faithful permutation representations and the minimal dimensions of faithful matrix representations in various characteristics is available for `DisplayAtlasInfo` (2.5-1), `OneAtlasGeneratingSetInfo` (2.5-4), and `AllAtlasGeneratingSetInfos` (2.5-5), see also Section 4.3. For these functions, also properties such as `IsPrimeInt` (Reference: IsPrimeInt) can be used to describe the intended restriction of the output.

- One can now use `Pager` (Reference: Pager) in `DisplayAtlasInfo` (2.5-1), see Section 1.7-5.

  An interactive alternative to `DisplayAtlasInfo` (2.5-1) is provided by the function `BrowseAtlasInfo` (Browse: BrowseAtlasInfo) from the new (recommended) GAP package Browse [BL07].

- The functions `OneAtlasGeneratingSetInfo` (2.5-4) and `AllAtlasGeneratingSetInfos` (2.5-5) now admit also a list of group names as the first argument.

- The functions for actually accessing the data are more flexible now, see Section 1.7-6.

- For transferring remote data, the GAP package IO [Neu07] can now be used (and is recommended) as an alternative to `wget`, see Section 1.7-3.

- The address of the data server has changed. Since the access to the server is no longer possible via `ftp`, the mechanim used up to version 1.2, which was based on `ftp`, had to be rewritten.

  The main consequence of this change is that information about updates of the table of contents is now provided at the package's homepage. This means that on the one hand, now package users cannot compute the table of contents directly from the server data, but on the other hand the update information can be downloaded without the necessity to install `perl`.

  Another consequence is that the system program `ls` is no longer needed, see Section 1.9-3.

- The package manual has been restructured, extended and improved. It is now based on the package GAPDoc [LN06].

##### 1.9-2 What's New in Version 1.2?

Not much.

The release of Version 1.2 became necessary first of all in order to provide a package version that is compatible with GAP 4.4, since some cross-references into the GAP Reference Manual were broken due to changes of section names. Additionally, several web addresses concerning the package itself were changed and thus had to be adjusted.

This opportunity was used

- to upgrade the administrational part for loading the package to the mechanism that is recommended for GAP 4.4,

- to extend the test suite, which now covers more consistency checks using the GAP Character Table Library [Bre04],

- to make the function `ScanMeatAxeFile` (5.3-1) more robust, due to the fact that the GAP function `PermList` now returns `fail` instead of raising an error,

- to change the way how representations with prescribed properties are accessed (the new function `OneAtlasGeneratingSetInfo` (2.5-4) is now preferred to the former `OneAtlasGeneratingSet`, and `AllAtlasGeneratingSetInfos` (2.5-5) has been added in order to provide programmatic access in parallel to the human readable descriptions printed by `DisplayAtlasInfo` (2.5-1)),

- and last but not least to include the current table of contents of the underlying database.

For AtlasRep users, the new feature of GAP 4.4 is particularly interesting that due to better kernel support, reading large matrices over finite fields is now faster than it was in GAP 4.3.

##### 1.9-3 What's New in Version 1.1?

The biggest change w.r.t. Version 1.1 is the addition of private extensions (see Chapter 3.). It includes a new "free format" for straight line programs (see Section 3.2). Unfortunately, this feature requires the system program `ls`, so it may be not available for example under MS Windows operating systems. [But see Section 1.9-1.]

In order to admit the addition of other types of data, the implementation of several functions has been changed. Data types are described in Section 5.5. An example of a new data type are quaternionic representations (see Section 5.6). The user interface itself (see Chapter 2.) remained the same.

As an alternative to `perl`, one can use `wget` now for transferring data files (see 1.7).

Data files can be read much more efficiently in GAP 4.3 than in GAP 4.2. In Version 1.1 of the AtlasRep package, this feature is used for reading matrices and permutations in MeatAxe text format with `ScanMeatAxeFile` (5.3-1). As a consequence, (at least) GAP 4.3 is required for AtlasRep Version 1.1.

The new `compress` component of the global variable `AtlasOfGroupRepresentationsInfo` (5.1-5) allows one to store data files automatically in `gzip`ped form.

For matrix representations in characteristic zero, invariant forms and generators for the centralizer algebra are now accessible in GAP if they are contained in the source files --this information had been ignored in Version 1.0 (see `AtlasOfGroupRepresentationsTestTableOfContentsRemoteUpdates` (1.6-4) for necessary updates).

Additional information is now available via the internet (see 1.3).

The update facilities have been extended (see 1.6).

The manual is now distributed also in pdf and HTML format; on the other hand, the PostScript format manual is no longer contained in the archives.

Apart from these changes, a few minor bugs in the handling of MeatAxe files have been fixed, typos in the documentation have been corrected, and the syntax checks for ATLAS straight line programs (see 5.4) have been improved.

#### 1.10 Acknowledgments

The perl script that had been used for fetching remote data until version 1.2 had been kindly provided by Frank Lübeck and Max Neunhöffer. Thanks also to Greg Gamble and Alexander Hulpke for technical hints concerning "standard" perl.

Ulrich Kaiser helped with preparing the package for MS Windows.

The idea to support private extensions of the package (see Chapter 3.) is due to Klaus Lux. He used a preliminary version of AtlasRep Version 1.1, and helped to fix several bugs.

The functions `CMtxBinaryFFMatOrPerm` (5.3-4) and `FFMatOrPermCMtxBinary` (5.3-5) were contributed by Frank Lübeck.

The GAPDoc package [LN06], which is used for processing the package manual, was written by Frank Lübeck and Max Neunhöffer.

The GAP package IO [Neu07], which is recommended for transferring data, was written by Max Neunhöffer.

Max has also suggested the generalization of the data access described in Section 1.7-6.

Gunter Malle had suggested to make the information about representations of minimal degree accessible.

Top of Book Previous Chapter Next Chapter
Goto Chapter: Top 1 2 3 4 5 Bib Ind

generated by GAPDoc2HTML