rB .m[ ]", + "type": "string", + "pattern": "^([a-z]|[A-Z]|[0-9])+G[0-9]+-f[0-9]+r[0-9]+([a-z]|[A-Z])*B[0-9]+.m$" }, + { "$ref": "#/definitions/crclist" } ], + "additionalItems": false, + "minItems": 3 + }, + + "TOC_matint_Description": { + "type": "array", + "items": [ { "enum": [ "matint" ] }, + { "description": " G-Zr B .g", + "type": "string", + "pattern": "^([a-z]|[A-Z]|[0-9])+G[0-9]+-Zr[0-9]+([a-z]|[A-Z])*B[0-9]+.g$" }, + { "$ref": "#/definitions/crclist1" } ], + "additionalItems": false, + "minItems": 3 + }, + + "TOC_matalg_Description": { + "type": "array", + "items": [ { "enum": [ "matalg" ] }, + { "description": " G-Ar B .g", + "type": "string", + "pattern": "^([a-z]|[A-Z]|[0-9])+G[0-9]+-Ar[0-9]+([a-z]|[A-Z])*B[0-9]+.g$" }, + { "$ref": "#/definitions/crclist1" } ], + "additionalItems": false, + "minItems": 3 + }, + + "TOC_matmodn_Description": { + "type": "array", + "items": [ { "enum": [ "matmodn" ] }, + { "description": " G-Z r B .g", + "type": "string", + "pattern": "^([a-z]|[A-Z]|[0-9])+G[0-9]+-Z[0-9]+r[0-9]+([a-z]|[A-Z])*B[0-9]+.g$" }, + { "$ref": "#/definitions/crclist1" } ], + "additionalItems": false, + "minItems": 3 + }, + + "TOC_quat_Description": { + "type": "array", + "items": [ { "enum": [ "quat" ] }, + { "description": " G-Hr B .g", + "type": "string", + "pattern": "^([a-z]|[A-Z]|[0-9])+G[0-9]+-Hr[0-9]+([a-z]|[A-Z])*B[0-9]+.g$" }, + { "$ref": "#/definitions/crclist1" } ], + "additionalItems": false, + "minItems": 3 + }, + + "TOC_maxes_Description": { + "type": "array", + "items": [ { "enum": [ "maxes" ] }, + { "description": " G-max W ", + "type": "string", + "pattern": "^([a-z]|[A-Z]|[0-9])+G[0-9]+-max[0-9]+W[0-9]+$" }, + { "$ref": "#/definitions/crclist1" } ], + "additionalItems": false, + "minItems": 3 + }, + + "TOC_classes_Description": { + "type": "array", + "items": [ { "enum": [ "classes" ] }, + { "description": " G-cclsW ", + "type": "string", + "pattern": "^([a-z]|[A-Z]|[0-9])+G[0-9]+-cclsW[0-9]+$" }, + { "$ref": "#/definitions/crclist1" } ], + "additionalItems": false, + "minItems": 3 + }, + + "TOC_cyclic_Description": { + "type": "array", + "items": [ { "enum": [ "cyclic" ] }, + { "description": " G-cycW ", + "type": "string", + "pattern": "^([a-z]|[A-Z]|[0-9])+G[0-9]+-cycW[0-9]+$" }, + { "$ref": "#/definitions/crclist1" } ], + "additionalItems": false, + "minItems": 3 + }, + + "TOC_cyc2ccl_Description": { + "type": "array", + "items": [ { "enum": [ "cyc2ccl" ] }, + { "description": " GcycW -cclsW ", + "type": "string", + "pattern": "^([a-z]|[A-Z]|[0-9])+G[0-9]+-cycW[0-9]+-cclsW[0-9]+$" }, + { "$ref": "#/definitions/crclist1" } ], + "additionalItems": false, + "minItems": 3 + }, + + "TOC_kernel_Description": { + "type": "array", + "items": [ { "enum": [ "kernel" ] }, + { "description": " G-ker W ", + "type": "string", + "pattern": "^([a-z]|[A-Z]|[0-9])+G[0-9]+-ker([a-z]|[A-Z]|[0-9])+W[0-9]+$" }, + { "$ref": "#/definitions/crclist1" } ], + "additionalItems": false, + "minItems": 3 + }, + + "TOC_maxstd_Description": { + "type": "array", + "items": [ { "enum": [ "maxstd" ] }, + { "description": " Gmax W - G W ", + "type": "string", + "pattern": "^([a-z]|[A-Z]|[0-9])+G[0-9]+max[0-9]+W[0-9]+-([a-z]|[A-Z]|[0-9])G[0-9]+W[0-9]+$" }, + { "$ref": "#/definitions/crclist1" } ], + "additionalItems": false, + "minItems": 3 + }, + + "TOC_out_Description": { + "type": "array", + "items": [ { "enum": [ "out" ] }, + { "description": " G-a W ", + "type": "string", + "pattern": "^([a-z]|[A-Z]|[0-9])+G[0-9]+-a([a-z]|[A-Z]|[0-9])+W[0-9]+$" }, + { "$ref": "#/definitions/crclist1" } ], + "additionalItems": false, + "minItems": 3 + }, + + "TOC_switch_Description": { + "type": "array", + "items": [ { "enum": [ "switch" ] }, + { "description": " G-G W ", + "type": "string", + "pattern": "^([a-z]|[A-Z]|[0-9])+G[0-9]+-G[0-9]+W[0-9]+$" }, + { "$ref": "#/definitions/crclist1" } ], + "additionalItems": false, + "minItems": 3 + }, + + "TOC_find_Description": { + "type": "array", + "items": [ { "enum": [ "find" ] }, + { "description": " G-find ", + "type": "string", + "pattern": "^([a-z]|[A-Z]|[0-9])+G[0-9]+-find[0-9]+$" }, + { "$ref": "#/definitions/crclist1" } ], + "additionalItems": false, + "minItems": 3 + }, + + "TOC_check_Description": { + "type": "array", + "items": [ { "enum": [ "check" ] }, + { "description": " G-check ", + "type": "string", + "pattern": "^([a-z]|[A-Z]|[0-9])+G[0-9]+-check[0-9]+$" }, + { "$ref": "#/definitions/crclist1" } ], + "additionalItems": false, + "minItems": 3 + }, + + "TOC_pres_Description": { + "type": "array", + "items": [ { "enum": [ "pres" ] }, + { "description": " G-P ", + "type": "string", + "pattern": "^([a-z]|[A-Z]|[0-9])+G[0-9]+-P[0-9]+$" }, + { "$ref": "#/definitions/crclist1" } ], + "additionalItems": false, + "minItems": 3 + }, + + "TOC_otherscripts_Description": { + "type": "array", + "items": [ { "enum": [ "otherscripts" ] }, + { "description": " G-X W ", + "type": "string", + "pattern": "^([a-z]|[A-Z]|[0-9])+G[0-9]+-X([a-z]|[A-Z]|[0-9])+W[0-9]+$" }, + { "$ref": "#/definitions/crclist1" } ], + "additionalItems": false, + "minItems": 3 + }, + + "TOC_Description": { + "description": " , , ", + "oneOf": [ + { "$ref": "#/definitions/TOC_perm_Description" }, + { "$ref": "#/definitions/TOC_matff_Description" }, + { "$ref": "#/definitions/TOC_matint_Description" }, + { "$ref": "#/definitions/TOC_matalg_Description" }, + { "$ref": "#/definitions/TOC_matmodn_Description" }, + { "$ref": "#/definitions/TOC_quat_Description" }, + { "$ref": "#/definitions/TOC_maxes_Description" }, + { "$ref": "#/definitions/TOC_classes_Description" }, + { "$ref": "#/definitions/TOC_cyclic_Description" }, + { "$ref": "#/definitions/TOC_cyc2ccl_Description" }, + { "$ref": "#/definitions/TOC_kernel_Description" }, + { "$ref": "#/definitions/TOC_maxstd_Description" }, + { "$ref": "#/definitions/TOC_out_Description" }, + { "$ref": "#/definitions/TOC_switch_Description" }, + { "$ref": "#/definitions/TOC_find_Description" }, + { "$ref": "#/definitions/TOC_check_Description" }, + { "$ref": "#/definitions/TOC_pres_Description" }, + { "$ref": "#/definitions/TOC_otherscripts_Description" } + ] + }, + + "TOC_Entry": { + "type": "array", + "items": [ { "enum": [ "TOC" ] }, + { "$ref": "#/definitions/TOC_Description" } ], + "additionalItems": false, + "minItems": 2 + }, + + "GRS_Description": { + "description": " , ", + "type": "array", + "items": [ { "type": "string" }, + { "$ref": "#/definitions/posint" } ], + "additionalItems": false, + "minItems": 2 + }, + + "GRS_Entry": { + "type": "array", + "items": [ { "enum": [ "GRS" ] }, + { "$ref": "#/definitions/GRS_Description" } ], + "additionalItems": false, + "minItems": 2 + }, + + "MXN_Description": { + "description": " , ", + "type": "array", + "items": [ { "type": "string" }, + { "$ref": "#/definitions/posint" } ], + "additionalItems": false, + "minItems": 2 + }, + + "MXN_Entry": { + "type": "array", + "items": [ { "enum": [ "MXN" ] }, + { "$ref": "#/definitions/MXN_Description" } ], + "additionalItems": false, + "minItems": 2 + }, + + "MXO_Description": { + "description": " , ", + "type": "array", + "items": [ { "type": "string" }, + { "type": "array", + "items": { "$ref": "#/definitions/nonnegint" } } ], + "additionalItems": false, + "minItems": 2 + }, + + "MXO_Entry": { + "type": "array", + "items": [ { "enum": [ "MXO" ] }, + { "$ref": "#/definitions/MXO_Description" } ], + "additionalItems": false, + "minItems": 2 + }, + + "MXS_Description": { + "description": " , ", + "type": "array", + "items": [ { "type": "string" }, + { "type": "array", + "items": { "type": "string" } } ], + "additionalItems": false, + "minItems": 2 + }, + + "MXS_Entry": { + "type": "array", + "items": [ { "enum": [ "MXS" ] }, + { "$ref": "#/definitions/MXS_Description" } ], + "additionalItems": false, + "minItems": 2 + }, + + "STDCOMP_Description": { + "description": " , ", + "type": "array", + "items": [ { "type": "string" }, + { "type": "array", + "items": [ { "type": "integer" }, + { "type": "string" }, + { "type": "integer" }, + { "type": "boolean" } ] + } ], + "additionalItems": false, + "minItems": 2 + }, + + "STDCOMP_Entry": { + "type": "array", + "items": [ { "enum": [ "STDCOMP" ] }, + { "$ref": "#/definitions/STDCOMP_Description" } ], + "additionalItems": false, + "minItems": 2 + }, + + "RNG_Description": { + "description": " , ", + "type": "array", + "items": [ { "type": "string" }, + { "type": "string" } ], + "additionalItems": false, + "minItems": 2 + }, + + "RNG_Entry": { + "type": "array", + "items": [ { "enum": [ "RNG" ] }, + { "$ref": "#/definitions/RNG_Description" } ], + "additionalItems": false, + "minItems": 2 + }, + + "TOCEXT_Description": { + "description": " , , , ", + "type": "array", + "items": [ { "type": "string" }, + { "type": "integer" }, + { "type": "integer" }, + { "type": "array", + "items": { "type": "string" } } ], + "additionalItems": false + }, + + "TOCEXT_Entry": { + "type": "array", + "items": [ { "enum": [ "TOCEXT" ] }, + { "$ref": "#/definitions/TOCEXT_Description" } ], + "additionalItems": false, + "minItems": 2 + }, + + "API_info_intrans": { + "type": "array", + "items": [ { "enum": [ 0 ] }, + { "type": "array", + "items": { "$ref": "#/definitions/posint" } } ], + "additionalItems": false, + "minItems": 2 + }, + + "API_info_imprim": { + "type": "array", + "items": [ { "$ref": "#/definitions/posint" }, + { "$ref": "#/definitions/posint" }, + { "enum": [ "imprim" ] }, + { "type": "string" } ], + "additionalItems": false, + "minItems": 4 + }, + + "API_info_prim": { + "type": "array", + "items": [ { "$ref": "#/definitions/posint" }, + { "$ref": "#/definitions/posint" }, + { "enum": [ "prim" ] }, + { "type": "string" }, + { "oneOf": [ + { "enum": [ "???" ] }, + { "$ref": "#/definitions/posint" } + ] } ], + "additionalItems": false, + "minItems": 5 + }, + + "API_Description": { + "description": " , ", + "type": "array", + "items": [ { "type": "string" }, + { "oneOf": [ + { "$ref": "#/definitions/API_info_intrans" }, + { "$ref": "#/definitions/API_info_imprim" }, + { "$ref": "#/definitions/API_info_prim" } + ] + } ], + "additionalItems": false, + "minItems": 2 + }, + + "API_Entry": { + "type": "array", + "items": [ { "enum": [ "API" ] }, + { "$ref": "#/definitions/API_Description" } ], + "additionalItems": false, + "minItems": 2 + }, + + "CHAR_Description": { + "description": " , , , [, ]", + "type": "array", + "items": [ { "type": "string" }, + { "type": "string" }, + { "type": "integer" }, + { "type": "array", + "items": { "$ref": "#/definitions/posint" } } ], + "additionalItems": { "type": "string" }, + "minItems": 4, + "maxItems": 5 + }, + + "CHAR_Entry": { + "type": "array", + "items": [ { "enum": [ "CHAR" ] }, + { "$ref": "#/definitions/CHAR_Description" } ], + "additionalItems": false, + "minItems": 2 + }, + + "Data_Entry": { + "oneOf": [ + { "$ref": "#/definitions/GNAN_Entry" }, + { "$ref": "#/definitions/TOC_Entry" }, + { "$ref": "#/definitions/GRS_Entry" }, + { "$ref": "#/definitions/MXN_Entry" }, + { "$ref": "#/definitions/MXO_Entry" }, + { "$ref": "#/definitions/MXS_Entry" }, + { "$ref": "#/definitions/STDCOMP_Entry" }, + { "$ref": "#/definitions/RNG_Entry" }, + { "$ref": "#/definitions/TOCEXT_Entry" }, + { "$ref": "#/definitions/API_Entry" }, + { "$ref": "#/definitions/CHAR_Entry" } + ] + } + }, + + "type": "object", + + "properties": { + "ID": { + "type": "string" + }, + "Version": { + "type": "string" + }, + "DataURL": { + "type": "string", + "format": "uri" + }, + "SelfURL": { + "type": "string", + "format": "uri" + }, + "LocalDirectory": { + "description": "path relative to GAP's pkg directory", + "type": "string", + } + "Data": { + "type": "array", + "items": { "$ref": "#/definitions/Data_Entry" }, + "minItems": 1, + "uniqueItems": true + }, + }, + "required": [ "ID", "Data" ], + "additionalProperties": false +} + diff -Nru gap-atlasrep-1.5.1/doc/atlasrep.xml gap-atlasrep-2.1.0/doc/atlasrep.xml --- gap-atlasrep-1.5.1/doc/atlasrep.xml 2016-04-03 20:00:24.000000000 +0000 +++ gap-atlasrep-2.1.0/doc/atlasrep.xml 2019-06-21 15:10:33.000000000 +0000 @@ -1,16 +1,16 @@ - + - Customizations of the +AtlasRep PackageCustomizations of the &AtlasRep; Package - Installing the +AtlasRep PackageInstalling the &AtlasRep; Package To install the package, unpack the archive file in a directory in thepkg directory of your local copy of &GAP; 4. @@ -18,22 +18,14 @@ see for details. It is however also possible to keep an additionalpkg directory -in your private directories, +somewhere else, see Section . The latter possibilitymust be chosen if you do not have write access to the &GAP; root directory. -Data files that are available from an earlier version -of the package are in principle kept; -see -for necessary updates. - - - -If it is likely that one will work offline, it makes sense to install the +If it is likely that you will work offline, it makes sense to install thestarter archivethat can be downloaded from the package's homepage. @@ -43,7 +35,7 @@ However, if the &GAP; packageIO IO package is used to access remote data files -(see Section ) +(see Section ) then its external binary must be available. @@ -53,8 +45,8 @@ into which users will download files. Every user can customize these paths via a user preference, see Section , -the defaults are the subdirectories -datagens anddataword of the package directory. +the defaults are the subdirectories +data* of the package directory. The recommended permissions under UNIX for the default directories are set as follows. @@ -63,8 +55,10 @@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 +drwxrwxrwt 3 you you 1024 Apr 12 12:34 dataext +drwxrwxrwt 3 you you 1024 Apr 12 12:34 datagens +drwxrwxrwt 3 you you 1024 Apr 12 12:34 datapkg +drwxrwxrwt 3 you you 1024 Apr 12 12:34 dataword ]]> @@ -80,345 +74,145 @@ -- - - - -Maintaining the Local Data of the - - -AtlasRep -Package]]> - -The currenttable of contents of the database is contained in -the filegap/atlasprm.g of theAtlasRep 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 theAtlasRep 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 ), -either by calling -in a &GAP; session -orby hand. -In the latter case, the new file can then be read into the &GAP; session via -. -<#Include Label="ATLASREP_TOCFILE"> - - - -Users who have write access to the directory where the -AtlasRep package is -installed can alternatively use themaketoc script in theetc -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 . - - - -<#Include Label="ReloadAtlasTableOfContents"> -<#Include Label="StoreAtlasTableOfContents"> -<#Include Label="ReplaceAtlasTableOfContents"> -<#Include Label="AGRTestTableOfContentsRemoteUpdates"> - -- User Parameters for the +AtlasRep Package+ -User Preferences of the &AtlasRep; Package -This section lists global parameters for which it might make sense -to change their defaults by assignments to global variables -(see -for an overview of these parameters) -or using &GAP;'s user preferences +This section describes global parameters for which it might make sense +to change their defaults, using &GAP;'s user preferences (see ). - - -- - - - -Local or Remote Access - -local access -remote access -servers -There are two possibilities to use theAtlasRep package. - - - --
- - - -The latter possibility is presently not used by other &GAP; packages, -so it may be regarded as an important feature of the -Local access only (offline) -- - You can restrict the 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. -
-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 anopen 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 ). - - - -Remote access is enabled if and only if the value of theremote -component of the global variable - istrue . -If one wants to work offline, i.e., if one doesnot want &GAP; -to attempt accessing remote data -then this value must be set tofalse . - - - -Conversely, if the default value of theremote component -in your &GAP; installation isfalse -then changing this value totrue may be not successful. -First, it might be the case that no server is reachable. -And second, if one can in principledownload files from a server then -it might be impossible to actuallystore 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 for details. - -- - - - -Adding and Removing Servers - -When access to remote data is enabled -(see Section ) -then the available servers are given by theservers component -of the global variable . - - - -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 theservers component, -this will be announced in the &GAP; Forum, cf. -. -The same holds when upgrades of the package become available. - -- - - - -Accessing Data Files with the &GAP; Package - -<#Include Label="IO_or_wget"> - -IO -or withwget - - - - -Compressed or Uncompressed Data Files - -When used with UNIX, &GAP; can readgzip ped files, -see . -If the componentcompress --of has the value compress true -then each &MeatAxe; format file that is fetched from a remote -server is afterwards compressed withgzip . --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.5.1 there were about - gzip 8\,400 data files in &MeatAxe; format, -which needed about1\,400 MB in uncompressed text format -and about275 MB in compressed text format. -The default value for the componentcompress isfalse . - -- - - - -Customizing - -The way how shows the requested overview -is controlled by the componentDisplayAtlasInfo displayFunction -of . -The default value is , -other useful values are -andAGR.Pager ; -the latter calls with theformatted -option, which is necessary for switching off &GAP;'s automatic line breaking. - -- - - - -Customizing the Access to Data Files - -By default, local data files are stored in the subdirectoriesdatagens -anddataword of the directory given by the user preference -AtlasRepDataDirectory -(see Section ), -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 usedifferent 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 usea 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 files locally available? -
- - -Details how to achieve these customizations can be found in Section -. - -- - 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. + Is access to remote data allowed + (see Section )? + If yes then also the following parameters are of interest. + + +
+- + The following parameters influence reading and writing of local files. + +
++
+- + What shall actually happen when data are requested by the interface + functions (see Section )? +
+- + If the value of the user preference
+FileAccessFunctions + contains"direct access to a local server" , + what is its path + (see Section )? +- + Shall focus on small runtime or on small + space when reading &MeatAxe; text files + (see Section )? +
+- + Which kind of headers shall create + (see Section )? +
+- + Shall interpret permutation matrices more as + permutations (mode 2) or as matrices (mode 1 or 6) + (see Section )? +
+- + Shall the default for be to write + binary files of zero-based or one-based permutations + (see Section )? +
+- + Which function is used by for printing to + the screen + (see Section )? +
+- + How does mark data that do not belong + to the core database + (see Section )?
-How is the data of a file accessed by &GAP;?- - A different function may be needed to read the file. + Shall debug messages be printed when local data files are read + (see Section )?
- - -<#Include Label="AtlasOfGroupRepresentationsShowUserParameters"> - +<#Include Label="AtlasRepAccessRemoteFiles"> <#Include Label="AtlasRepDataDirectory"> +<#Include Label="AtlasRepTOCData"> +<#Include Label="FileTransferTool"> +<#Include Label="CompressDownloadedMeatAxeFiles"> +<#Include Label="FileAccessFunctions"> +<#Include Label="AtlasRepLocalServerPath"> +<#Include Label="HowToReadMeatAxeTextFiles"> +<#Include Label="WriteHeaderFormatOfMeatAxeFiles"> <#Include Label="WriteMeatAxeFilesOfMode2"> <#Include Label="BaseOfMeatAxePermutation"> +<#Include Label="DisplayFunction"> +<#Include Label="AtlasRepMarkNonCoreData"> +<#Include Label="DebugFileLoading">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 - 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, a4\,370 by4\,370 matrix over the field -with two elements -(as occurs for an irreducible representation of the Baby Monster) requires -less than3 MB space in &GAP; but the corresponding &MeatAxe; format -text file is more than19 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 - totrue orfalse , respectively. - - - -Note that this parameter is meaningful only when - is used. -It has no effect for example if &MeatAxe; binary files are read, -cf. . - -- Web Services for the - -The home page of theAtlasRep PackageAtlasRep package is - - -&ATLASREPHOME; . - ++ diff -Nru gap-atlasrep-1.5.1/doc/chap0.html gap-atlasrep-2.1.0/doc/chap0.html --- gap-atlasrep-1.5.1/doc/chap0.html 2016-04-06 12:18:27.000000000 +0000 +++ gap-atlasrep-2.1.0/doc/chap0.html 2019-06-21 15:10:33.000000000 +0000 @@ -19,12 +19,13 @@ +Web Contents for the &AtlasRep; Package -Besides package archives and introductory package information, it provides +The&ATLASREPHOME; +provideshome page of the &AtlasRep; package @@ -435,9 +229,9 @@ -It is also possible to store
- - the current file with the
+table of contents - (the filegap/atlasprm.g of the package, see -&ATLASREPHOME;/atlasprm.g ), - cf. , + package archives, +- + introductory package information, +
+- + the current
table of contents of core data in the file ++ of the package, + cf. , &ATLASREPHOME;/atlasprm.json atlasprm.json - - a
starter archive - containing many small representations and programs - (see&ATLASREPHOME;/atlasrepdata.tar.gz ), + the, list of changes of remote core data files &ATLASREPHOME;/htm/data/changes.htm- - the list of
changes of server files in HTML format - (see&ATLASREPHOME;/htm/data/changes.htm ), - cf. , + a+ containing many small representations and programs, and starter archive &ATLASREPHOME;/atlasrepdata.tar.gz- - an
overview of the data available via the &GAP; interface to the - &ATLAS; of Group Representations, in HTML format (see -&ATLASREPHOME;/htm/data/overview.htm ); - this is similar to the information shown by , - further information can be found on the home page of the &ATLAS;, - see &ATLASSERVER;. + an+ in a similar format as the information shown by the function + of the package; + more details can be found on the + overview of the core data &ATLASREPHOME;/htm/data. home page of the &ATLAS; of Group Representations &ATLASSERVER;privaterepresentations and programs -in local directories, -and to use them in the same way as theofficialdata. +It is also possible to make additional representations and programs +accessible for the &GAP; interface, +and to use theseprivatedata in the same way as the core data. See Chapter for details.AtlasRep — A GAP 4 Package
-(Version 1.5.1)
+(Version 2.1.0)
Robert A. Wilson @@ -57,7 +58,7 @@
Copyright
-© 2002–2016
+© 2002–2019
This package may be distributed under the terms and conditions of the GNU Public License Version 3 or later, see http://www.gnu.org/licenses.
@@ -66,54 +67,51 @@Contents
-1 Introduction to the AtlasRep Package -1.1 The ATLAS of Group Representations +1 Introduction to the AtlasRep Package + -1.2 The GAP Interface to the ATLAS of Group Representations + -1.3 What's New in AtlasRep, -Compared to Older Versions? +-1.3 What's New in AtlasRep, Compared to Older Versions?-
1.3-1 What's New in Version 1.5.1? -(March 2016) +
1.3-1 What's New in Version 2.1.0? +(May 2019) -
1.3-2 What's New in Version 1.5? (July 2011) +
1.3-2 What's New in Version 1.5.1? (March 2016) -
1.3-3 What's New in Version 1.4? (June 2008) +
1.3-3 What's New in Version 1.5? (July 2011) -
1.3-4 What's New in Version 1.3.1? (October 2007) +
1.3-4 What's New in Version 1.4? (June 2008) -
1.3-5 What's New in Version 1.3? (June 2007) +
1.3-5 What's New in Version 1.3.1? (October 2007) -
1.3-6 What's New in Version 1.2? (November 2003) +
1.3-6 What's New in Version 1.3? (June 2007) -
1.3-7 What's New in Version 1.1? (October 2002) +
1.3-7 What's New in Version 1.2? (November 2003) + +
1.3-8 What's New in Version 1.1? (October 2002)2 Tutorial for the AtlasRep Package -2.1 Accessing a Specific Group in -AtlasRep +2 Tutorial for the AtlasRep Package + -2.2 Accessing Specific Generators in -AtlasRep + -2.3 Basic Concepts used in AtlasRep +2.3 Basic Concepts used in AtlasRep-
2.3-1 Groups, Generators, and Representations @@ -121,7 +119,7 @@
2.3-2 Straight Line Programs2.4 Examples of Using the AtlasRep Package +-2.4 Examples of Using the AtlasRep Package
2.4-1 Example: Class Representatives @@ -132,120 +130,116 @@
2.4-4 Example: Using Semi-presentations and Black Box Programs -
2.4-5 Example: Using the GAP Library of Tables of Marks +
2.4-5 Example: Using the GAP Library of Tables of Marks -
2.4-6 Example: Index 770 Subgroups in M_22 +
2.4-6 Example: Index 770 Subgroups in M_22 -
2.4-7 Example: Index 462 Subgroups in M_22 +
2.4-7 Example: Index 462 Subgroups in M_223 The User Interface of the AtlasRep Package - +3 The User Interface of the AtlasRep Package -3.2 Group Names Used in the AtlasRep Package + -3.3 Standard Generators Used in the AtlasRep Package - + -3.4 Class Names Used in the AtlasRep Package + -3.5 Accessing Data of the AtlasRep Package +3.5 Accessing Data via AtlasRep- -
3.5-1 DisplayAtlasInfo -
3.5-2 AtlasGenerators -
3.5-3 AtlasProgram -
3.5-4 AtlasProgramInfo -
3.5-5 OneAtlasGeneratingSetInfo -
3.5-6 AllAtlasGeneratingSetInfos -
3.5-7 AtlasGroup +
3.5-2 Examples for DisplayAtlasInfo + +
3.5-3 AtlasGenerators +
3.5-4 AtlasProgram +
3.5-5 AtlasProgramInfo +
3.5-6 OneAtlasGeneratingSetInfo +
3.5-7 AllAtlasGeneratingSetInfos +
3.5-8 AtlasGroup -
3.5-8 AtlasSubgroup +
3.5-9 AtlasSubgroup -
3.5-9 AtlasRepInfoRecord +
3.5-10 AtlasRepInfoRecord4 Customizations of the AtlasRep Package -4.1 Installing the AtlasRep Package +4 Customizations of the AtlasRep Package + -4.2 Maintaining the Local Data of the AtlasRep -Package + -4.3 User Parameters for the AtlasRep Package +-
4.2-1 User preferenceAtlasRepAccessRemoteFiles
--
4.3-1 Local or Remote Access +
4.2-2 User preferenceAtlasRepDataDirectory
-
4.3-2 Adding and Removing Servers +
4.2-3 User preferenceAtlasRepTOCData
-
4.3-3 Accessing Data Files with the GAP Package IO -or withwget
+
4.2-4 User preferenceFileTransferTool
-
4.3-4 Compressed or Uncompressed Data Files +
4.2-5 User preferenceCompressDownloadedMeatAxeFiles
-
4.3-5 CustomizingDisplayAtlasInfo
+
4.2-6 User preferenceFileAccessFunctions
-
4.3-6 Customizing the Access to Data Files +
4.2-7 User preferenceAtlasRepLocalServerPath
-
4.3-7 Reading Large Matrices over Finite Fields +
4.2-8 User preferenceHowToReadMeatAxeTextFiles
-
4.3-8 AtlasOfGroupRepresentationsUserParameters -
4.3-9 User preferenceAtlasRepDataDirectory
+
4.2-9 User preferenceWriteHeaderFormatOfMeatAxeFiles
-
4.3-10 User preferenceWriteMeatAxeFilesOfMode2
+
4.2-10 User preferenceWriteMeatAxeFilesOfMode2
-
4.3-11 User preferenceBaseOfMeatAxePermutation
+
4.2-11 User preferenceBaseOfMeatAxePermutation
+ +
4.2-12 User preferenceDisplayFunction
+ +
4.2-13 User preferenceAtlasRepMarkNonCoreData
+ +
4.2-14 User preferenceDebugFileLoading
4.4 Web Services for the AtlasRep Package + - -5 Private Extensions of the AtlasRep Package - -5.1 Adding a Private Data Directory +5 Extensions of the AtlasRep Package + -5.2 The Effect of Private Extensions on the User Interface + - -6 New GAP Objects and Utility Functions Provided by the + +-7 Technicalities of the AtlasRep Package -7.1 Global Variables Used by the AtlasRep Package - + -7.4 Reading and Writing ATLAS Straight Line Programs + -7.5 Data Types Used in the ATLAS of Group Representations + -7.6 Filenames Used in the ATLAS of Group Representations + -7.7 The Tables of Contents of the ATLAS of Group Representations - + + - diff -Nru gap-atlasrep-1.5.1/doc/chap0_mj.html gap-atlasrep-2.1.0/doc/chap0_mj.html --- gap-atlasrep-1.5.1/doc/chap0_mj.html 1970-01-01 00:00:00.000000000 +0000 +++ gap-atlasrep-2.1.0/doc/chap0_mj.html 2019-06-21 15:10:33.000000000 +0000 @@ -0,0 +1,359 @@ + + + + + + + +GAP (AtlasRep) - Contents + + + + + + + + + + + + + + + ++ ++AtlasRep — A GAP 4 Package
+ +(Version 2.1.0)
+ +Robert A. Wilson + + + +
Email: R.A.Wilson@qmul.ac.uk +
Homepage: http://www.maths.qmw.ac.uk/~raw +Richard A. Parker + + +
Email: richpark@gmx.co.uk +Simon Nickerson + + +
Homepage: http://nickerson.org.uk/groups +John N. Bray + + + +
Email: J.N.Bray@qmul.ac.uk +
Homepage: http://www.maths.qmw.ac.uk/~jnb +Thomas Breuer + + + +
+ + +
Email: sam@Math.RWTH-Aachen.De +
Homepage: http://www.math.rwth-aachen.de/~Thomas.Breuer +Copyright
+© 2002–2019
+ +This package may be distributed under the terms and conditions of the GNU Public License Version 3 or later, see http://www.gnu.org/licenses.
+ + + +++ + + + + + +Contents
+ +1 Introduction to the AtlasRep Package + + ++1.3 What's New in AtlasRep, Compared to Older Versions? + ++ ++
1.3-1 What's New in Version 2.1.0? +(May 2019) + +
1.3-2 What's New in Version 1.5.1? (March 2016) + +
1.3-3 What's New in Version 1.5? (July 2011) + +
1.3-4 What's New in Version 1.4? (June 2008) + +
1.3-5 What's New in Version 1.3.1? (October 2007) + +
1.3-6 What's New in Version 1.3? (June 2007) + +
1.3-7 What's New in Version 1.2? (November 2003) + +
1.3-8 What's New in Version 1.1? (October 2002) + +2 Tutorial for the AtlasRep Package + + + ++2.4 Examples of Using the AtlasRep Package + +++
2.4-1 Example: Class Representatives + +
2.4-2 Example: Permutation and Matrix Representations + +
2.4-3 Example: Outer Automorphisms + +
2.4-4 Example: Using Semi-presentations and Black Box Programs + +
2.4-5 Example: Using the GAP Library of Tables of Marks + +
2.4-6 Example: Index \(770\) Subgroups in \(M_{22}\) + +
2.4-7 Example: Index \(462\) Subgroups in \(M_{22}\) + +3 The User Interface of the AtlasRep Package + + + + + + ++4 Customizations of the AtlasRep Package + ++ +4.2 User Preferences of the AtlasRep Package + ++ + ++
4.2-1 User preferenceAtlasRepAccessRemoteFiles
+ +
4.2-2 User preferenceAtlasRepDataDirectory
+ +
4.2-3 User preferenceAtlasRepTOCData
+ +
4.2-4 User preferenceFileTransferTool
+ +
4.2-5 User preferenceCompressDownloadedMeatAxeFiles
+ +
4.2-6 User preferenceFileAccessFunctions
+ +
4.2-7 User preferenceAtlasRepLocalServerPath
+ +
4.2-8 User preferenceHowToReadMeatAxeTextFiles
+ +
4.2-9 User preferenceWriteHeaderFormatOfMeatAxeFiles
+ +
4.2-10 User preferenceWriteMeatAxeFilesOfMode2
+ +
4.2-11 User preferenceBaseOfMeatAxePermutation
+ +
4.2-12 User preferenceDisplayFunction
+ +
4.2-13 User preferenceAtlasRepMarkNonCoreData
+ +
4.2-14 User preferenceDebugFileLoading
+ +6 New GAP Objects and Utility Functions provided by the +AtlasRep Package ++6.1 Straight Line Decisions + ++ + + ++
6.1-1 IsStraightLineDecision +
6.1-2 LinesOfStraightLineDecision +
6.1-3 NrInputsOfStraightLineDecision +
6.1-4 ScanStraightLineDecision +
6.1-5 StraightLineDecision +
6.1-6 ResultOfStraightLineDecision +
6.1-7 Semi-Presentations and Presentations + +
6.1-8 AsStraightLineDecision +
6.1-9 StraightLineProgramFromStraightLineDecision +7 Technicalities of the AtlasRep Package + + + + + + + + + ++ + +
+
+generated by GAPDoc2HTML
+ + diff -Nru gap-atlasrep-1.5.1/doc/chap0.txt gap-atlasrep-2.1.0/doc/chap0.txt --- gap-atlasrep-1.5.1/doc/chap0.txt 2016-04-06 12:18:13.000000000 +0000 +++ gap-atlasrep-2.1.0/doc/chap0.txt 2019-06-21 15:10:33.000000000 +0000 @@ -3,7 +3,7 @@ [1X[5XAtlasRep[105X --- A GAP 4 Package[101X - (Version 1.5.1) + (Version 2.1.0) Robert A. Wilson @@ -34,7 +34,7 @@ ------------------------------------------------------- [1XCopyright[101X - [33X[0;0Y© 2002–2016[133X + [33X[0;0Y© 2002–2019[133X [33X[0;0YThis package may be distributed under the terms and conditions of the GNU Public License Version 3 or later, see [7Xhttp://www.gnu.org/licenses[107X.[133X @@ -49,13 +49,14 @@ 1.1 [33X[0;0YThe [5XATLAS[105X of Group Representations[133X 1.2 [33X[0;0YThe GAP Interface to the [5XATLAS[105X of Group Representations[133X 1.3 [33X[0;0YWhat's New in [5XAtlasRep[105X, Compared to Older Versions?[133X - 1.3-1 [33X[0;0YWhat's New in Version 1.5.1? (March 2016)[133X - 1.3-2 [33X[0;0YWhat's New in Version 1.5? (July 2011)[133X - 1.3-3 [33X[0;0YWhat's New in Version 1.4? (June 2008)[133X - 1.3-4 [33X[0;0YWhat's New in Version 1.3.1? (October 2007)[133X - 1.3-5 [33X[0;0YWhat's New in Version 1.3? (June 2007)[133X - 1.3-6 [33X[0;0YWhat's New in Version 1.2? (November 2003)[133X - 1.3-7 [33X[0;0YWhat's New in Version 1.1? (October 2002)[133X + 1.3-1 [33X[0;0YWhat's New in Version 2.1.0? (May 2019)[133X + 1.3-2 [33X[0;0YWhat's New in Version 1.5.1? (March 2016)[133X + 1.3-3 [33X[0;0YWhat's New in Version 1.5? (July 2011)[133X + 1.3-4 [33X[0;0YWhat's New in Version 1.4? (June 2008)[133X + 1.3-5 [33X[0;0YWhat's New in Version 1.3.1? (October 2007)[133X + 1.3-6 [33X[0;0YWhat's New in Version 1.3? (June 2007)[133X + 1.3-7 [33X[0;0YWhat's New in Version 1.2? (November 2003)[133X + 1.3-8 [33X[0;0YWhat's New in Version 1.1? (October 2002)[133X 1.4 [33X[0;0YAcknowledgements[133X 2 [33X[0;0YTutorial for the [5XAtlasRep[105X Package[133X 2.1 [33X[0;0YAccessing a Specific Group in [5XAtlasRep[105X[133X @@ -81,47 +82,47 @@ 3.4-1 [33X[0;0YDefinition of [5XATLAS[105X Class Names[133X 3.4-2 AtlasClassNames 3.4-3 AtlasCharacterNames - 3.5 [33X[0;0YAccessing Data of the [5XAtlasRep[105X Package[133X + 3.5 [33X[0;0YAccessing Data via [5XAtlasRep[105X[133X 3.5-1 DisplayAtlasInfo - 3.5-2 AtlasGenerators - 3.5-3 AtlasProgram - 3.5-4 AtlasProgramInfo - 3.5-5 OneAtlasGeneratingSetInfo - 3.5-6 AllAtlasGeneratingSetInfos - 3.5-7 [33X[0;0YAtlasGroup[133X - 3.5-8 [33X[0;0YAtlasSubgroup[133X - 3.5-9 AtlasRepInfoRecord + 3.5-2 [33X[0;0YExamples for DisplayAtlasInfo[133X + 3.5-3 AtlasGenerators + 3.5-4 AtlasProgram + 3.5-5 AtlasProgramInfo + 3.5-6 OneAtlasGeneratingSetInfo + 3.5-7 AllAtlasGeneratingSetInfos + 3.5-8 [33X[0;0YAtlasGroup[133X + 3.5-9 [33X[0;0YAtlasSubgroup[133X + 3.5-10 AtlasRepInfoRecord 3.6 [33X[0;0Y[5XBrowse[105X Applications Provided by [5XAtlasRep[105X[133X 3.6-1 BrowseMinimalDegrees 3.6-2 BrowseBibliographySporadicSimple 4 [33X[0;0YCustomizations of the [5XAtlasRep[105X Package[133X 4.1 [33X[0;0YInstalling the [5XAtlasRep[105X Package[133X - 4.2 [33X[0;0YMaintaining the Local Data of the [5XAtlasRep[105X Package[133X - 4.2-1 ReloadAtlasTableOfContents - 4.2-2 StoreAtlasTableOfContents - 4.2-3 ReplaceAtlasTableOfContents - 4.2-4 AtlasOfGroupRepresentationsTestTableOfContentsRemoteUpdates - 4.3 [33X[0;0YUser Parameters for the [5XAtlasRep[105X Package[133X - 4.3-1 [33X[0;0YLocal or Remote Access[133X - 4.3-2 [33X[0;0YAdding and Removing Servers[133X - 4.3-3 [33X[0;0YAccessing Data Files with the [5XGAP[105X Package [5XIO[105X or with [11Xwget[111X[133X - 4.3-4 [33X[0;0YCompressed or Uncompressed Data Files[133X - 4.3-5 [33X[0;0YCustomizing [10XDisplayAtlasInfo[110X[133X - 4.3-6 [33X[0;0YCustomizing the Access to Data Files[133X - 4.3-7 [33X[0;0YReading Large Matrices over Finite Fields[133X - 4.3-8 AtlasOfGroupRepresentationsUserParameters - 4.3-9 [33X[0;0YUser preference [10XAtlasRepDataDirectory[110X[133X - 4.3-10 [33X[0;0YUser preference [10XWriteMeatAxeFilesOfMode2[110X[133X - 4.3-11 [33X[0;0YUser preference [10XBaseOfMeatAxePermutation[110X[133X - 4.4 [33X[0;0YWeb Services for the [5XAtlasRep[105X Package[133X - 4.5 [33X[0;0YExtending the [5XATLAS[105X Database[133X - 5 [33X[0;0YPrivate Extensions of the [5XAtlasRep[105X Package[133X - 5.1 [33X[0;0YAdding a Private Data Directory[133X - 5.1-1 AtlasOfGroupRepresentationsNotifyPrivateDirectory - 5.1-2 AtlasOfGroupRepresentationsForgetPrivateDirectory - 5.2 [33X[0;0YThe Effect of Private Extensions on the User Interface[133X - 5.3 [33X[0;0YAn Example of Extending the [5XAtlasRep[105X Package[133X - 6 [33X[0;0YNew [5XGAP[105X Objects and Utility Functions Provided by the [5XAtlasRep[105X Package[133X + 4.2 [33X[0;0YUser Preferences of the [5XAtlasRep[105X Package[133X + 4.2-1 [33X[0;0YUser preference [10XAtlasRepAccessRemoteFiles[110X[133X + 4.2-2 [33X[0;0YUser preference [10XAtlasRepDataDirectory[110X[133X + 4.2-3 [33X[0;0YUser preference [10XAtlasRepTOCData[110X[133X + 4.2-4 [33X[0;0YUser preference [10XFileTransferTool[110X[133X + 4.2-5 [33X[0;0YUser preference [10XCompressDownloadedMeatAxeFiles[110X[133X + 4.2-6 [33X[0;0YUser preference [10XFileAccessFunctions[110X[133X + 4.2-7 [33X[0;0YUser preference [10XAtlasRepLocalServerPath[110X[133X + 4.2-8 [33X[0;0YUser preference [10XHowToReadMeatAxeTextFiles[110X[133X + 4.2-9 [33X[0;0YUser preference [10XWriteHeaderFormatOfMeatAxeFiles[110X[133X + 4.2-10 [33X[0;0YUser preference [10XWriteMeatAxeFilesOfMode2[110X[133X + 4.2-11 [33X[0;0YUser preference [10XBaseOfMeatAxePermutation[110X[133X + 4.2-12 [33X[0;0YUser preference [10XDisplayFunction[110X[133X + 4.2-13 [33X[0;0YUser preference [10XAtlasRepMarkNonCoreData[110X[133X + 4.2-14 [33X[0;0YUser preference [10XDebugFileLoading[110X[133X + 4.3 [33X[0;0YWeb Contents for the [5XAtlasRep[105X Package[133X + 4.4 [33X[0;0YExtending the [5XATLAS[105X Database[133X + 5 [33X[0;0YExtensions of the [5XAtlasRep[105X Package[133X + 5.1 [33X[0;0YNotify Additional Data[133X + 5.1-1 [33X[0;0YAtlasOfGroupRepresentationsNotifyData[133X + 5.1-2 AtlasOfGroupRepresentationsForgetData + 5.1-3 StringOfAtlasTableOfContents + 5.2 [33X[0;0YThe Effect of Extensions on the User Interface[133X + 5.3 [33X[0;0YAn Example of Extending the [5XAtlasRep[105X Data[133X + 6 [33X[0;0YNew [5XGAP[105X Objects and Utility Functions provided by the [5XAtlasRep[105X Package[133X 6.1 [33X[0;0YStraight Line Decisions[133X 6.1-1 IsStraightLineDecision 6.1-2 LinesOfStraightLineDecision @@ -144,14 +145,17 @@ 6.3-2 MinimalRepresentationInfoData 6.3-3 SetMinimalRepresentationInfo 6.3-4 [33X[0;0YCriteria Used to Compute Minimality Information[133X + 6.4 [33X[0;0YA JSON Interface[133X + 6.4-1 [33X[0;0YWhy JSON?[133X + 6.4-2 AGR.JsonText + 6.4-3 AGR.GapObjectOfJsonText 7 [33X[0;0YTechnicalities of the [5XAtlasRep[105X Package[133X 7.1 [33X[0;0YGlobal Variables Used by the [5XAtlasRep[105X Package[133X 7.1-1 InfoAtlasRep 7.1-2 InfoCMeatAxe 7.1-3 InfoBBox - 7.1-4 CMeatAxe.FastRead - 7.1-5 AGR - 7.1-6 AtlasOfGroupRepresentationsInfo + 7.1-4 AGR + 7.1-5 AtlasOfGroupRepresentationsInfo 7.2 [33X[0;0YHow to Customize the Access to Data files[133X 7.3 [33X[0;0YReading and Writing MeatAxe Format Files[133X 7.3-1 ScanMeatAxeFile @@ -162,15 +166,17 @@ 7.4 [33X[0;0YReading and Writing [5XATLAS[105X Straight Line Programs[133X 7.4-1 ScanStraightLineProgram 7.4-2 AtlasStringOfProgram - 7.5 [33X[0;0YData Types Used in the [5XATLAS[105X of Group Representations[133X + 7.5 [33X[0;0YData Types Used in the [5XAtlasRep[105X Package[133X 7.5-1 AGR.DeclareDataType - 7.6 [33X[0;0YFilenames Used in the [5XATLAS[105X of Group Representations[133X + 7.6 [33X[0;0YFilenames Used in the [5XAtlasRep[105X Package[133X 7.6-1 AGR.ParseFilenameFormat 7.6-2 AGR.FileContents - 7.7 [33X[0;0YThe Tables of Contents of the [5XATLAS[105X of Group Representations[133X - 7.8 [33X[0;0YSanity Checks for the [5XATLAS[105X of Group Representations[133X - 7.8-1 [33X[0;0YSanity Checks for a Table of Contents[133X - 7.8-2 [33X[0;0YOther Sanity Checks[133X + 7.7 [33X[0;0YThe record component [10Xidentifier[110X used by the [5XAtlasRep[105X Package[133X + 7.7-1 [33X[0;0YAtlasRepIdentifier[133X + 7.8 [33X[0;0YThe Tables of Contents of the [5XAtlasRep[105X Package[133X + 7.9 [33X[0;0YSanity Checks for the [5XAtlasRep[105X Package[133X + 7.9-1 [33X[0;0YSanity Checks for a Table of Contents[133X + 7.9-2 [33X[0;0YOther Sanity Checks[133X [32X diff -Nru gap-atlasrep-1.5.1/doc/chap1.html gap-atlasrep-2.1.0/doc/chap1.html --- gap-atlasrep-1.5.1/doc/chap1.html 2016-04-06 12:18:27.000000000 +0000 +++ gap-atlasrep-2.1.0/doc/chap1.html 2019-06-21 15:10:33.000000000 +0000 @@ -19,32 +19,34 @@ - -1 Introduction to the AtlasRep Package -1.1 The ATLAS of Group Representations + + +1 Introduction to the AtlasRep Package + -1.2 The GAP Interface to the ATLAS of Group Representations + -1.3 What's New in AtlasRep, -Compared to Older Versions? +1.3 What's New in AtlasRep, Compared to Older Versions?-
1.3-1 What's New in Version 1.5.1? -(March 2016) +
1.3-1 What's New in Version 2.1.0? +(May 2019) -
1.3-2 What's New in Version 1.5? (July 2011) +
1.3-2 What's New in Version 1.5.1? (March 2016) -
1.3-3 What's New in Version 1.4? (June 2008) +
1.3-3 What's New in Version 1.5? (July 2011) -
1.3-4 What's New in Version 1.3.1? (October 2007) +
1.3-4 What's New in Version 1.4? (June 2008) -
1.3-5 What's New in Version 1.3? (June 2007) +
1.3-5 What's New in Version 1.3.1? (October 2007) -
1.3-6 What's New in Version 1.2? (November 2003) +
1.3-6 What's New in Version 1.3? (June 2007) -
1.3-7 What's New in Version 1.1? (October 2002) +
1.3-7 What's New in Version 1.2? (November 2003) + +
1.3-8 What's New in Version 1.1? (October 2002)1.4 Acknowledgements @@ -54,71 +56,54 @@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" [ATLAS], a database that comprises generating permutations and matrices for many almost simple groups, and information about their maximal subgroups. This database is available independent of GAP at
+The aim of the GAP 4 package AtlasRep is to provide a link between GAP and databases such as the ATLAS of Group Representations [WWT+], which comprises generating permutations and matrices for many almost simple groups, and information about their maximal subgroups. This database is available independent of GAP at
-http://brauer.maths.qmul.ac.uk/Atlas
+http://brauer.maths.qmul.ac.uk/Atlas/v3.
-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 4.4).
+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 4.3).
This package manual has the following parts.
- +
- A tutorial
-gives an overview how the functions of the package can be used, see Chapter 2.
+gives an overview how the functions of the package can be used, see Chapter 2.
- User interface functions
-are described in Chapter 3.
+are described in Chapter 3.
- Customizations of the package
-are described in Chapter 4.
+are described in Chapter 4.
- Information how to extend the database
-can be found in Chapter 5.
+can be found in Chapter 5.
- More technical information
-can be found in the chapters 6 (concerning GAP objects that are introduced by the package) and 7 (concerning global variables and sanity checks).
+can be found in the chapters 6 (concerning GAP objects that are introduced by the package) and 7 (concerning global variables and sanity checks).
1.1 The 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 6.2). Many of these scripts are straight line programs (see [BSWW01], [SWW00], and Reference: Straight Line Programs) and straight line decisions (see Section 6.1). These programs can be used to compute certain elements in a group G from its standard generators (see [Wil96] and Section 3.3) for example generators of maximal subgroups of G or representatives of conjugacy classes of G.
+The ATLAS of Group Representations [WWT+] consists of matrices over various rings, permutations, and shell scripts encoding so-called black box programs (see [Nic06] and Section 6.2). Many of these scripts are straight line programs (see [BSWW01], [SWW00], and Reference: Straight Line Programs) and straight line decisions (see Section 6.1). These programs can be used to compute certain elements in a group G from its standard generators (see [Wil96] and Section 3.3) 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 [Rin]), 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.
- +The information was computed and composed using computer algebra systems such as MeatAxe (see [Rin]), 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 bibliographies in [CCN+85] and [BN95] which are available online at http://www.math.rwth-aachen.de/~Thomas.Breuer/atlasrep/bibl.
-+-@misc{ AtlasRep1.5.1, - 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.5.1}, - month = {March}, - year = {2016}, - note = {\textsf{GAP} package}, - howpublished = {http://www.math.rwth-aachen.de/\~{}Thomas.Breuer/atlasrep} -} -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 [WWT+] in the bibliography of this manual.
-For referencing the GAP system in general, use the entry [GAP] in the bibliography of this manual, see also
+If your work made use of functions of the GAP interface (see Section 1.2) then you should also reference this interface, using the information printed by the GAP function
- +Cite
(Reference: Cite).For referencing the GAP system in general, use the entry [GAP18] in the bibliography of this manual, see also http://www.gap-system.org.
- +1.2 The GAP Interface to the ATLAS of Group Representations
@@ -126,40 +111,118 @@-
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 3. Advanced users may add their own data to the database, this is described in Chapter 5.
+- -
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 3. Advanced users may add their own data to the database, this is described in Chapter 5.
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 [Rin]); this is described in Chapter 7.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 [Rin]); this is described in Chapter 7.Information concerning the
-C
-MeatAxe, including the manual [Rin], can be found athttp://www.math.rwth-aachen.de/LDFM/homes/MTX
+http://www.math.rwth-aachen.de/~MTX
The interface and this manual have been provided by Thomas Breuer, except for the interpreter for black box programs (see Section 6.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 What's New in AtlasRep, -Compared to Older Versions?
+1.3 What's New in AtlasRep, Compared to Older Versions?
+ + +1.3-1 What's New in Version 2.1.0? +(May 2019)
+ +The main differences to earlier versions concern extensions of the available data. Up to now, such extensions were possible only in the sense that one could notify certain locally available files to the package's functions. With this version, it becomes possible to notify also remote data files, i. e., data files which have to be downloaded before they can be read into GAP, in the same way as the data from the ATLAS of Group Representations. Two extensions of this kind become automatically available with this package version, see Section 5.1 for details.
+ +Thus the focus of the package has changed. In earlier versions, it provided a GAP interface to the data in the ATLAS of Group Representations, whereas now this database is regarded as one collection (the "core part") among others. Where applicable, the package manual tries to distinguish between general data available to the AtlasRep functions and the data from the ATLAS of Group Representations.
+ +In order to provide this new functionality, the following changes have been implemented. Note that some are incompatible changes, compared with earlier versions of the package.
+ + ++
+- +
The format of the
+ +identifier
components of the records returned byAtlasGenerators
(3.5-3),AtlasProgram
(3.5-4), etc., has been changed for those data that belong to extensions, see 7.7. In the new format, the name of the extension is not added to the group name but to the individual filenames; this allows for example the combination of files from the core database and from extensions in one identifier. Functions for converting between the old and the new format are available, seeAtlasRepIdentifier
(7.7-1).- +
The records returned by
+ +AtlasGenerators
(3.5-3) etc. contain also a componentcontents
, with value the identifier of the part of the database to shich the generators belong.- +
The tables of contents of the ATLAS of Group Representations and of extensions are no longer stored in the form of sequences of calls to GAP functions. Instead, each table of contents is defined via a JSON format file, see 6.4. In particular, the file
+ +atlasprm.json
replaces the formergap/atlasprm.g
.Two advantages of this change are that there is no danger to call unwanted GAP functions when such files (which are expected to be available in the world wide web) get evaluated, and that the information is independent of GAP –note that MeatAxe format files and straight line programs can be used by other program systems as well.
+ +- +
The functions
+ +ReloadAtlasTableOfContents
,StoreAtlasTableOfContents
, andReplaceAtlasTableOfContents
are no longer available. They had been intended for updating the table of contents of the ATLAS of Group Representations, but it has turned out that this was in fact not useful.The second major change concerns the handling of user parameters.
+ + ++
+- +
GAP's general user preferences mechanism (see
+ +SetUserPreference
(Reference: SetUserPreference)) has been used since version 1.5.1 of the package for dealing with certain customizations of AtlasRep's behaviour, concerning the paths of data directories and two issues with MeatAxe format files.Now this mechanism is used in more cases, see Section 4.2 for an overview. The new user preferences replace certain components of the record
+ +AtlasOfGroupRepresentationsInfo
(7.1-5) that were recommended in earlier versions of the package. These components are currently still available but are no longer used by the package's functions. Also the global variableATLASREP_TOCFILE
is no longer supported, use the user preferenceAtlasRepTOCData
instead, see Section 4.2-3. Analogously, use the user preferenceHowToReadMeatAxeTextFiles
instead of the no longer availableCMeatAxe.FastRead
.The switch to user preferences is an incompatible change if you are used to change the values of these components in your code, for example in your
+ +gaprc
file, see Reference: The gap.ini and gaprc files. All assignments to these components should be changed to calls ofSetUserPreference
(Reference: SetUserPreference).Another consequence of this change is that the former function
+ +AtlasOfGroupRepresentationsUserParameters
of the package is no longer supported, useShowUserPreferences
(Reference: ShowUserPreferences) orBrowseUserPreferences
(Browse: BrowseUserPreferences) with argument"AtlasRep"
instead.Finally, the following improvements have been added.
+ + ++
-- +
Straight line programs for computing generators of normal subgroups can now be fetched with
+ +AtlasProgram
(3.5-4), using the argument"kernel"
. The available programs of this type are shown in theDisplayAtlasInfo
(3.5-1) overview for a group. More than 200 such programs are available in a new data directorydatapkg
of the package. If fact, this collection of files is part of an extension of the database that is distributed together with the package.In earlier versions of the package, this kind of information had been available only implicitly; it had been stored via
+ +AGR.KERPRG
, which is not supported anymore.- +
+ +
AtlasProgram
(3.5-4) supports more variants of arguments:"contents"
can be used to list the available data extensions,"contents"
and"version"
can be used to restrict the data under consideration, and one can request a program for computing standard generators of some maximal subgroup, not just generators (provided that this information is available).The information about the version of straight line programs is shown by
+ +DisplayAtlasInfo
(3.5-1), as well as the availability of straight line programs for computing standard generators of maximal subgroups.Making this information more explicit has the side-effect that the access to the AtlasRep data with
+ +BrowseAtlasInfo
(Browse: BrowseAtlasInfo) is both safer and simpler, if at least version 1.8.6 of the Browse package is available. (For that, the functionAGR.InfoPrgs
has been extended such that also theidentifier
records are included in the result.)- +
Straight line programs for computing standard generators of a maximal subgroup, if available, can now be fetched with
+ +AtlasProgram
(3.5-4), using the argument"maxstd"
.- +
The function
+ +AtlasRepInfoRecord
(3.5-10) now admits a group name as its argument, and then returns information about the group and its maximal subgroups; this information had been used before byDisplayAtlasInfo
(3.5-1), but it had not been programmatically accessible.- +
The sanity checks for the data (see Section 7.9) have been extended, in particular they can be applied also to data extensions. To some extent, these checks can be used also to derive new information; the code for that should be regarded as heuristic and experimental, runtimes and space requirements may be large, depending on the new data to be examined.
+ +- +
Different header formats are now supported when reading and writing MeatAxe format files, see Section 4.2-9, and one can set a global default for the creation of mode 2 MeatAxe files, see Section 4.2-10.
+ +- +
The function
+ +MeatAxeString
(7.3-2) admits also an integer matrix as argument.- +
The function
+ +CMtxBinaryFFMatOrPerm
(7.3-4) admits an optional argument base, in order to write MeatAxe format files that contain either zero based or one based permutations.- +
The meaningless lines about p-modular representations of groups with nontrivial p-core have been removed from the file
+ +gap/mindeg.g
.1.3-1 What's New in Version 1.5.1? -(March 2016)
+1.3-2 What's New in Version 1.5.1? (March 2016)
-
-The paths of the directories where downloaded data files get stored are now customizable, see Section 4.3-9. Up to now, the data were stored in subdirectories of the package directory, which might cause problems with write permissions, depending on the installation of the package. (Note that choosing other data directories can be useful also in order to keep existing local data files when a new version of GAP or of the AtlasRep package gets installed.) Thanks to Bill Allombert for pointing out this problem.
+The paths of the directories where downloaded data files get stored are now customizable, see Section 4.2-2. Up to now, the data were stored in subdirectories of the package directory, which might cause problems with write permissions, depending on the installation of the package. (Note that choosing other data directories can be useful also in order to keep existing local data files when a new version of GAP or of the AtlasRep package gets installed.) Thanks to Bill Allombert for pointing out this problem.
- -
The information about data files from the ATLAS of Group Representations has been extended by
CrcFile
(Reference: CrcFile) values. These values are checked whenever data from such a file are read, and an error is signalled if the checksum does not fit to the expected one. Note that several users may access the same data files, and a user should not suffer from perhaps corrupted files that have been downloaded by other users. Thanks to Frank Lübeck for the idea to introduce this consistency test.Whenever
+StringFile
(GAPDoc: StringFile) is called by functions of the package, this happens in the wrapper functionAGR.StringFile
, in order to replace occasional line breaks of the form"\r\n"
by"\n"
. Apparently it may happen that the"\r"
is silently smuggled in when data files get copied to the local computer. Thanks to Marek Mitros for help with detecting and fixing this problem.Whenever
StringFile
(GAPDoc: StringFile) is called by functions of the package, this happens in the wrapper functionAGR.StringFile
, in order to replace occasional line breaks of the form"\r\n"
by"\n"
. Apparently it may happen that the"\r"
is silently smuggled in when data files get copied to the local computer. Thanks to Marek Mitros for help with detecting and fixing this problem.The function
@@ -168,62 +231,62 @@FFMatOrPermCMtxBinary
(7.3-5) can now read also permutations stored in binary files that have been created with version 2.4 of the C-MeatAxe; note that this format is different from the one that is written by version 2.3. Conversely,CMtxBinaryFFMatOrPerm
(7.3-4) has been generalized such that both formats can be written. The reference to the C-MeatAxe documentation now points to that of version 2.4. Thanks to Jürgen Müller for pointing out this problem.- -
The function
MeatAxeString
(7.3-2) can now encode permutation matrices in different ways. The mode (the first header entry) can be either 2 (then the positions of the nonzero entries are listed) or 1 or 6 (then all entries of the matrix are listed). In previous versions, the function produced a matrix of mode 2 whenever this was possible, but this behaviour is not useful if the result is not processed by the C-MeatAxe. Thanks to Klaus Lux for pointing out this problem.Depending on the terminal capabilities and the value of
+AtlasOfGroupRepresentationsInfo.displayFunction
, some non-ASCII characters may appear in the output shown byDisplayAtlasInfo
(3.5-1).Depending on the terminal capabilities and the user preference
DisplayFunction
(see 4.2-12), some non-ASCII characters may appear in the output shown byDisplayAtlasInfo
(3.5-1).1.3-2 What's New in Version 1.5? (July 2011)
+1.3-3 What's New in Version 1.5? (July 2011)
-
-The function
+AtlasSubgroup
(3.5-8) now admits also the return value ofOneAtlasGeneratingSetInfo
(3.5-5) or the return value ofAtlasGroup
(3.5-7) as its first argument. The latter is implemented via the new attributeAtlasRepInfoRecord
(3.5-9), which is set in the groups constructed byAtlasGroup
(3.5-7).- -
The function
AtlasSubgroup
(3.5-9) now admits also the return value ofOneAtlasGeneratingSetInfo
(3.5-6) or the return value ofAtlasGroup
(3.5-8) as its first argument. The latter is implemented via the new attributeAtlasRepInfoRecord
(3.5-10), which is set in the groups constructed byAtlasGroup
(3.5-8).Information about transitivity, rank, primitivity, and point stabilizers of many permutation representations is now available. If applicable then this information appears in the records returned by
+OneAtlasGeneratingSetInfo
(3.5-5), it is part of the overview shown byDisplayAtlasInfo
(3.5-1), and it is shown also in the data overview in the web, see Section 4.4.- -
Information about transitivity, rank, primitivity, and point stabilizers of many permutation representations is now available. If applicable then this information appears in the records returned by
-OneAtlasGeneratingSetInfo
(3.5-6), it is part of the overview shown byDisplayAtlasInfo
(3.5-1), and it is shown also in the data overview in the web, see Section 4.3.Two new manual sections about point stabilizers have been added, see the sections 2.4-6 and 2.4-7.
+Two new manual sections about point stabilizers have been added, see the sections 2.4-6 and 2.4-7.
Information about the characters afforded by many matrix and permutation representations is now available. If applicable then this information appears in the records returned by
+OneAtlasGeneratingSetInfo
(3.5-5), for matrix representations it is part of the overview shown byDisplayAtlasInfo
(3.5-1), and it is shown also in the data overview in the web, see Section 4.4.- -
Information about the characters afforded by many matrix and permutation representations is now available. If applicable then this information appears in the records returned by
OneAtlasGeneratingSetInfo
(3.5-6), for matrix representations it is part of the overview shown byDisplayAtlasInfo
(3.5-1), and it is shown also in the data overview in the web, see Section 4.3.The functions
+Character
(Reference: Character (for a character table and a list)),Identifier
(Reference: Identifier (for character tables)),IsPrimitive
(Reference: IsPrimitive),IsTransitive
(Reference: IsTransitive),Transitivity
(Reference: Transitivity), andRankAction
(Reference: RankAction) are now supported as input conditions inDisplayAtlasInfo
(3.5-1),OneAtlasGeneratingSetInfo
(3.5-5), etc..- -
The functions
Character
(Reference: Character for a character table and a list),Identifier
(Reference: Identifier for character tables),IsPrimitive
(Reference: IsPrimitive),IsTransitive
(Reference: IsTransitive),Transitivity
(Reference: Transitivity), andRankAction
(Reference: RankAction) are now supported as input conditions inDisplayAtlasInfo
(3.5-1) andOneAtlasGeneratingSetInfo
(3.5-6).It is now possible to restrict the data shown by
+DisplayAtlasInfo
(3.5-1) to private or non-private data. Also the data returned byOneAtlasGeneratingSetInfo
(3.5-5) can be restricted to private or non-private data.- -
It is now possible to restrict the data shown by
DisplayAtlasInfo
(3.5-1) or returned byOneAtlasGeneratingSetInfo
(3.5-6) to private or non-private data.A tutorial for beginners was added to the manual, see Chapter 2, and the manual was restructured.
+- -
A tutorial for beginners was added to the manual, see Chapter 2, and the manual was restructured.
In the overview shown by
+DisplayAtlasInfo
(3.5-1) and in the data overview in the web (see Section 4.4), the ordering of groups was improved such that, e.g.,"A9"
precedes"A10"
.In the overview shown by
DisplayAtlasInfo
(3.5-1) and in the data overview in the web (see Section 4.3), the ordering of groups was improved such that, e.g.,"A9"
precedes"A10"
.- -
The function
AtlasClassNames
(3.4-2) now admits also a Brauer table as its argument, and works also for character tables of bicyclic extensions of simple groups.The group names that are entered in
+DisplayAtlasInfo
(3.5-1),OneAtlasGeneratingSetInfo
(3.5-5), etc., are now case insensitive, and if the package CTblLib is available then the admissible group names for the GAP character table of the group in question can be used in these functions.- -
The group names that are entered in
DisplayAtlasInfo
(3.5-1),OneAtlasGeneratingSetInfo
(3.5-6), etc., are now case insensitive, and if the package CTblLib is available then the admissible group names for the GAP character table of the group in question can be used in these functions.In order to reduce the number of global variables, several functions have been turned into components of the new global variable
+AGR
(7.1-5). A few of these functions had been documented in the previous version, the old values are still available if the package filegap/obsolete.g
has been read. This file is read automatically when the package gets loaded ifGAPInfo.UserPreferences.ReadObsolete
istrue
, see Reference: The gap.ini file.- -
In order to reduce the number of global variables, several functions have been turned into components of the new global variable
AGR
(7.1-4). A few of these functions had been documented in the previous version, the old values are still available if the package filesgap/obsolete.gd
andgap/obsolete.gi
have been read. These files are read automatically if GAP's user preference"ReadObsolete"
istrue
when the package gets loaded, see Reference: The gap.ini file.A few nicer characters are used by
+DisplayAtlasInfo
(3.5-1) ifGAPInfo.TermEncoding
has the value"UTF-8"
and ifAtlasOfGroupRepresentationsInfo.displayFunction
is different from- -
A few nicer characters are used by
DisplayAtlasInfo
(3.5-1) ifGAPInfo.TermEncoding
has the value"UTF-8"
and ifA bug in the function
+ReloadAtlasTableOfContents
(4.2-1) was fixed. Thanks to Jack Schmidt for reporting this bug.A bug in the function
ReloadAtlasTableOfContents
was fixed. Thanks to Jack Schmidt for reporting this bug.1.3-3 What's New in Version 1.4? (June 2008)
+1.3-4 What's New in Version 1.4? (June 2008)
-
-In addition to the group orders that were added in version 1.3 (see Section 1.3-5), also many orders of maximal subgroups are now available. These values occur in the records returned by
+AtlasProgram
(3.5-3) (for the case of"maxes"
type programs) and of the three argument version ofAtlasGenerators
(3.5-2); now asize
component may be bound. In these cases, the groups returned byAtlasSubgroup
(3.5-8) have theSize
(Reference: Size) attribute set.In addition to the group orders that were added in version 1.3 (see Section 1.3-6), also many orders of maximal subgroups are now available. These values occur in the records returned by
AtlasProgram
(3.5-4) (for the case of"maxes"
type programs) and of the three argument version ofAtlasGenerators
(3.5-3); now asize
component may be bound. In these cases, the groups returned byAtlasSubgroup
(3.5-9) have theSize
(Reference: Size) attribute set.The information about the number of maximal subgroups, if available, is now used in
@@ -231,77 +294,77 @@DisplayAtlasInfo
(3.5-1).- -
In many cases, straight line programs for computing generators of maximal subgroups of a group G, say, can in fact be used to compute also generators of maximal subgroups of downward extensions of G; if not then it may suffice to extend the given straight line programs by additional generators.
-Currently this yields more than 200 new possibilities to compute maximal subgroups, this means a growth by about 25 percent. For example, all maximal subgroups of 12.M_22 and 2.Fi_22 can now be accessed via
+AtlasGenerators
(3.5-2).Currently this yields more than 200 new possibilities to compute maximal subgroups, this means a growth by about 25 percent. For example, all maximal subgroups of 12.M_22 and 2.Fi_22 can now be accessed via
AtlasGenerators
(3.5-3).(Of course this extension means only that one can access the straight line programs in question automatically via the GAP interface. In principle one could have used them already before, by explicitly applying a straight line program for a factor group to generators of a group, and perhaps adding some element in the kernel of the natural epimorphism.)
For this feature, information about the compatibility of standard generators of groups and their factor groups was added.
The bibliographies contained in the ATLAS of Finite Groups [CCNPW85] and in the ATLAS of Brauer Characters [JLPW95] are now available, see
+BrowseBibliographySporadicSimple
(3.6-2).- -
The bibliographies contained in the ATLAS of Finite Groups [CCN+85] and in the ATLAS of Brauer Characters [JLPW95] are now available as HTML files, as BibXMLext files, and within GAP, see
BrowseBibliographySporadicSimple
(3.6-2).If the GAP package Browse (see [BL14]) is loaded then the new functions
+BrowseMinimalDegrees
(3.6-1) andBrowseBibliographySporadicSimple
(3.6-2) are available; these functions can be called also by choosing the corresponding menu entries of the Browse applicationBrowseGapData
(Browse: BrowseGapData).- -
If the GAP package Browse (see [BL18]) is loaded then the new functions
BrowseMinimalDegrees
(3.6-1) andBrowseBibliographySporadicSimple
(3.6-2) are available; these functions can be called also by choosing the corresponding menu entries of the Browse applicationBrowseGapData
(Browse: BrowseGapData).The function
+AtlasGroup
(3.5-7) now admits also the return value ofOneAtlasGeneratingSetInfo
(3.5-5) as its argument.The function
AtlasGroup
(3.5-8) now admits also the return value ofOneAtlasGeneratingSetInfo
(3.5-6) as its argument.1.3-4 What's New in Version 1.3.1? (October 2007)
+1.3-5 What's New in Version 1.3.1? (October 2007)
This version was mainly released in order to fix a few problems. Now one does not get warnings about unbound variables when the package is loaded and the GAP package IO [Neu14] is not available, and pathological situations in
-FFMatOrPermCMtxBinary
(7.3-5) (concerning extremely short corrupted data files and different byte orderings in binary files) are handled more carefully.Besides this, the two functions
+AtlasGroup
(3.5-7) andAtlasSubgroup
(3.5-8) were introduced, and the extended functionQuaternionAlgebra
(Reference: QuaternionAlgebra) of GAP 4.4.10 can now be used for describing base rings inOneAtlasGeneratingSetInfo
(3.5-5) andAllAtlasGeneratingSetInfos
(3.5-6). (This is the reason why this version of the package requires at least version 4.4.10 of GAP.)Besides this, the two functions
-AtlasGroup
(3.5-8) andAtlasSubgroup
(3.5-9) were introduced, and the extended functionQuaternionAlgebra
(Reference: QuaternionAlgebra) of GAP 4.4.10 can now be used for describing base rings inOneAtlasGeneratingSetInfo
(3.5-6) andAllAtlasGeneratingSetInfos
(3.5-7). (This is the reason why this version of the package requires at least version 4.4.10 of GAP.)1.3-5 What's New in Version 1.3? (June 2007)
+1.3-6 What's New in Version 1.3? (June 2007)
-
-The database was extended, see Section 4.3-4 for the number and size of files.
+- -
The database was extended, see Section 4.2-5 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
(3.5-3), Chapter 6, and Section 7.6.- -
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
(3.5-4), Chapter 6, and Section 7.6.The records returned by the functions
+AtlasGenerators
(3.5-2),OneAtlasGeneratingSetInfo
(3.5-5), andAllAtlasGeneratingSetInfos
(3.5-6) 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.- -
The records returned by the functions
AtlasGenerators
(3.5-3),OneAtlasGeneratingSetInfo
(3.5-6), andAllAtlasGeneratingSetInfos
(3.5-7) 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
(3.5-1),OneAtlasGeneratingSetInfo
(3.5-5), andAllAtlasGeneratingSetInfos
(3.5-6), see also Section 6.3. For these functions, also properties such asIsPrimeInt
(Reference: IsPrimeInt) can be used to describe the intended restriction of the output.- -
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
(3.5-1),OneAtlasGeneratingSetInfo
(3.5-6), andAllAtlasGeneratingSetInfos
(3.5-7), see also Section 6.3. For these functions, also properties such asIsPrimeInt
(Reference: IsPrimeInt) can be used to describe the intended restriction of the output.One can now use
+Pager
(Reference: Pager) functionality inDisplayAtlasInfo
(3.5-1), see Section 4.3-5.- -
One can now use
-Pager
(Reference: Pager) functionality inDisplayAtlasInfo
(3.5-1), see Section 4.2-12.An interactive alternative to
+DisplayAtlasInfo
(3.5-1) is provided by the functionBrowseAtlasInfo
(Browse: BrowseAtlasInfo) from the new (recommended) GAP package Browse [BL14].An interactive alternative to
DisplayAtlasInfo
(3.5-1) is provided by the functionBrowseAtlasInfo
(Browse: BrowseAtlasInfo) from the new (recommended) GAP package Browse (see [BL18]).The functions
+OneAtlasGeneratingSetInfo
(3.5-5) andAllAtlasGeneratingSetInfos
(3.5-6) now admit also a list of group names as the first argument.- -
The functions
OneAtlasGeneratingSetInfo
(3.5-6) andAllAtlasGeneratingSetInfos
(3.5-7) 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 4.3-6.
+- -
The functions for actually accessing the data are more flexible now, see Section 7.2.
For transferring remote data, the GAP package IO [Neu14] can now be used (and is recommended) as an alternative to
+wget
, see Section 4.3-3.- -
For transferring remote data, the GAP package IO (see [Neu14]) can now be used (and is recommended) as an alternative to
wget
, see Section 4.2-4.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 onftp
, had to be rewritten.- -
The address of the data server has changed. The access to the server is no longer possible via
ftp
, thus the mechanism used up to version 1.2, which was based onftp
, 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.3-7.Another consequence is that the system program
ls
is no longer needed, see Section 1.3-8.The package manual has been restructured, extended and improved. It is now based on the package GAPDoc [LN12].
+The package manual has been restructured, extended and improved. It is now based on the package GAPDoc (see [LN18]).
1.3-6 What's New in Version 1.2? (November 2003)
+1.3-7 What's New in Version 1.2? (November 2003)
Not much.
@@ -314,13 +377,13 @@- 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 [Bre13],
+to extend the test suite, which now covers more consistency checks using the GAP Character Table Library (see [Bre13]),
- to make the function
ScanMeatAxeFile
(7.3-1) more robust, due to the fact that the GAP functionPermList
(Reference: PermList) now returnsfail
instead of raising an error,to change the way how representations with prescribed properties are accessed (the new function
+OneAtlasGeneratingSetInfo
(3.5-5) is now preferred to the formerOneAtlasGeneratingSet
, andAllAtlasGeneratingSetInfos
(3.5-6) has been added in order to provide programmatic access in parallel to the human readable descriptions printed byDisplayAtlasInfo
(3.5-1)),to change the way how representations with prescribed properties are accessed (the new function
OneAtlasGeneratingSetInfo
(3.5-6) is now preferred to the formerOneAtlasGeneratingSet
, andAllAtlasGeneratingSetInfos
(3.5-7) has been added in order to provide programmatic access in parallel to the human readable descriptions printed byDisplayAtlasInfo
(3.5-1)),and last but not least to include the current table of contents of the underlying database.
@@ -331,27 +394,27 @@ -1.3-7 What's New in Version 1.1? (October 2002)
+1.3-8 What's New in Version 1.1? (October 2002)
-The biggest change w.r.t. Version 1.1 is the addition of private extensions (see Chapter 5). It includes a new "free format" for straight line programs (see Section 5.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.3-5.]The biggest change w. r. t. Version 1.1 is the addition of private extensions (see Chapter 5). It includes a new "free format" for straight line programs (see Section 5.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.3-6.]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 7.5. An example of a new data type are quaternionic representations (see Section 7.6). The user interface itself (see Chapter 3) remained the same.
+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 7.5. An example of a new data type are quaternionic representations (see Section 7.6). The user interface itself (see Chapter 3) remained the same.
-As an alternative to
+perl
, one can usewget
now for transferring data files (see 4.3).As an alternative to
perl
, one can usewget
now for transferring data files (see 4.2).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
(7.3-1). As a consequence, (at least) GAP 4.3 is required for AtlasRep Version 1.1.The new
+compress
component of the global variableAtlasOfGroupRepresentationsInfo
(7.1-6) allows one to store data files automatically ingzip
ped form.The new
-compress
component of the global variableAtlasOfGroupRepresentationsInfo
(7.1-5) allows one to store data files automatically ingzip
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
(4.2-4) for necessary updates).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.
-Additional information is now available via the internet (see 4.4).
+Additional information is now available via the internet (see 4.3).
-The update facilities have been extended (see 4.2).
+The facilities for updating the table of contents have been extended.
-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.
+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 7.4) have been improved.
+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 7.4) have been improved.
@@ -365,25 +428,25 @@- Ulrich Kaiser helped with preparing the package for MS Windows.
Klaus Lux had the idea to support private extensions of the package, see Chapter 5 and helped to fix several bugs.
+Klaus Lux had the idea to support data extensions, see Chapter 5, he did a lot of beta testing, and helped to fix several bugs.
- Frank Lübeck contributed the functions
CMtxBinaryFFMatOrPerm
(7.3-4) andFFMatOrPermCMtxBinary
(7.3-5).Frank Lübeck and Max Neunhöffer wrote the GAPDoc package [LN12], which is used for processing the documentation of the AtlasRep package and for processing the bibliographies included in this package (see
+BrowseBibliographySporadicSimple
(3.6-2)),Frank Lübeck and Max Neunhöffer wrote the GAPDoc package [LN18], which is used for processing the documentation of the AtlasRep package and for processing the bibliographies included in this package (see
BrowseBibliographySporadicSimple
(3.6-2)),- Max Neunhöffer wrote the GAP package IO [Neu14], which is recommended for transferring data.
Max has also suggested the generalization of the data access described in Section 7.2, and the admissibility of the function
+Character
(Reference: Character (for a character table and a list)) as a filter inDisplayAtlasInfo
(3.5-1),OneAtlasGeneratingSetInfo
(3.5-5), andAllAtlasGeneratingSetInfos
(3.5-6).Max Neunhöffer has also suggested the generalization of the data access described in Section 7.2, the admissibility of the function
Character
(Reference: Character for a character table and a list) as a filter inDisplayAtlasInfo
(3.5-1),OneAtlasGeneratingSetInfo
(3.5-6), andAllAtlasGeneratingSetInfos
(3.5-7), and the variant ofAtlasRepInfoRecord
(3.5-10) that takes a group name as its input.- Gunter Malle suggested to make the information about representations of minimal degree accessible, see Section 6.3.
Andries Brouwer suggested to add a tutorial (see Chapter 2), Klaus Lux suggested several improvements of this chapter.
+diff -Nru gap-atlasrep-1.5.1/doc/chap1_mj.html gap-atlasrep-2.1.0/doc/chap1_mj.html --- gap-atlasrep-1.5.1/doc/chap1_mj.html 1970-01-01 00:00:00.000000000 +0000 +++ gap-atlasrep-2.1.0/doc/chap1_mj.html 2019-06-21 15:10:33.000000000 +0000 @@ -0,0 +1,465 @@ + + + + + + + + Andries Brouwer suggested to add a tutorial (see Chapter 2), Klaus Lux suggested several improvements of this chapter.
GAP (AtlasRep) - Chapter 1: Introduction to the AtlasRep Package + + + + + + + + + + + + + + + +1 Introduction to the AtlasRep Package + + ++ +1.3 What's New in AtlasRep, Compared to Older Versions? + ++ ++
1.3-1 What's New in Version 2.1.0? +(May 2019) + +
1.3-2 What's New in Version 1.5.1? (March 2016) + +
1.3-3 What's New in Version 1.5? (July 2011) + +
1.3-4 What's New in Version 1.4? (June 2008) + +
1.3-5 What's New in Version 1.3.1? (October 2007) + +
1.3-6 What's New in Version 1.3? (June 2007) + +
1.3-7 What's New in Version 1.2? (November 2003) + +
1.3-8 What's New in Version 1.1? (October 2002) + +1 Introduction to the AtlasRep Package
+ +The aim of the GAP 4 package AtlasRep is to provide a link between GAP and databases such as the ATLAS of Group Representations [WWT+], which comprises generating permutations and matrices for many almost simple groups, and information about their maximal subgroups. This database is available independent of GAP at
+ +http://brauer.maths.qmul.ac.uk/Atlas/v3.
+ +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 4.3).
+ +This package manual has the following parts.
+ + ++
+ + +- A tutorial
+- +
gives an overview how the functions of the package can be used, see Chapter 2.
+ +- User interface functions
+- +
are described in Chapter 3.
+ +- Customizations of the package
+- +
are described in Chapter 4.
+ +- Information how to extend the database
+- +
can be found in Chapter 5.
+ +- More technical information
+- +
can be found in the chapters 6 (concerning GAP objects that are introduced by the package) and 7 (concerning global variables and sanity checks).
+ +1.1 The ATLAS of Group Representations
+ +The ATLAS of Group Representations [WWT+] consists of matrices over various rings, permutations, and shell scripts encoding so-called black box programs (see [Nic06] and Section 6.2). Many of these scripts are straight line programs (see [BSWW01], [SWW00], and Reference: Straight Line Programs) and straight line decisions (see Section 6.1). These programs can be used to compute certain elements in a group \(G\) from its standard generators (see [Wil96] and Section 3.3) 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 [Rin]), 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 bibliographies in [CCN+85] and [BN95] which are available online at http://www.math.rwth-aachen.de/~Thomas.Breuer/atlasrep/bibl.
+ +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 [WWT+] 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, using the information printed by the GAP function
+ +Cite
(Reference: Cite).For referencing the GAP system in general, use the entry [GAP18] 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 3. Advanced users may add their own data to the database, this is described in Chapter 5.
+ +- +
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 [Rin]); this is described in Chapter 7.Information concerning the
+ +C
-MeatAxe, including the manual [Rin], can be found athttp://www.math.rwth-aachen.de/~MTX
+ +The interface and this manual have been provided by Thomas Breuer, except for the interpreter for black box programs (see Section 6.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 What's New in AtlasRep, Compared to Older Versions?
+ + + + + +1.3-1 What's New in Version 2.1.0? +(May 2019)
+ +The main differences to earlier versions concern extensions of the available data. Up to now, such extensions were possible only in the sense that one could notify certain locally available files to the package's functions. With this version, it becomes possible to notify also remote data files, i. e., data files which have to be downloaded before they can be read into GAP, in the same way as the data from the ATLAS of Group Representations. Two extensions of this kind become automatically available with this package version, see Section 5.1 for details.
+ +Thus the focus of the package has changed. In earlier versions, it provided a GAP interface to the data in the ATLAS of Group Representations, whereas now this database is regarded as one collection (the "core part") among others. Where applicable, the package manual tries to distinguish between general data available to the AtlasRep functions and the data from the ATLAS of Group Representations.
+ +In order to provide this new functionality, the following changes have been implemented. Note that some are incompatible changes, compared with earlier versions of the package.
+ + ++
+- +
The format of the
+ +identifier
components of the records returned byAtlasGenerators
(3.5-3),AtlasProgram
(3.5-4), etc., has been changed for those data that belong to extensions, see 7.7. In the new format, the name of the extension is not added to the group name but to the individual filenames; this allows for example the combination of files from the core database and from extensions in one identifier. Functions for converting between the old and the new format are available, seeAtlasRepIdentifier
(7.7-1).- +
The records returned by
+ +AtlasGenerators
(3.5-3) etc. contain also a componentcontents
, with value the identifier of the part of the database to shich the generators belong.- +
The tables of contents of the ATLAS of Group Representations and of extensions are no longer stored in the form of sequences of calls to GAP functions. Instead, each table of contents is defined via a JSON format file, see 6.4. In particular, the file
+ +atlasprm.json
replaces the formergap/atlasprm.g
.Two advantages of this change are that there is no danger to call unwanted GAP functions when such files (which are expected to be available in the world wide web) get evaluated, and that the information is independent of GAP –note that MeatAxe format files and straight line programs can be used by other program systems as well.
+ +- +
The functions
+ +ReloadAtlasTableOfContents
,StoreAtlasTableOfContents
, andReplaceAtlasTableOfContents
are no longer available. They had been intended for updating the table of contents of the ATLAS of Group Representations, but it has turned out that this was in fact not useful.The second major change concerns the handling of user parameters.
+ + ++
+- +
GAP's general user preferences mechanism (see
+ +SetUserPreference
(Reference: SetUserPreference)) has been used since version 1.5.1 of the package for dealing with certain customizations of AtlasRep's behaviour, concerning the paths of data directories and two issues with MeatAxe format files.Now this mechanism is used in more cases, see Section 4.2 for an overview. The new user preferences replace certain components of the record
+ +AtlasOfGroupRepresentationsInfo
(7.1-5) that were recommended in earlier versions of the package. These components are currently still available but are no longer used by the package's functions. Also the global variableATLASREP_TOCFILE
is no longer supported, use the user preferenceAtlasRepTOCData
instead, see Section 4.2-3. Analogously, use the user preferenceHowToReadMeatAxeTextFiles
instead of the no longer availableCMeatAxe.FastRead
.The switch to user preferences is an incompatible change if you are used to change the values of these components in your code, for example in your
+ +gaprc
file, see Reference: The gap.ini and gaprc files. All assignments to these components should be changed to calls ofSetUserPreference
(Reference: SetUserPreference).Another consequence of this change is that the former function
+ +AtlasOfGroupRepresentationsUserParameters
of the package is no longer supported, useShowUserPreferences
(Reference: ShowUserPreferences) orBrowseUserPreferences
(Browse: BrowseUserPreferences) with argument"AtlasRep"
instead.Finally, the following improvements have been added.
+ + ++
+ + +- +
Straight line programs for computing generators of normal subgroups can now be fetched with
+ +AtlasProgram
(3.5-4), using the argument"kernel"
. The available programs of this type are shown in theDisplayAtlasInfo
(3.5-1) overview for a group. More than \(200\) such programs are available in a new data directorydatapkg
of the package. If fact, this collection of files is part of an extension of the database that is distributed together with the package.In earlier versions of the package, this kind of information had been available only implicitly; it had been stored via
+ +AGR.KERPRG
, which is not supported anymore.- +
+ +
AtlasProgram
(3.5-4) supports more variants of arguments:"contents"
can be used to list the available data extensions,"contents"
and"version"
can be used to restrict the data under consideration, and one can request a program for computing standard generators of some maximal subgroup, not just generators (provided that this information is available).The information about the version of straight line programs is shown by
+ +DisplayAtlasInfo
(3.5-1), as well as the availability of straight line programs for computing standard generators of maximal subgroups.Making this information more explicit has the side-effect that the access to the AtlasRep data with
+ +BrowseAtlasInfo
(Browse: BrowseAtlasInfo) is both safer and simpler, if at least version 1.8.6 of the Browse package is available. (For that, the functionAGR.InfoPrgs
has been extended such that also theidentifier
records are included in the result.)- +
Straight line programs for computing standard generators of a maximal subgroup, if available, can now be fetched with
+ +AtlasProgram
(3.5-4), using the argument"maxstd"
.- +
The function
+ +AtlasRepInfoRecord
(3.5-10) now admits a group name as its argument, and then returns information about the group and its maximal subgroups; this information had been used before byDisplayAtlasInfo
(3.5-1), but it had not been programmatically accessible.- +
The sanity checks for the data (see Section 7.9) have been extended, in particular they can be applied also to data extensions. To some extent, these checks can be used also to derive new information; the code for that should be regarded as heuristic and experimental, runtimes and space requirements may be large, depending on the new data to be examined.
+ +- +
Different header formats are now supported when reading and writing MeatAxe format files, see Section 4.2-9, and one can set a global default for the creation of mode 2 MeatAxe files, see Section 4.2-10.
+ +- +
The function
+ +MeatAxeString
(7.3-2) admits also an integer matrix as argument.- +
The function
+ +CMtxBinaryFFMatOrPerm
(7.3-4) admits an optional argument base, in order to write MeatAxe format files that contain either zero based or one based permutations.- +
The meaningless lines about \(p\)-modular representations of groups with nontrivial \(p\)-core have been removed from the file
+ +gap/mindeg.g
.1.3-2 What's New in Version 1.5.1? (March 2016)
+ + ++
+ + +- +
The paths of the directories where downloaded data files get stored are now customizable, see Section 4.2-2. Up to now, the data were stored in subdirectories of the package directory, which might cause problems with write permissions, depending on the installation of the package. (Note that choosing other data directories can be useful also in order to keep existing local data files when a new version of GAP or of the AtlasRep package gets installed.) Thanks to Bill Allombert for pointing out this problem.
+ +- +
The information about data files from the ATLAS of Group Representations has been extended by
+ +CrcFile
(Reference: CrcFile) values. These values are checked whenever data from such a file are read, and an error is signalled if the checksum does not fit to the expected one. Note that several users may access the same data files, and a user should not suffer from perhaps corrupted files that have been downloaded by other users. Thanks to Frank Lübeck for the idea to introduce this consistency test.- +
Whenever
+ +StringFile
(GAPDoc: StringFile) is called by functions of the package, this happens in the wrapper functionAGR.StringFile
, in order to replace occasional line breaks of the form"\r\n"
by"\n"
. Apparently it may happen that the"\r"
is silently smuggled in when data files get copied to the local computer. Thanks to Marek Mitros for help with detecting and fixing this problem.- +
The function
+ +FFMatOrPermCMtxBinary
(7.3-5) can now read also permutations stored in binary files that have been created with version 2.4 of the C-MeatAxe; note that this format is different from the one that is written by version 2.3. Conversely,CMtxBinaryFFMatOrPerm
(7.3-4) has been generalized such that both formats can be written. The reference to the C-MeatAxe documentation now points to that of version 2.4. Thanks to Jürgen Müller for pointing out this problem.- +
The function
+ +MeatAxeString
(7.3-2) can now encode permutation matrices in different ways. The mode (the first header entry) can be either 2 (then the positions of the nonzero entries are listed) or 1 or 6 (then all entries of the matrix are listed). In previous versions, the function produced a matrix of mode 2 whenever this was possible, but this behaviour is not useful if the result is not processed by the C-MeatAxe. Thanks to Klaus Lux for pointing out this problem.- +
Depending on the terminal capabilities and the user preference
+ +DisplayFunction
(see 4.2-12), some non-ASCII characters may appear in the output shown byDisplayAtlasInfo
(3.5-1).1.3-3 What's New in Version 1.5? (July 2011)
+ + ++
+ + +- +
The function
+ +AtlasSubgroup
(3.5-9) now admits also the return value ofOneAtlasGeneratingSetInfo
(3.5-6) or the return value ofAtlasGroup
(3.5-8) as its first argument. The latter is implemented via the new attributeAtlasRepInfoRecord
(3.5-10), which is set in the groups constructed byAtlasGroup
(3.5-8).- +
Information about transitivity, rank, primitivity, and point stabilizers of many permutation representations is now available. If applicable then this information appears in the records returned by
+ +OneAtlasGeneratingSetInfo
(3.5-6), it is part of the overview shown byDisplayAtlasInfo
(3.5-1), and it is shown also in the data overview in the web, see Section 4.3.Two new manual sections about point stabilizers have been added, see the sections 2.4-6 and 2.4-7.
+ +- +
Information about the characters afforded by many matrix and permutation representations is now available. If applicable then this information appears in the records returned by
+ +OneAtlasGeneratingSetInfo
(3.5-6), for matrix representations it is part of the overview shown byDisplayAtlasInfo
(3.5-1), and it is shown also in the data overview in the web, see Section 4.3.- +
The functions
+ +Character
(Reference: Character for a character table and a list),Identifier
(Reference: Identifier for character tables),IsPrimitive
(Reference: IsPrimitive),IsTransitive
(Reference: IsTransitive),Transitivity
(Reference: Transitivity), andRankAction
(Reference: RankAction) are now supported as input conditions inDisplayAtlasInfo
(3.5-1) andOneAtlasGeneratingSetInfo
(3.5-6).- +
It is now possible to restrict the data shown by
+ +DisplayAtlasInfo
(3.5-1) or returned byOneAtlasGeneratingSetInfo
(3.5-6) to private or non-private data.- +
A tutorial for beginners was added to the manual, see Chapter 2, and the manual was restructured.
+ +- +
In the overview shown by
+ +DisplayAtlasInfo
(3.5-1) and in the data overview in the web (see Section 4.3), the ordering of groups was improved such that, e.g.,"A9"
precedes"A10"
.- +
The function
+ +AtlasClassNames
(3.4-2) now admits also a Brauer table as its argument, and works also for character tables of bicyclic extensions of simple groups.- +
The group names that are entered in
+ +DisplayAtlasInfo
(3.5-1),OneAtlasGeneratingSetInfo
(3.5-6), etc., are now case insensitive, and if the package CTblLib is available then the admissible group names for the GAP character table of the group in question can be used in these functions.- +
In order to reduce the number of global variables, several functions have been turned into components of the new global variable
+ +AGR
(7.1-4). A few of these functions had been documented in the previous version, the old values are still available if the package filesgap/obsolete.gd
andgap/obsolete.gi
have been read. These files are read automatically if GAP's user preference"ReadObsolete"
istrue
when the package gets loaded, see Reference: The gap.ini file.- +
A few nicer characters are used by
+ +DisplayAtlasInfo
(3.5-1) ifGAPInfo.TermEncoding
has the value"UTF-8"
and if- +
A bug in the function
+ +ReloadAtlasTableOfContents
was fixed. Thanks to Jack Schmidt for reporting this bug.1.3-4 What's New in Version 1.4? (June 2008)
+ + ++
+ + +- +
In addition to the group orders that were added in version 1.3 (see Section 1.3-6), also many orders of maximal subgroups are now available. These values occur in the records returned by
+ +AtlasProgram
(3.5-4) (for the case of"maxes"
type programs) and of the three argument version ofAtlasGenerators
(3.5-3); now asize
component may be bound. In these cases, the groups returned byAtlasSubgroup
(3.5-9) have theSize
(Reference: Size) attribute set.- +
The information about the number of maximal subgroups, if available, is now used in
+ +DisplayAtlasInfo
(3.5-1).- +
In many cases, straight line programs for computing generators of maximal subgroups of a group \(G\), say, can in fact be used to compute also generators of maximal subgroups of downward extensions of \(G\); if not then it may suffice to extend the given straight line programs by additional generators.
+ +Currently this yields more than \(200\) new possibilities to compute maximal subgroups, this means a growth by about \(25\) percent. For example, all maximal subgroups of \(12.M_{22}\) and \(2.Fi_{22}\) can now be accessed via
+ +AtlasGenerators
(3.5-3).(Of course this extension means only that one can access the straight line programs in question automatically via the GAP interface. In principle one could have used them already before, by explicitly applying a straight line program for a factor group to generators of a group, and perhaps adding some element in the kernel of the natural epimorphism.)
+ +For this feature, information about the compatibility of standard generators of groups and their factor groups was added.
+ +- +
The bibliographies contained in the ATLAS of Finite Groups [CCN+85] and in the ATLAS of Brauer Characters [JLPW95] are now available as HTML files, as BibXMLext files, and within GAP, see
+ +BrowseBibliographySporadicSimple
(3.6-2).- +
If the GAP package Browse (see [BL18]) is loaded then the new functions
+ +BrowseMinimalDegrees
(3.6-1) andBrowseBibliographySporadicSimple
(3.6-2) are available; these functions can be called also by choosing the corresponding menu entries of the Browse applicationBrowseGapData
(Browse: BrowseGapData).- +
The function
+ +AtlasGroup
(3.5-8) now admits also the return value ofOneAtlasGeneratingSetInfo
(3.5-6) as its argument.1.3-5 What's New in Version 1.3.1? (October 2007)
+ +This version was mainly released in order to fix a few problems. Now one does not get warnings about unbound variables when the package is loaded and the GAP package IO [Neu14] is not available, and pathological situations in
+ +FFMatOrPermCMtxBinary
(7.3-5) (concerning extremely short corrupted data files and different byte orderings in binary files) are handled more carefully.Besides this, the two functions
+ + + +AtlasGroup
(3.5-8) andAtlasSubgroup
(3.5-9) were introduced, and the extended functionQuaternionAlgebra
(Reference: QuaternionAlgebra) of GAP 4.4.10 can now be used for describing base rings inOneAtlasGeneratingSetInfo
(3.5-6) andAllAtlasGeneratingSetInfos
(3.5-7). (This is the reason why this version of the package requires at least version 4.4.10 of GAP.)1.3-6 What's New in Version 1.3? (June 2007)
+ + ++
+ + +- +
The database was extended, see Section 4.2-5 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
(3.5-4), Chapter 6, and Section 7.6.- +
The records returned by the functions
+ +AtlasGenerators
(3.5-3),OneAtlasGeneratingSetInfo
(3.5-6), andAllAtlasGeneratingSetInfos
(3.5-7) 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
(3.5-1),OneAtlasGeneratingSetInfo
(3.5-6), andAllAtlasGeneratingSetInfos
(3.5-7), see also Section 6.3. For these functions, also properties such asIsPrimeInt
(Reference: IsPrimeInt) can be used to describe the intended restriction of the output.- +
One can now use
+ +Pager
(Reference: Pager) functionality inDisplayAtlasInfo
(3.5-1), see Section 4.2-12.An interactive alternative to
+ +DisplayAtlasInfo
(3.5-1) is provided by the functionBrowseAtlasInfo
(Browse: BrowseAtlasInfo) from the new (recommended) GAP package Browse (see [BL18]).- +
The functions
+ +OneAtlasGeneratingSetInfo
(3.5-6) andAllAtlasGeneratingSetInfos
(3.5-7) 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 7.2.
+ +- +
For transferring remote data, the GAP package IO (see [Neu14]) can now be used (and is recommended) as an alternative to
+ +wget
, see Section 4.2-4.- +
The address of the data server has changed. The access to the server is no longer possible via
+ +ftp
, thus the mechanism used up to version 1.2, which was based onftp
, 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.3-8.- +
The package manual has been restructured, extended and improved. It is now based on the package GAPDoc (see [LN18]).
+ +1.3-7 What's New in Version 1.2? (November 2003)
+ +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 (see [Bre13]),
+ +- +
to make the function
+ +ScanMeatAxeFile
(7.3-1) more robust, due to the fact that the GAP functionPermList
(Reference: PermList) now returnsfail
instead of raising an error,- +
to change the way how representations with prescribed properties are accessed (the new function
+ +OneAtlasGeneratingSetInfo
(3.5-6) is now preferred to the formerOneAtlasGeneratingSet
, andAllAtlasGeneratingSetInfos
(3.5-7) has been added in order to provide programmatic access in parallel to the human readable descriptions printed byDisplayAtlasInfo
(3.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.3-8 What's New in Version 1.1? (October 2002)
+ +The biggest change w. r. t. Version 1.1 is the addition of private extensions (see Chapter 5). It includes a new "free format" for straight line programs (see Section 5.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.3-6.]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 7.5. An example of a new data type are quaternionic representations (see Section 7.6). The user interface itself (see Chapter 3) remained the same.
+ +As an alternative to
+ +perl
, one can usewget
now for transferring data files (see 4.2).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
(7.3-1). As a consequence, (at least) GAP 4.3 is required for AtlasRep Version 1.1.The new
+ +compress
component of the global variableAtlasOfGroupRepresentationsInfo
(7.1-5) allows one to store data files automatically ingzip
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.
+ +Additional information is now available via the internet (see 4.3).
+ +The facilities for updating the table of contents have been extended.
+ +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 7.4) have been improved.
+ + + +1.4 Acknowledgements
+ + ++
+ + + + + + +- +
Frank Lübeck and Max Neunhöffer kindly provided the perl script that had been used for fetching remote data until version 1.2. Thanks also to Greg Gamble and Alexander Hulpke for technical hints concerning "standard" perl.
+ +- +
Ulrich Kaiser helped with preparing the package for MS Windows.
+ +- +
Klaus Lux had the idea to support data extensions, see Chapter 5, he did a lot of beta testing, and helped to fix several bugs.
+ +- +
Frank Lübeck contributed the functions
+ +CMtxBinaryFFMatOrPerm
(7.3-4) andFFMatOrPermCMtxBinary
(7.3-5).- +
Frank Lübeck and Max Neunhöffer wrote the GAPDoc package [LN18], which is used for processing the documentation of the AtlasRep package and for processing the bibliographies included in this package (see
+ +BrowseBibliographySporadicSimple
(3.6-2)),- +
Max Neunhöffer wrote the GAP package IO [Neu14], which is recommended for transferring data.
+ +- +
Max Neunhöffer has also suggested the generalization of the data access described in Section 7.2, the admissibility of the function
+ +Character
(Reference: Character for a character table and a list) as a filter inDisplayAtlasInfo
(3.5-1),OneAtlasGeneratingSetInfo
(3.5-6), andAllAtlasGeneratingSetInfos
(3.5-7), and the variant ofAtlasRepInfoRecord
(3.5-10) that takes a group name as its input.- +
Gunter Malle suggested to make the information about representations of minimal degree accessible, see Section 6.3.
+ +- +
Andries Brouwer suggested to add a tutorial (see Chapter 2), Klaus Lux suggested several improvements of this chapter.
+ +
+generated by GAPDoc2HTML
+ + diff -Nru gap-atlasrep-1.5.1/doc/chap1.txt gap-atlasrep-2.1.0/doc/chap1.txt --- gap-atlasrep-1.5.1/doc/chap1.txt 2016-04-06 12:18:13.000000000 +0000 +++ gap-atlasrep-2.1.0/doc/chap1.txt 2019-06-21 15:10:33.000000000 +0000 @@ -2,16 +2,16 @@ [1X1 [33X[0;0YIntroduction to the [5XAtlasRep[105X[101X[1X Package[133X[101X [33X[0;0YThe aim of the [5XGAP[105X 4 package [5XAtlasRep[105X is to provide a link between [5XGAP[105X and - the [21X[5XATLAS[105X of Group Representations[121X [ATLAS], a database that comprises + databases such as the [5XATLAS[105X of Group Representations [WWT+], which comprises generating permutations and matrices for many almost simple groups, and information about their maximal subgroups. This database is available independent of [5XGAP[105X at[133X - [33X[0;0Y[7Xhttp://brauer.maths.qmul.ac.uk/Atlas[107X[133X + [33X[0;0Y[7Xhttp://brauer.maths.qmul.ac.uk/Atlas/v3[107X.[133X [33X[0;0YThe [5XAtlasRep[105X package consists of this database (see Section [14X1.1[114X) and a [5XGAP[105X interface (see Section [14X1.2[114X); the latter is extended by further information - available via the internet (see Section [14X4.4[114X).[133X + available via the internet (see Section [14X4.3[114X).[133X [33X[0;0YThis package manual has the following parts.[133X @@ -36,11 +36,11 @@ [1X1.1 [33X[0;0YThe [5XATLAS[105X[101X[1X of Group Representations[133X[101X - [33X[0;0YThe [5XATLAS[105X of Group Representations consists of matrices over various rings, - permutations, and shell scripts encoding so-called black box programs (see - [Nic06] and Section [14X6.2[114X). Many of these scripts are straight line programs - (see [BSWW01], [SWW00], and [14X'Reference: Straight Line Programs'[114X) and - straight line decisions (see Section [14X6.1[114X). These programs can be used to + [33X[0;0YThe [5XATLAS[105X of Group Representations [WWT+] consists of matrices over various + rings, permutations, and shell scripts encoding so-called black box programs + (see [Nic06] and Section [14X6.2[114X). Many of these scripts are straight line + programs (see [BSWW01], [SWW00], and [14X'Reference: Straight Line Programs'[114X) + and straight line decisions (see Section [14X6.1[114X). These programs can be used to compute certain elements in a group [22XG[122X from its standard generators (see [Wil96] and Section [14X3.3[114X) for example generators of maximal subgroups of [22XG[122X or representatives of conjugacy classes of [22XG[122X.[133X @@ -54,34 +54,21 @@ such as [5XMeatAxe[105X (see [Rin]), Magma (see [CP96]), and [5XGAP[105X (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].[133X + publications, see for example the bibliographies in [CCN+85] and [BN95] + which are available online at + [7Xhttp://www.math.rwth-aachen.de/~Thomas.Breuer/atlasrep/bibl[107X.[133X [33X[0;0YIf you use the [5XATLAS[105X of Group Representations to solve a problem then please send a short email to [7Xmailto:R.A.Wilson@qmul.ac.uk[107X about it. The [5XATLAS[105X of - Group Representations database should be referenced with the entry [ATLAS] - in the bibliography of this manual.[133X + Group Representations database should be referenced with the entry [WWT+] in + the bibliography of this manual.[133X [33X[0;0YIf your work made use of functions of the [5XGAP[105X interface (see Section [14X1.2[114X) - then you should also reference this interface, as follows.[133X + then you should also reference this interface, using the information printed + by the [5XGAP[105X function [2XCite[102X ([14XReference: Cite[114X).[133X - [4X[32X[104X - [4X@misc{ AtlasRep1.5.1,[104X - [4X author = {Wilson, R. A. and Parker, R. A. and Nickerson, S. and[104X - [4X Bray, J. N. and Breuer, T.},[104X - [4X title = {{AtlasRep}, A \textsf{GAP} Interface to the Atlas of[104X - [4X Group Representations,[104X - [4X {V}ersion 1.5.1},[104X - [4X month = {March},[104X - [4X year = {2016},[104X - [4X note = {\textsf{GAP} package},[104X - [4X howpublished = {http://www.math.rwth-aachen.de/\~{}Thomas.Breuer/atlasrep}[104X - [4X}[104X - [4X[32X[104X - - [33X[0;0YFor referencing the [5XGAP[105X system in general, use the entry [GAP] in the - bibliography of this manual, see also[133X - - [33X[0;0Y[7Xhttp://www.gap-system.org[107X.[133X + [33X[0;0YFor referencing the [5XGAP[105X system in general, use the entry [GAP18] in the + bibliography of this manual, see also [7Xhttp://www.gap-system.org[107X.[133X [1X1.2 [33X[0;0YThe GAP Interface to the [5XATLAS[105X[101X[1X of Group Representations[133X[101X @@ -104,7 +91,7 @@ [33X[0;0YInformation concerning the [10XC[110X-[5XMeatAxe[105X, including the manual [Rin], can be found at[133X - [33X[0;0Y[7Xhttp://www.math.rwth-aachen.de/LDFM/homes/MTX[107X[133X + [33X[0;0Y[7Xhttp://www.math.rwth-aachen.de/~MTX[107X[133X [33X[0;0YThe interface and this manual have been provided by Thomas Breuer, except for the interpreter for black box programs (see Section [14X6.2[114X), which is due @@ -115,10 +102,157 @@ [1X1.3 [33X[0;0YWhat's New in [5XAtlasRep[105X[101X[1X, Compared to Older Versions?[133X[101X - [1X1.3-1 [33X[0;0YWhat's New in Version 1.5.1? (March 2016)[133X[101X + [1X1.3-1 [33X[0;0YWhat's New in Version 2.1.0? (May 2019)[133X[101X + + [33X[0;0YThe main differences to earlier versions concern extensions of the available + data. Up to now, such extensions were possible only in the sense that one + could notify certain [13Xlocally available files[113X to the package's functions. + With this version, it becomes possible to notify also [13Xremote data files[113X, i. + e., data files which have to be downloaded before they can be read into [5XGAP[105X, + in the same way as the data from the [5XATLAS[105X of Group Representations. Two + extensions of this kind become automatically available with this package + version, see Section [14X5.1[114X for details.[133X + + [33X[0;0YThus the focus of the package has changed. In earlier versions, it provided + a [5XGAP[105X interface to the data in the [5XATLAS[105X of Group Representations, whereas + now this database is regarded as one collection (the [21Xcore part[121X) among + others. Where applicable, the package manual tries to distinguish between + general data available to the [5XAtlasRep[105X functions and the data from the [5XATLAS[105X + of Group Representations.[133X + + [33X[0;0YIn order to provide this new functionality, the following changes have been + implemented. Note that some are [13Xincompatible changes[113X, compared with earlier + versions of the package.[133X + + [30X [33X[0;6YThe format of the [10Xidentifier[110X components of the records returned by + [2XAtlasGenerators[102X ([14X3.5-3[114X), [2XAtlasProgram[102X ([14X3.5-4[114X), etc., has been changed + for those data that belong to extensions, see [14X7.7[114X. In the new format, + the name of the extension is not added to the group name but to the + individual filenames; this allows for example the combination of files + from the core database and from extensions in one identifier. + Functions for converting between the old and the new format are + available, see [2XAtlasRepIdentifier[102X ([14X7.7-1[114X).[133X + + [30X [33X[0;6YThe records returned by [2XAtlasGenerators[102X ([14X3.5-3[114X) etc. contain also a + component [10Xcontents[110X, with value the identifier of the part of the + database to shich the generators belong.[133X + + [30X [33X[0;6YThe tables of contents of the [5XATLAS[105X of Group Representations and of + extensions are no longer stored in the form of sequences of calls to + [5XGAP[105X functions. Instead, each table of contents is defined via a JSON + format file, see [14X6.4[114X. In particular, the file [11Xatlasprm.json[111X replaces + the former [11Xgap/atlasprm.g[111X.[133X + + [33X[0;6YTwo advantages of this change are that there is no danger to call + unwanted [5XGAP[105X functions when such files (which are expected to be + available in the world wide web) get evaluated, and that the + information is independent of [5XGAP[105X –note that [5XMeatAxe[105X format files and + straight line programs can be used by other program systems as well.[133X + + [30X [33X[0;6YThe functions [10XReloadAtlasTableOfContents[110X, [10XStoreAtlasTableOfContents[110X, + and [10XReplaceAtlasTableOfContents[110X are no longer available. They had been + intended for updating the table of contents of the [5XATLAS[105X of Group + Representations, but it has turned out that this was in fact not + useful.[133X + + [33X[0;0YThe second major change concerns the handling of user parameters.[133X + + [30X [33X[0;6Y[5XGAP[105X's general [13Xuser preferences[113X mechanism (see [2XSetUserPreference[102X + ([14XReference: SetUserPreference[114X)) has been used since version 1.5.1 of + the package for dealing with certain customizations of [5XAtlasRep[105X's + behaviour, concerning the paths of data directories and two issues + with [5XMeatAxe[105X format files.[133X + + [33X[0;6YNow this mechanism is used in more cases, see Section [14X4.2[114X for an + overview. The new user preferences replace certain components of the + record [2XAtlasOfGroupRepresentationsInfo[102X ([14X7.1-5[114X) that were recommended + in earlier versions of the package. These components are currently + still available but are no longer used by the package's functions. + Also the global variable [10XATLASREP_TOCFILE[110X is no longer supported, use + the user preference [10XAtlasRepTOCData[110X instead, see Section [14X4.2-3[114X. + Analogously, use the user preference [10XHowToReadMeatAxeTextFiles[110X instead + of the no longer available [10XCMeatAxe.FastRead[110X.[133X + + [33X[0;6YThe switch to user preferences is an [13Xincompatible change[113X if you are + used to change the values of these components in your code, for + example in your [11Xgaprc[111X file, see [14X'Reference: The gap.ini and gaprc + files'[114X. All assignments to these components should be changed to calls + of [2XSetUserPreference[102X ([14XReference: SetUserPreference[114X).[133X + + [33X[0;6YAnother consequence of this change is that the former function + [10XAtlasOfGroupRepresentationsUserParameters[110X of the package is no longer + supported, use [2XShowUserPreferences[102X ([14XReference: ShowUserPreferences[114X) or + [2XBrowseUserPreferences[102X ([14XBrowse: BrowseUserPreferences[114X) with argument + [10X"AtlasRep"[110X instead.[133X + + [33X[0;0YFinally, the following improvements have been added.[133X + + [30X [33X[0;6YStraight line programs for computing generators of normal subgroups + can now be fetched with [2XAtlasProgram[102X ([14X3.5-4[114X), using the argument + [10X"kernel"[110X. The available programs of this type are shown in the + [2XDisplayAtlasInfo[102X ([14X3.5-1[114X) overview for a group. More than [22X200[122X such + programs are available in a new data directory [11Xdatapkg[111X of the package. + If fact, this collection of files is part of an extension of the + database that is distributed together with the package.[133X + + [33X[0;6YIn earlier versions of the package, this kind of information had been + available only implicitly; it had been stored via [10XAGR.KERPRG[110X, which is + not supported anymore.[133X + + [30X [33X[0;6Y[2XAtlasProgram[102X ([14X3.5-4[114X) supports more variants of arguments: [10X"contents"[110X + can be used to list the available data extensions, [10X"contents"[110X and + [10X"version"[110X can be used to restrict the data under consideration, and + one can request a program for computing [13Xstandard[113X generators of some + maximal subgroup, not just generators (provided that this information + is available).[133X + + [33X[0;6YThe information about the version of straight line programs is shown + by [2XDisplayAtlasInfo[102X ([14X3.5-1[114X), as well as the availability of straight + line programs for computing standard generators of maximal subgroups.[133X + + [33X[0;6YMaking this information more explicit has the side-effect that the + access to the [5XAtlasRep[105X data with [2XBrowseAtlasInfo[102X ([14XBrowse: + BrowseAtlasInfo[114X) is both safer and simpler, if at least version 1.8.6 + of the [5XBrowse[105X package is available. (For that, the function + [10XAGR.InfoPrgs[110X has been extended such that also the [10Xidentifier[110X records + are included in the result.)[133X + + [30X [33X[0;6YStraight line programs for computing [13Xstandard[113X generators of a maximal + subgroup, if available, can now be fetched with [2XAtlasProgram[102X ([14X3.5-4[114X), + using the argument [10X"maxstd"[110X.[133X + + [30X [33X[0;6YThe function [2XAtlasRepInfoRecord[102X ([14X3.5-10[114X) now admits a group name as + its argument, and then returns information about the group and its + maximal subgroups; this information had been used before by + [2XDisplayAtlasInfo[102X ([14X3.5-1[114X), but it had not been programmatically + accessible.[133X + + [30X [33X[0;6YThe sanity checks for the data (see Section [14X7.9[114X) have been extended, + in particular they can be applied also to data extensions. To some + extent, these checks can be used also to derive new information; the + code for that should be regarded as heuristic and experimental, + runtimes and space requirements may be large, depending on the new + data to be examined.[133X + + [30X [33X[0;6YDifferent header formats are now supported when reading and writing + [5XMeatAxe[105X format files, see Section [14X4.2-9[114X, and one can set a global + default for the creation of mode 2 [5XMeatAxe[105X files, see Section [14X4.2-10[114X.[133X + + [30X [33X[0;6YThe function [2XMeatAxeString[102X ([14X7.3-2[114X) admits also an integer matrix as + argument.[133X + + [30X [33X[0;6YThe function [2XCMtxBinaryFFMatOrPerm[102X ([14X7.3-4[114X) admits an optional argument + [3Xbase[103X, in order to write [5XMeatAxe[105X format files that contain either zero + based or one based permutations.[133X + + [30X [33X[0;6YThe meaningless lines about [22Xp[122X-modular representations of groups with + nontrivial [22Xp[122X-core have been removed from the file [11Xgap/mindeg.g[111X.[133X + + + [1X1.3-2 [33X[0;0YWhat's New in Version 1.5.1? (March 2016)[133X[101X [30X [33X[0;6YThe paths of the directories where downloaded data files get stored - are now customizable, see Section [14X4.3-9[114X. Up to now, the data were + are now customizable, see Section [14X4.2-2[114X. Up to now, the data were stored in subdirectories of the package directory, which might cause problems with write permissions, depending on the installation of the package. (Note that choosing other data directories can be useful also @@ -159,25 +293,25 @@ this behaviour is not useful if the result is not processed by the C-[5XMeatAxe[105X. Thanks to Klaus Lux for pointing out this problem.[133X - [30X [33X[0;6YDepending on the terminal capabilities and the value of - [10XAtlasOfGroupRepresentationsInfo.displayFunction[110X, some non-ASCII - characters may appear in the output shown by [2XDisplayAtlasInfo[102X ([14X3.5-1[114X).[133X + [30X [33X[0;6YDepending on the terminal capabilities and the user preference + [10XDisplayFunction[110X (see [14X4.2-12[114X), some non-ASCII characters may appear in + the output shown by [2XDisplayAtlasInfo[102X ([14X3.5-1[114X).[133X - [1X1.3-2 [33X[0;0YWhat's New in Version 1.5? (July 2011)[133X[101X - - [30X [33X[0;6YThe function [2XAtlasSubgroup[102X ([14X3.5-8[114X) now admits also the return value of - [2XOneAtlasGeneratingSetInfo[102X ([14X3.5-5[114X) or the return value of [2XAtlasGroup[102X - ([14X3.5-7[114X) as its first argument. The latter is implemented via the new - attribute [2XAtlasRepInfoRecord[102X ([14X3.5-9[114X), which is set in the groups - constructed by [2XAtlasGroup[102X ([14X3.5-7[114X).[133X + [1X1.3-3 [33X[0;0YWhat's New in Version 1.5? (July 2011)[133X[101X + + [30X [33X[0;6YThe function [2XAtlasSubgroup[102X ([14X3.5-9[114X) now admits also the return value of + [2XOneAtlasGeneratingSetInfo[102X ([14X3.5-6[114X) or the return value of [2XAtlasGroup[102X + ([14X3.5-8[114X) as its first argument. The latter is implemented via the new + attribute [2XAtlasRepInfoRecord[102X ([14X3.5-10[114X), which is set in the groups + constructed by [2XAtlasGroup[102X ([14X3.5-8[114X).[133X [30X [33X[0;6YInformation about transitivity, rank, primitivity, and point stabilizers of many permutation representations is now available. If applicable then this information appears in the records returned by - [2XOneAtlasGeneratingSetInfo[102X ([14X3.5-5[114X), it is part of the overview shown by + [2XOneAtlasGeneratingSetInfo[102X ([14X3.5-6[114X), it is part of the overview shown by [2XDisplayAtlasInfo[102X ([14X3.5-1[114X), and it is shown also in the data overview in - the web, see Section [14X4.4[114X.[133X + the web, see Section [14X4.3[114X.[133X [33X[0;6YTwo new manual sections about point stabilizers have been added, see the sections [14X2.4-6[114X and [14X2.4-7[114X.[133X @@ -185,28 +319,26 @@ [30X [33X[0;6YInformation about the characters afforded by many matrix and permutation representations is now available. If applicable then this information appears in the records returned by - [2XOneAtlasGeneratingSetInfo[102X ([14X3.5-5[114X), for matrix representations it is + [2XOneAtlasGeneratingSetInfo[102X ([14X3.5-6[114X), for matrix representations it is part of the overview shown by [2XDisplayAtlasInfo[102X ([14X3.5-1[114X), and it is - shown also in the data overview in the web, see Section [14X4.4[114X.[133X + shown also in the data overview in the web, see Section [14X4.3[114X.[133X - [30X [33X[0;6YThe functions [2XCharacter[102X ([14XReference: Character (for a character table - and a list)[114X), [2XIdentifier[102X ([14XReference: Identifier (for character - tables)[114X), [2XIsPrimitive[102X ([14XReference: IsPrimitive[114X), [2XIsTransitive[102X - ([14XReference: IsTransitive[114X), [2XTransitivity[102X ([14XReference: Transitivity[114X), and - [2XRankAction[102X ([14XReference: RankAction[114X) are now supported as input - conditions in [2XDisplayAtlasInfo[102X ([14X3.5-1[114X), [2XOneAtlasGeneratingSetInfo[102X - ([14X3.5-5[114X), etc..[133X + [30X [33X[0;6YThe functions [2XCharacter[102X ([14XReference: Character for a character table + and a list[114X), [2XIdentifier[102X ([14XReference: Identifier for character tables[114X), + [2XIsPrimitive[102X ([14XReference: IsPrimitive[114X), [2XIsTransitive[102X ([14XReference: + IsTransitive[114X), [2XTransitivity[102X ([14XReference: Transitivity[114X), and [2XRankAction[102X + ([14XReference: RankAction[114X) are now supported as input conditions in + [2XDisplayAtlasInfo[102X ([14X3.5-1[114X) and [2XOneAtlasGeneratingSetInfo[102X ([14X3.5-6[114X).[133X [30X [33X[0;6YIt is now possible to restrict the data shown by [2XDisplayAtlasInfo[102X - ([14X3.5-1[114X) to private or non-private data. Also the data returned by - [2XOneAtlasGeneratingSetInfo[102X ([14X3.5-5[114X) can be restricted to private or + ([14X3.5-1[114X) or returned by [2XOneAtlasGeneratingSetInfo[102X ([14X3.5-6[114X) to private or non-private data.[133X [30X [33X[0;6YA tutorial for beginners was added to the manual, see Chapter [14X2[114X, and the manual was restructured.[133X [30X [33X[0;6YIn the overview shown by [2XDisplayAtlasInfo[102X ([14X3.5-1[114X) and in the data - overview in the web (see Section [14X4.4[114X), the ordering of groups was + overview in the web (see Section [14X4.3[114X), the ordering of groups was improved such that, e.g., [10X"A9"[110X precedes [10X"A10"[110X.[133X [30X [33X[0;6YThe function [2XAtlasClassNames[102X ([14X3.4-2[114X) now admits also a Brauer table as @@ -214,36 +346,35 @@ extensions of simple groups.[133X [30X [33X[0;6YThe group names that are entered in [2XDisplayAtlasInfo[102X ([14X3.5-1[114X), - [2XOneAtlasGeneratingSetInfo[102X ([14X3.5-5[114X), etc., are now case insensitive, and + [2XOneAtlasGeneratingSetInfo[102X ([14X3.5-6[114X), etc., are now case insensitive, and if the package [5XCTblLib[105X is available then the admissible group names for the [5XGAP[105X character table of the group in question can be used in these functions.[133X [30X [33X[0;6YIn order to reduce the number of global variables, several functions have been turned into components of the new global variable [2XAGR[102X - ([14X7.1-5[114X). A few of these functions had been documented in the previous - version, the old values are still available if the package file - [11Xgap/obsolete.g[111X has been read. This file is read automatically when the - package gets loaded if [10XGAPInfo.UserPreferences.ReadObsolete[110X is [9Xtrue[109X, - see [14X'Reference: The gap.ini file'[114X.[133X + ([14X7.1-4[114X). A few of these functions had been documented in the previous + version, the old values are still available if the package files + [11Xgap/obsolete.gd[111X and [11Xgap/obsolete.gi[111X have been read. These files are + read automatically if [5XGAP[105X's user preference [10X"ReadObsolete"[110X is [9Xtrue[109X + when the package gets loaded, see [14X'Reference: The gap.ini file'[114X.[133X [30X [33X[0;6YA few nicer characters are used by [2XDisplayAtlasInfo[102X ([14X3.5-1[114X) if - [10XGAPInfo.TermEncoding[110X has the value [10X"UTF-8"[110X and if - [10XAtlasOfGroupRepresentationsInfo.displayFunction[110X is different from - [2XPrint[102X ([14XReference: Print[114X), see Section [14X4.3-5[114X.[133X + [10XGAPInfo.TermEncoding[110X has the value [10X"UTF-8"[110X and if [2XPrint[102X ([14XReference: + Print[114X) is not the display function to be used, see Section [14X4.2-12[114X.[133X - [30X [33X[0;6YA bug in the function [2XReloadAtlasTableOfContents[102X ([14X4.2-1[114X) was fixed. - Thanks to Jack Schmidt for reporting this bug.[133X + [30X [33X[0;6YA bug in the function [10XReloadAtlasTableOfContents[110X was fixed. Thanks to + Jack Schmidt for reporting this bug.[133X - [1X1.3-3 [33X[0;0YWhat's New in Version 1.4? (June 2008)[133X[101X + [1X1.3-4 [33X[0;0YWhat's New in Version 1.4? (June 2008)[133X[101X [30X [33X[0;6YIn addition to the group orders that were added in version 1.3 (see - Section [14X1.3-5[114X), also many orders of maximal subgroups are now + Section [14X1.3-6[114X), also many orders of maximal subgroups are now available. These values occur in the records returned by [2XAtlasProgram[102X - ([14X3.5-3[114X) (for the case of [10X"maxes"[110X type programs) and of the three - argument version of [2XAtlasGenerators[102X ([14X3.5-2[114X); now a [10Xsize[110X component may - be bound. In these cases, the groups returned by [2XAtlasSubgroup[102X ([14X3.5-8[114X) + ([14X3.5-4[114X) (for the case of [10X"maxes"[110X type programs) and of the three + argument version of [2XAtlasGenerators[102X ([14X3.5-3[114X); now a [10Xsize[110X component may + be bound. In these cases, the groups returned by [2XAtlasSubgroup[102X ([14X3.5-9[114X) have the [2XSize[102X ([14XReference: Size[114X) attribute set.[133X [30X [33X[0;6YThe information about the number of maximal subgroups, if available, @@ -258,7 +389,7 @@ [33X[0;6YCurrently this yields more than [22X200[122X new possibilities to compute maximal subgroups, this means a growth by about [22X25[122X percent. For example, all maximal subgroups of [22X12.M_22[122X and [22X2.Fi_22[122X can now be - accessed via [2XAtlasGenerators[102X ([14X3.5-2[114X).[133X + accessed via [2XAtlasGenerators[102X ([14X3.5-3[114X).[133X [33X[0;6Y(Of course this extension means only that one can access the straight line programs in question automatically via the [5XGAP[105X interface. In @@ -270,22 +401,23 @@ [33X[0;6YFor this feature, information about the compatibility of standard generators of groups and their factor groups was added.[133X - [30X [33X[0;6YThe bibliographies contained in the [5XATLAS[105X of Finite Groups [CCNPW85] - and in the [5XATLAS[105X of Brauer Characters [JLPW95] are now available, see + [30X [33X[0;6YThe bibliographies contained in the [5XATLAS[105X of Finite Groups [CCN+85] + and in the [5XATLAS[105X of Brauer Characters [JLPW95] are now available as + HTML files, as BibXMLext files, and within [5XGAP[105X, see [2XBrowseBibliographySporadicSimple[102X ([14X3.6-2[114X).[133X - [30X [33X[0;6YIf the [5XGAP[105X package [5XBrowse[105X (see [BL14]) is loaded then the new + [30X [33X[0;6YIf the [5XGAP[105X package [5XBrowse[105X (see [BL18]) is loaded then the new functions [2XBrowseMinimalDegrees[102X ([14X3.6-1[114X) and [2XBrowseBibliographySporadicSimple[102X ([14X3.6-2[114X) are available; these functions can be called also by choosing the corresponding menu entries of the [5XBrowse[105X application [2XBrowseGapData[102X ([14XBrowse: BrowseGapData[114X).[133X - [30X [33X[0;6YThe function [2XAtlasGroup[102X ([14X3.5-7[114X) now admits also the return value of - [2XOneAtlasGeneratingSetInfo[102X ([14X3.5-5[114X) as its argument.[133X + [30X [33X[0;6YThe function [2XAtlasGroup[102X ([14X3.5-8[114X) now admits also the return value of + [2XOneAtlasGeneratingSetInfo[102X ([14X3.5-6[114X) as its argument.[133X - [1X1.3-4 [33X[0;0YWhat's New in Version 1.3.1? (October 2007)[133X[101X + [1X1.3-5 [33X[0;0YWhat's New in Version 1.3.1? (October 2007)[133X[101X [33X[0;0YThis version was mainly released in order to fix a few problems. Now one does not get warnings about unbound variables when the package is loaded and @@ -294,27 +426,27 @@ files and different byte orderings in binary files) are handled more carefully.[133X - [33X[0;0YBesides this, the two functions [2XAtlasGroup[102X ([14X3.5-7[114X) and [2XAtlasSubgroup[102X ([14X3.5-8[114X) + [33X[0;0YBesides this, the two functions [2XAtlasGroup[102X ([14X3.5-8[114X) and [2XAtlasSubgroup[102X ([14X3.5-9[114X) were introduced, and the extended function [2XQuaternionAlgebra[102X ([14XReference: QuaternionAlgebra[114X) of [5XGAP[105X 4.4.10 can now be used for describing base rings - in [2XOneAtlasGeneratingSetInfo[102X ([14X3.5-5[114X) and [2XAllAtlasGeneratingSetInfos[102X ([14X3.5-6[114X). + in [2XOneAtlasGeneratingSetInfo[102X ([14X3.5-6[114X) and [2XAllAtlasGeneratingSetInfos[102X ([14X3.5-7[114X). (This is the reason why this version of the package requires at least version 4.4.10 of [5XGAP[105X.)[133X - [1X1.3-5 [33X[0;0YWhat's New in Version 1.3? (June 2007)[133X[101X + [1X1.3-6 [33X[0;0YWhat's New in Version 1.3? (June 2007)[133X[101X - [30X [33X[0;6YThe database was extended, see Section [14X4.3-4[114X for the number and size + [30X [33X[0;6YThe database was extended, see Section [14X4.2-5[114X for the number and size of files.[133X [30X [33X[0;6YNew data types and corresponding [5XGAP[105X objects have been introduced, for representing semi-presentations, presentations, and programs for - finding standard generators. For details, see [2XAtlasProgram[102X ([14X3.5-3[114X), + finding standard generators. For details, see [2XAtlasProgram[102X ([14X3.5-4[114X), Chapter [14X6[114X, and Section [14X7.6[114X.[133X - [30X [33X[0;6YThe records returned by the functions [2XAtlasGenerators[102X ([14X3.5-2[114X), - [2XOneAtlasGeneratingSetInfo[102X ([14X3.5-5[114X), and [2XAllAtlasGeneratingSetInfos[102X - ([14X3.5-6[114X) now contain the name and (if known) the order of the group in + [30X [33X[0;6YThe records returned by the functions [2XAtlasGenerators[102X ([14X3.5-3[114X), + [2XOneAtlasGeneratingSetInfo[102X ([14X3.5-6[114X), and [2XAllAtlasGeneratingSetInfos[102X + ([14X3.5-7[114X) 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.[133X @@ -323,31 +455,31 @@ faithful permutation representations and the minimal dimensions of faithful matrix representations in various characteristics is available for [2XDisplayAtlasInfo[102X ([14X3.5-1[114X), [2XOneAtlasGeneratingSetInfo[102X - ([14X3.5-5[114X), and [2XAllAtlasGeneratingSetInfos[102X ([14X3.5-6[114X), see also Section [14X6.3[114X. + ([14X3.5-6[114X), and [2XAllAtlasGeneratingSetInfos[102X ([14X3.5-7[114X), see also Section [14X6.3[114X. For these functions, also properties such as [2XIsPrimeInt[102X ([14XReference: IsPrimeInt[114X) can be used to describe the intended restriction of the output.[133X [30X [33X[0;6YOne can now use [2XPager[102X ([14XReference: Pager[114X) functionality in - [2XDisplayAtlasInfo[102X ([14X3.5-1[114X), see Section [14X4.3-5[114X.[133X + [2XDisplayAtlasInfo[102X ([14X3.5-1[114X), see Section [14X4.2-12[114X.[133X [33X[0;6YAn interactive alternative to [2XDisplayAtlasInfo[102X ([14X3.5-1[114X) is provided by the function [2XBrowseAtlasInfo[102X ([14XBrowse: BrowseAtlasInfo[114X) from the new - (recommended) [5XGAP[105X package [5XBrowse[105X [BL14].[133X + (recommended) [5XGAP[105X package [5XBrowse[105X (see [BL18]).[133X - [30X [33X[0;6YThe functions [2XOneAtlasGeneratingSetInfo[102X ([14X3.5-5[114X) and - [2XAllAtlasGeneratingSetInfos[102X ([14X3.5-6[114X) now admit also a list of group + [30X [33X[0;6YThe functions [2XOneAtlasGeneratingSetInfo[102X ([14X3.5-6[114X) and + [2XAllAtlasGeneratingSetInfos[102X ([14X3.5-7[114X) now admit also a list of group names as the first argument.[133X [30X [33X[0;6YThe functions for actually accessing the data are more flexible now, - see Section [14X4.3-6[114X.[133X + see Section [14X7.2[114X.[133X - [30X [33X[0;6YFor transferring remote data, the [5XGAP[105X package [5XIO[105X [Neu14] can now be - used (and is recommended) as an alternative to [11Xwget[111X, see - Section [14X4.3-3[114X.[133X + [30X [33X[0;6YFor transferring remote data, the [5XGAP[105X package [5XIO[105X (see [Neu14]) can now + be used (and is recommended) as an alternative to [11Xwget[111X, see + Section [14X4.2-4[114X.[133X - [30X [33X[0;6YThe address of the data server has changed. Since the access to the - server is no longer possible via [11Xftp[111X, the mechanim used up to version + [30X [33X[0;6YThe address of the data server has changed. The access to the server + is no longer possible via [11Xftp[111X, thus the mechanism used up to version 1.2, which was based on [11Xftp[111X, had to be rewritten.[133X [33X[0;6YThe main consequence of this change is that information about updates @@ -358,13 +490,13 @@ install [11Xperl[111X.[133X [33X[0;6YAnother consequence is that the system program [11Xls[111X is no longer needed, - see Section [14X1.3-7[114X.[133X + see Section [14X1.3-8[114X.[133X [30X [33X[0;6YThe package manual has been restructured, extended and improved. It is - now based on the package [5XGAPDoc[105X [LN12].[133X + now based on the package [5XGAPDoc[105X (see [LN18]).[133X - [1X1.3-6 [33X[0;0YWhat's New in Version 1.2? (November 2003)[133X[101X + [1X1.3-7 [33X[0;0YWhat's New in Version 1.2? (November 2003)[133X[101X [33X[0;0YNot much.[133X @@ -380,16 +512,16 @@ mechanism that is recommended for [5XGAP[105X 4.4,[133X [30X [33X[0;6Yto extend the test suite, which now covers more consistency checks - using the [5XGAP[105X Character Table Library [Bre13],[133X + using the [5XGAP[105X Character Table Library (see [Bre13]),[133X [30X [33X[0;6Yto make the function [2XScanMeatAxeFile[102X ([14X7.3-1[114X) more robust, due to the fact that the [5XGAP[105X function [2XPermList[102X ([14XReference: PermList[114X) now returns [9Xfail[109X instead of raising an error,[133X [30X [33X[0;6Yto change the way how representations with prescribed properties are - accessed (the new function [2XOneAtlasGeneratingSetInfo[102X ([14X3.5-5[114X) is now + accessed (the new function [2XOneAtlasGeneratingSetInfo[102X ([14X3.5-6[114X) is now preferred to the former [10XOneAtlasGeneratingSet[110X, and - [2XAllAtlasGeneratingSetInfos[102X ([14X3.5-6[114X) has been added in order to provide + [2XAllAtlasGeneratingSetInfos[102X ([14X3.5-7[114X) has been added in order to provide programmatic access in parallel to the human readable descriptions printed by [2XDisplayAtlasInfo[102X ([14X3.5-1[114X)),[133X @@ -401,13 +533,13 @@ is now faster than it was in [5XGAP[105X 4.3.[133X - [1X1.3-7 [33X[0;0YWhat's New in Version 1.1? (October 2002)[133X[101X + [1X1.3-8 [33X[0;0YWhat's New in Version 1.1? (October 2002)[133X[101X - [33X[0;0YThe biggest change w.r.t. Version 1.1 is the addition of private extensions - (see Chapter [14X5[114X). It includes a new [21Xfree format[121X for straight line programs - (see Section [14X5.2[114X). Unfortunately, this feature requires the system program - [11Xls[111X, so it may be not available for example under MS Windows operating - systems. [But see Section [14X1.3-5[114X.][133X + [33X[0;0YThe biggest change w. r. t. Version 1.1 is the addition of private + extensions (see Chapter [14X5[114X). It includes a new [21Xfree format[121X for straight line + programs (see Section [14X5.2[114X). Unfortunately, this feature requires the system + program [11Xls[111X, so it may be not available for example under MS Windows + operating systems. [But see Section [14X1.3-6[114X.][133X [33X[0;0YIn order to admit the addition of other types of data, the implementation of several functions has been changed. Data types are described in Section [14X7.5[114X. @@ -415,7 +547,7 @@ Section [14X7.6[114X). The user interface itself (see Chapter [14X3[114X) remained the same.[133X [33X[0;0YAs an alternative to [10Xperl[110X, one can use [10Xwget[110X now for transferring data files - (see [14X4.3[114X).[133X + (see [14X4.2[114X).[133X [33X[0;0YData files can be read much more efficiently in [5XGAP[105X 4.3 than in [5XGAP[105X 4.2. In Version 1.1 of the [5XAtlasRep[105X package, this feature is used for reading @@ -424,20 +556,19 @@ Version 1.1.[133X [33X[0;0YThe new [10Xcompress[110X component of the global variable - [2XAtlasOfGroupRepresentationsInfo[102X ([14X7.1-6[114X) allows one to store data files + [2XAtlasOfGroupRepresentationsInfo[102X ([14X7.1-5[114X) allows one to store data files automatically in [11Xgzip[111Xped form.[133X [33X[0;0YFor matrix representations in characteristic zero, invariant forms and generators for the centralizer algebra are now accessible in [5XGAP[105X if they are - contained in the source files --this information had been ignored in - Version 1.0 (see [2XAtlasOfGroupRepresentationsTestTableOfContentsRemoteUpdates[102X - ([14X4.2-4[114X) for necessary updates).[133X + contained in the source files –this information had been ignored in + Version 1.0.[133X - [33X[0;0YAdditional information is now available via the internet (see [14X4.4[114X).[133X + [33X[0;0YAdditional information is now available via the internet (see [14X4.3[114X).[133X - [33X[0;0YThe update facilities have been extended (see [14X4.2[114X).[133X + [33X[0;0YThe facilities for updating the table of contents have been extended.[133X - [33X[0;0YThe manual is now distributed also in pdf and HTML format; on the other + [33X[0;0YThe 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.[133X [33X[0;0YApart from these changes, a few minor bugs in the handling of [5XMeatAxe[105X files @@ -454,13 +585,13 @@ [30X [33X[0;6YUlrich Kaiser helped with preparing the package for MS Windows.[133X - [30X [33X[0;6YKlaus Lux had the idea to support private extensions of the package, - see Chapter [14X5[114X and helped to fix several bugs.[133X + [30X [33X[0;6YKlaus Lux had the idea to support data extensions, see Chapter [14X5[114X, he + did a lot of beta testing, and helped to fix several bugs.[133X [30X [33X[0;6YFrank Lübeck contributed the functions [2XCMtxBinaryFFMatOrPerm[102X ([14X7.3-4[114X) and [2XFFMatOrPermCMtxBinary[102X ([14X7.3-5[114X).[133X - [30X [33X[0;6YFrank Lübeck and Max Neunhöffer wrote the [5XGAPDoc[105X package [LN12], which + [30X [33X[0;6YFrank Lübeck and Max Neunhöffer wrote the [5XGAPDoc[105X package [LN18], which is used for processing the documentation of the [5XAtlasRep[105X package and for processing the bibliographies included in this package (see [2XBrowseBibliographySporadicSimple[102X ([14X3.6-2[114X)),[133X @@ -468,11 +599,12 @@ [30X [33X[0;6YMax Neunhöffer wrote the [5XGAP[105X package [5XIO[105X [Neu14], which is recommended for transferring data.[133X - [30X [33X[0;6YMax has also suggested the generalization of the data access described - in Section [14X7.2[114X, and the admissibility of the function [2XCharacter[102X - ([14XReference: Character (for a character table and a list)[114X) as a filter - in [2XDisplayAtlasInfo[102X ([14X3.5-1[114X), [2XOneAtlasGeneratingSetInfo[102X ([14X3.5-5[114X), and - [2XAllAtlasGeneratingSetInfos[102X ([14X3.5-6[114X).[133X + [30X [33X[0;6YMax Neunhöffer has also suggested the generalization of the data + access described in Section [14X7.2[114X, the admissibility of the function + [2XCharacter[102X ([14XReference: Character for a character table and a list[114X) as a + filter in [2XDisplayAtlasInfo[102X ([14X3.5-1[114X), [2XOneAtlasGeneratingSetInfo[102X ([14X3.5-6[114X), + and [2XAllAtlasGeneratingSetInfos[102X ([14X3.5-7[114X), and the variant of + [2XAtlasRepInfoRecord[102X ([14X3.5-10[114X) that takes a group name as its input.[133X [30X [33X[0;6YGunter Malle suggested to make the information about representations of minimal degree accessible, see Section [14X6.3[114X.[133X diff -Nru gap-atlasrep-1.5.1/doc/chap2.html gap-atlasrep-2.1.0/doc/chap2.html --- gap-atlasrep-1.5.1/doc/chap2.html 2016-04-06 12:18:27.000000000 +0000 +++ gap-atlasrep-2.1.0/doc/chap2.html 2019-06-21 15:10:33.000000000 +0000 @@ -19,24 +19,21 @@ - -2 Tutorial for the AtlasRep Package --2.1 Accessing a Specific Group in -AtlasRep + + +-2 Tutorial for the AtlasRep Package + --2.2 Accessing Specific Generators in -AtlasRep + --2.3 Basic Concepts used in AtlasRep +-2.3 Basic Concepts used in AtlasRep-
2.3-1 Groups, Generators, and Representations @@ -44,7 +41,7 @@
2.3-2 Straight Line Programs2.4 Examples of Using the AtlasRep Package +2.4 Examples of Using the AtlasRep Package
2.4-1 Example: Class Representatives @@ -55,46 +52,78 @@
2.4-4 Example: Using Semi-presentations and Black Box Programs -
2.4-5 Example: Using the GAP Library of Tables of Marks +
2.4-5 Example: Using the GAP Library of Tables of Marks -
2.4-6 Example: Index 770 Subgroups in M_22 +
2.4-6 Example: Index 770 Subgroups in M_22 -
2.4-7 Example: Index 462 Subgroups in M_22 +
2.4-7 Example: Index 462 Subgroups in M_222 Tutorial for the AtlasRep Package
-This chapter gives an overview of the basic functionality provided by the AtlasRep package. The main concepts and interface functions are presented in the first sections, and Section 2.4 shows a few small examples.
+This chapter gives an overview of the basic functionality provided by the AtlasRep package. The main concepts and interface functions are presented in the first three sections, and Section 2.4 shows a few small examples.
- +Let us first fix the setup for the examples shown in the package manual.
-2.1 Accessing a Specific Group in -AtlasRep
- -The AtlasRep package gives access to a database, the ATLAS of Group Representations [ATLAS], that contains generators and related data for several groups, mainly for extensions of simple groups (see Section 2.1-1) and for their maximal subgroups (see Section 2.1-2).
- -Note that the data are not part of the package. They are fetched from a web server as soon as they are needed for the first time, see Section 4.3-1.
- -First of all, we load the AtlasRep package. Some of the examples require also the GAP packages CTblLib and TomLib, so we load also these packages.
++
+ + +- +
First of all, we load the AtlasRep package. Some of the examples require also the GAP packages CTblLib and TomLib, so we load also these packages.
- +-gap> LoadPackage( "AtlasRep" ); +gap> LoadPackage( "AtlasRep", false ); true -gap> LoadPackage( "CTblLib" ); +gap> LoadPackage( "CTblLib", false ); true -gap> LoadPackage( "TomLib" ); +gap> LoadPackage( "TomLib", false ); true- +
Depending on the terminal capabilities, the output of
+ + +DisplayAtlasInfo
(3.5-1) may contain non-ASCII characters, which are not supported by the LaTeX and HTML versions of GAPDoc documents. The examples in this manual are used for tests of the package's functionality, thus we set the user preferenceDisplayFunction
(see Section 4.2-12) to the value"Print"
in order to produce output consisting only of ASCII characters, which is assumed to work in any terminal.+ ++gap> origpref:= UserPreference( "AtlasRep", "DisplayFunction" );; +gap> SetUserPreference( "AtlasRep", "DisplayFunction", "Print" ); +- +
The GAP output for the examples may look differently if data extensions have been loaded. In order to ignore these extensions in the examples, we unload them.
+ + +-+gap> priv:= Difference( +> List( AtlasOfGroupRepresentationsInfo.notified, x -> x.ID ), +> [ "core", "internal" ] );; +gap> Perform( priv, AtlasOfGroupRepresentationsForgetData ); +2.1-1 Accessing a Group in -AtlasRep via its Name
+- +
If the info level of
-InfoAtlasRep
(7.1-1) is larger than zero then additional output appears on the screen. In order to avoid this output, we set the level to zero.Each group that occurs in this database is specified by a name, which is a string similar to the name used in the ATLAS of Finite Groups [CCNPW85]. For those groups whose character tables are contained in the GAP Character Table Library [Bre13], the names are equal to the
+ +Identifier
(Reference: Identifier (for character tables)) values of these character tables. Examples of such names are"M24"
for the Mathieu group M_24,"2.A6"
for the double cover of the alternating group A_6, and"2.A6.2_1"
for the double cover of the symmetric group S_6. The names that actually occur are listed in the first column of the overview table that is printed by the functionDisplayAtlasInfo
(3.5-1), called without arguments, see below. The other columns of the table describe the data that are available in the database.+ ++gap> globallevel:= InfoLevel( InfoAtlasRep );; +gap> SetInfoLevel( InfoAtlasRep, 0 ); +2.1 Accessing a Specific Group in AtlasRep
+ +An important database to which the AtlasRep package gives access is the ATLAS of Group Representations [WWT+]. It contains generators and related data for several groups, mainly for extensions of simple groups (see Section 2.1-1) and for their maximal subgroups (see Section 2.1-2).
+ +In general, these data are not part of the package. They are downloaded as soon as they are needed for the first time, see Section 4.2-1.
+ + + +2.1-1 Accessing a Group in AtlasRep via its Name
+ +Each group that occurs in this database is specified by a name, which is a string similar to the name used in the ATLAS of Finite Groups [CCN+85]. For those groups whose character tables are contained in the GAP Character Table Library [Bre13], the names are equal to the
Identifier
(Reference: Identifier for character tables) values of these character tables. Examples of such names are"M24"
for the Mathieu group M_24,"2.A6"
for the double cover of the alternating group A_6, and"2.A6.2_1"
for the double cover of the symmetric group S_6. The names that actually occur are listed in the first column of the overview table that is printed by the functionDisplayAtlasInfo
(3.5-1), called without arguments, see below. The other columns of the table describe the data that are available in the database.For example,
@@ -108,7 +137,7 @@ 2.A5.2 | 11 | 4 | | | | | + | + 2.A6 | 18 | 5 | | | | | | 2.A6.2_1 | 3 | 6 | | | | | | -2.A7 | 24 | | | | | | | +2.A7 | 24 | 2 | | | | | | 2.A7.2 | 7 | | | | | | | ... M22 | 58 | 8 | + | + | | + | + | + @@ -120,43 +149,48 @@ O7(3) | 28 | | | | | | | O7(3).2 | 3 | | | | | | | ... +Suz | 30 | 17 | | + | 2 | + | + | +...DisplayAtlasInfo
(3.5-1) may print the following lines. Omissions are indicated with "...
".Called with a group name as the only argument, the function
+AtlasGroup
(3.5-7) returns a group isomorphic to the group with the given name. If permutation generators are available in the database then a permutation group (of smallest available degree) is returned, otherwise a matrix group.Called with a group name as the only argument, the function
AtlasGroup
(3.5-8) returns a group isomorphic to the group with the given name, orfail
. If permutation generators are available in the database then a permutation group (of smallest available degree) is returned, otherwise a matrix group.- + -gap> g:= AtlasGroup( "M24" ); Group([ (1,4)(2,7)(3,17)(5,13)(6,9)(8,15)(10,19)(11,18)(12,21)(14,16) -(20,24)(22,23), (1,4,6)(2,21,14)(3,9,15)(5,18,10)(13,17,16) -(19,24,23) ]) + (20,24)(22,23), (1,4,6)(2,21,14)(3,9,15)(5,18,10)(13,17,16) + (19,24,23) ]) gap> IsPermGroup( g ); NrMovedPoints( g ); Size( g ); true 24 244823040 +gap> AtlasGroup( "J5" ); +fail2.1-2 Accessing a Maximal Subgroup of a Group in -AtlasRep
+2.1-2 Accessing a Maximal Subgroup of a Group in AtlasRep
-Many maximal subgroups of extensions of simple groups can be constructed using the function
+AtlasSubgroup
(3.5-8). Given the name of the extension of the simple group and the number of the conjugacy class of maximal subgroups, this function returns a representative from this class.Many maximal subgroups of extensions of simple groups can be constructed using the function
AtlasSubgroup
(3.5-9). Given the name of the extension of the simple group and the number of the conjugacy class of maximal subgroups, this function returns a representative from this class.-gap> g:= AtlasSubgroup( "M24", 1 ); Group([ (2,10)(3,12)(4,14)(6,9)(8,16)(15,18)(20,22)(21,24), (1,7,2,9) -(3,22,10,23)(4,19,8,12)(5,14)(6,18)(13,16,17,24) ]) + (3,22,10,23)(4,19,8,12)(5,14)(6,18)(13,16,17,24) ]) gap> IsPermGroup( g ); NrMovedPoints( g ); Size( g ); true 23 10200960 +gap> AtlasSubgroup( "M24", 100 ); +failThe classes of maximal subgroups are ordered w. r. t. decreasing subgroup order. So the first class contains the largest maximal subgroups.
+The classes of maximal subgroups are ordered w. r. t. decreasing subgroup order. So the first class contains maximal subgroups of smallest index.
-Note that groups obtained by
+AtlasSubgroup
(3.5-8) may be not very suitable for computations in the sense that much nicer representations exist. For example, the sporadic simple O'Nan group O'N contains a maximal subgroup S isomorphic with the Janko group J_1; the smallest permutation representation of O'N has degree 122760, so restricting this representation to S yields a representation of J_1 of that degree. However, J_1 has a faithful permutation representation of degree 266, which admits much more efficient computations. If you are just interested in J_1 and not in its embedding into O'N then one possibility to get a "nicer" faithful representation is to callSmallerDegreePermutationRepresentation
(Reference: SmallerDegreePermutationRepresentation). In the abovementioned example, this works quite well; note that in general, we cannot expect that we get a representation of smallest degree in this way.Note that groups obtained by
AtlasSubgroup
(3.5-9) may be not very suitable for computations in the sense that much nicer representations exist. For example, the sporadic simple O'Nan group O'N contains a maximal subgroup S isomorphic with the Janko group J_1; the smallest permutation representation of O'N has degree 122760, and restricting this representation to S yields a representation of J_1 of that degree. However, J_1 has a faithful permutation representation of degree 266, which admits much more efficient computations. If you are just interested in J_1 and not in its embedding into O'N then one possibility to get a "nicer" faithful representation is to callSmallerDegreePermutationRepresentation
(Reference: SmallerDegreePermutationRepresentation). In the abovementioned example, this works quite well; note that in general, we cannot expect that we get a representation of smallest degree in this way.-@@ -180,7 +214,7 @@ 266If you have a group G, say, and you are really interested in the embedding of a maximal subgroup of G into G then an easy way to get compatible generators is to create G with
+AtlasGroup
(3.5-7) and then to callAtlasSubgroup
(3.5-8) with first argument the group G.If you have a group G, say, and you are really interested in the embedding of a maximal subgroup of G into G then an easy way to get compatible generators is to create G with
AtlasGroup
(3.5-8) and then to callAtlasSubgroup
(3.5-9) with first argument the group G.- + -@@ -194,10 +228,9 @@ false2.2 Accessing Specific Generators in -AtlasRep
+2.2 Accessing Specific Generators in AtlasRep
The function
@@ -209,33 +242,36 @@ 1: G <= Sym(5) 3-trans., on cosets of A4 (1st max.) 2: G <= Sym(6) 2-trans., on cosets of D10 (2nd max.) 3: G <= Sym(10) rank 3, on cosets of S3 (3rd max.) - 4: G <= GL(4a,2) - 5: G <= GL(4b,2) - 6: G <= GL(4,3) - 7: G <= GL(6,3) - 8: G <= GL(2a,4) - 9: G <= GL(2b,4) -10: G <= GL(3,5) -11: G <= GL(5,5) -12: G <= GL(3a,9) -13: G <= GL(3b,9) -14: G <= GL(4,Z) -15: G <= GL(5,Z) -16: G <= GL(6,Z) -17: G <= GL(3a,Field([Sqrt(5)])) -18: G <= GL(3b,Field([Sqrt(5)])) + 4: G <= GL(4a,2) character 4a + 5: G <= GL(4b,2) character 2ab + 6: G <= GL(4,3) character 4a + 7: G <= GL(6,3) character 3ab + 8: G <= GL(2a,4) character 2a + 9: G <= GL(2b,4) character 2b +10: G <= GL(3,5) character 3a +11: G <= GL(5,5) character 5a +12: G <= GL(3a,9) character 3a +13: G <= GL(3b,9) character 3b +14: G <= GL(4,Z) character 4a +15: G <= GL(5,Z) character 5a +16: G <= GL(6,Z) character 3ab +17: G <= GL(3a,Field([Sqrt(5)])) character 3a +18: G <= GL(3b,Field([Sqrt(5)])) character 3b Programs for G = A5: (all refer to std. generators 1) -------------------- -presentation -std. gen. checker -maxes (all 3): - 1: A4 - 2: D10 - 3: S3 +- class repres.* +- presentation +- maxes (all 3): + 1: A4 + 2: D10 + 3: S3 +- std. gen. checker: + (check) + (pres)DisplayAtlasInfo
(3.5-1), called with an admissible name of a group as the only argument, lists the ATLAS data available for this group.In order to fetch one of the listed permutation groups or matrix groups, you can call
+AtlasGroup
(3.5-7) with second argument the functionPosition
(Reference: Position) and third argument the position in the list.In order to fetch one of the listed permutation groups or matrix groups, you can call
AtlasGroup
(3.5-8) with second argument the functionPosition
(Reference: Position) and third argument the position in the list.-@@ -243,7 +279,7 @@ Group([ (1,2)(3,4), (1,3,5) ])Note that this approach may yield a different group after an update of the database, if new data for the group become available.
+Note that this approach may yield a different group after a data extension has been loaded.
Alternatively, you can describe the desired group by conditions, such as the degree in the case of a permutation group, and the dimension and the base ring in the case of a matrix group.
@@ -255,7 +291,7 @@ <matrix group of size 60 with 2 generators>The same holds for the restriction to maximal subgroups: Use
+AtlasSubgroup
(3.5-8) with the same arguments asAtlasGroup
(3.5-7), except that additionally the number of the class of maximal subgroups is entered as the last argument. Note that the conditions refer to the group, not to the subgroup; it may happen that the subgroup moves fewer points than the big group.The same holds for the restriction to maximal subgroups: Use
AtlasSubgroup
(3.5-9) with the same arguments asAtlasGroup
(3.5-8), except that additionally the number of the class of maximal subgroups is entered as the last argument. Note that the conditions refer to the group, not to the subgroup; it may happen that the subgroup moves fewer points than the big group.- +@@ -268,7 +304,7 @@ 92.3 Basic Concepts used in AtlasRep
@@ -276,22 +312,25 @@2.3-1 Groups, Generators, and Representations
-Up to now, we have talked only about groups and subgroups. The AtlasRep package provides access to group generators, and in fact these generators have the property that mapping one set of generators to another set of generators for the same group defines an isomorphism. These generators are called standard generators, see Section 3.3.
+Up to now, we have talked only about groups and subgroups. The AtlasRep package provides access to group generators, and in fact these generators have the property that mapping one set of generators to another set of generators for the same group defines an isomorphism. These generators are called standard generators, see Section 3.3.
-So instead of thinking about several generating sets of a group G, say, we can think about one abstract group G, with one fixed set of generators, and mapping these generators to any set of generators provided by AtlasRep defines a representation of G. This viewpoint motivates the name "ATLAS of Group Representations" for the database.
+So instead of thinking about several generating sets of a group G, say, we can think about one abstract group G, with one fixed set of generators, and mapping these generators to any set of generators provided by AtlasRep defines a representation of G. This viewpoint had motivated the name "ATLAS of Group Representations" for the core part of the database.
-If you are interested in the generators provided by the database rather than in the groups they generate, you can use the function
+OneAtlasGeneratingSetInfo
(3.5-5) instead ofAtlasGroup
(3.5-7), with the same arguments. This will yield a record that describes the representation in question. Calling the functionAtlasGenerators
(3.5-2) with this record will then yield a record with the additional componentgenerators
, which holds the list of generators.If you are interested in the generators provided by the database rather than in the groups they generate, you can use the function
OneAtlasGeneratingSetInfo
(3.5-6) instead ofAtlasGroup
(3.5-8), with the same arguments. This will yield a record that describes the representation in question. Calling the functionAtlasGenerators
(3.5-3) with this record will then yield a record with the additional componentgenerators
, which holds the list of generators.+gap> info:= OneAtlasGeneratingSetInfo( "A5", NrMovedPoints, 10 ); -rec( groupname := "A5", id := "", +rec( charactername := "1a+4a+5a", constituents := [ 1, 4, 5 ], + contents := "core", groupname := "A5", id := "", identifier := [ "A5", [ "A5G1-p10B0.m1", "A5G1-p10B0.m2" ], 1, 10 ], isPrimitive := true, maxnr := 3, p := 10, rankAction := 3, repname := "A5G1-p10B0", repnr := 3, size := 60, stabilizer := "S3", standardization := 1, transitivity := 1, type := "perm" ) gap> info2:= AtlasGenerators( info ); -rec( generators := [ (2,4)(3,5)(6,8)(7,10), (1,2,3)(4,6,7)(5,8,9) ], +rec( charactername := "1a+4a+5a", constituents := [ 1, 4, 5 ], + contents := "core", + generators := [ (2,4)(3,5)(6,8)(7,10), (1,2,3)(4,6,7)(5,8,9) ], groupname := "A5", id := "", identifier := [ "A5", [ "A5G1-p10B0.m1", "A5G1-p10B0.m2" ], 1, 10 ], isPrimitive := true, maxnr := 3, p := 10, rankAction := 3, @@ -301,23 +340,38 @@ [ (2,4)(3,5)(6,8)(7,10), (1,2,3)(4,6,7)(5,8,9) ]The record
+ + +info
appears as the value of the attributeAtlasRepInfoRecord
(3.5-10) in groups that are returned byAtlasGroup
(3.5-8).++gap> g:= AtlasGroup( "A5", NrMovedPoints, 10 );; +gap> AtlasRepInfoRecord( g ); +rec( charactername := "1a+4a+5a", constituents := [ 1, 4, 5 ], + contents := "core", groupname := "A5", id := "", + identifier := [ "A5", [ "A5G1-p10B0.m1", "A5G1-p10B0.m2" ], 1, 10 ], + isPrimitive := true, maxnr := 3, p := 10, rankAction := 3, + repname := "A5G1-p10B0", repnr := 3, size := 60, stabilizer := "S3", + standardization := 1, transitivity := 1, type := "perm" ) +2.3-2 Straight Line Programs
-For computing certain group elements from standard generators, such as generators of a subgroup or class representatives, AtlasRep uses straight line programs, see Reference: Straight Line Programs. Essentially this means to evaluate words in the generators, similar to
+MappedWord
(Reference: MappedWord) but more efficiently.For computing certain group elements from standard generators, such as generators of a subgroup or class representatives, AtlasRep uses straight line programs, see Reference: Straight Line Programs. Essentially this means to evaluate words in the generators, which is similar to
-MappedWord
(Reference: MappedWord) but can be more efficient.It can be useful to deal with these straight line programs, see
+AtlasProgram
(3.5-3). For example, an automorphism α, say, of the group G, if available in AtlasRep, is given by a straight line program that defines the images of standard generators of G. This way, one can for example compute the image of a subgroup U of G under α by first applying the straight line program for α to standard generators of G, and then applying the straight line program for the restriction from G to U.It can be useful to deal with these straight line programs, see
AtlasProgram
(3.5-4). For example, an automorphism α, say, of the group G, if available in AtlasRep, is given by a straight line program that defines the images of standard generators of G. This way, one can for example compute the image of a subgroup U of G under α by first applying the straight line program for α to standard generators of G, and then applying the straight line program for the restriction from G to U.- +gap> prginfo:= AtlasProgramInfo( "A5", "maxes", 1 ); rec( groupname := "A5", identifier := [ "A5", "A5G1-max1W1", 1 ], - size := 12, standardization := 1, subgroupname := "A4" ) + size := 12, standardization := 1, subgroupname := "A4", + version := "1" ) gap> prg:= AtlasProgram( prginfo.identifier ); rec( groupname := "A5", identifier := [ "A5", "A5G1-max1W1", 1 ], program := <straight line program>, size := 12, - standardization := 1, subgroupname := "A4" ) + standardization := 1, subgroupname := "A4", version := "1" ) gap> Display( prg.program ); # input: r:= [ g1, g2 ]; @@ -332,7 +386,7 @@ [ (1,10)(2,3)(4,9)(7,8), (1,2,3)(4,6,7)(5,8,9) ]2.4 Examples of Using the AtlasRep Package
@@ -366,7 +420,7 @@ 17: G <= GL(16b,4) character 16bSo we decide to work with this representation. We fetch the generators and compute the list of class representatives of M_11 in the representation. The ordering of class representatives is the same as that in the character table of the ATLAS of Finite Groups ([CCNPW85]), which coincides with the ordering of columns in the GAP table we have fetched above.
+So we decide to work with this representation. We fetch the generators and compute the list of class representatives of M_11 in the representation. The ordering of class representatives is the same as that in the character table of the ATLAS of Finite Groups ([CCN+85]), which coincides with the ordering of columns in the GAP table we have fetched above.
@@ -464,7 +518,7 @@ Group( [ ( 1, 2)( 4, 6)( 5, 8)( 7,10), ( 1, 3, 5, 9)( 2, 4, 7,11) ] )@@ -377,7 +431,7 @@ rec( groupname := "M11", identifier := [ "M11", "M11G1-cclsW1", 1 ], outputs := [ "1A", "2A", "3A", "4A", "5A", "6A", "8A", "8B", "11A", "11B" ], program := <straight line program>, - standardization := 1 ) + standardization := 1, version := "1" ) gap> reps:= ResultOfStraightLineProgram( ccls.program, gens.generators );;Note that this group is not equal to the group obtained by fetching the permutation representation from the database. This is due to a different numbering of the points, so the groups are permutation isomorphic.
+Note that this group is not equal to the group obtained by fetching the permutation representation from the database. This is due to a different numbering of the points, thus the groups are permutation isomorphic, that is, they are conjugate in the symmetric group on eleven points.
@@ -488,23 +542,23 @@ gap> DisplayAtlasInfo( "G2(3)", IsStraightLineProgram ); Programs for G = G2(3): (all refer to std. generators 1) ----------------------- -class repres. -presentation -repr. cyc. subg. -std. gen. checker -automorphisms: - 2 -maxes (all 10): - 1: U3(3).2 - 2: U3(3).2 - 3: (3^(1+2)+x3^2):2S4 - 4: (3^(1+2)+x3^2):2S4 - 5: L3(3).2 - 6: L3(3).2 - 7: L2(8).3 - 8: 2^3.L3(2) - 9: L2(13) - 10: 2^(1+4)+:3^2.2 +- class repres. +- presentation +- repr. cyc. subg. +- std. gen. checker +- automorphisms: + 2 +- maxes (all 10): + 1: U3(3).2 + 2: U3(3).2 + 3: (3^(1+2)+x3^2):2S4 + 4: (3^(1+2)+x3^2):2S4 + 5: L3(3).2 + 6: L3(3).2 + 7: L2(8).3 + 8: 2^3.L3(2) + 9: L2(13) + 10: 2^(1+4)+:3^2.2 gap> prog:= AtlasProgram( "G2(3)", "automorphism", "2" ).program;; gap> info:= OneAtlasGeneratingSetInfo( "G2(3)", Dimension, 7 );; gap> gens:= AtlasGenerators( info ).generators;; @@ -560,7 +614,8 @@+gap> info:= OneAtlasGeneratingSetInfo( "M12", NrMovedPoints, 12 ); -rec( charactername := "1a+11a", groupname := "M12", id := "a", +rec( charactername := "1a+11a", constituents := [ 1, 2 ], + contents := "core", groupname := "M12", id := "a", identifier := [ "M12", [ "M12G1-p12aB0.m1", "M12G1-p12aB0.m2" ], 1, 12 ], isPrimitive := true, maxnr := 1, p := 12, rankAction := 2, repname := "M12G1-p12aB0", repnr := 1, size := 95040, @@ -579,7 +634,8 @@@@ -596,6 +652,48 @@ truegap> checkM11:= AtlasProgram( "M11", "check" ); rec( groupname := "M11", identifier := [ "M11", "M11G1-check1", 1, 1 ] - , program := <straight line decision>, standardization := 1 ) + , program := <straight line decision>, standardization := 1, + version := "1" ) gap> ResultOfStraightLineDecision( checkM11.program, gensM11 ); trueIn this case, we could also use the information that is stored about M_11, as follows.
+ + ++ ++gap> DisplayAtlasInfo( "M11", IsStraightLineProgram ); +Programs for G = M11: (all refer to std. generators 1) +--------------------- +- presentation +- repr. cyc. subg. +- std. gen. finder +- class repres.: + (direct) + (composed) +- maxes (all 5): + 1: A6.2_3 + 1: A6.2_3 (std. 1) + 2: L2(11) + 2: L2(11) (std. 1) + 3: 3^2:Q8.2 + 4: S5 + 4: S5 (std. 1) + 5: 2.S4 +- standardizations of maxes: + from 1st max., version 1 to A6.2_3, std. 1 + from 2nd max., version 1 to L2(11), std. 1 + from 4th max., version 1 to A5.2, std. 1 +- std. gen. checker: + (check) + (pres) +The entry "std.1" in the line about the maximal subgroup of type L_2(11) means that a straight line program for computing standard generators (in standardization 1) of the subgroup. This program can be fetched as follows.
+ + ++ ++gap> restL211std:= AtlasProgram( "M11", "maxes", 2, 1 );; +gap> ResultOfStraightLineProgram( restL211std.program, gensM11 ); +[ (3,9)(4,12)(5,10)(6,8), (1,11,9)(2,12,8)(3,6,10) ] +We see that we get the same generators for the subgroup as above. (In fact the second approach first applies the same program as is given by
+restL211.program
, and then applies a program to the results that does nothing.)Usually representations are not given in terms of standard generators. For example, let us take the M_11 type group returned by the GAP function
@@ -613,7 +711,8 @@MathieuGroup
(Reference: MathieuGroup).- +gap> find:= AtlasProgram( "M11", "find" ); rec( groupname := "M11", identifier := [ "M11", "M11G1-find1", 1, 1 ], - program := <black box program>, standardization := 1 ) + program := <black box program>, standardization := 1, + version := "1" ) gap> stdgens:= ResultOfBBoxProgram( find.program, Group( gens ) );; gap> List( stdgens, Order ); [ 2, 4 ] @@ -627,11 +726,13 @@ trueNote that applying the black box program several times may yield different group elements, because computations of random elements are involved, see
+ +ResultOfBBoxProgram
(6.2-4). All what the black box program promises is to construct standard generators, and these are defined only up to conjugacy in the automorphism group of the group in question.2.4-5 Example: Using the GAP Library of Tables of Marks
-The GAP Library of Tables of Marks (the GAP package TomLib, [NMP13]) provides, for many almost simple groups, information for constructing representatives of all conjugacy classes of subgroups. If this information is compatible with the standard generators of the ATLAS of Group Representations then we can use it to restrict any representation from the ATLAS to prescribed subgroups. This is useful in particular for those subgroups for which the ATLAS of Group Representations itself does not contain a straight line program.
+The GAP Library of Tables of Marks (the GAP package TomLib, [NMP18]) provides, for many almost simple groups, information for constructing representatives of all conjugacy classes of subgroups. If this information is compatible with the standard generators of the ATLAS of Group Representations then we can use it to restrict any representation from the ATLAS to prescribed subgroups. This is useful in particular for those subgroups for which the ATLAS of Group Representations itself does not contain a straight line program.
-@@ -652,7 +753,8 @@- +gap> info:= OneAtlasGeneratingSetInfo( "A5", Ring, Integers, Dimension, 4 );; gap> stdgens:= AtlasGenerators( info.identifier ); -rec( dim := 4, +rec( charactername := "4a", constituents := [ 4 ], contents := "core", + dim := 4, generators := [ [ [ 1, 0, 0, 0 ], [ 0, 0, 1, 0 ], [ 0, 1, 0, 0 ], @@ -675,7 +777,7 @@ [ -1, -1, -1, -1 ] ] ]2.4-6 Example: Index 770 Subgroups in M_22
@@ -702,7 +804,7 @@ 12: G <= Sym(770) rank 9, on cosets of (A4xA4):4 < 2^4:A6We now verify the information shown about the point stabilizer and about the maximal overgroups of S in M_22.
+Now we verify the information shown about the point stabilizer and about the maximal overgroups of S in M_22.
@@ -783,24 +886,27 @@@@ -731,7 +833,7 @@- +gap> stab:= Stabilizer( g, 1 );; -gap> StructureDescription( stab ); +gap> StructureDescription( stab : nice ); "(A4 x A4) : C4" gap> blocks:= Orbit( g, allbl[1], OnSets );; gap> act:= Action( g, blocks, OnSets );; @@ -739,7 +841,7 @@ "(C2 x C2 x C2 x C2) : A6"2.4-7 Example: Index 462 Subgroups in M_22
@@ -764,7 +866,8 @@ gap> genstom:= GeneratorsOfGroup( UnderlyingGroup( tom ) );; gap> checkM22:= AtlasProgram( "M22", "check" ); rec( groupname := "M22", identifier := [ "M22", "M22G1-check1", 1, 1 ] - , program := <straight line decision>, standardization := 1 ) + , program := <straight line decision>, standardization := 1, + version := "1" ) gap> ResultOfStraightLineDecision( checkM22.program, genstom ); truegap> atlasreps:= AllAtlasGeneratingSetInfos( "M22", NrMovedPoints, 462 ); -[ rec( charactername := "1a+21a+55a+154a+231a", groupname := "M22", - id := "a", +[ rec( charactername := "1a+21a+55a+154a+231a", + constituents := [ 1, 2, 5, 7, 9 ], contents := "core", + groupname := "M22", id := "a", identifier := [ "M22", [ "M22G1-p462aB0.m1", "M22G1-p462aB0.m2" ], 1, 462 ], isPrimitive := false, p := 462, rankAction := 5, repname := "M22G1-p462aB0", repnr := 7, size := 443520, stabilizer := "2^4:A5 < 2^4:A6", standardization := 1, transitivity := 1, type := "perm" ), - rec( charactername := "1a+21a^2+55a+154a+210a", groupname := "M22", - id := "b", + rec( charactername := "1a+21a^2+55a+154a+210a", + constituents := [ 1, [ 2, 2 ], 5, 7, 8 ], contents := "core", + groupname := "M22", id := "b", identifier := [ "M22", [ "M22G1-p462bB0.m1", "M22G1-p462bB0.m2" ], 1, 462 ], isPrimitive := false, p := 462, rankAction := 8, repname := "M22G1-p462bB0", repnr := 8, size := 443520, stabilizer := "2^4:A5 < L3(4), 2^4:S5", standardization := 1, transitivity := 1, type := "perm" ), - rec( charactername := "1a+21a^2+55a+154a+210a", groupname := "M22", - id := "c", + rec( charactername := "1a+21a^2+55a+154a+210a", + constituents := [ 1, [ 2, 2 ], 5, 7, 8 ], contents := "core", + groupname := "M22", id := "c", identifier := [ "M22", [ "M22G1-p462cB0.m1", "M22G1-p462cB0.m2" ], 1, 462 ], isPrimitive := false, p := 462, rankAction := 8, diff -Nru gap-atlasrep-1.5.1/doc/chap2_mj.html gap-atlasrep-2.1.0/doc/chap2_mj.html --- gap-atlasrep-1.5.1/doc/chap2_mj.html 1970-01-01 00:00:00.000000000 +0000 +++ gap-atlasrep-2.1.0/doc/chap2_mj.html 2019-06-21 15:10:33.000000000 +0000 @@ -0,0 +1,1014 @@ + + + + + + + +GAP (AtlasRep) - Chapter 2: Tutorial for the AtlasRep Package + + + + + + + + + + + + + + + +2 Tutorial for the AtlasRep Package + + + ++ +2.4 Examples of Using the AtlasRep Package + +++
2.4-1 Example: Class Representatives + +
2.4-2 Example: Permutation and Matrix Representations + +
2.4-3 Example: Outer Automorphisms + +
2.4-4 Example: Using Semi-presentations and Black Box Programs + +
2.4-5 Example: Using the GAP Library of Tables of Marks + +
2.4-6 Example: Index \(770\) Subgroups in \(M_{22}\) + +
2.4-7 Example: Index \(462\) Subgroups in \(M_{22}\) + +2 Tutorial for the AtlasRep Package
+ +This chapter gives an overview of the basic functionality provided by the AtlasRep package. The main concepts and interface functions are presented in the first three sections, and Section 2.4 shows a few small examples.
+ +Let us first fix the setup for the examples shown in the package manual.
+ ++
+ + +- +
First of all, we load the AtlasRep package. Some of the examples require also the GAP packages CTblLib and TomLib, so we load also these packages.
+ + ++ ++gap> LoadPackage( "AtlasRep", false ); +true +gap> LoadPackage( "CTblLib", false ); +true +gap> LoadPackage( "TomLib", false ); +true +- +
Depending on the terminal capabilities, the output of
+ + +DisplayAtlasInfo
(3.5-1) may contain non-ASCII characters, which are not supported by the LaTeX and HTML versions of GAPDoc documents. The examples in this manual are used for tests of the package's functionality, thus we set the user preferenceDisplayFunction
(see Section 4.2-12) to the value"Print"
in order to produce output consisting only of ASCII characters, which is assumed to work in any terminal.+ ++gap> origpref:= UserPreference( "AtlasRep", "DisplayFunction" );; +gap> SetUserPreference( "AtlasRep", "DisplayFunction", "Print" ); +- +
The GAP output for the examples may look differently if data extensions have been loaded. In order to ignore these extensions in the examples, we unload them.
+ + ++ ++gap> priv:= Difference( +> List( AtlasOfGroupRepresentationsInfo.notified, x -> x.ID ), +> [ "core", "internal" ] );; +gap> Perform( priv, AtlasOfGroupRepresentationsForgetData ); +- +
If the info level of
+ + +InfoAtlasRep
(7.1-1) is larger than zero then additional output appears on the screen. In order to avoid this output, we set the level to zero.+ ++gap> globallevel:= InfoLevel( InfoAtlasRep );; +gap> SetInfoLevel( InfoAtlasRep, 0 ); +2.1 Accessing a Specific Group in AtlasRep
+ +An important database to which the AtlasRep package gives access is the ATLAS of Group Representations [WWT+]. It contains generators and related data for several groups, mainly for extensions of simple groups (see Section 2.1-1) and for their maximal subgroups (see Section 2.1-2).
+ +In general, these data are not part of the package. They are downloaded as soon as they are needed for the first time, see Section 4.2-1.
+ + + +2.1-1 Accessing a Group in AtlasRep via its Name
+ +Each group that occurs in this database is specified by a name, which is a string similar to the name used in the ATLAS of Finite Groups [CCN+85]. For those groups whose character tables are contained in the GAP Character Table Library [Bre13], the names are equal to the
+ +Identifier
(Reference: Identifier for character tables) values of these character tables. Examples of such names are"M24"
for the Mathieu group \(M_{24}\),"2.A6"
for the double cover of the alternating group \(A_6\), and"2.A6.2_1"
for the double cover of the symmetric group \(S_6\). The names that actually occur are listed in the first column of the overview table that is printed by the functionDisplayAtlasInfo
(3.5-1), called without arguments, see below. The other columns of the table describe the data that are available in the database.For example,
+ + +DisplayAtlasInfo
(3.5-1) may print the following lines. Omissions are indicated with "...
".+ ++gap> DisplayAtlasInfo(); +group | # | maxes | cl | cyc | out | fnd | chk | prs +-------------------------+----+-------+----+-----+-----+-----+-----+---- +... +2.A5 | 26 | 3 | | | | | + | + +2.A5.2 | 11 | 4 | | | | | + | + +2.A6 | 18 | 5 | | | | | | +2.A6.2_1 | 3 | 6 | | | | | | +2.A7 | 24 | 2 | | | | | | +2.A7.2 | 7 | | | | | | | +... +M22 | 58 | 8 | + | + | | + | + | + +M22.2 | 46 | 7 | + | + | | + | + | + +M23 | 66 | 7 | + | + | | + | + | + +M24 | 62 | 9 | + | + | | + | + | + +McL | 46 | 12 | + | + | | + | + | + +McL.2 | 27 | 10 | | + | | + | + | + +O7(3) | 28 | | | | | | | +O7(3).2 | 3 | | | | | | | +... +Suz | 30 | 17 | | + | 2 | + | + | +... +Called with a group name as the only argument, the function
+ + +AtlasGroup
(3.5-8) returns a group isomorphic to the group with the given name, orfail
. If permutation generators are available in the database then a permutation group (of smallest available degree) is returned, otherwise a matrix group.+ + + ++gap> g:= AtlasGroup( "M24" ); +Group([ (1,4)(2,7)(3,17)(5,13)(6,9)(8,15)(10,19)(11,18)(12,21)(14,16) + (20,24)(22,23), (1,4,6)(2,21,14)(3,9,15)(5,18,10)(13,17,16) + (19,24,23) ]) +gap> IsPermGroup( g ); NrMovedPoints( g ); Size( g ); +true +24 +244823040 +gap> AtlasGroup( "J5" ); +fail +2.1-2 Accessing a Maximal Subgroup of a Group in AtlasRep
+ +Many maximal subgroups of extensions of simple groups can be constructed using the function
+ + +AtlasSubgroup
(3.5-9). Given the name of the extension of the simple group and the number of the conjugacy class of maximal subgroups, this function returns a representative from this class.+ ++gap> g:= AtlasSubgroup( "M24", 1 ); +Group([ (2,10)(3,12)(4,14)(6,9)(8,16)(15,18)(20,22)(21,24), (1,7,2,9) + (3,22,10,23)(4,19,8,12)(5,14)(6,18)(13,16,17,24) ]) +gap> IsPermGroup( g ); NrMovedPoints( g ); Size( g ); +true +23 +10200960 +gap> AtlasSubgroup( "M24", 100 ); +fail +The classes of maximal subgroups are ordered w. r. t. decreasing subgroup order. So the first class contains maximal subgroups of smallest index.
+ +Note that groups obtained by
+ + +AtlasSubgroup
(3.5-9) may be not very suitable for computations in the sense that much nicer representations exist. For example, the sporadic simple O'Nan group \(O'N\) contains a maximal subgroup \(S\) isomorphic with the Janko group \(J_1\); the smallest permutation representation of \(O'N\) has degree \(122760\), and restricting this representation to \(S\) yields a representation of \(J_1\) of that degree. However, \(J_1\) has a faithful permutation representation of degree \(266\), which admits much more efficient computations. If you are just interested in \(J_1\) and not in its embedding into \(O'N\) then one possibility to get a "nicer" faithful representation is to callSmallerDegreePermutationRepresentation
(Reference: SmallerDegreePermutationRepresentation). In the abovementioned example, this works quite well; note that in general, we cannot expect that we get a representation of smallest degree in this way.+ ++gap> s:= AtlasSubgroup( "ON", 3 ); +<permutation group of size 175560 with 2 generators> +gap> NrMovedPoints( s ); Size( s ); +122760 +175560 +gap> hom:= SmallerDegreePermutationRepresentation( s );; +gap> NrMovedPoints( Image( hom ) ); +1540 +In this particular case, one could of course also ask directly for the group \(J_1\).
+ + ++ ++gap> j1:= AtlasGroup( "J1" ); +<permutation group of size 175560 with 2 generators> +gap> NrMovedPoints( j1 ); +266 +If you have a group \(G\), say, and you are really interested in the embedding of a maximal subgroup of \(G\) into \(G\) then an easy way to get compatible generators is to create \(G\) with
+ + +AtlasGroup
(3.5-8) and then to callAtlasSubgroup
(3.5-9) with first argument the group \(G\).+ + + ++gap> g:= AtlasGroup( "ON" ); +<permutation group of size 460815505920 with 2 generators> +gap> s:= AtlasSubgroup( g, 3 ); +<permutation group of size 175560 with 2 generators> +gap> IsSubset( g, s ); +true +gap> IsSubset( g, j1 ); +false +2.2 Accessing Specific Generators in AtlasRep
+ +The function
+ + +DisplayAtlasInfo
(3.5-1), called with an admissible name of a group as the only argument, lists the ATLAS data available for this group.+ ++gap> DisplayAtlasInfo( "A5" ); +Representations for G = A5: (all refer to std. generators 1) +--------------------------- + 1: G <= Sym(5) 3-trans., on cosets of A4 (1st max.) + 2: G <= Sym(6) 2-trans., on cosets of D10 (2nd max.) + 3: G <= Sym(10) rank 3, on cosets of S3 (3rd max.) + 4: G <= GL(4a,2) character 4a + 5: G <= GL(4b,2) character 2ab + 6: G <= GL(4,3) character 4a + 7: G <= GL(6,3) character 3ab + 8: G <= GL(2a,4) character 2a + 9: G <= GL(2b,4) character 2b +10: G <= GL(3,5) character 3a +11: G <= GL(5,5) character 5a +12: G <= GL(3a,9) character 3a +13: G <= GL(3b,9) character 3b +14: G <= GL(4,Z) character 4a +15: G <= GL(5,Z) character 5a +16: G <= GL(6,Z) character 3ab +17: G <= GL(3a,Field([Sqrt(5)])) character 3a +18: G <= GL(3b,Field([Sqrt(5)])) character 3b + +Programs for G = A5: (all refer to std. generators 1) +-------------------- +- class repres.* +- presentation +- maxes (all 3): + 1: A4 + 2: D10 + 3: S3 +- std. gen. checker: + (check) + (pres) +In order to fetch one of the listed permutation groups or matrix groups, you can call
+ + +AtlasGroup
(3.5-8) with second argument the functionPosition
(Reference: Position) and third argument the position in the list.+ ++gap> AtlasGroup( "A5", Position, 1 ); +Group([ (1,2)(3,4), (1,3,5) ]) +Note that this approach may yield a different group after a data extension has been loaded.
+ +Alternatively, you can describe the desired group by conditions, such as the degree in the case of a permutation group, and the dimension and the base ring in the case of a matrix group.
+ + ++ ++gap> AtlasGroup( "A5", NrMovedPoints, 10 ); +Group([ (2,4)(3,5)(6,8)(7,10), (1,2,3)(4,6,7)(5,8,9) ]) +gap> AtlasGroup( "A5", Dimension, 4, Ring, GF(2) ); +<matrix group of size 60 with 2 generators> +The same holds for the restriction to maximal subgroups: Use
+ + +AtlasSubgroup
(3.5-9) with the same arguments asAtlasGroup
(3.5-8), except that additionally the number of the class of maximal subgroups is entered as the last argument. Note that the conditions refer to the group, not to the subgroup; it may happen that the subgroup moves fewer points than the big group.+ + + ++gap> AtlasSubgroup( "A5", Dimension, 4, Ring, GF(2), 1 ); +<matrix group of size 12 with 2 generators> +gap> g:= AtlasSubgroup( "A5", NrMovedPoints, 10, 3 ); +Group([ (2,4)(3,5)(6,8)(7,10), (1,4)(3,8)(5,7)(6,10) ]) +gap> Size( g ); NrMovedPoints( g ); +6 +9 +2.3 Basic Concepts used in AtlasRep
+ + + +2.3-1 Groups, Generators, and Representations
+ +Up to now, we have talked only about groups and subgroups. The AtlasRep package provides access to group generators, and in fact these generators have the property that mapping one set of generators to another set of generators for the same group defines an isomorphism. These generators are called standard generators, see Section 3.3.
+ +So instead of thinking about several generating sets of a group \(G\), say, we can think about one abstract group \(G\), with one fixed set of generators, and mapping these generators to any set of generators provided by AtlasRep defines a representation of \(G\). This viewpoint had motivated the name "ATLAS of Group Representations" for the core part of the database.
+ +If you are interested in the generators provided by the database rather than in the groups they generate, you can use the function
+ + +OneAtlasGeneratingSetInfo
(3.5-6) instead ofAtlasGroup
(3.5-8), with the same arguments. This will yield a record that describes the representation in question. Calling the functionAtlasGenerators
(3.5-3) with this record will then yield a record with the additional componentgenerators
, which holds the list of generators.+ ++gap> info:= OneAtlasGeneratingSetInfo( "A5", NrMovedPoints, 10 ); +rec( charactername := "1a+4a+5a", constituents := [ 1, 4, 5 ], + contents := "core", groupname := "A5", id := "", + identifier := [ "A5", [ "A5G1-p10B0.m1", "A5G1-p10B0.m2" ], 1, 10 ], + isPrimitive := true, maxnr := 3, p := 10, rankAction := 3, + repname := "A5G1-p10B0", repnr := 3, size := 60, stabilizer := "S3", + standardization := 1, transitivity := 1, type := "perm" ) +gap> info2:= AtlasGenerators( info ); +rec( charactername := "1a+4a+5a", constituents := [ 1, 4, 5 ], + contents := "core", + generators := [ (2,4)(3,5)(6,8)(7,10), (1,2,3)(4,6,7)(5,8,9) ], + groupname := "A5", id := "", + identifier := [ "A5", [ "A5G1-p10B0.m1", "A5G1-p10B0.m2" ], 1, 10 ], + isPrimitive := true, maxnr := 3, p := 10, rankAction := 3, + repname := "A5G1-p10B0", repnr := 3, size := 60, stabilizer := "S3", + standardization := 1, transitivity := 1, type := "perm" ) +gap> info2.generators; +[ (2,4)(3,5)(6,8)(7,10), (1,2,3)(4,6,7)(5,8,9) ] +The record
+ + +info
appears as the value of the attributeAtlasRepInfoRecord
(3.5-10) in groups that are returned byAtlasGroup
(3.5-8).+ + + ++gap> g:= AtlasGroup( "A5", NrMovedPoints, 10 );; +gap> AtlasRepInfoRecord( g ); +rec( charactername := "1a+4a+5a", constituents := [ 1, 4, 5 ], + contents := "core", groupname := "A5", id := "", + identifier := [ "A5", [ "A5G1-p10B0.m1", "A5G1-p10B0.m2" ], 1, 10 ], + isPrimitive := true, maxnr := 3, p := 10, rankAction := 3, + repname := "A5G1-p10B0", repnr := 3, size := 60, stabilizer := "S3", + standardization := 1, transitivity := 1, type := "perm" ) +2.3-2 Straight Line Programs
+ +For computing certain group elements from standard generators, such as generators of a subgroup or class representatives, AtlasRep uses straight line programs, see Reference: Straight Line Programs. Essentially this means to evaluate words in the generators, which is similar to
+ +MappedWord
(Reference: MappedWord) but can be more efficient.It can be useful to deal with these straight line programs, see
+ + +AtlasProgram
(3.5-4). For example, an automorphism \(\alpha\), say, of the group \(G\), if available in AtlasRep, is given by a straight line program that defines the images of standard generators of \(G\). This way, one can for example compute the image of a subgroup \(U\) of \(G\) under \(\alpha\) by first applying the straight line program for \(\alpha\) to standard generators of \(G\), and then applying the straight line program for the restriction from \(G\) to \(U\).+ + + ++gap> prginfo:= AtlasProgramInfo( "A5", "maxes", 1 ); +rec( groupname := "A5", identifier := [ "A5", "A5G1-max1W1", 1 ], + size := 12, standardization := 1, subgroupname := "A4", + version := "1" ) +gap> prg:= AtlasProgram( prginfo.identifier ); +rec( groupname := "A5", identifier := [ "A5", "A5G1-max1W1", 1 ], + program := <straight line program>, size := 12, + standardization := 1, subgroupname := "A4", version := "1" ) +gap> Display( prg.program ); +# input: +r:= [ g1, g2 ]; +# program: +r[3]:= r[1]*r[2]; +r[4]:= r[2]*r[1]; +r[5]:= r[3]*r[3]; +r[1]:= r[5]*r[4]; +# return values: +[ r[1], r[2] ] +gap> ResultOfStraightLineProgram( prg.program, info2.generators ); +[ (1,10)(2,3)(4,9)(7,8), (1,2,3)(4,6,7)(5,8,9) ] +2.4 Examples of Using the AtlasRep Package
+ + + +2.4-1 Example: Class Representatives
+ +First we show the computation of class representatives of the Mathieu group \(M_{11}\), in a \(2\)-modular matrix representation. We start with the ordinary and Brauer character tables of this group.
+ + ++ ++gap> tbl:= CharacterTable( "M11" );; +gap> modtbl:= tbl mod 2;; +gap> CharacterDegrees( modtbl ); +[ [ 1, 1 ], [ 10, 1 ], [ 16, 2 ], [ 44, 1 ] ] +The output of
+ +CharacterDegrees
(Reference: CharacterDegrees) means that the \(2\)-modular irreducibles of \(M_{11}\) have degrees \(1\), \(10\), \(16\), \(16\), and \(44\).Using
+ + +DisplayAtlasInfo
(3.5-1), we find out that matrix generators for the irreducible \(10\)-dimensional representation are available in the database.+ ++gap> DisplayAtlasInfo( "M11", Characteristic, 2 ); +Representations for G = M11: (all refer to std. generators 1) +---------------------------- + 6: G <= GL(10,2) character 10a + 7: G <= GL(32,2) character 16ab + 8: G <= GL(44,2) character 44a +16: G <= GL(16a,4) character 16a +17: G <= GL(16b,4) character 16b +So we decide to work with this representation. We fetch the generators and compute the list of class representatives of \(M_{11}\) in the representation. The ordering of class representatives is the same as that in the character table of the ATLAS of Finite Groups ([CCN+85]), which coincides with the ordering of columns in the GAP table we have fetched above.
+ + ++ ++gap> info:= OneAtlasGeneratingSetInfo( "M11", Characteristic, 2, +> Dimension, 10 );; +gap> gens:= AtlasGenerators( info.identifier );; +gap> ccls:= AtlasProgram( "M11", gens.standardization, "classes" ); +rec( groupname := "M11", identifier := [ "M11", "M11G1-cclsW1", 1 ], + outputs := [ "1A", "2A", "3A", "4A", "5A", "6A", "8A", "8B", "11A", + "11B" ], program := <straight line program>, + standardization := 1, version := "1" ) +gap> reps:= ResultOfStraightLineProgram( ccls.program, gens.generators );; +If we would need only a few class representatives, we could use the GAP library function
+ + +RestrictOutputsOfSLP
(Reference: RestrictOutputsOfSLP) to create a straight line program that computes only specified outputs. Here is an example where only the class representatives of order eight are computed.+ ++gap> ord8prg:= RestrictOutputsOfSLP( ccls.program, +> Filtered( [ 1 .. 10 ], i -> ccls.outputs[i][1] = '8' ) ); +<straight line program> +gap> ord8reps:= ResultOfStraightLineProgram( ord8prg, gens.generators );; +gap> List( ord8reps, m -> Position( reps, m ) ); +[ 7, 8 ] +Let us check that the class representatives have the right orders.
+ + ++ ++gap> List( reps, Order ) = OrdersClassRepresentatives( tbl ); +true +From the class representatives, we can compute the Brauer character we had started with. This Brauer character is defined on all classes of the \(2\)-modular table. So we first pick only those representatives, using the GAP function
+ + +GetFusionMap
(Reference: GetFusionMap); in this situation, it returns the class fusion from the Brauer table into the ordinary table.+ ++gap> fus:= GetFusionMap( modtbl, tbl ); +[ 1, 3, 5, 9, 10 ] +gap> modreps:= reps{ fus };; +Then we call the GAP function
+ + +BrauerCharacterValue
(Reference: BrauerCharacterValue), which computes the Brauer character value from the matrix given.+ + + ++gap> char:= List( modreps, BrauerCharacterValue ); +[ 10, 1, 0, -1, -1 ] +gap> Position( Irr( modtbl ), char ); +2 +2.4-2 Example: Permutation and Matrix Representations
+ +The second example shows the computation of a permutation representation from a matrix representation. We work with the \(10\)-dimensional representation used above, and consider the action on the \(2^{10}\) vectors of the underlying row space.
+ + ++ ++gap> grp:= Group( gens.generators );; +gap> v:= GF(2)^10;; +gap> orbs:= Orbits( grp, AsList( v ) );; +gap> List( orbs, Length ); +[ 1, 396, 55, 330, 66, 165, 11 ] +We see that there are six nontrivial orbits, and we can compute the permutation actions on these orbits directly using
+ +Action
(Reference: Action homomorphisms). However, for larger examples, one cannot write down all orbits on the row space, so one has to use another strategy if one is interested in a particular orbit.Let us assume that we are interested in the orbit of length \(11\). The point stabilizer is the first maximal subgroup of \(M_{11}\), thus the restriction of the representation to this subgroup has a nontrivial fixed point space. This restriction can be computed using the AtlasRep package.
+ + ++ ++gap> gens:= AtlasGenerators( "M11", 6, 1 );; +Now computing the fixed point space is standard linear algebra.
+ + ++ ++gap> id:= IdentityMat( 10, GF(2) );; +gap> sub1:= Subspace( v, NullspaceMat( gens.generators[1] - id ) );; +gap> sub2:= Subspace( v, NullspaceMat( gens.generators[2] - id ) );; +gap> fix:= Intersection( sub1, sub2 ); +<vector space of dimension 1 over GF(2)> +The final step is of course the computation of the permutation action on the orbit.
+ + ++ ++gap> orb:= Orbit( grp, Basis( fix )[1] );; +gap> act:= Action( grp, orb );; Print( act, "\n" ); +Group( [ ( 1, 2)( 4, 6)( 5, 8)( 7,10), ( 1, 3, 5, 9)( 2, 4, 7,11) ] ) +Note that this group is not equal to the group obtained by fetching the permutation representation from the database. This is due to a different numbering of the points, thus the groups are permutation isomorphic, that is, they are conjugate in the symmetric group on eleven points.
+ + ++ + + ++gap> permgrp:= Group( AtlasGenerators( "M11", 1 ).generators );; +gap> Print( permgrp, "\n" ); +Group( [ ( 2,10)( 4,11)( 5, 7)( 8, 9), ( 1, 4, 3, 8)( 2, 5, 6, 9) ] ) +gap> permgrp = act; +false +gap> IsConjugate( SymmetricGroup(11), permgrp, act ); +true +2.4-3 Example: Outer Automorphisms
+ +The straight line programs for applying outer automorphisms to standard generators can of course be used to define the automorphisms themselves as GAP mappings.
+ + ++ ++gap> DisplayAtlasInfo( "G2(3)", IsStraightLineProgram ); +Programs for G = G2(3): (all refer to std. generators 1) +----------------------- +- class repres. +- presentation +- repr. cyc. subg. +- std. gen. checker +- automorphisms: + 2 +- maxes (all 10): + 1: U3(3).2 + 2: U3(3).2 + 3: (3^(1+2)+x3^2):2S4 + 4: (3^(1+2)+x3^2):2S4 + 5: L3(3).2 + 6: L3(3).2 + 7: L2(8).3 + 8: 2^3.L3(2) + 9: L2(13) + 10: 2^(1+4)+:3^2.2 +gap> prog:= AtlasProgram( "G2(3)", "automorphism", "2" ).program;; +gap> info:= OneAtlasGeneratingSetInfo( "G2(3)", Dimension, 7 );; +gap> gens:= AtlasGenerators( info ).generators;; +gap> imgs:= ResultOfStraightLineProgram( prog, gens );; +If we are not suspicious whether the script really describes an automorphism then we should tell this to GAP, in order to avoid the expensive checks of the properties of being a homomorphism and bijective (see Section Reference: Creating Group Homomorphisms). This looks as follows.
+ + ++ ++gap> g:= Group( gens );; +gap> aut:= GroupHomomorphismByImagesNC( g, g, gens, imgs );; +gap> SetIsBijective( aut, true ); +If we are suspicious whether the script describes an automorphism then we might have the idea to check it with GAP, as follows.
+ + ++ ++gap> aut:= GroupHomomorphismByImages( g, g, gens, imgs );; +gap> IsBijective( aut ); +true +(Note that even for a comparatively small group such as \(G_2(3)\), this was a difficult task for GAP before version 4.3.)
+ +Often one can form images under an automorphism \(\alpha\), say, without creating the homomorphism object. This is obvious for the standard generators of the group \(G\) themselves, but also for generators of a maximal subgroup \(M\) computed from standard generators of \(G\), provided that the straight line programs in question refer to the same standard generators. Note that the generators of \(M\) are given by evaluating words in terms of standard generators of \(G\), and their images under \(\alpha\) can be obtained by evaluating the same words at the images under \(\alpha\) of the standard generators of \(G\).
+ + ++ ++gap> max1:= AtlasProgram( "G2(3)", 1 ).program;; +gap> mgens:= ResultOfStraightLineProgram( max1, gens );; +gap> comp:= CompositionOfStraightLinePrograms( max1, prog );; +gap> mimgs:= ResultOfStraightLineProgram( comp, gens );; +The list
+ + +mgens
is the list of generators of the first maximal subgroup of \(G_2(3)\),mimgs
is the list of images under the automorphism given by the straight line programprog
. Note that applying the program returned byCompositionOfStraightLinePrograms
(Reference: CompositionOfStraightLinePrograms) means to apply firstprog
and thenmax1
. Since we have already constructed the GAP object representing the automorphism, we can check whether the results are equal.+ ++gap> mimgs = List( mgens, x -> x^aut ); +true +However, it should be emphasized that using
+ + + +aut
requires a huge machinery of computations behind the scenes, whereas applying the straight line programsprog
andmax1
involves only elementary operations with the generators. The latter is feasible also for larger groups, for which constructing the GAP automorphism might be too hard.2.4-4 Example: Using Semi-presentations and Black Box Programs
+ +Let us suppose that we want to restrict a representation of the Mathieu group \(M_{12}\) to a non-maximal subgroup of the type \(L_2(11)\). The idea is that this subgroup can be found as a maximal subgroup of a maximal subgroup of the type \(M_{11}\), which is itself maximal in \(M_{12}\). For that, we fetch a representation of \(M_{12}\) and use a straight line program for restricting it to the first maximal subgroup, which has the type \(M_{11}\).
+ + ++ ++gap> info:= OneAtlasGeneratingSetInfo( "M12", NrMovedPoints, 12 ); +rec( charactername := "1a+11a", constituents := [ 1, 2 ], + contents := "core", groupname := "M12", id := "a", + identifier := [ "M12", [ "M12G1-p12aB0.m1", "M12G1-p12aB0.m2" ], 1, + 12 ], isPrimitive := true, maxnr := 1, p := 12, rankAction := 2, + repname := "M12G1-p12aB0", repnr := 1, size := 95040, + stabilizer := "M11", standardization := 1, transitivity := 5, + type := "perm" ) +gap> gensM12:= AtlasGenerators( info.identifier );; +gap> restM11:= AtlasProgram( "M12", "maxes", 1 );; +gap> gensM11:= ResultOfStraightLineProgram( restM11.program, +> gensM12.generators ); +[ (3,9)(4,12)(5,10)(6,8), (1,4,11,5)(2,10,8,3) ] +Now we cannot simply apply a straight line program for a group to some generators, since they are not necessarily standard generators of the group. We check this property using a semi-presentation for \(M_{11}\), see 6.1-7.
+ + ++ ++gap> checkM11:= AtlasProgram( "M11", "check" ); +rec( groupname := "M11", identifier := [ "M11", "M11G1-check1", 1, 1 ] + , program := <straight line decision>, standardization := 1, + version := "1" ) +gap> ResultOfStraightLineDecision( checkM11.program, gensM11 ); +true +So we are lucky that applying the appropriate program for \(M_{11}\) will give us the required generators for \(L_2(11)\).
+ + ++ ++gap> restL211:= AtlasProgram( "M11", "maxes", 2 );; +gap> gensL211:= ResultOfStraightLineProgram( restL211.program, gensM11 ); +[ (3,9)(4,12)(5,10)(6,8), (1,11,9)(2,12,8)(3,6,10) ] +gap> G:= Group( gensL211 );; Size( G ); IsSimple( G ); +660 +true +In this case, we could also use the information that is stored about \(M_{11}\), as follows.
+ + ++ ++gap> DisplayAtlasInfo( "M11", IsStraightLineProgram ); +Programs for G = M11: (all refer to std. generators 1) +--------------------- +- presentation +- repr. cyc. subg. +- std. gen. finder +- class repres.: + (direct) + (composed) +- maxes (all 5): + 1: A6.2_3 + 1: A6.2_3 (std. 1) + 2: L2(11) + 2: L2(11) (std. 1) + 3: 3^2:Q8.2 + 4: S5 + 4: S5 (std. 1) + 5: 2.S4 +- standardizations of maxes: + from 1st max., version 1 to A6.2_3, std. 1 + from 2nd max., version 1 to L2(11), std. 1 + from 4th max., version 1 to A5.2, std. 1 +- std. gen. checker: + (check) + (pres) +The entry "std.1" in the line about the maximal subgroup of type \(L_2(11)\) means that a straight line program for computing standard generators (in standardization 1) of the subgroup. This program can be fetched as follows.
+ + ++ ++gap> restL211std:= AtlasProgram( "M11", "maxes", 2, 1 );; +gap> ResultOfStraightLineProgram( restL211std.program, gensM11 ); +[ (3,9)(4,12)(5,10)(6,8), (1,11,9)(2,12,8)(3,6,10) ] +We see that we get the same generators for the subgroup as above. (In fact the second approach first applies the same program as is given by
+ +restL211.program
, and then applies a program to the results that does nothing.)Usually representations are not given in terms of standard generators. For example, let us take the \(M_{11}\) type group returned by the GAP function
+ + +MathieuGroup
(Reference: MathieuGroup).+ ++gap> G:= MathieuGroup( 11 );; +gap> gens:= GeneratorsOfGroup( G ); +[ (1,2,3,4,5,6,7,8,9,10,11), (3,7,11,8)(4,10,5,6) ] +gap> ResultOfStraightLineDecision( checkM11.program, gens ); +false +If we want to compute an \(L_2(11)\) type subgroup of this group, we can use a black box program for computing standard generators, and then apply the straight line program for computing the restriction.
+ + ++ ++gap> find:= AtlasProgram( "M11", "find" ); +rec( groupname := "M11", identifier := [ "M11", "M11G1-find1", 1, 1 ], + program := <black box program>, standardization := 1, + version := "1" ) +gap> stdgens:= ResultOfBBoxProgram( find.program, Group( gens ) );; +gap> List( stdgens, Order ); +[ 2, 4 ] +gap> ResultOfStraightLineDecision( checkM11.program, stdgens ); +true +gap> gensL211:= ResultOfStraightLineProgram( restL211.program, stdgens );; +gap> List( gensL211, Order ); +[ 2, 3 ] +gap> G:= Group( gensL211 );; Size( G ); IsSimple( G ); +660 +true +Note that applying the black box program several times may yield different group elements, because computations of random elements are involved, see
+ + + +ResultOfBBoxProgram
(6.2-4). All what the black box program promises is to construct standard generators, and these are defined only up to conjugacy in the automorphism group of the group in question.2.4-5 Example: Using the GAP Library of Tables of Marks
+ +The GAP Library of Tables of Marks (the GAP package TomLib, [NMP18]) provides, for many almost simple groups, information for constructing representatives of all conjugacy classes of subgroups. If this information is compatible with the standard generators of the ATLAS of Group Representations then we can use it to restrict any representation from the ATLAS to prescribed subgroups. This is useful in particular for those subgroups for which the ATLAS of Group Representations itself does not contain a straight line program.
+ + ++ ++gap> tom:= TableOfMarks( "A5" ); +TableOfMarks( "A5" ) +gap> info:= StandardGeneratorsInfo( tom ); +[ rec( ATLAS := true, description := "|a|=2, |b|=3, |ab|=5", + generators := "a, b", + script := [ [ 1, 2 ], [ 2, 3 ], [ 1, 1, 2, 1, 5 ] ], + standardization := 1 ) ] +The
+ +true
value of the componentATLAS
indicates that the information stored ontom
refers to the standard generators of type \(1\) in the ATLAS of Group Representations.We want to restrict a \(4\)-dimensional integral representation of \(A_5\) to a Sylow \(2\) subgroup of \(A_5\), and use
+ + +RepresentativeTomByGeneratorsNC
(Reference: RepresentativeTomByGeneratorsNC) for that.+ + + ++gap> info:= OneAtlasGeneratingSetInfo( "A5", Ring, Integers, Dimension, 4 );; +gap> stdgens:= AtlasGenerators( info.identifier ); +rec( charactername := "4a", constituents := [ 4 ], contents := "core", + dim := 4, + generators := + [ + [ [ 1, 0, 0, 0 ], [ 0, 0, 1, 0 ], [ 0, 1, 0, 0 ], + [ -1, -1, -1, -1 ] ], + [ [ 0, 1, 0, 0 ], [ 0, 0, 0, 1 ], [ 0, 0, 1, 0 ], + [ 1, 0, 0, 0 ] ] ], groupname := "A5", id := "", + identifier := [ "A5", "A5G1-Zr4B0.g", 1, 4 ], + repname := "A5G1-Zr4B0", repnr := 14, ring := Integers, size := 60, + standardization := 1, type := "matint" ) +gap> orders:= OrdersTom( tom ); +[ 1, 2, 3, 4, 5, 6, 10, 12, 60 ] +gap> pos:= Position( orders, 4 ); +4 +gap> sub:= RepresentativeTomByGeneratorsNC( tom, pos, stdgens.generators ); +<matrix group of size 4 with 2 generators> +gap> GeneratorsOfGroup( sub ); +[ [ [ 1, 0, 0, 0 ], [ -1, -1, -1, -1 ], [ 0, 0, 0, 1 ], + [ 0, 0, 1, 0 ] ], + [ [ 1, 0, 0, 0 ], [ 0, 0, 1, 0 ], [ 0, 1, 0, 0 ], + [ -1, -1, -1, -1 ] ] ] +2.4-6 Example: Index \(770\) Subgroups in \(M_{22}\)
+ +The sporadic simple Mathieu group \(M_{22}\) contains a unique class of subgroups of index \(770\) (and order \(576\)). This can be seen for example using GAP's Library of Tables of Marks.
+ + ++ ++gap> tom:= TableOfMarks( "M22" ); +TableOfMarks( "M22" ) +gap> subord:= Size( UnderlyingGroup( tom ) ) / 770; +576 +gap> ord:= OrdersTom( tom );; +gap> tomstabs:= Filtered( [ 1 .. Length( ord ) ], i -> ord[i] = subord ); +[ 144 ] +The permutation representation of \(M_{22}\) on the right cosets of such a subgroup \(S\) is contained in the ATLAS of Group Representations.
+ + ++ ++gap> DisplayAtlasInfo( "M22", NrMovedPoints, 770 ); +Representations for G = M22: (all refer to std. generators 1) +---------------------------- +12: G <= Sym(770) rank 9, on cosets of (A4xA4):4 < 2^4:A6 +Now we verify the information shown about the point stabilizer and about the maximal overgroups of \(S\) in \(M_{22}\).
+ + ++ ++gap> maxtom:= MaximalSubgroupsTom( tom ); +[ [ 155, 154, 153, 152, 151, 150, 146, 145 ], + [ 22, 77, 176, 176, 231, 330, 616, 672 ] ] +gap> List( tomstabs, i -> List( maxtom[1], j -> ContainedTom( tom, i, j ) ) ); +[ [ 0, 10, 0, 0, 0, 0, 0, 0 ] ] +We see that the only maximal subgroups of \(M_{22}\) that contain \(S\) have index \(77\) in \(M_{22}\). According to the ATLAS of Finite Groups, these maximal subgroups have the structure \(2^4:A_6\). From that and from the structure of \(A_6\), we conclude that \(S\) has the structure \(2^4:(3^2:4)\).
+ +Alternatively, we look at the permutation representation of degree \(770\). We fetch it from the ATLAS of Group Representations. There is exactly one nontrivial block system for this representation, with \(77\) blocks of length \(10\).
+ + ++ ++gap> g:= AtlasGroup( "M22", NrMovedPoints, 770 ); +<permutation group of size 443520 with 2 generators> +gap> allbl:= AllBlocks( g );; +gap> List( allbl, Length ); +[ 10 ] +Furthermore, GAP computes that the point stabilizer \(S\) has the structure \((A_4 \times A_4):4\).
+ + ++ + + ++gap> stab:= Stabilizer( g, 1 );; +gap> StructureDescription( stab : nice ); +"(A4 x A4) : C4" +gap> blocks:= Orbit( g, allbl[1], OnSets );; +gap> act:= Action( g, blocks, OnSets );; +gap> StructureDescription( Stabilizer( act, 1 ) ); +"(C2 x C2 x C2 x C2) : A6" +2.4-7 Example: Index \(462\) Subgroups in \(M_{22}\)
+ +The ATLAS of Group Representations contains three degree \(462\) permutation representations of the group \(M_{22}\).
+ + ++ ++gap> DisplayAtlasInfo( "M22", NrMovedPoints, 462 ); +Representations for G = M22: (all refer to std. generators 1) +---------------------------- +7: G <= Sym(462a) rank 5, on cosets of 2^4:A5 < 2^4:A6 +8: G <= Sym(462b) rank 8, on cosets of 2^4:A5 < L3(4), 2^4:S5 +9: G <= Sym(462c) rank 8, on cosets of 2^4:A5 < L3(4), 2^4:A6 +The point stabilizers in these three representations have the structure \(2^4:A_5\). Using GAP's Library of Tables of Marks, we can show that these stabilizers are exactly the three classes of subgroups of order \(960\) in \(M_{22}\). For that, we first verify that the group generators stored in GAP's table of marks coincide with the standard generators used by the ATLAS of Group Representations.
+ + ++ ++gap> tom:= TableOfMarks( "M22" ); +TableOfMarks( "M22" ) +gap> genstom:= GeneratorsOfGroup( UnderlyingGroup( tom ) );; +gap> checkM22:= AtlasProgram( "M22", "check" ); +rec( groupname := "M22", identifier := [ "M22", "M22G1-check1", 1, 1 ] + , program := <straight line decision>, standardization := 1, + version := "1" ) +gap> ResultOfStraightLineDecision( checkM22.program, genstom ); +true +There are indeed three classes of subgroups of order \(960\) in \(M_{22}\).
+ + ++ ++gap> ord:= OrdersTom( tom );; +gap> tomstabs:= Filtered( [ 1 .. Length( ord ) ], i -> ord[i] = 960 ); +[ 147, 148, 149 ] +Now we compute representatives of these three classes in the three representations
+ + +462a
,462b
, and462c
. We see that each of the three classes occurs as a point stabilizer in exactly one of the three representations.+ ++gap> atlasreps:= AllAtlasGeneratingSetInfos( "M22", NrMovedPoints, 462 ); +[ rec( charactername := "1a+21a+55a+154a+231a", + constituents := [ 1, 2, 5, 7, 9 ], contents := "core", + groupname := "M22", id := "a", + identifier := + [ "M22", [ "M22G1-p462aB0.m1", "M22G1-p462aB0.m2" ], 1, 462 ], + isPrimitive := false, p := 462, rankAction := 5, + repname := "M22G1-p462aB0", repnr := 7, size := 443520, + stabilizer := "2^4:A5 < 2^4:A6", standardization := 1, + transitivity := 1, type := "perm" ), + rec( charactername := "1a+21a^2+55a+154a+210a", + constituents := [ 1, [ 2, 2 ], 5, 7, 8 ], contents := "core", + groupname := "M22", id := "b", + identifier := + [ "M22", [ "M22G1-p462bB0.m1", "M22G1-p462bB0.m2" ], 1, 462 ], + isPrimitive := false, p := 462, rankAction := 8, + repname := "M22G1-p462bB0", repnr := 8, size := 443520, + stabilizer := "2^4:A5 < L3(4), 2^4:S5", standardization := 1, + transitivity := 1, type := "perm" ), + rec( charactername := "1a+21a^2+55a+154a+210a", + constituents := [ 1, [ 2, 2 ], 5, 7, 8 ], contents := "core", + groupname := "M22", id := "c", + identifier := + [ "M22", [ "M22G1-p462cB0.m1", "M22G1-p462cB0.m2" ], 1, 462 ], + isPrimitive := false, p := 462, rankAction := 8, + repname := "M22G1-p462cB0", repnr := 9, size := 443520, + stabilizer := "2^4:A5 < L3(4), 2^4:A6", standardization := 1, + transitivity := 1, type := "perm" ) ] +gap> atlasreps:= List( atlasreps, AtlasGroup );; +gap> tomstabreps:= List( atlasreps, G -> List( tomstabs, +> i -> RepresentativeTomByGenerators( tom, i, GeneratorsOfGroup( G ) ) ) );; +gap> List( tomstabreps, x -> List( x, NrMovedPoints ) ); +[ [ 462, 462, 461 ], [ 460, 462, 462 ], [ 462, 461, 462 ] ] +More precisely, we see that the point stabilizers in the three representations
+ +462a
,462b
,462c
lie in the subgroup classes \(149\), \(147\), \(148\), respectively, of the table of marks.The point stabilizers in the representations
+ + +462b
and462c
are isomorphic, but not isomorphic with the point stabilizer in462a
.+ ++gap> stabs:= List( atlasreps, G -> Stabilizer( G, 1 ) );; +gap> List( stabs, IdGroup ); +[ [ 960, 11358 ], [ 960, 11357 ], [ 960, 11357 ] ] +gap> List( stabs, PerfectIdentification ); +[ [ 960, 2 ], [ 960, 1 ], [ 960, 1 ] ] +The three representations are imprimitive. The containment of the point stabilizers in maximal subgroups of \(M_{22}\) can be computed using the table of marks of \(M_{22}\).
+ + ++ ++gap> maxtom:= MaximalSubgroupsTom( tom ); +[ [ 155, 154, 153, 152, 151, 150, 146, 145 ], + [ 22, 77, 176, 176, 231, 330, 616, 672 ] ] +gap> List( tomstabs, i -> List( maxtom[1], j -> ContainedTom( tom, i, j ) ) ); +[ [ 21, 0, 0, 0, 1, 0, 0, 0 ], [ 21, 6, 0, 0, 0, 0, 0, 0 ], + [ 0, 6, 0, 0, 0, 0, 0, 0 ] ] +We see:
+ + ++
+- +
The point stabilizers in
+ +462a
(subgroups in the class \(149\) of the table of marks) are contained only in maximal subgroups in class \(154\); these groups have the structure \(2^4:A_6\).- +
The point stabilizers in
+ +462b
(subgroups in the class \(147\)) are contained in maximal subgroups in the classes \(155\) and \(151\); these groups have the structures \(L_3(4)\) and \(2^4:S_5\), respectively.- +
The point stabilizers in
+ +462c
(subgroups in the class \(148\)) are contained in maximal subgroups in the classes \(155\) and \(154\).We identify the supergroups of the point stabilizers by computing the block systems.
+ + ++ ++gap> bl:= List( atlasreps, AllBlocks );; +gap> List( bl, Length ); +[ 1, 3, 2 ] +gap> List( bl, l -> List( l, Length ) ); +[ [ 6 ], [ 21, 21, 2 ], [ 21, 6 ] ] +Note that the two block systems with blocks of length \(21\) for
+ +462b
belong to the same supergroups (of the type \(L_3(4)\)); each of these subgroups fixes two different subsets of \(21\) points.The representation
+ +462a
is multiplicity-free, that is, it splits into a sum of pairwise nonisomorphic irreducible representations. This can be seen from the fact that the rank of this permutation representation (that is, the number of orbits of the point stabilizer) is five; each permutation representation with this property is multiplicity-free.The other two representations have rank eight. We have seen the ranks in the overview that was shown by
+ + +DisplayAtlasInfo
(3.5-1) in the beginning. Now we compute the ranks from the permutation groups.+ ++gap> List( atlasreps, RankAction ); +[ 5, 8, 8 ] +In fact the two representations
+ + +462b
and462c
have the same permutation character. We check this by computing the possible permutation characters of degree \(462\) for \(M_{22}\), and decomposing them into irreducible characters, using the character table from GAP's Character Table Library.+ ++gap> t:= CharacterTable( "M22" );; +gap> perms:= PermChars( t, 462 ); +[ Character( CharacterTable( "M22" ), + [ 462, 30, 3, 2, 2, 2, 3, 0, 0, 0, 0, 0 ] ), + Character( CharacterTable( "M22" ), + [ 462, 30, 12, 2, 2, 2, 0, 0, 0, 0, 0, 0 ] ) ] +gap> MatScalarProducts( t, Irr( t ), perms ); +[ [ 1, 1, 0, 0, 1, 0, 1, 0, 1, 0, 0, 0 ], + [ 1, 2, 0, 0, 1, 0, 1, 1, 0, 0, 0, 0 ] ] +In particular, we see that the rank eight characters are not multiplicity-free.
+ + + + + + + +
+generated by GAPDoc2HTML
+ + diff -Nru gap-atlasrep-1.5.1/doc/chap2.txt gap-atlasrep-2.1.0/doc/chap2.txt --- gap-atlasrep-1.5.1/doc/chap2.txt 2016-04-06 12:18:13.000000000 +0000 +++ gap-atlasrep-2.1.0/doc/chap2.txt 2019-06-21 15:10:33.000000000 +0000 @@ -3,43 +3,79 @@ [33X[0;0YThis chapter gives an overview of the basic functionality provided by the [5XAtlasRep[105X package. The main concepts and interface functions are presented in - the first sections, and Section [14X2.4[114X shows a few small examples.[133X + the first three sections, and Section [14X2.4[114X shows a few small examples.[133X + [33X[0;0YLet us first fix the setup for the examples shown in the package manual.[133X - [1X2.1 [33X[0;0YAccessing a Specific Group in [5XAtlasRep[105X[101X[1X[133X[101X + [31X1[131X [33X[0;6YFirst of all, we load the [5XAtlasRep[105X package. Some of the examples + require also the [5XGAP[105X packages [5XCTblLib[105X and [5XTomLib[105X, so we load also + these packages.[133X + + [4X [32X Example [32X[104X + [4X[25Xgap>[125X [27XLoadPackage( "AtlasRep", false );[127X[104X + [4X[28Xtrue[128X[104X + [4X[25Xgap>[125X [27XLoadPackage( "CTblLib", false );[127X[104X + [4X[28Xtrue[128X[104X + [4X[25Xgap>[125X [27XLoadPackage( "TomLib", false );[127X[104X + [4X[28Xtrue[128X[104X + [4X[32X[104X + + [31X2[131X [33X[0;6YDepending on the terminal capabilities, the output of [2XDisplayAtlasInfo[102X + ([14X3.5-1[114X) may contain non-ASCII characters, which are not supported by + the LaTeX and HTML versions of [5XGAPDoc[105X documents. The examples in this + manual are used for tests of the package's functionality, thus we set + the user preference [10XDisplayFunction[110X (see Section [14X4.2-12[114X) to the value + [10X"Print"[110X in order to produce output consisting only of ASCII + characters, which is assumed to work in any terminal.[133X + + [4X [32X Example [32X[104X + [4X[25Xgap>[125X [27Xorigpref:= UserPreference( "AtlasRep", "DisplayFunction" );;[127X[104X + [4X[25Xgap>[125X [27XSetUserPreference( "AtlasRep", "DisplayFunction", "Print" );[127X[104X + [4X[32X[104X + + [31X3[131X [33X[0;6YThe [5XGAP[105X output for the examples may look differently if data + extensions have been loaded. In order to ignore these extensions in + the examples, we unload them.[133X + + [4X [32X Example [32X[104X + [4X[25Xgap>[125X [27Xpriv:= Difference([127X[104X + [4X[25X>[125X [27X List( AtlasOfGroupRepresentationsInfo.notified, x -> x.ID ),[127X[104X + [4X[25X>[125X [27X [ "core", "internal" ] );;[127X[104X + [4X[25Xgap>[125X [27XPerform( priv, AtlasOfGroupRepresentationsForgetData );[127X[104X + [4X[32X[104X + + [31X4[131X [33X[0;6YIf the info level of [2XInfoAtlasRep[102X ([14X7.1-1[114X) is larger than zero then + additional output appears on the screen. In order to avoid this + output, we set the level to zero.[133X + + [4X [32X Example [32X[104X + [4X[25Xgap>[125X [27Xgloballevel:= InfoLevel( InfoAtlasRep );;[127X[104X + [4X[25Xgap>[125X [27XSetInfoLevel( InfoAtlasRep, 0 );[127X[104X + [4X[32X[104X - [33X[0;0YThe [5XAtlasRep[105X package gives access to a database, the [5XATLAS[105X of Group - Representations [ATLAS], that contains generators and related data for - several groups, mainly for extensions of simple groups (see Section [14X2.1-1[114X) - and for their maximal subgroups (see Section [14X2.1-2[114X).[133X - [33X[0;0YNote that the data are not part of the package. They are fetched from a web - server as soon as they are needed for the first time, see Section [14X4.3-1[114X.[133X + [1X2.1 [33X[0;0YAccessing a Specific Group in [5XAtlasRep[105X[101X[1X[133X[101X - [33X[0;0YFirst of all, we load the [5XAtlasRep[105X package. Some of the examples require - also the [5XGAP[105X packages [5XCTblLib[105X and [5XTomLib[105X, so we load also these packages.[133X + [33X[0;0YAn important database to which the [5XAtlasRep[105X package gives access is the + [5XATLAS[105X of Group Representations [WWT+]. It contains generators and related + data for several groups, mainly for extensions of simple groups (see + Section [14X2.1-1[114X) and for their maximal subgroups (see Section [14X2.1-2[114X).[133X - [4X[32X Example [32X[104X - [4X[25Xgap>[125X [27XLoadPackage( "AtlasRep" );[127X[104X - [4X[28Xtrue[128X[104X - [4X[25Xgap>[125X [27XLoadPackage( "CTblLib" );[127X[104X - [4X[28Xtrue[128X[104X - [4X[25Xgap>[125X [27XLoadPackage( "TomLib" );[127X[104X - [4X[28Xtrue[128X[104X - [4X[32X[104X + [33X[0;0YIn general, these data are not part of the package. They are downloaded as + soon as they are needed for the first time, see Section [14X4.2-1[114X.[133X [1X2.1-1 [33X[0;0YAccessing a Group in [5XAtlasRep[105X[101X[1X via its Name[133X[101X [33X[0;0YEach group that occurs in this database is specified by a [13Xname[113X, which is a - string similar to the name used in the [5XATLAS[105X of Finite Groups [CCNPW85]. For + string similar to the name used in the [5XATLAS[105X of Finite Groups [CCN+85]. For those groups whose character tables are contained in the [5XGAP[105X Character Table Library [Bre13], the names are equal to the [2XIdentifier[102X ([14XReference: - Identifier (for character tables)[114X) values of these character tables. - Examples of such names are [10X"M24"[110X for the Mathieu group [22XM_24[122X, [10X"2.A6"[110X for the - double cover of the alternating group [22XA_6[122X, and [10X"2.A6.2_1"[110X for the double - cover of the symmetric group [22XS_6[122X. The names that actually occur are listed - in the first column of the overview table that is printed by the function + Identifier for character tables[114X) values of these character tables. Examples + of such names are [10X"M24"[110X for the Mathieu group [22XM_24[122X, [10X"2.A6"[110X for the double + cover of the alternating group [22XA_6[122X, and [10X"2.A6.2_1"[110X for the double cover of + the symmetric group [22XS_6[122X. The names that actually occur are listed in the + first column of the overview table that is printed by the function [2XDisplayAtlasInfo[102X ([14X3.5-1[114X), called without arguments, see below. The other columns of the table describe the data that are available in the database.[133X @@ -55,7 +91,7 @@ [4X[28X2.A5.2 | 11 | 4 | | | | | + | + [128X[104X [4X[28X2.A6 | 18 | 5 | | | | | | [128X[104X [4X[28X2.A6.2_1 | 3 | 6 | | | | | | [128X[104X - [4X[28X2.A7 | 24 | | | | | | | [128X[104X + [4X[28X2.A7 | 24 | 2 | | | | | | [128X[104X [4X[28X2.A7.2 | 7 | | | | | | | [128X[104X [4X[28X...[128X[104X [4X[28XM22 | 58 | 8 | + | + | | + | + | + [128X[104X @@ -67,50 +103,57 @@ [4X[28XO7(3) | 28 | | | | | | | [128X[104X [4X[28XO7(3).2 | 3 | | | | | | | [128X[104X [4X[28X...[128X[104X + [4X[28XSuz | 30 | 17 | | + | 2 | + | + | [128X[104X + [4X[28X...[128X[104X [4X[32X[104X [33X[0;0YCalled with a group name as the only argument, the function [2XAtlasGroup[102X - ([14X3.5-7[114X) returns a group isomorphic to the group with the given name. If - permutation generators are available in the database then a permutation - group (of smallest available degree) is returned, otherwise a matrix group.[133X + ([14X3.5-8[114X) returns a group isomorphic to the group with the given name, or + [9Xfail[109X. If permutation generators are available in the database then a + permutation group (of smallest available degree) is returned, otherwise a + matrix group.[133X [4X[32X Example [32X[104X [4X[25Xgap>[125X [27Xg:= AtlasGroup( "M24" );[127X[104X [4X[28XGroup([ (1,4)(2,7)(3,17)(5,13)(6,9)(8,15)(10,19)(11,18)(12,21)(14,16)[128X[104X - [4X[28X(20,24)(22,23), (1,4,6)(2,21,14)(3,9,15)(5,18,10)(13,17,16)[128X[104X - [4X[28X(19,24,23) ])[128X[104X + [4X[28X (20,24)(22,23), (1,4,6)(2,21,14)(3,9,15)(5,18,10)(13,17,16)[128X[104X + [4X[28X (19,24,23) ])[128X[104X [4X[25Xgap>[125X [27XIsPermGroup( g ); NrMovedPoints( g ); Size( g );[127X[104X [4X[28Xtrue[128X[104X [4X[28X24[128X[104X [4X[28X244823040[128X[104X + [4X[25Xgap>[125X [27XAtlasGroup( "J5" );[127X[104X + [4X[28Xfail[128X[104X [4X[32X[104X [1X2.1-2 [33X[0;0YAccessing a Maximal Subgroup of a Group in [5XAtlasRep[105X[101X[1X[133X[101X [33X[0;0YMany maximal subgroups of extensions of simple groups can be constructed - using the function [2XAtlasSubgroup[102X ([14X3.5-8[114X). Given the name of the extension of + using the function [2XAtlasSubgroup[102X ([14X3.5-9[114X). Given the name of the extension of the simple group and the number of the conjugacy class of maximal subgroups, this function returns a representative from this class.[133X [4X[32X Example [32X[104X [4X[25Xgap>[125X [27Xg:= AtlasSubgroup( "M24", 1 );[127X[104X [4X[28XGroup([ (2,10)(3,12)(4,14)(6,9)(8,16)(15,18)(20,22)(21,24), (1,7,2,9)[128X[104X - [4X[28X(3,22,10,23)(4,19,8,12)(5,14)(6,18)(13,16,17,24) ])[128X[104X + [4X[28X (3,22,10,23)(4,19,8,12)(5,14)(6,18)(13,16,17,24) ])[128X[104X [4X[25Xgap>[125X [27XIsPermGroup( g ); NrMovedPoints( g ); Size( g );[127X[104X [4X[28Xtrue[128X[104X [4X[28X23[128X[104X [4X[28X10200960[128X[104X + [4X[25Xgap>[125X [27XAtlasSubgroup( "M24", 100 );[127X[104X + [4X[28Xfail[128X[104X [4X[32X[104X [33X[0;0YThe classes of maximal subgroups are ordered w. r. t. decreasing subgroup - order. So the first class contains the largest maximal subgroups.[133X + order. So the first class contains maximal subgroups of smallest index.[133X - [33X[0;0YNote that groups obtained by [2XAtlasSubgroup[102X ([14X3.5-8[114X) may be not very suitable + [33X[0;0YNote that groups obtained by [2XAtlasSubgroup[102X ([14X3.5-9[114X) may be not very suitable for computations in the sense that much nicer representations exist. For example, the sporadic simple O'Nan group [22XO'N[122X contains a maximal subgroup [22XS[122X isomorphic with the Janko group [22XJ_1[122X; the smallest permutation representation - of [22XO'N[122X has degree [22X122760[122X, so restricting this representation to [22XS[122X yields a + of [22XO'N[122X has degree [22X122760[122X, and restricting this representation to [22XS[122X yields a representation of [22XJ_1[122X of that degree. However, [22XJ_1[122X has a faithful permutation representation of degree [22X266[122X, which admits much more efficient computations. If you are just interested in [22XJ_1[122X and not in its embedding @@ -143,8 +186,8 @@ [33X[0;0YIf you have a group [22XG[122X, say, and you are really interested in the embedding of a maximal subgroup of [22XG[122X into [22XG[122X then an easy way to get compatible - generators is to create [22XG[122X with [2XAtlasGroup[102X ([14X3.5-7[114X) and then to call - [2XAtlasSubgroup[102X ([14X3.5-8[114X) with first argument the group [22XG[122X.[133X + generators is to create [22XG[122X with [2XAtlasGroup[102X ([14X3.5-8[114X) and then to call + [2XAtlasSubgroup[102X ([14X3.5-9[114X) with first argument the group [22XG[122X.[133X [4X[32X Example [32X[104X [4X[25Xgap>[125X [27Xg:= AtlasGroup( "ON" );[127X[104X @@ -170,34 +213,37 @@ [4X[28X 1: G <= Sym(5) 3-trans., on cosets of A4 (1st max.)[128X[104X [4X[28X 2: G <= Sym(6) 2-trans., on cosets of D10 (2nd max.)[128X[104X [4X[28X 3: G <= Sym(10) rank 3, on cosets of S3 (3rd max.)[128X[104X - [4X[28X 4: G <= GL(4a,2) [128X[104X - [4X[28X 5: G <= GL(4b,2) [128X[104X - [4X[28X 6: G <= GL(4,3) [128X[104X - [4X[28X 7: G <= GL(6,3) [128X[104X - [4X[28X 8: G <= GL(2a,4) [128X[104X - [4X[28X 9: G <= GL(2b,4) [128X[104X - [4X[28X10: G <= GL(3,5) [128X[104X - [4X[28X11: G <= GL(5,5) [128X[104X - [4X[28X12: G <= GL(3a,9) [128X[104X - [4X[28X13: G <= GL(3b,9) [128X[104X - [4X[28X14: G <= GL(4,Z) [128X[104X - [4X[28X15: G <= GL(5,Z) [128X[104X - [4X[28X16: G <= GL(6,Z) [128X[104X - [4X[28X17: G <= GL(3a,Field([Sqrt(5)])) [128X[104X - [4X[28X18: G <= GL(3b,Field([Sqrt(5)])) [128X[104X + [4X[28X 4: G <= GL(4a,2) character 4a[128X[104X + [4X[28X 5: G <= GL(4b,2) character 2ab[128X[104X + [4X[28X 6: G <= GL(4,3) character 4a[128X[104X + [4X[28X 7: G <= GL(6,3) character 3ab[128X[104X + [4X[28X 8: G <= GL(2a,4) character 2a[128X[104X + [4X[28X 9: G <= GL(2b,4) character 2b[128X[104X + [4X[28X10: G <= GL(3,5) character 3a[128X[104X + [4X[28X11: G <= GL(5,5) character 5a[128X[104X + [4X[28X12: G <= GL(3a,9) character 3a[128X[104X + [4X[28X13: G <= GL(3b,9) character 3b[128X[104X + [4X[28X14: G <= GL(4,Z) character 4a[128X[104X + [4X[28X15: G <= GL(5,Z) character 5a[128X[104X + [4X[28X16: G <= GL(6,Z) character 3ab[128X[104X + [4X[28X17: G <= GL(3a,Field([Sqrt(5)])) character 3a[128X[104X + [4X[28X18: G <= GL(3b,Field([Sqrt(5)])) character 3b[128X[104X [4X[28X[128X[104X [4X[28XPrograms for G = A5: (all refer to std. generators 1)[128X[104X [4X[28X--------------------[128X[104X - [4X[28Xpresentation[128X[104X - [4X[28Xstd. gen. checker[128X[104X - [4X[28Xmaxes (all 3):[128X[104X - [4X[28X 1: A4[128X[104X - [4X[28X 2: D10[128X[104X - [4X[28X 3: S3[128X[104X + [4X[28X- class repres.* [128X[104X + [4X[28X- presentation [128X[104X + [4X[28X- maxes (all 3):[128X[104X + [4X[28X 1: A4 [128X[104X + [4X[28X 2: D10 [128X[104X + [4X[28X 3: S3 [128X[104X + [4X[28X- std. gen. checker:[128X[104X + [4X[28X (check) [128X[104X + [4X[28X (pres) [128X[104X [4X[32X[104X [33X[0;0YIn order to fetch one of the listed permutation groups or matrix groups, you - can call [2XAtlasGroup[102X ([14X3.5-7[114X) with second argument the function [2XPosition[102X + can call [2XAtlasGroup[102X ([14X3.5-8[114X) with second argument the function [2XPosition[102X ([14XReference: Position[114X) and third argument the position in the list.[133X [4X[32X Example [32X[104X @@ -205,8 +251,8 @@ [4X[28XGroup([ (1,2)(3,4), (1,3,5) ])[128X[104X [4X[32X[104X - [33X[0;0YNote that this approach may yield a different group after an update of the - database, if new data for the group become available.[133X + [33X[0;0YNote that this approach may yield a different group after a data extension + has been loaded.[133X [33X[0;0YAlternatively, you can describe the desired group by conditions, such as the degree in the case of a permutation group, and the dimension and the base @@ -220,7 +266,7 @@ [4X[32X[104X [33X[0;0YThe same holds for the restriction to maximal subgroups: Use [2XAtlasSubgroup[102X - ([14X3.5-8[114X) with the same arguments as [2XAtlasGroup[102X ([14X3.5-7[114X), except that + ([14X3.5-9[114X) with the same arguments as [2XAtlasGroup[102X ([14X3.5-8[114X), except that additionally the number of the class of maximal subgroups is entered as the last argument. Note that the conditions refer to the group, not to the subgroup; it may happen that the subgroup moves fewer points than the big @@ -251,26 +297,29 @@ [33X[0;0YSo instead of thinking about several generating sets of a group [22XG[122X, say, we can think about one abstract group [22XG[122X, with one fixed set of generators, and mapping these generators to any set of generators provided by [5XAtlasRep[105X - defines a representation of [22XG[122X. This viewpoint motivates the name [21X[5XATLAS[105X of - Group Representations[121X for the database.[133X + defines a representation of [22XG[122X. This viewpoint had motivated the name [21X[5XATLAS[105X + of Group Representations[121X for the core part of the database.[133X [33X[0;0YIf you are interested in the generators provided by the database rather than in the groups they generate, you can use the function - [2XOneAtlasGeneratingSetInfo[102X ([14X3.5-5[114X) instead of [2XAtlasGroup[102X ([14X3.5-7[114X), with the + [2XOneAtlasGeneratingSetInfo[102X ([14X3.5-6[114X) instead of [2XAtlasGroup[102X ([14X3.5-8[114X), with the same arguments. This will yield a record that describes the representation - in question. Calling the function [2XAtlasGenerators[102X ([14X3.5-2[114X) with this record + in question. Calling the function [2XAtlasGenerators[102X ([14X3.5-3[114X) with this record will then yield a record with the additional component [10Xgenerators[110X, which holds the list of generators.[133X [4X[32X Example [32X[104X [4X[25Xgap>[125X [27Xinfo:= OneAtlasGeneratingSetInfo( "A5", NrMovedPoints, 10 );[127X[104X - [4X[28Xrec( groupname := "A5", id := "", [128X[104X + [4X[28Xrec( charactername := "1a+4a+5a", constituents := [ 1, 4, 5 ], [128X[104X + [4X[28X contents := "core", groupname := "A5", id := "", [128X[104X [4X[28X identifier := [ "A5", [ "A5G1-p10B0.m1", "A5G1-p10B0.m2" ], 1, 10 ],[128X[104X [4X[28X isPrimitive := true, maxnr := 3, p := 10, rankAction := 3, [128X[104X [4X[28X repname := "A5G1-p10B0", repnr := 3, size := 60, stabilizer := "S3",[128X[104X [4X[28X standardization := 1, transitivity := 1, type := "perm" )[128X[104X [4X[25Xgap>[125X [27Xinfo2:= AtlasGenerators( info );[127X[104X - [4X[28Xrec( generators := [ (2,4)(3,5)(6,8)(7,10), (1,2,3)(4,6,7)(5,8,9) ], [128X[104X + [4X[28Xrec( charactername := "1a+4a+5a", constituents := [ 1, 4, 5 ], [128X[104X + [4X[28X contents := "core", [128X[104X + [4X[28X generators := [ (2,4)(3,5)(6,8)(7,10), (1,2,3)(4,6,7)(5,8,9) ], [128X[104X [4X[28X groupname := "A5", id := "", [128X[104X [4X[28X identifier := [ "A5", [ "A5G1-p10B0.m1", "A5G1-p10B0.m2" ], 1, 10 ],[128X[104X [4X[28X isPrimitive := true, maxnr := 3, p := 10, rankAction := 3, [128X[104X @@ -280,17 +329,31 @@ [4X[28X[ (2,4)(3,5)(6,8)(7,10), (1,2,3)(4,6,7)(5,8,9) ][128X[104X [4X[32X[104X + [33X[0;0YThe record [10Xinfo[110X appears as the value of the attribute [2XAtlasRepInfoRecord[102X + ([14X3.5-10[114X) in groups that are returned by [2XAtlasGroup[102X ([14X3.5-8[114X).[133X + + [4X[32X Example [32X[104X + [4X[25Xgap>[125X [27Xg:= AtlasGroup( "A5", NrMovedPoints, 10 );;[127X[104X + [4X[25Xgap>[125X [27XAtlasRepInfoRecord( g );[127X[104X + [4X[28Xrec( charactername := "1a+4a+5a", constituents := [ 1, 4, 5 ], [128X[104X + [4X[28X contents := "core", groupname := "A5", id := "", [128X[104X + [4X[28X identifier := [ "A5", [ "A5G1-p10B0.m1", "A5G1-p10B0.m2" ], 1, 10 ],[128X[104X + [4X[28X isPrimitive := true, maxnr := 3, p := 10, rankAction := 3, [128X[104X + [4X[28X repname := "A5G1-p10B0", repnr := 3, size := 60, stabilizer := "S3",[128X[104X + [4X[28X standardization := 1, transitivity := 1, type := "perm" )[128X[104X + [4X[32X[104X + [1X2.3-2 [33X[0;0YStraight Line Programs[133X[101X [33X[0;0YFor computing certain group elements from standard generators, such as generators of a subgroup or class representatives, [5XAtlasRep[105X uses [13Xstraight line programs[113X, see [14X'Reference: Straight Line Programs'[114X. Essentially this - means to evaluate words in the generators, similar to [2XMappedWord[102X ([14XReference: - MappedWord[114X) but more efficiently.[133X + means to evaluate words in the generators, which is similar to [2XMappedWord[102X + ([14XReference: MappedWord[114X) but can be more efficient.[133X [33X[0;0YIt can be useful to deal with these straight line programs, see [2XAtlasProgram[102X - ([14X3.5-3[114X). For example, an automorphism [22Xα[122X, say, of the group [22XG[122X, if available + ([14X3.5-4[114X). For example, an automorphism [22Xα[122X, say, of the group [22XG[122X, if available in [5XAtlasRep[105X, is given by a straight line program that defines the images of standard generators of [22XG[122X. This way, one can for example compute the image of a subgroup [22XU[122X of [22XG[122X under [22Xα[122X by first applying the straight line program for [22Xα[122X @@ -300,11 +363,12 @@ [4X[32X Example [32X[104X [4X[25Xgap>[125X [27Xprginfo:= AtlasProgramInfo( "A5", "maxes", 1 );[127X[104X [4X[28Xrec( groupname := "A5", identifier := [ "A5", "A5G1-max1W1", 1 ], [128X[104X - [4X[28X size := 12, standardization := 1, subgroupname := "A4" )[128X[104X + [4X[28X size := 12, standardization := 1, subgroupname := "A4", [128X[104X + [4X[28X version := "1" )[128X[104X [4X[25Xgap>[125X [27Xprg:= AtlasProgram( prginfo.identifier );[127X[104X [4X[28Xrec( groupname := "A5", identifier := [ "A5", "A5G1-max1W1", 1 ], [128X[104X [4X[28X program :=, size := 12, [128X[104X - [4X[28X standardization := 1, subgroupname := "A4" )[128X[104X + [4X[28X standardization := 1, subgroupname := "A4", version := "1" )[128X[104X [4X[25Xgap>[125X [27XDisplay( prg.program );[127X[104X [4X[28X# input:[128X[104X [4X[28Xr:= [ g1, g2 ];[128X[104X @@ -356,7 +420,7 @@ [33X[0;0YSo we decide to work with this representation. We fetch the generators and compute the list of class representatives of [22XM_11[122X in the representation. The ordering of class representatives is the same as that in the character table - of the [5XATLAS[105X of Finite Groups ([CCNPW85]), which coincides with the ordering + of the [5XATLAS[105X of Finite Groups ([CCN+85]), which coincides with the ordering of columns in the [5XGAP[105X table we have fetched above.[133X [4X[32X Example [32X[104X @@ -367,7 +431,7 @@ [4X[28Xrec( groupname := "M11", identifier := [ "M11", "M11G1-cclsW1", 1 ], [128X[104X [4X[28X outputs := [ "1A", "2A", "3A", "4A", "5A", "6A", "8A", "8B", "11A", [128X[104X [4X[28X "11B" ], program := , [128X[104X - [4X[28X standardization := 1 )[128X[104X + [4X[28X standardization := 1, version := "1" )[128X[104X [4X[25Xgap>[125X [27Xreps:= ResultOfStraightLineProgram( ccls.program, gens.generators );;[127X[104X [4X[32X[104X @@ -467,7 +531,8 @@ [33X[0;0YNote that this group is [13Xnot[113X equal to the group obtained by fetching the permutation representation from the database. This is due to a different - numbering of the points, so the groups are permutation isomorphic.[133X + numbering of the points, thus the groups are permutation isomorphic, that + is, they are conjugate in the symmetric group on eleven points.[133X [4X[32X Example [32X[104X [4X[25Xgap>[125X [27Xpermgrp:= Group( AtlasGenerators( "M11", 1 ).generators );;[127X[104X @@ -490,23 +555,23 @@ [4X[25Xgap>[125X [27XDisplayAtlasInfo( "G2(3)", IsStraightLineProgram );[127X[104X [4X[28XPrograms for G = G2(3): (all refer to std. generators 1)[128X[104X [4X[28X-----------------------[128X[104X - [4X[28Xclass repres.[128X[104X - [4X[28Xpresentation[128X[104X - [4X[28Xrepr. cyc. subg.[128X[104X - [4X[28Xstd. gen. checker[128X[104X - [4X[28Xautomorphisms:[128X[104X - [4X[28X 2[128X[104X - [4X[28Xmaxes (all 10):[128X[104X - [4X[28X 1: U3(3).2[128X[104X - [4X[28X 2: U3(3).2[128X[104X - [4X[28X 3: (3^(1+2)+x3^2):2S4[128X[104X - [4X[28X 4: (3^(1+2)+x3^2):2S4[128X[104X - [4X[28X 5: L3(3).2[128X[104X - [4X[28X 6: L3(3).2[128X[104X - [4X[28X 7: L2(8).3[128X[104X - [4X[28X 8: 2^3.L3(2)[128X[104X - [4X[28X 9: L2(13)[128X[104X - [4X[28X 10: 2^(1+4)+:3^2.2[128X[104X + [4X[28X- class repres. [128X[104X + [4X[28X- presentation [128X[104X + [4X[28X- repr. cyc. subg. [128X[104X + [4X[28X- std. gen. checker [128X[104X + [4X[28X- automorphisms:[128X[104X + [4X[28X 2 [128X[104X + [4X[28X- maxes (all 10):[128X[104X + [4X[28X 1: U3(3).2 [128X[104X + [4X[28X 2: U3(3).2 [128X[104X + [4X[28X 3: (3^(1+2)+x3^2):2S4 [128X[104X + [4X[28X 4: (3^(1+2)+x3^2):2S4 [128X[104X + [4X[28X 5: L3(3).2 [128X[104X + [4X[28X 6: L3(3).2 [128X[104X + [4X[28X 7: L2(8).3 [128X[104X + [4X[28X 8: 2^3.L3(2) [128X[104X + [4X[28X 9: L2(13) [128X[104X + [4X[28X 10: 2^(1+4)+:3^2.2 [128X[104X [4X[25Xgap>[125X [27Xprog:= AtlasProgram( "G2(3)", "automorphism", "2" ).program;;[127X[104X [4X[25Xgap>[125X [27Xinfo:= OneAtlasGeneratingSetInfo( "G2(3)", Dimension, 7 );;[127X[104X [4X[25Xgap>[125X [27Xgens:= AtlasGenerators( info ).generators;;[127X[104X @@ -583,7 +648,8 @@ [4X[32X Example [32X[104X [4X[25Xgap>[125X [27Xinfo:= OneAtlasGeneratingSetInfo( "M12", NrMovedPoints, 12 );[127X[104X - [4X[28Xrec( charactername := "1a+11a", groupname := "M12", id := "a", [128X[104X + [4X[28Xrec( charactername := "1a+11a", constituents := [ 1, 2 ], [128X[104X + [4X[28X contents := "core", groupname := "M12", id := "a", [128X[104X [4X[28X identifier := [ "M12", [ "M12G1-p12aB0.m1", "M12G1-p12aB0.m2" ], 1, [128X[104X [4X[28X 12 ], isPrimitive := true, maxnr := 1, p := 12, rankAction := 2,[128X[104X [4X[28X repname := "M12G1-p12aB0", repnr := 1, size := 95040, [128X[104X @@ -603,7 +669,8 @@ [4X[32X Example [32X[104X [4X[25Xgap>[125X [27XcheckM11:= AtlasProgram( "M11", "check" );[127X[104X [4X[28Xrec( groupname := "M11", identifier := [ "M11", "M11G1-check1", 1, 1 ][128X[104X - [4X[28X , program := , standardization := 1 )[128X[104X + [4X[28X , program := , standardization := 1, [128X[104X + [4X[28X version := "1" )[128X[104X [4X[25Xgap>[125X [27XResultOfStraightLineDecision( checkM11.program, gensM11 );[127X[104X [4X[28Xtrue[128X[104X [4X[32X[104X @@ -620,6 +687,52 @@ [4X[28Xtrue[128X[104X [4X[32X[104X + [33X[0;0YIn this case, we could also use the information that is stored about [22XM_11[122X, + as follows.[133X + + [4X[32X Example [32X[104X + [4X[25Xgap>[125X [27XDisplayAtlasInfo( "M11", IsStraightLineProgram );[127X[104X + [4X[28XPrograms for G = M11: (all refer to std. generators 1)[128X[104X + [4X[28X---------------------[128X[104X + [4X[28X- presentation [128X[104X + [4X[28X- repr. cyc. subg. [128X[104X + [4X[28X- std. gen. finder [128X[104X + [4X[28X- class repres.:[128X[104X + [4X[28X (direct) [128X[104X + [4X[28X (composed) [128X[104X + [4X[28X- maxes (all 5):[128X[104X + [4X[28X 1: A6.2_3 [128X[104X + [4X[28X 1: A6.2_3 (std. 1)[128X[104X + [4X[28X 2: L2(11) [128X[104X + [4X[28X 2: L2(11) (std. 1)[128X[104X + [4X[28X 3: 3^2:Q8.2 [128X[104X + [4X[28X 4: S5 [128X[104X + [4X[28X 4: S5 (std. 1)[128X[104X + [4X[28X 5: 2.S4 [128X[104X + [4X[28X- standardizations of maxes:[128X[104X + [4X[28X from 1st max., version 1 to A6.2_3, std. 1 [128X[104X + [4X[28X from 2nd max., version 1 to L2(11), std. 1 [128X[104X + [4X[28X from 4th max., version 1 to A5.2, std. 1 [128X[104X + [4X[28X- std. gen. checker:[128X[104X + [4X[28X (check) [128X[104X + [4X[28X (pres) [128X[104X + [4X[32X[104X + + [33X[0;0YThe entry [21Xstd.1[121X in the line about the maximal subgroup of type [22XL_2(11)[122X means + that a straight line program for computing [13Xstandard[113X generators (in + standardization 1) of the subgroup. This program can be fetched as follows.[133X + + [4X[32X Example [32X[104X + [4X[25Xgap>[125X [27XrestL211std:= AtlasProgram( "M11", "maxes", 2, 1 );;[127X[104X + [4X[25Xgap>[125X [27XResultOfStraightLineProgram( restL211std.program, gensM11 );[127X[104X + [4X[28X[ (3,9)(4,12)(5,10)(6,8), (1,11,9)(2,12,8)(3,6,10) ][128X[104X + [4X[32X[104X + + [33X[0;0YWe see that we get the same generators for the subgroup as above. (In fact + the second approach first applies the same program as is given by + [10XrestL211.program[110X, and then applies a program to the results that does + nothing.)[133X + [33X[0;0YUsually representations are not given in terms of standard generators. For example, let us take the [22XM_11[122X type group returned by the [5XGAP[105X function [2XMathieuGroup[102X ([14XReference: MathieuGroup[114X).[133X @@ -639,7 +752,8 @@ [4X[32X Example [32X[104X [4X[25Xgap>[125X [27Xfind:= AtlasProgram( "M11", "find" );[127X[104X [4X[28Xrec( groupname := "M11", identifier := [ "M11", "M11G1-find1", 1, 1 ],[128X[104X - [4X[28X program := , standardization := 1 )[128X[104X + [4X[28X program := , standardization := 1, [128X[104X + [4X[28X version := "1" )[128X[104X [4X[25Xgap>[125X [27Xstdgens:= ResultOfBBoxProgram( find.program, Group( gens ) );;[127X[104X [4X[25Xgap>[125X [27XList( stdgens, Order );[127X[104X [4X[28X[ 2, 4 ][128X[104X @@ -653,10 +767,16 @@ [4X[28Xtrue[128X[104X [4X[32X[104X + [33X[0;0YNote that applying the black box program several times may yield different + group elements, because computations of random elements are involved, see + [2XResultOfBBoxProgram[102X ([14X6.2-4[114X). All what the black box program promises is to + construct standard generators, and these are defined only up to conjugacy in + the automorphism group of the group in question.[133X + [1X2.4-5 [33X[0;0YExample: Using the [5XGAP[105X[101X[1X Library of Tables of Marks[133X[101X - [33X[0;0YThe [5XGAP[105X Library of Tables of Marks (the [5XGAP[105X package [5XTomLib[105X, [NMP13]) + [33X[0;0YThe [5XGAP[105X Library of Tables of Marks (the [5XGAP[105X package [5XTomLib[105X, [NMP18]) provides, for many almost simple groups, information for constructing representatives of all conjugacy classes of subgroups. If this information is compatible with the standard generators of the [5XATLAS[105X of Group @@ -686,7 +806,8 @@ [4X[32X Example [32X[104X [4X[25Xgap>[125X [27Xinfo:= OneAtlasGeneratingSetInfo( "A5", Ring, Integers, Dimension, 4 );;[127X[104X [4X[25Xgap>[125X [27Xstdgens:= AtlasGenerators( info.identifier );[127X[104X - [4X[28Xrec( dim := 4, [128X[104X + [4X[28Xrec( charactername := "4a", constituents := [ 4 ], contents := "core",[128X[104X + [4X[28X dim := 4, [128X[104X [4X[28X generators := [128X[104X [4X[28X [ [128X[104X [4X[28X [ [ 1, 0, 0, 0 ], [ 0, 0, 1, 0 ], [ 0, 1, 0, 0 ], [128X[104X @@ -736,7 +857,7 @@ [4X[28X12: G <= Sym(770) rank 9, on cosets of (A4xA4):4 < 2^4:A6[128X[104X [4X[32X[104X - [33X[0;0YWe now verify the information shown about the point stabilizer and about the + [33X[0;0YNow we verify the information shown about the point stabilizer and about the maximal overgroups of [22XS[122X in [22XM_22[122X.[133X [4X[32X Example [32X[104X @@ -770,7 +891,7 @@ [4X[32X Example [32X[104X [4X[25Xgap>[125X [27Xstab:= Stabilizer( g, 1 );;[127X[104X - [4X[25Xgap>[125X [27XStructureDescription( stab );[127X[104X + [4X[25Xgap>[125X [27XStructureDescription( stab : nice );[127X[104X [4X[28X"(A4 x A4) : C4"[128X[104X [4X[25Xgap>[125X [27Xblocks:= Orbit( g, allbl[1], OnSets );;[127X[104X [4X[25Xgap>[125X [27Xact:= Action( g, blocks, OnSets );;[127X[104X @@ -806,7 +927,8 @@ [4X[25Xgap>[125X [27Xgenstom:= GeneratorsOfGroup( UnderlyingGroup( tom ) );;[127X[104X [4X[25Xgap>[125X [27XcheckM22:= AtlasProgram( "M22", "check" );[127X[104X [4X[28Xrec( groupname := "M22", identifier := [ "M22", "M22G1-check1", 1, 1 ][128X[104X - [4X[28X , program := , standardization := 1 )[128X[104X + [4X[28X , program := , standardization := 1, [128X[104X + [4X[28X version := "1" )[128X[104X [4X[25Xgap>[125X [27XResultOfStraightLineDecision( checkM22.program, genstom );[127X[104X [4X[28Xtrue[128X[104X [4X[32X[104X @@ -825,24 +947,27 @@ [4X[32X Example [32X[104X [4X[25Xgap>[125X [27Xatlasreps:= AllAtlasGeneratingSetInfos( "M22", NrMovedPoints, 462 );[127X[104X - [4X[28X[ rec( charactername := "1a+21a+55a+154a+231a", groupname := "M22", [128X[104X - [4X[28X id := "a", [128X[104X + [4X[28X[ rec( charactername := "1a+21a+55a+154a+231a", [128X[104X + [4X[28X constituents := [ 1, 2, 5, 7, 9 ], contents := "core", [128X[104X + [4X[28X groupname := "M22", id := "a", [128X[104X [4X[28X identifier := [128X[104X [4X[28X [ "M22", [ "M22G1-p462aB0.m1", "M22G1-p462aB0.m2" ], 1, 462 ],[128X[104X [4X[28X isPrimitive := false, p := 462, rankAction := 5, [128X[104X [4X[28X repname := "M22G1-p462aB0", repnr := 7, size := 443520, [128X[104X [4X[28X stabilizer := "2^4:A5 < 2^4:A6", standardization := 1, [128X[104X [4X[28X transitivity := 1, type := "perm" ), [128X[104X - [4X[28X rec( charactername := "1a+21a^2+55a+154a+210a", groupname := "M22", [128X[104X - [4X[28X id := "b", [128X[104X + [4X[28X rec( charactername := "1a+21a^2+55a+154a+210a", [128X[104X + [4X[28X constituents := [ 1, [ 2, 2 ], 5, 7, 8 ], contents := "core", [128X[104X + [4X[28X groupname := "M22", id := "b", [128X[104X [4X[28X identifier := [128X[104X [4X[28X [ "M22", [ "M22G1-p462bB0.m1", "M22G1-p462bB0.m2" ], 1, 462 ],[128X[104X [4X[28X isPrimitive := false, p := 462, rankAction := 8, [128X[104X [4X[28X repname := "M22G1-p462bB0", repnr := 8, size := 443520, [128X[104X [4X[28X stabilizer := "2^4:A5 < L3(4), 2^4:S5", standardization := 1, [128X[104X [4X[28X transitivity := 1, type := "perm" ), [128X[104X - [4X[28X rec( charactername := "1a+21a^2+55a+154a+210a", groupname := "M22", [128X[104X - [4X[28X id := "c", [128X[104X + [4X[28X rec( charactername := "1a+21a^2+55a+154a+210a", [128X[104X + [4X[28X constituents := [ 1, [ 2, 2 ], 5, 7, 8 ], contents := "core", [128X[104X + [4X[28X groupname := "M22", id := "c", [128X[104X [4X[28X identifier := [128X[104X [4X[28X [ "M22", [ "M22G1-p462cB0.m1", "M22G1-p462cB0.m2" ], 1, 462 ],[128X[104X [4X[28X isPrimitive := false, p := 462, rankAction := 8, [128X[104X diff -Nru gap-atlasrep-1.5.1/doc/chap3.html gap-atlasrep-2.1.0/doc/chap3.html --- gap-atlasrep-1.5.1/doc/chap3.html 2016-04-06 12:18:27.000000000 +0000 +++ gap-atlasrep-2.1.0/doc/chap3.html 2019-06-21 15:10:33.000000000 +0000 @@ -5,8 +5,7 @@ - GAP (AtlasRep) - Chapter 3: The User Interface of the AtlasRep Package - +GAP (AtlasRep) - Chapter 3: The User Interface of the AtlasRep Package @@ -20,44 +19,44 @@ - -3 The User Interface of the AtlasRep Package - + + +3 The User Interface of the AtlasRep Package -3.2 Group Names Used in the AtlasRep Package + -3.3 Standard Generators Used in the AtlasRep Package - + --3.4 Class Names Used in the AtlasRep Package + -3.5 Accessing Data of the AtlasRep Package +- + -3.5 Accessing Data via AtlasRep-
3.5-1 DisplayAtlasInfo -
3.5-2 AtlasGenerators -
3.5-3 AtlasProgram -
3.5-4 AtlasProgramInfo -
3.5-5 OneAtlasGeneratingSetInfo -
3.5-6 AllAtlasGeneratingSetInfos -
3.5-7 AtlasGroup +
3.5-2 Examples for DisplayAtlasInfo -
3.5-8 AtlasSubgroup +
3.5-3 AtlasGenerators +
3.5-4 AtlasProgram +
3.5-5 AtlasProgramInfo +
3.5-6 OneAtlasGeneratingSetInfo +
3.5-7 AllAtlasGeneratingSetInfos +
3.5-8 AtlasGroup -
3.5-9 AtlasRepInfoRecord +
3.5-9 AtlasSubgroup + +
3.5-10 AtlasRepInfoRecord3.6 Browse Applications Provided by -AtlasRep +-3.6 Browse Applications Provided by AtlasRep
3.6-1 BrowseMinimalDegrees @@ -65,77 +64,65 @@3 The User Interface of the AtlasRep Package -
- -The user interface is the part of the GAP interface that allows one to display information about the current contents of the database and to access individual data (perhaps from a remote server, see Section 4.3-1). The corresponding functions are described in this chapter. See Section 2.4 for some small examples how to use the functions of the interface.
- -Extensions of the AtlasRep package are regarded as another part of the GAP interface, they are described in Chapter 5. Finally, the low level part of the interface are described in Chapter 7.
- -For some of the examples in this chapter, the GAP packages CTblLib and TomLib are needed, so we load them.
+3 The User Interface of the AtlasRep Package
+The user interface is the part of the GAP interface that allows one to display information about the current contents of the database and to access individual data (perhaps by downloading them, see Section 4.2-1). The corresponding functions are described in this chapter. See Section 2.4 for some small examples how to use the functions of the interface.
-+-gap> LoadPackage( "ctbllib" ); -true -gap> LoadPackage( "tomlib" ); -true -Data extensions of the AtlasRep package are regarded as another part of the GAP interface, they are described in Chapter 5. Finally, the low level part of the interface is described in Chapter 7.
3.1 Accessing vs. Constructing Representations
-Note that accessing the data means in particular that it is not the aim of this package to construct representations from known ones. For example, if at least one permutation representation for a group G is stored but no matrix representation in a positive characteristic p, say, then
+OneAtlasGeneratingSetInfo
(3.5-5) returnsfail
when it is asked for a description of an available set of matrix generators for G in characteristic p, although such a representation can be obtained by reduction modulo p of an integral matrix representation, which in turn can be constructed from any permutation representation.Note that accessing the data means in particular that it is not the aim of this package to construct representations from known ones. For example, if at least one permutation representation for a group G is stored but no matrix representation in a positive characteristic p, say, then
- +OneAtlasGeneratingSetInfo
(3.5-6) returnsfail
when it is asked for a description of an available set of matrix generators for G in characteristic p, although such a representation can be obtained by reduction modulo p of an integral matrix representation, which in turn can be constructed from any permutation representation.3.2 Group Names Used in the AtlasRep Package
When you access data via the AtlasRep package, you specify the group in question by an admissible name. Thus it is essential to know these names, which are called the GAP names of the group in the following.
-For a group G, say, whose character table is available in GAP's Character Table Library, the admissible names of G are the admissible names of this character table. If G is almost simple, one such name is the
+Identifier
(Reference: Identifier (for character tables)) value of the character table, seeAccessing a Character Table from the Library
(CTblLib: Accessing a Character Table from the Library). This name is usually very similar to the name used in the ATLAS of Finite Groups [CCNPW85]. For example,"M22"
is a GAP name of the Mathieu group M_22,"12_1.U4(3).2_1"
is a GAP name of 12_1.U_4(3).2_1, the two names"S5"
and"A5.2"
are GAP names of the symmetric group S_5, and the two names"F3+"
and"Fi24'"
are GAP names of the simple Fischer group Fi_24^'.For a group G, say, whose character table is available in GAP's Character Table Library (see [Bre13]), the admissible names of G are the admissible names of this character table. One such name is the
Identifier
(Reference: Identifier for character tables) value of the character table, see CTblLib: Admissible Names for Character Tables in CTblLib. This name is usually very similar to the name used in the ATLAS of Finite Groups [CCN+85]. For example,"M22"
is a GAP name of the Mathieu group M_22,"12_1.U4(3).2_1"
is a GAP name of 12_1.U_4(3).2_1, the two names"S5"
and"A5.2"
are GAP names of the symmetric group S_5, and the two names"F3+"
and"Fi24'"
are GAP names of the simple Fischer group Fi_24^'.When a GAP name is required as an input of a package function, this input is case insensitive. For example, both
-"A5"
and"a5"
are valid arguments ofDisplayAtlasInfo
(3.5-1).Internally, for example as part of filenames (see Section 7.6), the package uses names that may differ from the GAP names; these names are called ATLAS-file names. For example,
+"A5"
,"TE62"
, and"F24"
are ATLAS-file names. Of these, only"A5"
is also a GAP name, but the other two are not; corresponding GAP names are"2E6(2)"
and"Fi24'"
, respectively.Internally, for example as part of filenames (see Section 7.6), the package uses names that may differ from the GAP names; these names are called ATLAS-file names. For example,
- + -"A5"
,"TE62"
, and"F24"
are ATLAS-file names. Of these, only"A5"
is also a GAP name, but the other two are not; corresponding GAP names are"2E6(2)"
and"Fi24'"
, respectively.3.3 Standard Generators Used in the AtlasRep Package -
+3.3 Standard Generators Used in the AtlasRep Package
For the general definition of standard generators of a group, see [Wil96].
-Several different standard generators may be defined for a group, the definitions can be found at
+Several different standard generators may be defined for a group, the definitions for each group that occurs in the ATLAS of Group Representations can be found at
-http://brauer.maths.qmul.ac.uk/Atlas
+http://brauer.maths.qmul.ac.uk/Atlas/v3.
-When one specifies the standardization, the i-th set of standard generators is denoted by the number i. Note that when more than one set of standard generators is defined for a group, one must be careful to use compatible standardization. For example, the straight line programs, straight line decisions and black box programs in the database refer to a specific standardization of their inputs. That is, a straight line program for computing generators of a certain subgroup of a group G is defined only for a specific set of standard generators of G, and applying the program to matrix or permutation generators of G but w.r.t. a different standardization may yield unpredictable results. Therefore the results returned by the functions described in this chapter contain information about the standardizations they refer to.
+When one specifies the standardization, the i-th set of standard generators is denoted by the number i. Note that when more than one set of standard generators is defined for a group, one must be careful to use compatible standardization. For example, the straight line programs, straight line decisions and black box programs in the database refer to a specific standardization of their inputs. That is, a straight line program for computing generators of a certain subgroup of a group G is defined only for a specific set of standard generators of G, and applying the program to matrix or permutation generators of G but w. r. t. a different standardization may yield unpredictable results. Therefore the results returned by the functions described in this chapter contain information about the standardizations they refer to.
- +3.4 Class Names Used in the AtlasRep Package
-For each straight line program (see
+AtlasProgram
(3.5-3)) that is used to compute lists of class representatives, it is essential to describe the classes in which these elements lie. Therefore, in these cases the records returned by the functionAtlasProgram
(3.5-3) contain a componentoutputs
with value a list of class names.For each straight line program (see
-AtlasProgram
(3.5-4)) that is used to compute lists of class representatives, it is essential to describe the classes in which these elements lie. Therefore, in these cases the records returned by the functionAtlasProgram
(3.5-4) contain a componentoutputs
with value a list of class names.Currently we define these class names only for simple groups and certain extensions of simple groups, see Section 3.4-1. The function
+AtlasClassNames
(3.4-2) can be used to compute the list of class names from the character table in the GAP Library.Currently we define these class names only for simple groups and certain extensions of simple groups, see Section 3.4-1. The function
- +AtlasClassNames
(3.4-2) can be used to compute the list of class names from the character table in the GAP Library.3.4-1 Definition of ATLAS Class Names
-For the definition of class names of an almost simple group, we assume that the ordinary character tables of all nontrivial normal subgroups are shown in the ATLAS of Finite Groups [CCNPW85].
+For the definition of class names of an almost simple group, we assume that the ordinary character tables of all nontrivial normal subgroups are shown in the ATLAS of Finite Groups [CCN+85].
Each class name is a string consisting of the element order of the class in question followed by a combination of capital letters, digits, and the characters
'
and-
(starting with a capital letter). For example,1A
,12A1
, and3B'
denote the class that contains the identity element, a class of element order 12, and a class of element order 3, respectively.-
For the table of a simple group, the class names are the same as returned by the two argument version of the GAP function
+ClassNames
(Reference: ClassNames), cf. [CCNPW85, Chapter 7, Section 5]: The classes are arranged w.r.t. increasing element order and for each element order w.r.t. decreasing centralizer order, the conjugacy classes that contain elements of order n are named nA
, nB
, nC
, ...; the alphabet used here is potentially infinite, and readsA
,B
,C
, ...,Z
,A1
,B1
, ...,A2
,B2
, ....- -
For the table of a simple group, the class names are the same as returned by the two argument version of the GAP function
ClassNames
(Reference: ClassNames), cf. [CCN+85, Chapter 7, Section 5]: The classes are arranged w. r. t. increasing element order and for each element order w. r. t. decreasing centralizer order, the conjugacy classes that contain elements of order n are named nA
, nB
, nC
, ...; the alphabet used here is potentially infinite, and readsA
,B
,C
, ...,Z
,A1
,B1
, ...,A2
,B2
, ....For example, the classes of the alternating group A_5 have the names
1A
,2A
,3A
,5A
, and5B
.Next we consider the case of an upward extension G.A of a simple group G by a cyclic group of order A. The ATLAS defines class names for each element g of G.A only w.r.t. the group G.a, say, that is generated by G and g; namely, there is a power of g (with the exponent coprime to the order of g) for which the class has a name of the same form as the class names for simple groups, and the name of the class of g w.r.t. G.a is then obtained from this name by appending a suitable number of dashes
+'
. So dashed class names refer exactly to those classes that are not printed in the ATLAS.- -
Next we consider the case of an upward extension G.A of a simple group G by a cyclic group of order A. The ATLAS defines class names for each element g of G.A only w. r. t. the group G.a, say, that is generated by G and g; namely, there is a power of g (with the exponent coprime to the order of g) for which the class has a name of the same form as the class names for simple groups, and the name of the class of g w. r. t. G.a is then obtained from this name by appending a suitable number of dashes
'
. So dashed class names refer exactly to those classes that are not printed in the ATLAS.For example, those classes of the symmetric group S_5 that do not lie in A_5 have the names
@@ -144,14 +131,14 @@2B
,4A
, and6A
. The outer classes of the group L_2(8).3 have the names3B
,6A
,9D
, and3B'
,6A'
,9D'
. The outer elements of order 5 in the group Sz(32).5 lie in the classes with names5B
,5B'
,5B''
, and5B'''
.For example, the elements of order 9 in the group L_2(27).6 are contained in the subgroup L_2(27).3 but not in L_2(27). In L_2(27).3, they lie in the classes
9A
,9A'
,9B
, and9B'
; in L_2(27).6, these classes fuse to9AB
and9A'B'
.Now we define class names for general upward extensions G.A of a simple group G. Each element g of such a group lies in an upward extension G.a by a cyclic group, and the class names w.r.t. G.a are already defined. The name of the class of g in G.A is obtained by concatenating the names of the classes in the orbit of G.A on the classes of cyclic upward extensions of G, after ordering the names lexicographically and removing the element order part from all of them except the first one. An exception is the situation where dashed and non-dashed class names appear in an orbit; in this case, the dashed names are omitted.
+- -
Now we define class names for general upward extensions G.A of a simple group G. Each element g of such a group lies in an upward extension G.a by a cyclic group, and the class names w. r. t. G.a are already defined. The name of the class of g in G.A is obtained by concatenating the names of the classes in the orbit of G.A on the classes of cyclic upward extensions of G, after ordering the names lexicographically and removing the element order part from all of them except the first one. An exception is the situation where dashed and non-dashed class names appear in an orbit; in this case, the dashed names are omitted.
For example, the classes
-21A
and21B
of the group U_3(5).3 fuse in U_3(5).S_3 to the class21AB
, and the class2B
of U_3(5).2 fuses with the involution classes2B'
,2B''
in the groups U_3(5).2^' and U_3(5).2^{''} to the class2B
of U_3(5).S_3.It may happen that some names in the
+outputs
component of a record returned byAtlasProgram
(3.5-3) do not uniquely determine the classes of the corresponding elements. For example, the (algebraically conjugate) classes39A
and39B
of the group Co_1 have not been distinguished yet. In such cases, the names used contain a minus sign-
, and mean "one of the classes in the range described by the name before and the name after the minus sign"; the element order part of the name does not appear after the minus sign. So the name39A-B
for the group Co_1 means39A
or39B
, and the name20A-B'''
for the group Sz(32).5 means one of the classes of element order 20 in this group (these classes lie outside the simple group Sz).It may happen that some names in the
outputs
component of a record returned byAtlasProgram
(3.5-4) do not uniquely determine the classes of the corresponding elements. For example, the (algebraically conjugate) classes39A
and39B
of the group Co_1 have not been distinguished yet. In such cases, the names used contain a minus sign-
, and mean "one of the classes in the range described by the name before and the name after the minus sign"; the element order part of the name does not appear after the minus sign. So the name39A-B
for the group Co_1 means39A
or39B
, and the name20A-B'''
for the group Sz(32).5 means one of the classes of element order 20 in this group (these classes lie outside the simple group Sz).For a downward extension m.G.A of an almost simple group G.A by a cyclic group of order m, let π denote the natural epimorphism from m.G.A onto G.A. Each class name of m.G.A has the form
+nX_0
,nX_1
etc., wherenX
is the class name of the image under π, and the indices0
,1
etc. are chosen according to the position of the class in the lifting order rows for G, see [CCNPW85, Chapter 7, Section 7, and the example in Section 8]).For a downward extension m.G.A of an almost simple group G.A by a cyclic group of order m, let π denote the natural epimorphism from m.G.A onto G.A. Each class name of m.G.A has the form
nX_0
,nX_1
etc., wherenX
is the class name of the image under π, and the indices0
,1
etc. are chosen according to the position of the class in the lifting order rows for G, see [CCN+85, Chapter 7, Section 7, and the example in Section 8]).For example, if m = 6 then
@@ -161,10 +148,10 @@1A_1
and1A_5
denote the classes containing the generators of the kernel of π, that is, central elements of order 6.3.4-2 AtlasClassNames
-+
‣ AtlasClassNames
( tbl )( function )
‣ AtlasClassNames
( tbl )( function ) Returns: a list of class names.
-Let tbl be the ordinary or modular character table of a group G, say, that is almost simple or a downward extension of an almost simple group and such that tbl is an ATLAS table from the GAP Character Table Library, according to its
+InfoText
(Reference: InfoText) value. ThenAtlasClassNames
returns the list of class names for G, as defined in Section 3.4-1. The ordering of class names is the same as the ordering of the columns of tbl.Let tbl be the ordinary or modular character table of a group G, say, that is almost simple or a downward extension of an almost simple group and such that tbl is an ATLAS table from the GAP Character Table Library, according to its
InfoText
(Reference: InfoText) value. ThenAtlasClassNames
returns the list of class names for G, as defined in Section 3.4-1. The ordering of class names is the same as the ordering of the columns of tbl.(The function may work also for character tables that are not ATLAS tables, but then clearly the class names returned are somewhat arbitrary.)
@@ -197,7 +184,7 @@3.4-3 AtlasCharacterNames
-+
‣ AtlasCharacterNames
( tbl )( function )
‣ AtlasCharacterNames
( tbl )( function ) Returns: a list of character names.
Let tbl be the ordinary or modular character table of a simple group.
@@ -208,28 +195,44 @@ [ "1a", "3a", "3b", "4a", "5a" ]AtlasCharacterNames
returns a list of strings, the i-th entry being the name of the i-th irreducible character of tbl; this name consists of the degree of this character followed by distinguishing lowercase letters.3.5 Accessing Data of the AtlasRep Package
+3.5 Accessing Data via AtlasRep
-Note that the output of the examples in this section refers to a perhaps outdated table of contents; the current version of the database may contain more information than is shown here.
+The examples shown in this section refer to the situation that no extensions have been notified, and to a perhaps outdated table of contents. That is, the current version of the database may contain more information than is shown here.
3.5-1 DisplayAtlasInfo
--
‣ DisplayAtlasInfo
( [listofnames, ][std, ]["contents", sources, ][...] )( function ) -
‣ DisplayAtlasInfo
( gapname[, std][, ...] )( function ) This function lists the information available via the AtlasRep package, for the given input. Depending on whether remote access to data is enabled (see Section 4.3-1), all the data provided by the ATLAS of Group Representations or only those in the local installation are considered.
++
‣ DisplayAtlasInfo
( [listofnames, ][std, ]["contents", sources, ][...] )( function ) +
‣ DisplayAtlasInfo
( gapname[, std][, ...] )( function ) This function lists the information available via the AtlasRep package, for the given input.
+ +There are essentially three ways of calling this function.
+ + ++
+- +
If there is no argument or if the first argument is a list listofnames of strings that are GAP names of groups,
+ +DisplayAtlasInfo
shows an overview of the known information.- +
If the first argument is a string gapname that is a GAP name of a group,
+ +DisplayAtlasInfo
shows an overview of the information that is available for this group.- +
If the string
+ +"contents"
is the only argument then the function shows which parts of the database are available; these are at least the"core"
part, which means the data from the ATLAS of Group Representations, and the"internal"
part, which means the data that are distributed with the AtlasRep package. Other parts can become available by calls toAtlasOfGroupRepresentationsNotifyData
(5.1-1).In each case, the information will be printed to the screen or will be fed into a pager, see Section 4.2-12. An interactive alternative to
-DisplayAtlasInfo
is the functionBrowseAtlasInfo
(Browse: BrowseAtlasInfo), see [BL18].An interactive alternative to
+DisplayAtlasInfo
is the functionBrowseAtlasInfo
(Browse: BrowseAtlasInfo), see [BL14].The following paragraphs describe the structure of the output in the two cases. Examples can be found in Section 3.5-2.
-Called without arguments,
+DisplayAtlasInfo
prints an overview what information the ATLAS of Group Representations provides. One line is printed for each group G, with the following columns.Called without arguments,
DisplayAtlasInfo
shows a general overview for all groups. If some information is available for the group G, say, then one line is shown for G, with the following columns.-
- -
group
the GAP name of G (see Section 3.2),
+the GAP name of G (see Section 3.2),
- @@ -265,99 +268,103 @@
#
(The list can be printed to the screen or can be fed into a pager, see Section 4.3-5.)
- -Called with a list listofnames of strings that are GAP names for a group from the ATLAS of Group Representations,
+DisplayAtlasInfo
prints the overview described above but restricted to the groups in this list.Called with a list listofnames of strings that are GAP names of some groups,
-DisplayAtlasInfo
prints the overview described above but restricted to the groups in this list.In addition to or instead of listofnames, the string
+"contents"
and a description sources of the data may be given about which the overview is formed. See below for admissible values of sources.In addition to or instead of listofnames, the string
-"contents"
and a description sources of the data may be given about which the overview is formed. See below for admissible values of sources.Called with a string gapname that is a GAP name for a group from the ATLAS of Group Representations,
+DisplayAtlasInfo
prints an overview of the information that is available for this group. One line is printed for each faithful representation, showing the number of this representation (which can be used in calls ofAtlasGenerators
(3.5-2)), and a string of one of the following forms; in both cases, id is a (possibly empty) string.Called with a string gapname that is a GAP name of a group,
DisplayAtlasInfo
prints an overview of the information that is available for this group. One line is printed for each faithful representation, showing the number of this representation (which can be used in calls ofAtlasGenerators
(3.5-3)), and a string of one of the following forms; in both cases, id is a (possibly empty) string.-
-- -
G <= Sym(nid)
denotes a permutation representation of degree n, for example
+G <= Sym(40a)
andG <= Sym(40b)
denote two (nonequivalent) representations of degree 40.- +
G <= Sym(
nid)
- -
denotes a permutation representation of degree n, for example
G <= Sym(40a)
andG <= Sym(40b)
denote two (nonequivalent) representations of degree 40.- -
G <= GL(nid,descr)
denotes a matrix representation of dimension n over a coefficient ring described by descr, which can be a prime power,
+ℤ
(denoting the ring of integers), a description of an algebraic extension field,ℂ
(denoting an unspecified algebraic extension field), orℤ/mℤ
for an integer m (denoting the ring of residues mod m); for example,G <= GL(2a,4)
andG <= GL(2b,4)
denote two (nonequivalent) representations of dimension 2 over the field with four elements.- +
G <= GL(
nid,descr)
denotes a matrix representation of dimension n over a coefficient ring described by descr, which can be a prime power,
ℤ
(denoting the ring of integers), a description of an algebraic extension field,ℂ
(denoting an unspecified algebraic extension field), orℤ/
mℤ
for an integer m (denoting the ring of residues mod m); for example,G <= GL(2a,4)
andG <= GL(2b,4)
denote two (nonequivalent) representations of dimension 2 over the field with four elements.After the representations, the programs available for gapname are listed.
- -The following optional arguments can be used to restrict the overviews.
+After the representations, the programs available for gapname are listed. The following optional arguments can be used to restrict the overviews.
- std
-must be a positive integer or a list of positive integers; if it is given then only those representations are considered that refer to the std-th set of standard generators or the i-th set of standard generators, for i in std (see Section 3.3),
+- -
must be a positive integer or a list of positive integers; if it is given then only those representations are considered that refer to the std-th set of standard generators or the i-th set of standard generators, for i in std (see Section 3.3),
- -
"contents"
and sourcesfor a string or a list of strings sources, restrict the data about which the overview is formed; if sources is the string
+"public"
then only non-private data (see Chapter 5) are considered, if sources is a string that denotes a private extension in the sense of a dirid argument ofAtlasOfGroupRepresentationsNotifyPrivateDirectory
(5.1-1) then only the data that belong to this private extension are considered; also a list of such strings may be given, then the union of these data is considered,- +
"contents"
and sources- -
for a string or a list of strings sources, restrict the data about which the overview is formed; if sources is the string
"core"
then only data from the ATLAS of Group Representations are considered, if sources is a string that denotes a data extension in the sense of adirid
argument ofAtlasOfGroupRepresentationsNotifyData
(5.1-1) then only the data that belong to this data extension are considered; also a list of such strings may be given, then the union of these data is considered,- -
Identifier
and idrestrict to representations with
+identifier
component in the list id (note that this component is itself a list, entering this list is not admissible), or satisfying the function id,- +
Identifier
and idrestrict to representations with
identifier
component in the list id (note that this component is itself a list, entering this list is not admissible), or satisfying the function id,IsPermGroup
andtrue
- -
restrict to permutation representations,
- -
NrMovedPoints
and nfor a positive integer, a list of positive integers, or a property n, restrict to permutation representations of degree equal to n, or in the list n, or satisfying the function n,
+- +
NrMovedPoints
and nfor a positive integer, a list of positive integers, or a property n, restrict to permutation representations of degree equal to n, or in the list n, or satisfying the function n,
NrMovedPoints
and the string"minimal"
- -
restrict to faithful permutation representations of minimal degree (if this information is available),
- -
IsTransitive
andtrue
orfalse
restrict to transitive or intransitive permutation representations (if this information is available),
+- +
IsTransitive
and a boolean value- -
restrict to transitive or intransitive permutation representations where this information is available (if the value
true
orfalse
is given), or to representations for which this information is not available (if the valuefail
is given),- -
IsPrimitive
andtrue
orfalse
restrict to primitive or imprimitive permutation representations (if this information is available),
+- +
IsPrimitive
and a boolean value- -
restrict to primitive or imprimitive permutation representations where this information is available (if the value
true
orfalse
is given), or to representations for which this information is not available (if the valuefail
is given),- -
Transitivity
and nfor a nonnegative integer, a list of nonnegative integers, or a property n, restrict to permutation representations of transitivity equal to n, or in the list n, or satisfying the function n (if this information is available),
+- +
Transitivity
and n- -
for a nonnegative integer, a list of nonnegative integers, or a property n, restrict to permutation representations for which the information is available that the transitivity is equal to n, or is in the list n, or satisfies the function n; if n is
fail
then restrict to all permutation representations for which this information is not available,- -
RankAction
and nfor a nonnegative integer, a list of nonnegative integers, or a property n, restrict to permutation representations of rank equal to n, or in the list n, or satisfying the function n (if this information is available),
+- +
RankAction
and nfor a nonnegative integer, a list of nonnegative integers, or a property n, restrict to permutation representations for which the information is available that the rank is equal to n, or is in the list n, or satisfies the function n; if n is
fail
then restrict to all permutation representations for which this information is not available,IsMatrixGroup
andtrue
- -
restrict to matrix representations,
- -
Characteristic
and pfor a prime integer, a list of prime integers, or a property p, restrict to matrix representations over fields of characteristic equal to p, or in the list p, or satisfying the function p (representations over residue class rings that are not fields can be addressed by entering
+fail
as the value of p),- +
Characteristic
and p- -
for a prime integer, a list of prime integers, or a property p, restrict to matrix representations over fields of characteristic equal to p, or in the list p, or satisfying the function p (representations over residue class rings that are not fields can be addressed by entering
fail
as the value of p),- -
Dimension
and nfor a positive integer, a list of positive integers, or a property n, restrict to matrix representations of dimension equal to n, or in the list n, or satisfying the function n,
+- +
Dimension
and n- -
for a positive integer, a list of positive integers, or a property n, restrict to matrix representations of dimension equal to n, or in the list n, or satisfying the function n,
Characteristic
, p,Dimension
, +- -
Characteristic
, p,Dimension
, and the string"minimal"
for a prime integer p, restrict to faithful matrix representations over fields of characteristic p that have minimal dimension (if this information is available),
+- -
for a prime integer p, restrict to faithful matrix representations over fields of characteristic p that have minimal dimension (if this information is available),
- -
Ring
and Rfor a ring or a property R, restrict to matrix representations over this ring or satisfying this function (note that the representation might be defined over a proper subring of R),
+- +
Ring
and R- -
for a ring or a property R, restrict to matrix representations for which the information is available that the ring spanned by the matrix entries is contained in this ring or satisfies this property (note that the representation might be defined over a proper subring); if R is
fail
then restrict to all matrix representations for which this information is not available,Ring
, R,Dimension
, +- -
Ring
, R,Dimension
, and the string"minimal"
for a ring R, restrict to faithful matrix representations over this ring that have minimal dimension (if this information is available),
+- +
for a ring R, restrict to faithful matrix representations over this ring that have minimal dimension (if this information is available),
+ +- +
Character
and chi- +
for a class function or a list of class functions chi, restrict to representations with these characters (note that the underlying characteristic of the class function, see Section Reference: UnderlyingCharacteristic, determines the characteristic of the representation),
+ +- +
Character
and name- -
for a string name, restrict to representations for which the character is known to have this name, according to the information shown by
DisplayAtlasInfo
; if the characteristic is not specified then it defaults to zero,- -
Character
and chifor a class function or a list of class functions chi, restrict to matrix representations with these characters (note that the underlying characteristic of the class function, see Section Reference: UnderlyingCharacteristic, determines the characteristic of the matrices), and
+- +
Character
and nfor a positive integer n, restrict to representations for which the character is known to be the n-th irreducible character in GAP's library character table of the group in question; if the characteristic is not specified then it defaults to zero, and
- @@ -373,16 +380,62 @@
IsStraightLineProgram
andtrue
The maximal subgroups are ordered according to decreasing group order. For an extension G.p of a simple group G by an outer automorphism of prime order p, this means that G is the first maximal subgroup and then come the extensions of the maximal subgroups of G and the novelties; so the n-th maximal subgroup of G and the n-th maximal subgroup of G.p are in general not related. (This coincides with the numbering used for the
+ + +Maxes
(CTblLib: Maxes) attribute for character tables.)3.5-2 Examples for DisplayAtlasInfo
+ +Here are some examples how
+ + +DisplayAtlasInfo
(3.5-1) can be called, and how it output can be interpreted.+ ++gap> DisplayAtlasInfo( "contents" ); +- AtlasRepAccessRemoteFiles: false + +- AtlasRepDataDirectory: /home/you/gap/pkg/atlasrep/ + +ID | address, version, files +---------+------------------------------------------------ +core | http://brauer.maths.qmul.ac.uk/Atlas/, + | version 2019-04-08, + | 10586 files locally available. +---------+------------------------------------------------ +internal | atlasrep/datapkg, + | version 2019-05-06, + | 276 files locally available. +---------+------------------------------------------------ +mfer | http://www.math.rwth-aachen.de/~mfer/datagens/, + | version 2015-10-06, + | 34 files locally available. +---------+------------------------------------------------ +ctblocks | ctblocks/atlas/, + | version 2019-04-08, + | 121 files locally available. +Note: The above output does not fit to the rest of the manual examples, since data extensions except
+ +internal
have been removed at the beginning of Chapter 2.The output tells us that two data extensions have been notified in addition to the core data from the ATLAS of Group Representations and the (local) internal data distributed with the AtlasRep package. The files of the extension
+mfer
must be downloaded before they can be read (but note that the access to remote files is disabled), and the files of the extensionctblocks
are locally available in thectblocks/atlas
subdirectory of the GAP package directory. This table (in particular the numbers of locally available files) depends on your installation of the package and how many files you have already downloaded.+ +gap> DisplayAtlasInfo( [ "M11", "A5" ] ); group | # | maxes | cl | cyc | out | fnd | chk | prs ------+----+-------+----+-----+-----+-----+-----+---- M11 | 42 | 5 | + | + | | + | + | + -A5 | 18 | 3 | | | | | + | + +A5* | 18 | 3 | + | | | | + | + +The above output means that the database provides 42 representations of the Mathieu group M_11, straight line programs for computing generators of representatives of all five classes of maximal subgroups, for computing representatives of the conjugacy classes of elements and of generators of maximally cyclic subgroups, contains no straight line program for applying outer automorphisms (well, in fact M_11 admits no nontrivial outer automorphism), and contains straight line decisions that check a set of generators or a set of group elements for being a set of standard generators. Analogously, 18 representations of the alternating group A_5 are available, straight line programs for computing generators of representatives of all three classes of maximal subgroups, and no straight line programs for computing representatives of the conjugacy classes of elements, of generators of maximally cyclic subgroups, and no for computing images under outer automorphisms; straight line decisions for checking the standardization of generators or group elements are available.
+ + +-+gap> DisplayAtlasInfo( [ "M11", "A5" ], NrMovedPoints, 11 ); +group | # | maxes | cl | cyc | out | fnd | chk | prs +------+---+-------+----+-----+-----+-----+-----+---- +M11 | 1 | 5 | + | + | | + | + | +The above output means that the ATLAS of Group Representations contains 42 representations of the Mathieu group M_11, straight line programs for computing generators of representatives of all five classes of maximal subgroups, for computing representatives of the conjugacy classes of elements and of generators of maximally cyclic subgroups, contains no straight line program for applying outer automorphisms (well, in fact M_11 admits no nontrivial outer automorphism), and contains straight line decisions that check a set of generators or a set of group elements for being a set of standard generators. Analogously, 18 representations of the alternating group A_5 are available, straight line programs for computing generators of representatives of all three classes of maximal subgroups, and no straight line programs for computing representatives of the conjugacy classes of elements, of generators of maximally cyclic subgroups, and no for computing images under outer automorphisms; straight line decisions for checking the standardization of generators or group elements are available.
+The given conditions restrict the overview to permutation representations on 11 points. The rows for all those groups are omitted for which no such representation is available, and the numbers of those representations are shown that satisfy the given conditions. In the above example, we see that no representation on 11 points is available for A_5, and exactly one such representation is available for M_11.
@@ -406,21 +459,21 @@ gap> DisplayAtlasInfo( "A5", Dimension, [ 1 .. 3 ] ); Representations for G = A5: (all refer to std. generators 1) --------------------------- - 8: G <= GL(2a,4) - 9: G <= GL(2b,4) -10: G <= GL(3,5) -12: G <= GL(3a,9) -13: G <= GL(3b,9) -17: G <= GL(3a,Field([Sqrt(5)])) -18: G <= GL(3b,Field([Sqrt(5)])) + 8: G <= GL(2a,4) character 2a + 9: G <= GL(2b,4) character 2b +10: G <= GL(3,5) character 3a +12: G <= GL(3a,9) character 3a +13: G <= GL(3b,9) character 3b +17: G <= GL(3a,Field([Sqrt(5)])) character 3a +18: G <= GL(3b,Field([Sqrt(5)])) character 3b gap> DisplayAtlasInfo( "A5", Characteristic, 0 ); Representations for G = A5: (all refer to std. generators 1) --------------------------- -14: G <= GL(4,Z) -15: G <= GL(5,Z) -16: G <= GL(6,Z) -17: G <= GL(3a,Field([Sqrt(5)])) -18: G <= GL(3b,Field([Sqrt(5)])) +14: G <= GL(4,Z) character 4a +15: G <= GL(5,Z) character 5a +16: G <= GL(6,Z) character 3ab +17: G <= GL(3a,Field([Sqrt(5)])) character 3a +18: G <= GL(3b,Field([Sqrt(5)])) character 3bThe representations with number between 4 and 13 are (in fact irreducible) matrix representations over various finite fields, those with numbers 14 to 16 are integral matrix representations, and the last two are matrix representations over the field generated by sqrt{5} over the rational number field.
@@ -430,10 +483,10 @@ gap> DisplayAtlasInfo( "A5", Identifier, "a" ); Representations for G = A5: (all refer to std. generators 1) --------------------------- - 4: G <= GL(4a,2) - 8: G <= GL(2a,4) -12: G <= GL(3a,9) -17: G <= GL(3a,Field([Sqrt(5)])) + 4: G <= GL(4a,2) character 4a + 8: G <= GL(2a,4) character 2a +12: G <= GL(3a,9) character 3a +17: G <= GL(3a,Field([Sqrt(5)])) character 3aEach of the representations with the numbers 4, 8, 12, and 17 is labeled with the distinguishing letter
@@ -447,76 +500,87 @@ gap> DisplayAtlasInfo( "A5", Characteristic, IsOddInt ); Representations for G = A5: (all refer to std. generators 1) --------------------------- - 6: G <= GL(4,3) - 7: G <= GL(6,3) -10: G <= GL(3,5) -11: G <= GL(5,5) -12: G <= GL(3a,9) -13: G <= GL(3b,9) + 6: G <= GL(4,3) character 4a + 7: G <= GL(6,3) character 3ab +10: G <= GL(3,5) character 3a +11: G <= GL(5,5) character 5a +12: G <= GL(3a,9) character 3a +13: G <= GL(3b,9) character 3b gap> DisplayAtlasInfo( "A5", Dimension, IsPrimeInt ); Representations for G = A5: (all refer to std. generators 1) --------------------------- - 8: G <= GL(2a,4) - 9: G <= GL(2b,4) -10: G <= GL(3,5) -11: G <= GL(5,5) -12: G <= GL(3a,9) -13: G <= GL(3b,9) -15: G <= GL(5,Z) -17: G <= GL(3a,Field([Sqrt(5)])) -18: G <= GL(3b,Field([Sqrt(5)])) + 8: G <= GL(2a,4) character 2a + 9: G <= GL(2b,4) character 2b +10: G <= GL(3,5) character 3a +11: G <= GL(5,5) character 5a +12: G <= GL(3a,9) character 3a +13: G <= GL(3b,9) character 3b +15: G <= GL(5,Z) character 5a +17: G <= GL(3a,Field([Sqrt(5)])) character 3a +18: G <= GL(3b,Field([Sqrt(5)])) character 3b gap> DisplayAtlasInfo( "A5", Ring, IsFinite and IsPrimeField ); Representations for G = A5: (all refer to std. generators 1) --------------------------- - 4: G <= GL(4a,2) - 5: G <= GL(4b,2) - 6: G <= GL(4,3) - 7: G <= GL(6,3) -10: G <= GL(3,5) -11: G <= GL(5,5) + 4: G <= GL(4a,2) character 4a + 5: G <= GL(4b,2) character 2ab + 6: G <= GL(4,3) character 4a + 7: G <= GL(6,3) character 3ab +10: G <= GL(3,5) character 3a +11: G <= GL(5,5) character 5aa
.The above examples show how the output can be restricted using a property (a unary function that returns either
+true
orfalse
) that followsNrMovedPoints
(Reference: NrMovedPoints (for a permutation)),Characteristic
(Reference: Characteristic),Dimension
(Reference: Dimension), orRing
(Reference: Ring) in the argument list ofDisplayAtlasInfo
.The above examples show how the output can be restricted using a property (a unary function that returns either
true
orfalse
) that followsNrMovedPoints
(Reference: NrMovedPoints for a permutation),Characteristic
(Reference: Characteristic),Dimension
(Reference: Dimension), orRing
(Reference: Ring) in the argument list ofDisplayAtlasInfo
(3.5-1).-gap> DisplayAtlasInfo( "A5", IsStraightLineProgram, true ); Programs for G = A5: (all refer to std. generators 1) -------------------- -presentation -std. gen. checker -maxes (all 3): - 1: A4 - 2: D10 - 3: S3 +- class repres.* +- presentation +- maxes (all 3): + 1: A4 + 2: D10 + 3: S3 +- std. gen. checker: + (check) + (pres)Straight line programs are available for computing generators of representatives of the three classes of maximal subgroups of A_5, and a straight line decision for checking whether given generators are in fact standard generators is available as well as a presentation in terms of standard generators, see
+AtlasProgram
(3.5-3).Straight line programs are available for computing generators of representatives of the three classes of maximal subgroups of A_5, and a straight line decision for checking whether given generators are in fact standard generators is available as well as a presentation in terms of standard generators, see
-AtlasProgram
(3.5-4).3.5-2 AtlasGenerators
+3.5-3 AtlasGenerators
--
‣ AtlasGenerators
( gapname, repnr[, maxnr] )( function ) +
‣ AtlasGenerators
( identifier )( function ) +
‣ AtlasGenerators
( gapname, repnr[, maxnr] )( function )
‣ AtlasGenerators
( identifier )( function ) Returns: a record containing generators for a representation, or
-fail
.In the first form, gapname must be a string denoting a GAP name (see Section 3.2) of a group, and repnr a positive integer. If the ATLAS of Group Representations contains at least repnr representations for the group with GAP name gapname then
+AtlasGenerators
, when called with gapname and repnr, returns an immutable record describing the repnr-th representation; otherwisefail
is returned. If a third argument maxnr, a positive integer, is given then an immutable record describing the restriction of the repnr-th representation to the maxnr-th maximal subgroup is returned.In the first form, gapname must be a string denoting a GAP name (see Section 3.2) of a group, and repnr a positive integer. If at least repnr representations for the group with GAP name gapname are available then
AtlasGenerators
, when called with gapname and repnr, returns an immutable record describing the repnr-th representation; otherwisefail
is returned. If a third argument maxnr, a positive integer, is given then an immutable record describing the restriction of the repnr-th representation to the maxnr-th maximal subgroup is returned.The result record has at least the following components.
+
-- +
contents
the identifier of the part of the database to which the generators belong, for example
+ +"core"
or"internal"
,generators
a list of generators for the group,
- -
groupname
the GAP name of the group (see Section 3.2),
+the GAP name of the group (see Section 3.2),
- -
identifier
a GAP object (a list of filenames plus additional information) that uniquely determines the representation; the value can be used as identifier argument of
+AtlasGenerators
.- +
a GAP object (a list of filenames plus additional information) that uniquely determines the representation, see Section 7.7; the value can be used as
+ +identifier
argument ofAtlasGenerators
.- +
repname
a string that is an initial part of the filenames of the generators.
- @@ -527,24 +591,85 @@
repnr
- +
the positive integer denoting the underlying standard generators,
- +
type
a string that describes the type of the representation (
+ +"perm"
for a permutation representation,"matff"
for a matrix representation over a finite field,"matint"
for a matrix representation over the ring of integers,"matalg"
for a matrix representation over an algebraic number field).Additionally, the group order may be stored in the component
+size
, and describing components may be available that depend on the data type of the representation: For permutation representations, these arep
for the number of moved points,id
for the distinguishing string as described forDisplayAtlasInfo
(3.5-1), and information about primitivity, point stabilizers etc. if available; for matrix representations, these aredim
for the dimension of the matrices,ring
(if known) for the ring generated by the matrix entries,id
for the distinguishing string, and information about the character if available.Additionally, the following describing components may be available if they are known, and depending on the data type of the representation.
+ + ++
+- +
size
- +
the group order,
+ +- +
id
- +
the distinguishing string as described for
+ +DisplayAtlasInfo
(3.5-1),- +
charactername
- +
a string that describes the character of the representation,
+ +- +
constituents
- +
a list of positive integers denoting the positions of the irreducible constituents of the character of the representation,
+ +- +
p
(for permutation representations)- +
for the number of moved points,
+ +- +
dim
(for matrix representations)- +
the dimension of the matrices,
+ +- +
ring
(for matrix representations)- +
the ring generated by the matrix entries,
+ +- +
transitivity
(for permutation representations)- +
a nonnegative integer, see
+ +Transitivity
(Reference: Transitivity),- +
orbits
(for intransitive permutation representations)- +
the sorted list of orbit lengths on the set of moved points,
+ +- +
rankAction
(for transitive permutation representations)- +
the number of orbits of the point stabilizer on the set of moved points, see
+ +RankAction
(Reference: RankAction),- +
stabilizer
(for transitive permutation representations)- +
a string that describes the structure of the point stabilizers,
+ +- +
isPrimitive
(for transitive permutation representations)- +
+ +
true
if the point stabilizers are maximal subgroups, andfalse
otherwise,- +
maxnr
(for primitive permutation representations)- +
the number of the class of maximal subgroups that contains the point stabilizers, w. r. t. the
-Maxes
(CTblLib: Maxes) list.It should be noted that the number repnr refers to the number shown by
+DisplayAtlasInfo
(3.5-1) in the current session; it may be that after the addition of new representations, repnr refers to another representation.It should be noted that the number repnr refers to the number shown by
DisplayAtlasInfo
(3.5-1) in the current session; it may be that after the addition of new representations (for example after loading a package that provides some), repnr refers to another representation.The alternative form of
AtlasGenerators
, with only argument identifier, can be used to fetch the result record withidentifier
value equal to identifier. The purpose of this variant is to access the same representation also in different GAP sessions.-gap> gens1:= AtlasGenerators( "A5", 1 ); -rec( generators := [ (1,2)(3,4), (1,3,5) ], groupname := "A5", - id := "", +rec( charactername := "1a+4a", constituents := [ 1, 4 ], + contents := "core", generators := [ (1,2)(3,4), (1,3,5) ], + groupname := "A5", id := "", identifier := [ "A5", [ "A5G1-p5B0.m1", "A5G1-p5B0.m2" ], 1, 5 ], isPrimitive := true, maxnr := 1, p := 5, rankAction := 2, repname := "A5G1-p5B0", repnr := 1, size := 60, stabilizer := "A4", standardization := 1, transitivity := 3, type := "perm" ) gap> gens8:= AtlasGenerators( "A5", 8 ); -rec( dim := 2, +rec( charactername := "2a", constituents := [ 2 ], contents := "core", + dim := 2, generators := [ [ [ Z(2)^0, 0*Z(2) ], [ Z(2^2), Z(2)^0 ] ], [ [ 0*Z(2), Z(2)^0 ], [ Z(2)^0, Z(2)^0 ] ] ], groupname := "A5", id := "a", @@ -552,7 +677,8 @@ 4 ], repname := "A5G1-f4r2aB0", repnr := 8, ring := GF(2^2), size := 60, standardization := 1, type := "matff" ) gap> gens17:= AtlasGenerators( "A5", 17 ); -rec( dim := 3, +rec( charactername := "3a", constituents := [ 2 ], contents := "core", + dim := 3, generators := [ [ [ -1, 0, 0 ], [ 0, -1, 0 ], [ -E(5)-E(5)^4, -E(5)-E(5)^4, 1 ] ], [ [ 0, 1, 0 ], [ 0, 0, 1 ], [ 1, 0, 0 ] ] ], @@ -567,9 +693,13 @@-gap> gens1max2:= AtlasGenerators( "A5", 1, 2 ); -rec( generators := [ (1,2)(3,4), (2,3)(4,5) ], groupname := "D10", +rec( charactername := "1a+4a", constituents := [ 1, 4 ], + contents := "core", generators := [ (1,2)(3,4), (2,3)(4,5) ], + groupname := "D10", id := "", identifier := [ "A5", [ "A5G1-p5B0.m1", "A5G1-p5B0.m2" ], 1, 5, 2 ], - repnr := 1, size := 10, standardization := 1 ) + isPrimitive := true, maxnr := 1, p := 5, rankAction := 2, + repname := "A5G1-p5B0", repnr := 1, size := 10, stabilizer := "A4", + standardization := 1, transitivity := 3, type := "perm" ) gap> id:= gens1max2.identifier;; gap> gens1max2 = AtlasGenerators( id ); true @@ -580,24 +710,36 @@ trueThe elements stored in
+gens1max2.generators
describe the restriction of the first representation of A_5 to a group in the second class of maximal subgroups of A_5 according to the list in the ATLAS of Finite Groups [CCNPW85]; this subgroup is isomorphic to the dihedral group D_10.The elements stored in
-gens1max2.generators
describe the restriction of the first representation of A_5 to a group in the second class of maximal subgroups of A_5 according to the list in the ATLAS of Finite Groups [CCN+85]; this subgroup is isomorphic to the dihedral group D_10.3.5-3 AtlasProgram
+3.5-4 AtlasProgram
--
‣ AtlasProgram
( gapname[, std], ... )( function ) +
‣ AtlasProgram
( identifier )( function ) +
‣ AtlasProgram
( gapname[, std][, "contents", sources][, "version", vers], ... )( function )
‣ AtlasProgram
( identifier )( function ) Returns: a record containing a program, or
-fail
.In the first form, gapname must be a string denoting a GAP name (see Section 3.2) of a group G, say. If the ATLAS of Group Representations contains a straight line program (see Section Reference: Straight Line Programs) or straight line decision (see Section 6.1) or black box program (see Section 6.2) as described by the remaining arguments (see below) then
+AtlasProgram
returns an immutable record containing this program. Otherwisefail
is returned.In the first form, gapname must be a string denoting a GAP name (see Section 3.2) of a group G, say. If the database contains a straight line program (see Section Reference: Straight Line Programs) or straight line decision (see Section 6.1) or black box program (see Section 6.2) as described by the arguments indicated by ... (see below) then
+ +AtlasProgram
returns an immutable record containing this program. Otherwisefail
is returned.If the optional argument std is given, only those straight line programs/decisions are considered that take generators from the std-th set of standard generators of G as input, see Section 3.3.
-If the optional argument std is given, only those straight line programs/decisions are considered that take generators from the std-th set of standard generators of G as input, see Section 3.3.
+If the optional arguments
-"contents"
and sources are given then the latter must be either a string or a list of strings, with the same meaning as described forDisplayAtlasInfo
(3.5-1).The result record has the following components.
+If the optional arguments
+ +"version"
and vers are given then the latter must be either a number or a list of numbers, and only those straight line programs/decisions are considered whose version number fits to vers.The result record has at least the following components.
+
+- +
groupname
- +
the string gapname,
+ +- +
identifier
a GAP object (a list of filenames plus additional information) that uniquely determines the program; the value can be used as identifier argument of
+ +AtlasProgram
(see below),program
the required straight line program/decision, or black box program,
@@ -606,54 +748,93 @@- -
the positive integer denoting the underlying standard generators of G,
- -
identifier
a GAP object (a list of filenames plus additional information) that uniquely determines the program; the value can be used as identifier argument of
+AtlasProgram
(see below).- +
version
- +
the substring of the filename of the program that denotes the version of the program.
+ +If the program computes generators of the restriction to a maximal subgroup then also the following components are present.
+ + ++
-- +
size
- +
the order of the maximal subgroup,
+ +- +
subgroupname
a string denoting a name of the maximal subgroup.
In the first form, the last arguments must be as follows.
+In the first form, the arguments indicated by ... must be as follows.
-
@@ -664,30 +845,33 @@ gap> prog:= AtlasProgram( "A5", 2 ); rec( groupname := "A5", identifier := [ "A5", "A5G1-max2W1", 1 ], program := <straight line program>, size := 10, - standardization := 1, subgroupname := "D10" ) + standardization := 1, subgroupname := "D10", version := "1" ) gap> StringOfResultOfStraightLineProgram( prog.program, [ "a", "b" ] ); "[ a, bbab ]" gap> gens1:= AtlasGenerators( "A5", 1 ); -rec( generators := [ (1,2)(3,4), (1,3,5) ], groupname := "A5", - id := "", +rec( charactername := "1a+4a", constituents := [ 1, 4 ], + contents := "core", generators := [ (1,2)(3,4), (1,3,5) ], + groupname := "A5", id := "", identifier := [ "A5", [ "A5G1-p5B0.m1", "A5G1-p5B0.m2" ], 1, 5 ], isPrimitive := true, maxnr := 1, p := 5, rankAction := 2, repname := "A5G1-p5B0", repnr := 1, size := 60, stabilizer := "A4", standardization := 1, transitivity := 3, type := "perm" ) -gap> maxgens:= ResultOfStraightLineProgram( prog.program, gens1.generators ); +gap> maxgens:= ResultOfStraightLineProgram( prog.program, +> gens1.generators ); [ (1,2)(3,4), (2,3)(4,5) ] gap> maxgens = gens1max2.generators; true- (the string
"maxes"
and) a positive integer maxnr +- (the string
-"maxes"
and) a positive integer maxnrthe required program computes generators of the maxnr-th maximal subgroup of the group with GAP name gapname.
+- +
the required program computes generators of the maxnr-th maximal subgroup of the group with GAP name gapname.
In this case, the result record of
AtlasProgram
also may contain a componentsize
, whose value is the order of the maximal subgroup in question.- the string
+"maxes"
+ and two positive integers maxnr and std2- +
the required program computes standard generators of the maxnr-th maximal subgroup of the group with GAP name gapname, w. r. t. the standardization std2.
+ +A prescribed
+ +"version"
parameter refers to the straight line program for computing the restriction, not to the program for standardizing the result of the restriction.The meaning of the component
+ +size
in the result, if present, is the same as in the previous case.- the string
+"maxstd"
and three positive integers +maxnr, vers, substd- +
the required program computes standard generators of the maxnr-th maximal subgroup of the group with GAP name gapname w. r. t. standardization substd; in this case, the inputs of the program are not standard generators of the group with GAP name gapname but the outputs of the straight line program with version vers for computing generators of its maxnr-th maximal subgroup.
+ +- the string
+"kernel"
and a string factnamethe required program computes generators of the kernel of an epimorphism from G to a group with GAP name factname.
+ +- one of the strings
"classes"
or"cyclic"
- +
the required program computes representatives of conjugacy classes of elements or representatives of generators of maximally cyclic subgroups of G, respectively.
-See [BSWW01] and [SWW00] for the background concerning these straight line programs. In these cases, the result record of
+AtlasProgram
also contains a componentoutputs
, whose value is a list of class names of the outputs, as described in Section 3.4.See [BSWW01] and [SWW00] for the background concerning these straight line programs. In these cases, the result record of
+ +AtlasProgram
also contains a componentoutputs
, whose value is a list of class names of the outputs, as described in Section 3.4.- the string
+"cyc2ccl"
(and the string vers)- +
the required program computes representatives of conjugacy classes of elements from representatives of generators of maximally cyclic subgroups of G. Thus the inputs are the outputs of the program of type
+ +"cyclic"
whose version is vers.- the strings
+"cyc2ccl"
, vers1,"version"
, vers2- -
the required program computes representatives of conjugacy classes of elements from representatives of generators of maximally cyclic subgroups of G, where the inputs are the outputs of the program of type
"cyclic"
whose version is vers1 and the required program itself has version vers2.- the strings
+"automorphism"
and autname- the strings
"automorphism"
and autnamethe required program computes images of standard generators under the outer automorphism of G that is given by this string.
-Note that a value
+"2"
of autname means that the square of the automorphism is an inner automorphism of G (not necessarily the identity mapping) but the automorphism itself is not.Note that a value
"2"
of autname means that the square of the automorphism is an inner automorphism of G (not necessarily the identity mapping) but the automorphism itself is not.- the string
-"check"
the required result is a straight line decision that takes a list of generators for G and returns
+true
if these generators are standard generators of G w.r.t. the standardization std, andfalse
otherwise.the required result is a straight line decision that takes a list of generators for G and returns
true
if these generators are standard generators of G w. r. t. the standardization std, andfalse
otherwise.- the string
-"presentation"
the required result is a straight line decision that takes a list of group elements and returns
+true
if these elements are standard generators of G w.r.t. the standardization std, andfalse
otherwise.the required result is a straight line decision that takes a list of group elements and returns
true
if these elements are standard generators of G w. r. t. the standardization std, andfalse
otherwise.See
StraightLineProgramFromStraightLineDecision
(6.1-9) for an example how to derive defining relators for G in terms of the standard generators from such a straight line decision.- the string
-"find"
the required result is a black box program that takes G and returns a list of standard generators of G, w.r.t. the standardization std.
+- -
the required result is a black box program that takes G and returns a list of standard generators of G, w. r. t. the standardization std.
- the string
-"restandardize"
and an integer std2the required result is a straight line program that computes standard generators of G w.r.t. the std2-th set of standard generators of G; in this case, the argument std must be given.
+- the string
+"restandardize"
and an integer std2- -
the required result is a straight line program that computes standard generators of G w. r. t. the std2-th set of standard generators of G; in this case, the argument std must be given.
- the strings
-"other"
and descrthe required program is described by descr.
+- the strings
+"other"
and descrthe required program is described by descr.
The above example shows that for restricting representations given by standard generators to a maximal subgroup of A_5, we can also fetch and apply the appropriate straight line program. Such a program (see Reference: Straight Line Programs) takes standard generators of a group --in this example A_5-- as its input, and returns a list of elements in this group --in this example generators of the D_10 subgroup we had met above-- which are computed essentially by evaluating structured words in terms of the standard generators.
+The above example shows that for restricting representations given by standard generators to a maximal subgroup of A_5, we can also fetch and apply the appropriate straight line program. Such a program (see Reference: Straight Line Programs) takes standard generators of a group –in this example A_5– as its input, and returns a list of elements in this group –in this example generators of the D_10 subgroup we had met above– which are computed essentially by evaluating structured words in terms of the standard generators.
-gap> prog:= AtlasProgram( "J1", "cyclic" ); rec( groupname := "J1", identifier := [ "J1", "J1G1-cycW1", 1 ], outputs := [ "6A", "7A", "10B", "11A", "15B", "19A" ], - program := <straight line program>, standardization := 1 ) + program := <straight line program>, standardization := 1, + version := "1" ) gap> gens:= GeneratorsOfGroup( FreeGroup( "x", "y" ) );; gap> ResultOfStraightLineProgram( prog.program, gens ); [ (x*y)^2*((y*x)^2*y^2*x)^2*y^2, x*y, (x*(y*x*y)^2)^2*y, @@ -699,50 +883,52 @@ -3.5-4 AtlasProgramInfo
+3.5-5 AtlasProgramInfo
-+
‣ AtlasProgramInfo
( gapname[, std][, "contents", sources][, ...] )( function )
‣ AtlasProgramInfo
( gapname[, std][, "contents", sources][, "version", vers], ... )( function ) Returns: a record describing a program, or
-fail
.+
AtlasProgramInfo
takes the same arguments asAtlasProgram
(3.5-3), and returns a similar result. The only difference is that the records returned byAtlasProgramInfo
have no componentsprogram
andoutputs
. The idea is that one can useAtlasProgramInfo
for testing whether the program in question is available at all, but without transferring it from a remote server. Theidentifier
component of the result ofAtlasProgramInfo
can then be used to fetch the program withAtlasProgram
(3.5-3).
AtlasProgramInfo
takes the same arguments asAtlasProgram
(3.5-4), and returns a similar result. The only difference is that the records returned byAtlasProgramInfo
have no componentsprogram
andoutputs
. The idea is that one can useAtlasProgramInfo
for testing whether the program in question is available at all, but without downloading files. Theidentifier
component of the result ofAtlasProgramInfo
can then be used to fetch the program withAtlasProgram
(3.5-4).-gap> AtlasProgramInfo( "J1", "cyclic" ); rec( groupname := "J1", identifier := [ "J1", "J1G1-cycW1", 1 ], - standardization := 1 ) + standardization := 1, version := "1" )3.5-5 OneAtlasGeneratingSetInfo
+3.5-6 OneAtlasGeneratingSetInfo
-+
‣ OneAtlasGeneratingSetInfo
( [gapname, ][std, ][...] )( function )
‣ OneAtlasGeneratingSetInfo
( [gapname, ][std, ][...] )( function ) Returns: a record describing a representation that satisfies the conditions, or
-fail
.Let gapname be a string denoting a GAP name (see Section 3.2) of a group G, say. If the ATLAS of Group Representations contains at least one representation for G with the required properties then
+OneAtlasGeneratingSetInfo
returns a record r whose components are the same as those of the records returned byAtlasGenerators
(3.5-2), except that the componentgenerators
is not contained; the componentidentifier
of r can be used as input forAtlasGenerators
(3.5-2) in order to fetch the generators. If no representation satisfying the given conditions is available thenfail
is returned.Let gapname be a string denoting a GAP name (see Section 3.2) of a group G, say. If the database contains at least one representation for G with the required properties then
-OneAtlasGeneratingSetInfo
returns a record r whose components are the same as those of the records returned byAtlasGenerators
(3.5-3), except that the componentgenerators
is not contained; the componentidentifier
of r can be used as input forAtlasGenerators
(3.5-3) in order to fetch the generators. If no representation satisfying the given conditions is available thenfail
is returned.If the argument std is given then it must be a positive integer or a list of positive integers, denoting the sets of standard generators w.r.t. which the representation shall be given (see Section 3.3).
+If the argument std is given then it must be a positive integer or a list of positive integers, denoting the sets of standard generators w. r. t. which the representation shall be given (see Section 3.3).
The argument gapname can be missing (then all available groups are considered), or a list of group names can be given instead.
Further restrictions can be entered as arguments, with the same meaning as described for
-DisplayAtlasInfo
(3.5-1). The result ofOneAtlasGeneratingSetInfo
describes the first generating set for G that matches the restrictions, in the ordering shown byDisplayAtlasInfo
(3.5-1).Note that even in the case that the user parameter "remote" has the value
+true
(see Section 4.3-1),OneAtlasGeneratingSetInfo
does not attempt to transfer remote data files, just the table of contents is evaluated. So this function (as well asAllAtlasGeneratingSetInfos
(3.5-6)) can be used to check for the availability of certain representations, and afterwards one can callAtlasGenerators
(3.5-2) for those representations one wants to work with.Note that even in the case that the user preference
AtlasRepAccessRemoteFiles
has the valuetrue
(see Section 4.2-1),OneAtlasGeneratingSetInfo
does not attempt to transfer remote data files, just the table of contents is evaluated. So this function (as well asAllAtlasGeneratingSetInfos
(3.5-7)) can be used to check for the availability of certain representations, and afterwards one can callAtlasGenerators
(3.5-3) for those representations one wants to work with.In the following example, we try to access information about permutation representations for the alternating group A_5.
-gap> info:= OneAtlasGeneratingSetInfo( "A5" ); -rec( groupname := "A5", id := "", +rec( charactername := "1a+4a", constituents := [ 1, 4 ], + contents := "core", groupname := "A5", id := "", identifier := [ "A5", [ "A5G1-p5B0.m1", "A5G1-p5B0.m2" ], 1, 5 ], isPrimitive := true, maxnr := 1, p := 5, rankAction := 2, repname := "A5G1-p5B0", repnr := 1, size := 60, stabilizer := "A4", standardization := 1, transitivity := 3, type := "perm" ) gap> gens:= AtlasGenerators( info.identifier ); -rec( generators := [ (1,2)(3,4), (1,3,5) ], groupname := "A5", - id := "", +rec( charactername := "1a+4a", constituents := [ 1, 4 ], + contents := "core", generators := [ (1,2)(3,4), (1,3,5) ], + groupname := "A5", id := "", identifier := [ "A5", [ "A5G1-p5B0.m1", "A5G1-p5B0.m2" ], 1, 5 ], isPrimitive := true, maxnr := 1, p := 5, rankAction := 2, repname := "A5G1-p5B0", repnr := 1, size := 60, stabilizer := "A4", @@ -757,19 +943,21 @@ failNote that a permutation representation of degree 20 could be obtained by taking twice the primitive representation on 10 points; however, the ATLAS of Group Representations does not store this imprimitive representation (cf. Section 3.1).
+Note that a permutation representation of degree 20 could be obtained by taking twice the primitive representation on 10 points; however, the database does not store this imprimitive representation (cf. Section 3.1).
-We continue this example a little. Next we access matrix representations of A_5.
+We continue this example. Next we access matrix representations of A_5.
-gap> info:= OneAtlasGeneratingSetInfo( "A5", IsMatrixGroup, true ); -rec( dim := 4, groupname := "A5", id := "a", +rec( charactername := "4a", constituents := [ 4 ], contents := "core", + dim := 4, groupname := "A5", id := "a", identifier := [ "A5", [ "A5G1-f2r4aB0.m1", "A5G1-f2r4aB0.m2" ], 1, 2 ], repname := "A5G1-f2r4aB0", repnr := 4, ring := GF(2), size := 60, standardization := 1, type := "matff" ) gap> gens:= AtlasGenerators( info.identifier ); -rec( dim := 4, +rec( charactername := "4a", constituents := [ 4 ], contents := "core", + dim := 4, generators := [ <an immutable 4x4 matrix over GF2>, <an immutable 4x4 matrix over GF2> ], groupname := "A5", id := "a", @@ -783,19 +971,23 @@ gap> info = OneAtlasGeneratingSetInfo( "A5", Ring, GF(2) ); true gap> OneAtlasGeneratingSetInfo( "A5", Characteristic, [2,5], Dimension, 2 ); -rec( dim := 2, groupname := "A5", id := "a", +rec( charactername := "2a", constituents := [ 2 ], contents := "core", + dim := 2, groupname := "A5", id := "a", identifier := [ "A5", [ "A5G1-f4r2aB0.m1", "A5G1-f4r2aB0.m2" ], 1, 4 ], repname := "A5G1-f4r2aB0", repnr := 8, ring := GF(2^2), size := 60, standardization := 1, type := "matff" ) gap> OneAtlasGeneratingSetInfo( "A5", Characteristic, [2,5], Dimension, 1 ); fail -gap> info:= OneAtlasGeneratingSetInfo( "A5", Characteristic, 0, Dimension, 4 ); -rec( dim := 4, groupname := "A5", id := "", +gap> info:= OneAtlasGeneratingSetInfo( "A5", Characteristic, 0, +> Dimension, 4 ); +rec( charactername := "4a", constituents := [ 4 ], contents := "core", + dim := 4, groupname := "A5", id := "", identifier := [ "A5", "A5G1-Zr4B0.g", 1, 4 ], repname := "A5G1-Zr4B0", repnr := 14, ring := Integers, size := 60, standardization := 1, type := "matint" ) gap> gens:= AtlasGenerators( info.identifier ); -rec( dim := 4, +rec( charactername := "4a", constituents := [ 4 ], contents := "core", + dim := 4, generators := [ [ [ 1, 0, 0, 0 ], [ 0, 0, 1, 0 ], [ 0, 1, 0, 0 ], @@ -812,12 +1004,14 @@ gap> OneAtlasGeneratingSetInfo( "A5", Ring, Integers mod 77 ); fail gap> info:= OneAtlasGeneratingSetInfo( "A5", Ring, CF(5), Dimension, 3 ); -rec( dim := 3, groupname := "A5", id := "a", +rec( charactername := "3a", constituents := [ 2 ], contents := "core", + dim := 3, groupname := "A5", id := "a", identifier := [ "A5", "A5G1-Ar3aB0.g", 1, 3 ], repname := "A5G1-Ar3aB0", repnr := 17, ring := NF(5,[ 1, 4 ]), size := 60, standardization := 1, type := "matalg" ) gap> gens:= AtlasGenerators( info.identifier ); -rec( dim := 3, +rec( charactername := "3a", constituents := [ 2 ], contents := "core", + dim := 3, generators := [ [ [ -1, 0, 0 ], [ 0, -1, 0 ], [ -E(5)-E(5)^4, -E(5)-E(5)^4, 1 ] ], [ [ 0, 1, 0 ], [ 0, 0, 1 ], [ 1, 0, 0 ] ] ], @@ -831,29 +1025,32 @@ -3.5-6 AllAtlasGeneratingSetInfos
+3.5-7 AllAtlasGeneratingSetInfos
-+
‣ AllAtlasGeneratingSetInfos
( [gapname, ][std, ][...] )( function )
‣ AllAtlasGeneratingSetInfos
( [gapname, ][std, ][...] )( function ) Returns: the list of all records describing representations that satisfy the conditions.
-+
AllAtlasGeneratingSetInfos
is similar toOneAtlasGeneratingSetInfo
(3.5-5). The difference is that the list of all records describing the available representations with the given properties is returned instead of just one such component. In particular an empty list is returned if no such representation is available.
AllAtlasGeneratingSetInfos
is similar toOneAtlasGeneratingSetInfo
(3.5-6). The difference is that the list of all records describing the available representations with the given properties is returned instead of just one such component. In particular an empty list is returned if no such representation is available.-gap> AllAtlasGeneratingSetInfos( "A5", IsPermGroup, true ); -[ rec( groupname := "A5", id := "", +[ rec( charactername := "1a+4a", constituents := [ 1, 4 ], + contents := "core", groupname := "A5", id := "", identifier := [ "A5", [ "A5G1-p5B0.m1", "A5G1-p5B0.m2" ], 1, 5 ] , isPrimitive := true, maxnr := 1, p := 5, rankAction := 2, repname := "A5G1-p5B0", repnr := 1, size := 60, stabilizer := "A4", standardization := 1, transitivity := 3, type := "perm" ), - rec( groupname := "A5", id := "", + rec( charactername := "1a+5a", constituents := [ 1, 5 ], + contents := "core", groupname := "A5", id := "", identifier := [ "A5", [ "A5G1-p6B0.m1", "A5G1-p6B0.m2" ], 1, 6 ] , isPrimitive := true, maxnr := 2, p := 6, rankAction := 2, repname := "A5G1-p6B0", repnr := 2, size := 60, stabilizer := "D10", standardization := 1, transitivity := 2, type := "perm" ), - rec( groupname := "A5", id := "", + rec( charactername := "1a+4a+5a", constituents := [ 1, 4, 5 ], + contents := "core", groupname := "A5", id := "", identifier := [ "A5", [ "A5G1-p10B0.m1", "A5G1-p10B0.m2" ], 1, 10 ], isPrimitive := true, maxnr := 3, p := 10, rankAction := 3, repname := "A5G1-p10B0", repnr := 3, @@ -861,17 +1058,17 @@ transitivity := 1, type := "perm" ) ]Note that a matrix representation in any characteristic can be obtained by reducing a permutation representation or an integral matrix representation; however, the ATLAS of Group Representations does not store such a representation (cf. Section 3.1).
+Note that a matrix representation in any characteristic can be obtained by reducing a permutation representation or an integral matrix representation; however, the database does not store such a representation (cf. Section 3.1).
-3.5-7 AtlasGroup
+3.5-8 AtlasGroup
--
‣ AtlasGroup
( [gapname[, std, ]][...] )( function ) +
‣ AtlasGroup
( identifier )( function ) +
‣ AtlasGroup
( [gapname, ][std, ][...] )( function )
‣ AtlasGroup
( identifier )( function ) Returns: a group that satisfies the conditions, or
-fail
.+
AtlasGroup
takes the same arguments asOneAtlasGeneratingSetInfo
(3.5-5), and returns the group generated by thegenerators
component of the record that is returned byOneAtlasGeneratingSetInfo
(3.5-5) with these arguments; ifOneAtlasGeneratingSetInfo
(3.5-5) returnsfail
then alsoAtlasGroup
returnsfail
.
AtlasGroup
takes the same arguments asOneAtlasGeneratingSetInfo
(3.5-6), and returns the group generated by thegenerators
component of the record that is returned byOneAtlasGeneratingSetInfo
(3.5-6) with these arguments; ifOneAtlasGeneratingSetInfo
(3.5-6) returnsfail
then alsoAtlasGroup
returnsfail
.-@@ -879,12 +1076,13 @@ Group([ (1,2)(3,4), (1,3,5) ])Alternatively, it is possible to enter exactly one argument, a record identifier as returned by
+OneAtlasGeneratingSetInfo
(3.5-5) orAllAtlasGeneratingSetInfos
(3.5-6), or theidentifier
component of such a record.Alternatively, it is possible to enter exactly one argument, a record identifier as returned by
OneAtlasGeneratingSetInfo
(3.5-6) orAllAtlasGeneratingSetInfos
(3.5-7), or theidentifier
component of such a record.-gap> info:= OneAtlasGeneratingSetInfo( "A5" ); -rec( groupname := "A5", id := "", +rec( charactername := "1a+4a", constituents := [ 1, 4 ], + contents := "core", groupname := "A5", id := "", identifier := [ "A5", [ "A5G1-p5B0.m1", "A5G1-p5B0.m2" ], 1, 5 ], isPrimitive := true, maxnr := 1, p := 5, rankAction := 2, repname := "A5G1-p5B0", repnr := 1, size := 60, stabilizer := "A4", @@ -895,18 +1093,18 @@ Group([ (1,2)(3,4), (1,3,5) ])In the groups returned by
+AtlasGroup
, the value of the attributeAtlasRepInfoRecord
(3.5-9) is set. This information is used for example byAtlasSubgroup
(3.5-8) when this function is called with second argument a group created byAtlasGroup
.In the groups returned by
-AtlasGroup
, the value of the attributeAtlasRepInfoRecord
(3.5-10) is set. This information is used for example byAtlasSubgroup
(3.5-9) when this function is called with second argument a group created byAtlasGroup
.3.5-8 AtlasSubgroup
+3.5-9 AtlasSubgroup
--
‣ AtlasSubgroup
( gapname[, std][, ...], maxnr )( function ) -
‣ AtlasSubgroup
( identifier, maxnr )( function ) +
‣ AtlasSubgroup
( G, maxnr )( function ) +
‣ AtlasSubgroup
( gapname[, std][, ...], maxnr )( function ) +
‣ AtlasSubgroup
( identifier, maxnr )( function )
‣ AtlasSubgroup
( G, maxnr )( function ) Returns: a group that satisfies the conditions, or
-fail
.The arguments of
+AtlasSubgroup
, except the last argument maxn, are the same as forAtlasGroup
(3.5-7). If the ATLAS of Group Representations provides a straight line program for restricting representations of the group with name gapname (given w.r.t. the std-th standard generators) to the maxnr-th maximal subgroup and if a representation with the required properties is available, in the sense that callingAtlasGroup
(3.5-7) with the same arguments except maxnr yields a group, thenAtlasSubgroup
returns the restriction of this representation to the maxnr-th maximal subgroup.The arguments of
AtlasSubgroup
, except the last argument maxnr, are the same as forAtlasGroup
(3.5-8). If the database provides a straight line program for restricting representations of the group with name gapname (given w. r. t. the std-th standard generators) to the maxnr-th maximal subgroup and if a representation with the required properties is available, in the sense that callingAtlasGroup
(3.5-8) with the same arguments except maxnr yields a group, thenAtlasSubgroup
returns the restriction of this representation to the maxnr-th maximal subgroup.In all other cases,
@@ -920,12 +1118,13 @@ 4fail
is returned.Alternatively, it is possible to enter exactly two arguments, the first being a record identifier as returned by
+OneAtlasGeneratingSetInfo
(3.5-5) orAllAtlasGeneratingSetInfos
(3.5-6), or theidentifier
component of such a record, or a group G constructed withAtlasGroup
(3.5-7).Alternatively, it is possible to enter exactly two arguments, the first being a record identifier as returned by
OneAtlasGeneratingSetInfo
(3.5-6) orAllAtlasGeneratingSetInfos
(3.5-7), or theidentifier
component of such a record, or a group G constructed withAtlasGroup
(3.5-8).- + -gap> info:= OneAtlasGeneratingSetInfo( "A5" ); -rec( groupname := "A5", id := "", +rec( charactername := "1a+4a", constituents := [ 1, 4 ], + contents := "core", groupname := "A5", id := "", identifier := [ "A5", [ "A5G1-p5B0.m1", "A5G1-p5B0.m2" ], 1, 5 ], isPrimitive := true, maxnr := 1, p := 5, rankAction := 2, repname := "A5G1-p5B0", repnr := 1, size := 60, stabilizer := "A4", @@ -938,40 +1137,80 @@ Group([ (1,5)(2,3), (1,3,5) ])3.5-9 AtlasRepInfoRecord
+3.5-10 AtlasRepInfoRecord
--
‣ AtlasRepInfoRecord
( G )( attribute ) Returns: the record stored in the group G when this was constructed with
+AtlasGroup
(3.5-7).+
‣ AtlasRepInfoRecord
( G )( attribute ) +
‣ AtlasRepInfoRecord
( name )( attribute ) Returns: the record stored in the group G when this was constructed with
-AtlasGroup
(3.5-8), or a record with information about the group with name name.For a group G that has been constructed with
+AtlasGroup
(3.5-7), the value of this attribute is the info record that describes G, in the sense that this record was the first argument of the call toAtlasGroup
(3.5-7), or it is the result of the call toOneAtlasGeneratingSetInfo
(3.5-5) with the conditions that were listed in the call toAtlasGroup
(3.5-7).For a group G that has been constructed with
AtlasGroup
(3.5-8), the value of this attribute is the info record that describes G, in the sense that this record was the first argument of the call toAtlasGroup
(3.5-8), or it is the result of the call toOneAtlasGeneratingSetInfo
(3.5-6) with the conditions that were listed in the call toAtlasGroup
(3.5-8).- +gap> AtlasRepInfoRecord( AtlasGroup( "A5" ) ); -rec( groupname := "A5", id := "", +rec( charactername := "1a+4a", constituents := [ 1, 4 ], + contents := "core", groupname := "A5", id := "", identifier := [ "A5", [ "A5G1-p5B0.m1", "A5G1-p5B0.m2" ], 1, 5 ], isPrimitive := true, maxnr := 1, p := 5, rankAction := 2, repname := "A5G1-p5B0", repnr := 1, size := 60, stabilizer := "A4", standardization := 1, transitivity := 3, type := "perm" )For a string name that is a GAP name of a group G, say,
+ + +AtlasRepInfoRecord
returns a record that contains information about G which is used byDisplayAtlasInfo
(3.5-1). The following components may be bound in the record.+
+ +- +
name
- +
the string name,
+ +- +
nrMaxes
- +
the number of conjugacy classes of maximal subgroups of G,
+ +- +
size
- +
the order of G,
+ +- +
sizesMaxes
- +
a list which contains at position i, if bound, the order of a subgroup in the i-th class of maximal subgroups of G,
+ +- +
slpMaxes
- +
a list of length two; the first entry is a list of positions i such that a straight line program for computing the restriction of representations of G to a subgroup in the i-th class of maximal subgroups is available via AtlasRep; the second entry is the corresponding list of standardizations of the generators of G for which these straight line programs are available,
+ +- +
structureMaxes
- +
a list which contains at position i, if bound, a string that describes the structure of the subgroups in the i-th class of maximal subgroups of G.
+ ++ + -+gap> AtlasRepInfoRecord( "A5" ); +rec( name := "A5", nrMaxes := 3, size := 60, sizesMaxes := [ 12, 10, 6 ], + slpMaxes := [ [ 1 .. 3 ], [ [ 1 ], [ 1 ], [ 1 ] ] ], + structureMaxes := [ "A4", "D10", "S3" ] ) +gap> AtlasRepInfoRecord( "J5" ); +rec( ) +3.6 Browse Applications Provided by -AtlasRep
+3.6 Browse Applications Provided by AtlasRep
-The functions
+BrowseMinimalDegrees
(3.6-1),BrowseBibliographySporadicSimple
(3.6-2), andBrowseAtlasInfo
(Browse: BrowseAtlasInfo) (an alternative toDisplayAtlasInfo
(3.5-1)) are available only if the GAP package Browse (see [BL14]) is loaded.The functions
BrowseMinimalDegrees
(3.6-1),BrowseBibliographySporadicSimple
(3.6-2), andBrowseAtlasInfo
(Browse: BrowseAtlasInfo) (an alternative toDisplayAtlasInfo
(3.5-1)) are available only if the GAP package Browse (see [BL18]) is loaded.3.6-1 BrowseMinimalDegrees
-+
‣ BrowseMinimalDegrees
( [groupnames] )( function )
‣ BrowseMinimalDegrees
( [gapnames] )( function ) Returns: the list of info records for the clicked representations.
-If the GAP package Browse (see [BL14]) is loaded then this function is available. It opens a browse table whose rows correspond to the groups for which the ATLAS of Group Representations contains some information about minimal degrees, whose columns correspond to the characteristics that occur, and whose entries are the known minimal degrees.
+If the GAP package Browse (see [BL18]) is loaded then this function is available. It opens a browse table whose rows correspond to the groups for which AtlasRep knows some information about minimal degrees, whose columns correspond to the characteristics that occur, and whose entries are the known minimal degrees.
-@@ -991,7 +1230,7 @@ > fi;If an argument groupnames is given then it must be a list of group names of the ATLAS of Group Representations; the browse table is then restricted to the rows corresponding to these group names and to the columns that are relevant for these groups. A perhaps interesting example is the subtable with the data concerning sporadic simple groups and their covering groups, which has been published in [Jan05]. This table can be shown as follows.
+If an argument gapnames is given then it must be a list of GAP names of groups. The browse table is then restricted to the rows corresponding to these group names and to the columns that are relevant for these groups. A perhaps interesting example is the subtable with the data concerning sporadic simple groups and their covering groups, which has been published in [Jan05]. This table can be shown as follows.
-@@ -1003,9 +1242,9 @@ > fi;The browse table does not contain rows for the groups 6.M_22, 12.M_22, 6.Fi_22. Note that in spite of the title of [Jan05], the entries in Table 1 of this paper are in fact the minimal degrees of faithful irreducible representations, and in the above three cases, these degrees are larger than the minimal degrees of faithful representations. The underlying data of the browse table is about the minimal faithful (but not necessarily irreducible) degrees.
+The browse table does not contain rows for the groups 6.M_22, 12.M_22, 6.Fi_22. Note that in spite of the title of [Jan05], the entries in Table 1 of this paper are in fact the minimal degrees of faithful irreducible representations, and in the above three cases, these degrees are larger than the minimal degrees of faithful representations. The underlying data of the browse table is about the minimal faithful (but not necessarily irreducible) degrees.
-The return value of
+BrowseMinimalDegrees
is the list ofOneAtlasGeneratingSetInfo
(3.5-5) values for those representations that have been "clicked" in visual mode.The return value of
BrowseMinimalDegrees
is the list ofOneAtlasGeneratingSetInfo
(3.5-6) values for those representations that have been "clicked" in visual mode.The variant without arguments of this function is also available in the menu shown by
@@ -1013,14 +1252,14 @@BrowseGapData
(Browse: BrowseGapData).3.6-2 BrowseBibliographySporadicSimple
--
‣ BrowseBibliographySporadicSimple
( )( function ) Returns: a record as returned by
+ParseBibXMLExtString
(GAPDoc: ParseBibXMLextString).+
‣ BrowseBibliographySporadicSimple
( )( function ) Returns: a record as returned by
-ParseBibXMLExtString
(GAPDoc: ParseBibXMLextString).If the GAP package Browse (see [BL14]) is loaded then this function is available. It opens a browse table whose rows correspond to the entries of the bibliographies in the ATLAS of Finite Groups [CCNPW85] and in the ATLAS of Brauer Characters [JLPW95].
+If the GAP package Browse (see [BL18]) is loaded then this function is available. It opens a browse table whose rows correspond to the entries of the bibliographies in the ATLAS of Finite Groups [CCN+85] and in the ATLAS of Brauer Characters [JLPW95].
The function is based on
-BrowseBibliography
(Browse: BrowseBibliography), see the documentation of this function for details, e.g., about the return value.The returned record encodes the bibliography entries corresponding to those rows of the table that are "clicked" in visual mode, in the same format as the return value of
+ParseBibXMLExtString
(GAPDoc: ParseBibXMLextString), see the manual of the GAP package GAPDoc [LN12] for details.The returned record encodes the bibliography entries corresponding to those rows of the table that are "clicked" in visual mode, in the same format as the return value of
ParseBibXMLExtString
(GAPDoc: ParseBibXMLextString), see the manual of the GAP package GAPDoc [LN18] for details.@@ -1040,11 +1279,11 @@ > fi;
BrowseBibliographySporadicSimple
can be called also via the menu shown byBrowseGapData
(Browse: BrowseGapData).The bibliographies contained in the ATLAS of Finite Groups [CCNPW85] and in the ATLAS of Brauer Characters [JLPW95] are available online in HTML format, see http://www.math.rwth-aachen.de/~Thomas.Breuer/atlasrep/bibl/index.html.
+The bibliographies contained in the ATLAS of Finite Groups [CCN+85] and in the ATLAS of Brauer Characters [JLPW95] are available online in HTML format, see http://www.math.rwth-aachen.de/~Thomas.Breuer/atlasrep/bibl/index.html.
-The source data in BibXMLext format, which are used by
+BrowseBibliographySporadicSimple
, is part of the AtlasRep package, in four files with suffixxml
in the package'sbibl
directory. Note that each of the two books contains two bibliographies.The source data in BibXMLext format, which are used by
-BrowseBibliographySporadicSimple
, are distributed with the AtlasRep package, in four files with suffixxml
in the package'sbibl
directory. Note that each of the two books contains two bibliographies.Details about the BibXMLext format, including information how to transform the data into other formats such as BibTeX, can be found in the GAP package GAPDoc (see [LN12]).
+Details about the BibXMLext format, including information how to transform the data into other formats such as BibTeX, can be found in the GAP package GAPDoc (see [LN18]).
diff -Nru gap-atlasrep-1.5.1/doc/chap3_mj.html gap-atlasrep-2.1.0/doc/chap3_mj.html --- gap-atlasrep-1.5.1/doc/chap3_mj.html 1970-01-01 00:00:00.000000000 +0000 +++ gap-atlasrep-2.1.0/doc/chap3_mj.html 2019-06-21 15:10:33.000000000 +0000 @@ -0,0 +1,1300 @@ + + + + + + + +GAP (AtlasRep) - Chapter 3: The User Interface of the AtlasRep Package + + + + + + + + + + + + + + + +3 The User Interface of the AtlasRep Package + + + + + + ++ +3 The User Interface of the AtlasRep Package
+ +The user interface is the part of the GAP interface that allows one to display information about the current contents of the database and to access individual data (perhaps by downloading them, see Section 4.2-1). The corresponding functions are described in this chapter. See Section 2.4 for some small examples how to use the functions of the interface.
+ +Data extensions of the AtlasRep package are regarded as another part of the GAP interface, they are described in Chapter 5. Finally, the low level part of the interface is described in Chapter 7.
+ + + +3.1 Accessing vs. Constructing Representations
+ +Note that accessing the data means in particular that it is not the aim of this package to construct representations from known ones. For example, if at least one permutation representation for a group \(G\) is stored but no matrix representation in a positive characteristic \(p\), say, then
+ + + +OneAtlasGeneratingSetInfo
(3.5-6) returnsfail
when it is asked for a description of an available set of matrix generators for \(G\) in characteristic \(p\), although such a representation can be obtained by reduction modulo \(p\) of an integral matrix representation, which in turn can be constructed from any permutation representation.3.2 Group Names Used in the AtlasRep Package
+ +When you access data via the AtlasRep package, you specify the group in question by an admissible name. Thus it is essential to know these names, which are called the GAP names of the group in the following.
+ +For a group \(G\), say, whose character table is available in GAP's Character Table Library (see [Bre13]), the admissible names of \(G\) are the admissible names of this character table. One such name is the
+ +Identifier
(Reference: Identifier for character tables) value of the character table, see CTblLib: Admissible Names for Character Tables in CTblLib. This name is usually very similar to the name used in the ATLAS of Finite Groups [CCN+85]. For example,"M22"
is a GAP name of the Mathieu group \(M_{22}\),"12_1.U4(3).2_1"
is a GAP name of \(12_1.U_4(3).2_1\), the two names"S5"
and"A5.2"
are GAP names of the symmetric group \(S_5\), and the two names"F3+"
and"Fi24'"
are GAP names of the simple Fischer group \(Fi_{24}^\prime\).When a GAP name is required as an input of a package function, this input is case insensitive. For example, both
+ +"A5"
and"a5"
are valid arguments ofDisplayAtlasInfo
(3.5-1).Internally, for example as part of filenames (see Section 7.6), the package uses names that may differ from the GAP names; these names are called ATLAS-file names. For example,
+ + + +"A5"
,"TE62"
, and"F24"
are ATLAS-file names. Of these, only"A5"
is also a GAP name, but the other two are not; corresponding GAP names are"2E6(2)"
and"Fi24'"
, respectively.3.3 Standard Generators Used in the AtlasRep Package
+ +For the general definition of standard generators of a group, see [Wil96].
+ +Several different standard generators may be defined for a group, the definitions for each group that occurs in the ATLAS of Group Representations can be found at
+ +http://brauer.maths.qmul.ac.uk/Atlas/v3.
+ +When one specifies the standardization, the \(i\)-th set of standard generators is denoted by the number \(i\). Note that when more than one set of standard generators is defined for a group, one must be careful to use compatible standardization. For example, the straight line programs, straight line decisions and black box programs in the database refer to a specific standardization of their inputs. That is, a straight line program for computing generators of a certain subgroup of a group \(G\) is defined only for a specific set of standard generators of \(G\), and applying the program to matrix or permutation generators of \(G\) but w. r. t. a different standardization may yield unpredictable results. Therefore the results returned by the functions described in this chapter contain information about the standardizations they refer to.
+ + + +3.4 Class Names Used in the AtlasRep Package
+ +For each straight line program (see
+ +AtlasProgram
(3.5-4)) that is used to compute lists of class representatives, it is essential to describe the classes in which these elements lie. Therefore, in these cases the records returned by the functionAtlasProgram
(3.5-4) contain a componentoutputs
with value a list of class names.Currently we define these class names only for simple groups and certain extensions of simple groups, see Section 3.4-1. The function
+ + + +AtlasClassNames
(3.4-2) can be used to compute the list of class names from the character table in the GAP Library.3.4-1 Definition of ATLAS Class Names
+ +For the definition of class names of an almost simple group, we assume that the ordinary character tables of all nontrivial normal subgroups are shown in the ATLAS of Finite Groups [CCN+85].
+ +Each class name is a string consisting of the element order of the class in question followed by a combination of capital letters, digits, and the characters
+ +'
and-
(starting with a capital letter). For example,1A
,12A1
, and3B'
denote the class that contains the identity element, a class of element order \(12\), and a class of element order \(3\), respectively.+
+ + +- +
For the table of a simple group, the class names are the same as returned by the two argument version of the GAP function
+ +ClassNames
(Reference: ClassNames), cf. [CCN+85, Chapter 7, Section 5]: The classes are arranged w. r. t. increasing element order and for each element order w. r. t. decreasing centralizer order, the conjugacy classes that contain elements of order \(n\) are named \(n\)A
, \(n\)B
, \(n\)C
, \(\ldots\); the alphabet used here is potentially infinite, and readsA
,B
,C
, \(\ldots\),Z
,A1
,B1
, \(\ldots\),A2
,B2
, \(\ldots\).For example, the classes of the alternating group \(A_5\) have the names
+ +1A
,2A
,3A
,5A
, and5B
.- +
Next we consider the case of an upward extension \(G.A\) of a simple group \(G\) by a cyclic group of order \(A\). The ATLAS defines class names for each element \(g\) of \(G.A\) only w. r. t. the group \(G.a\), say, that is generated by \(G\) and \(g\); namely, there is a power of \(g\) (with the exponent coprime to the order of \(g\)) for which the class has a name of the same form as the class names for simple groups, and the name of the class of \(g\) w. r. t. \(G.a\) is then obtained from this name by appending a suitable number of dashes
+ +'
. So dashed class names refer exactly to those classes that are not printed in the ATLAS.For example, those classes of the symmetric group \(S_5\) that do not lie in \(A_5\) have the names
+ +2B
,4A
, and6A
. The outer classes of the group \(L_2(8).3\) have the names3B
,6A
,9D
, and3B'
,6A'
,9D'
. The outer elements of order \(5\) in the group \(Sz(32).5\) lie in the classes with names5B
,5B'
,5B''
, and5B'''
.In the group \(G.A\), the class of \(g\) may fuse with other classes. The name of the class of \(g\) in \(G.A\) is obtained from the names of the involved classes of \(G.a\) by concatenating their names after removing the element order part from all of them except the first one.
+ +For example, the elements of order \(9\) in the group \(L_2(27).6\) are contained in the subgroup \(L_2(27).3\) but not in \(L_2(27)\). In \(L_2(27).3\), they lie in the classes
+ +9A
,9A'
,9B
, and9B'
; in \(L_2(27).6\), these classes fuse to9AB
and9A'B'
.- +
Now we define class names for general upward extensions \(G.A\) of a simple group \(G\). Each element \(g\) of such a group lies in an upward extension \(G.a\) by a cyclic group, and the class names w. r. t. \(G.a\) are already defined. The name of the class of \(g\) in \(G.A\) is obtained by concatenating the names of the classes in the orbit of \(G.A\) on the classes of cyclic upward extensions of \(G\), after ordering the names lexicographically and removing the element order part from all of them except the first one. An exception is the situation where dashed and non-dashed class names appear in an orbit; in this case, the dashed names are omitted.
+ +For example, the classes
+ +21A
and21B
of the group \(U_3(5).3\) fuse in \(U_3(5).S_3\) to the class21AB
, and the class2B
of \(U_3(5).2\) fuses with the involution classes2B'
,2B''
in the groups \(U_3(5).2^{\prime}\) and \(U_3(5).2^{{\prime\prime}}\) to the class2B
of \(U_3(5).S_3\).It may happen that some names in the
+ +outputs
component of a record returned byAtlasProgram
(3.5-4) do not uniquely determine the classes of the corresponding elements. For example, the (algebraically conjugate) classes39A
and39B
of the group \(Co_1\) have not been distinguished yet. In such cases, the names used contain a minus sign-
, and mean "one of the classes in the range described by the name before and the name after the minus sign"; the element order part of the name does not appear after the minus sign. So the name39A-B
for the group \(Co_1\) means39A
or39B
, and the name20A-B'''
for the group \(Sz(32).5\) means one of the classes of element order \(20\) in this group (these classes lie outside the simple group \(Sz\)).- +
For a downward extension \(m.G.A\) of an almost simple group \(G.A\) by a cyclic group of order \(m\), let \(\pi\) denote the natural epimorphism from \(m.G.A\) onto \(G.A\). Each class name of \(m.G.A\) has the form
+ +nX_0
,nX_1
etc., wherenX
is the class name of the image under \(\pi\), and the indices0
,1
etc. are chosen according to the position of the class in the lifting order rows for \(G\), see [CCN+85, Chapter 7, Section 7, and the example in Section 8]).For example, if \(m = 6\) then
+ +1A_1
and1A_5
denote the classes containing the generators of the kernel of \(\pi\), that is, central elements of order \(6\).3.4-2 AtlasClassNames
+ ++
‣ AtlasClassNames
( tbl )( function ) Returns: a list of class names.
+ +Let tbl be the ordinary or modular character table of a group \(G\), say, that is almost simple or a downward extension of an almost simple group and such that tbl is an ATLAS table from the GAP Character Table Library, according to its
+ +InfoText
(Reference: InfoText) value. ThenAtlasClassNames
returns the list of class names for \(G\), as defined in Section 3.4-1. The ordering of class names is the same as the ordering of the columns of tbl.(The function may work also for character tables that are not ATLAS tables, but then clearly the class names returned are somewhat arbitrary.)
+ + ++ + + ++gap> AtlasClassNames( CharacterTable( "L3(4).3" ) ); +[ "1A", "2A", "3A", "4ABC", "5A", "5B", "7A", "7B", "3B", "3B'", + "3C", "3C'", "6B", "6B'", "15A", "15A'", "15B", "15B'", "21A", + "21A'", "21B", "21B'" ] +gap> AtlasClassNames( CharacterTable( "U3(5).2" ) ); +[ "1A", "2A", "3A", "4A", "5A", "5B", "5CD", "6A", "7AB", "8AB", + "10A", "2B", "4B", "6D", "8C", "10B", "12B", "20A", "20B" ] +gap> AtlasClassNames( CharacterTable( "L2(27).6" ) ); +[ "1A", "2A", "3AB", "7ABC", "13ABC", "13DEF", "14ABC", "2B", "4A", + "26ABC", "26DEF", "28ABC", "28DEF", "3C", "3C'", "6A", "6A'", + "9AB", "9A'B'", "6B", "6B'", "12A", "12A'" ] +gap> AtlasClassNames( CharacterTable( "L3(4).3.2_2" ) ); +[ "1A", "2A", "3A", "4ABC", "5AB", "7A", "7B", "3B", "3C", "6B", + "15A", "15B", "21A", "21B", "2C", "4E", "6E", "8D", "14A", "14B" ] +gap> AtlasClassNames( CharacterTable( "3.A6" ) ); +[ "1A_0", "1A_1", "1A_2", "2A_0", "2A_1", "2A_2", "3A_0", "3B_0", + "4A_0", "4A_1", "4A_2", "5A_0", "5A_1", "5A_2", "5B_0", "5B_1", + "5B_2" ] +gap> AtlasClassNames( CharacterTable( "2.A5.2" ) ); +[ "1A_0", "1A_1", "2A_0", "3A_0", "3A_1", "5AB_0", "5AB_1", "2B_0", + "4A_0", "4A_1", "6A_0", "6A_1" ] +3.4-3 AtlasCharacterNames
+ ++
‣ AtlasCharacterNames
( tbl )( function ) Returns: a list of character names.
+ +Let tbl be the ordinary or modular character table of a simple group.
+ + +AtlasCharacterNames
returns a list of strings, the \(i\)-th entry being the name of the \(i\)-th irreducible character of tbl; this name consists of the degree of this character followed by distinguishing lowercase letters.+ + + ++gap> AtlasCharacterNames( CharacterTable( "A5" ) ); +[ "1a", "3a", "3b", "4a", "5a" ] +3.5 Accessing Data via AtlasRep
+ +The examples shown in this section refer to the situation that no extensions have been notified, and to a perhaps outdated table of contents. That is, the current version of the database may contain more information than is shown here.
+ + + +3.5-1 DisplayAtlasInfo
+ ++
‣ DisplayAtlasInfo
( [listofnames, ][std, ]["contents", sources, ][...] )( function ) +
‣ DisplayAtlasInfo
( gapname[, std][, ...] )( function ) This function lists the information available via the AtlasRep package, for the given input.
+ +There are essentially three ways of calling this function.
+ + ++
+- +
If there is no argument or if the first argument is a list listofnames of strings that are GAP names of groups,
+ +DisplayAtlasInfo
shows an overview of the known information.- +
If the first argument is a string gapname that is a GAP name of a group,
+ +DisplayAtlasInfo
shows an overview of the information that is available for this group.- +
If the string
+ +"contents"
is the only argument then the function shows which parts of the database are available; these are at least the"core"
part, which means the data from the ATLAS of Group Representations, and the"internal"
part, which means the data that are distributed with the AtlasRep package. Other parts can become available by calls toAtlasOfGroupRepresentationsNotifyData
(5.1-1).In each case, the information will be printed to the screen or will be fed into a pager, see Section 4.2-12. An interactive alternative to
+ +DisplayAtlasInfo
is the functionBrowseAtlasInfo
(Browse: BrowseAtlasInfo), see [BL18].The following paragraphs describe the structure of the output in the two cases. Examples can be found in Section 3.5-2.
+ +Called without arguments,
+ + +DisplayAtlasInfo
shows a general overview for all groups. If some information is available for the group \(G\), say, then one line is shown for \(G\), with the following columns.+
+- +
group
- +
the GAP name of \(G\) (see Section 3.2),
+ +- +
#
- +
the number of faithful representations stored for \(G\) that satisfy the additional conditions given (see below),
+ +- +
maxes
- +
the number of available straight line programs for computing generators of maximal subgroups of \(G\),
+ +- +
cl
- +
a
+ ++
sign if at least one program for computing representatives of conjugacy classes of elements of \(G\) is stored,- +
cyc
- +
a
+ ++
sign if at least one program for computing representatives of classes of maximally cyclic subgroups of \(G\) is stored,- +
out
- +
descriptions of outer automorphisms of \(G\) for which at least one program is stored,
+ +- +
fnd
- +
a
+ ++
sign if at least one program is available for finding standard generators,- +
chk
- +
a
+ ++
sign if at least one program is available for checking whether a set of generators is a set of standard generators, and- +
prs
- +
a
+ ++
sign if at least one program is available that encodes a presentation.Called with a list listofnames of strings that are GAP names of some groups,
+ +DisplayAtlasInfo
prints the overview described above but restricted to the groups in this list.In addition to or instead of listofnames, the string
+ +"contents"
and a description \(sources\) of the data may be given about which the overview is formed. See below for admissible values of \(sources\).Called with a string gapname that is a GAP name of a group,
+ + +DisplayAtlasInfo
prints an overview of the information that is available for this group. One line is printed for each faithful representation, showing the number of this representation (which can be used in calls ofAtlasGenerators
(3.5-3)), and a string of one of the following forms; in both cases, \(id\) is a (possibly empty) string.+
+- +
G <= Sym(
\(n\)\(id\))
- +
denotes a permutation representation of degree \(n\), for example
+ +G <= Sym(40a)
andG <= Sym(40b)
denote two (nonequivalent) representations of degree \(40\).- +
G <= GL(
\(n\)\(id\),\(descr\))
- +
denotes a matrix representation of dimension \(n\) over a coefficient ring described by \(descr\), which can be a prime power,
+ +ℤ
(denoting the ring of integers), a description of an algebraic extension field,ℂ
(denoting an unspecified algebraic extension field), orℤ/
\(m\)ℤ
for an integer \(m\) (denoting the ring of residues mod \(m\)); for example,G <= GL(2a,4)
andG <= GL(2b,4)
denote two (nonequivalent) representations of dimension \(2\) over the field with four elements.After the representations, the programs available for gapname are listed. The following optional arguments can be used to restrict the overviews.
+ + ++
+- std
+- +
must be a positive integer or a list of positive integers; if it is given then only those representations are considered that refer to the std-th set of standard generators or the \(i\)-th set of standard generators, for \(i\) in std (see Section 3.3),
+ +- +
"contents"
and \(sources\)- +
for a string or a list of strings \(sources\), restrict the data about which the overview is formed; if \(sources\) is the string
+ +"core"
then only data from the ATLAS of Group Representations are considered, if \(sources\) is a string that denotes a data extension in the sense of adirid
argument ofAtlasOfGroupRepresentationsNotifyData
(5.1-1) then only the data that belong to this data extension are considered; also a list of such strings may be given, then the union of these data is considered,- +
Identifier
and \(id\)- +
restrict to representations with
+ +identifier
component in the list \(id\) (note that this component is itself a list, entering this list is not admissible), or satisfying the function \(id\),- +
IsPermGroup
andtrue
- +
restrict to permutation representations,
+ +- +
NrMovedPoints
and \(n\)- +
for a positive integer, a list of positive integers, or a property \(n\), restrict to permutation representations of degree equal to \(n\), or in the list \(n\), or satisfying the function \(n\),
+ +- +
NrMovedPoints
and the string"minimal"
- +
restrict to faithful permutation representations of minimal degree (if this information is available),
+ +- +
IsTransitive
and a boolean value- +
restrict to transitive or intransitive permutation representations where this information is available (if the value
+ +true
orfalse
is given), or to representations for which this information is not available (if the valuefail
is given),- +
IsPrimitive
and a boolean value- +
restrict to primitive or imprimitive permutation representations where this information is available (if the value
+ +true
orfalse
is given), or to representations for which this information is not available (if the valuefail
is given),- +
Transitivity
and \(n\)- +
for a nonnegative integer, a list of nonnegative integers, or a property \(n\), restrict to permutation representations for which the information is available that the transitivity is equal to \(n\), or is in the list \(n\), or satisfies the function \(n\); if \(n\) is
+ +fail
then restrict to all permutation representations for which this information is not available,- +
RankAction
and \(n\)- +
for a nonnegative integer, a list of nonnegative integers, or a property \(n\), restrict to permutation representations for which the information is available that the rank is equal to \(n\), or is in the list \(n\), or satisfies the function \(n\); if \(n\) is
+ +fail
then restrict to all permutation representations for which this information is not available,- +
IsMatrixGroup
andtrue
- +
restrict to matrix representations,
+ +- +
Characteristic
and \(p\)- +
for a prime integer, a list of prime integers, or a property \(p\), restrict to matrix representations over fields of characteristic equal to \(p\), or in the list \(p\), or satisfying the function \(p\) (representations over residue class rings that are not fields can be addressed by entering
+ +fail
as the value of \(p\)),- +
Dimension
and \(n\)- +
for a positive integer, a list of positive integers, or a property \(n\), restrict to matrix representations of dimension equal to \(n\), or in the list \(n\), or satisfying the function \(n\),
+ +- +
Characteristic
, \(p\),Dimension
, + and the string"minimal"
- +
for a prime integer \(p\), restrict to faithful matrix representations over fields of characteristic \(p\) that have minimal dimension (if this information is available),
+ +- +
Ring
and \(R\)- +
for a ring or a property \(R\), restrict to matrix representations for which the information is available that the ring spanned by the matrix entries is contained in this ring or satisfies this property (note that the representation might be defined over a proper subring); if \(R\) is
+ +fail
then restrict to all matrix representations for which this information is not available,- +
Ring
, \(R\),Dimension
, + and the string"minimal"
- +
for a ring \(R\), restrict to faithful matrix representations over this ring that have minimal dimension (if this information is available),
+ +- +
Character
and \(chi\)- +
for a class function or a list of class functions \(chi\), restrict to representations with these characters (note that the underlying characteristic of the class function, see Section Reference: UnderlyingCharacteristic, determines the characteristic of the representation),
+ +- +
Character
and \(name\)- +
for a string \(name\), restrict to representations for which the character is known to have this name, according to the information shown by
+ +DisplayAtlasInfo
; if the characteristic is not specified then it defaults to zero,- +
Character
and \(n\)- +
for a positive integer \(n\), restrict to representations for which the character is known to be the \(n\)-th irreducible character in GAP's library character table of the group in question; if the characteristic is not specified then it defaults to zero, and
+ +- +
IsStraightLineProgram
andtrue
- +
restrict to straight line programs, straight line decisions (see Section 6.1), and black box programs (see Section 6.2).
+ +Note that the above conditions refer only to the information that is available without accessing the representations. For example, if it is not stored in the table of contents whether a permutation representation is primitive then this representation does not match an
+ +IsPrimitive
condition inDisplayAtlasInfo
.If "minimality" information is requested and no available representation matches this condition then either no minimal representation is available or the information about the minimality is missing. See
+ +MinimalRepresentationInfo
(6.3-1) for checking whether the minimality information is available for the group in question. Note that in the cases where the string"minimal"
occurs as an argument,MinimalRepresentationInfo
(6.3-1) is called with third argument"lookup"
; this is because the stored information was precomputed just for the groups in the ATLAS of Group Representations, so trying to compute non-stored minimality information (using other available databases) will hardly be successful.The representations are ordered as follows. Permutation representations come first (ordered according to their degrees), followed by matrix representations over finite fields (ordered first according to the field size and second according to the dimension), matrix representations over the integers, and then matrix representations over algebraic extension fields (both kinds ordered according to the dimension), the last representations are matrix representations over residue class rings (ordered first according to the modulus and second according to the dimension).
+ +The maximal subgroups are ordered according to decreasing group order. For an extension \(G.p\) of a simple group \(G\) by an outer automorphism of prime order \(p\), this means that \(G\) is the first maximal subgroup and then come the extensions of the maximal subgroups of \(G\) and the novelties; so the \(n\)-th maximal subgroup of \(G\) and the \(n\)-th maximal subgroup of \(G.p\) are in general not related. (This coincides with the numbering used for the
+ + + +Maxes
(CTblLib: Maxes) attribute for character tables.)3.5-2 Examples for DisplayAtlasInfo
+ +Here are some examples how
+ + +DisplayAtlasInfo
(3.5-1) can be called, and how it output can be interpreted.+ ++gap> DisplayAtlasInfo( "contents" ); +- AtlasRepAccessRemoteFiles: false + +- AtlasRepDataDirectory: /home/you/gap/pkg/atlasrep/ + +ID | address, version, files +---------+------------------------------------------------ +core | http://brauer.maths.qmul.ac.uk/Atlas/, + | version 2019-04-08, + | 10586 files locally available. +---------+------------------------------------------------ +internal | atlasrep/datapkg, + | version 2019-05-06, + | 276 files locally available. +---------+------------------------------------------------ +mfer | http://www.math.rwth-aachen.de/~mfer/datagens/, + | version 2015-10-06, + | 34 files locally available. +---------+------------------------------------------------ +ctblocks | ctblocks/atlas/, + | version 2019-04-08, + | 121 files locally available. +Note: The above output does not fit to the rest of the manual examples, since data extensions except
+ +internal
have been removed at the beginning of Chapter 2.The output tells us that two data extensions have been notified in addition to the core data from the ATLAS of Group Representations and the (local) internal data distributed with the AtlasRep package. The files of the extension
+ + +mfer
must be downloaded before they can be read (but note that the access to remote files is disabled), and the files of the extensionctblocks
are locally available in thectblocks/atlas
subdirectory of the GAP package directory. This table (in particular the numbers of locally available files) depends on your installation of the package and how many files you have already downloaded.+ ++gap> DisplayAtlasInfo( [ "M11", "A5" ] ); +group | # | maxes | cl | cyc | out | fnd | chk | prs +------+----+-------+----+-----+-----+-----+-----+---- +M11 | 42 | 5 | + | + | | + | + | + +A5* | 18 | 3 | + | | | | + | + +The above output means that the database provides \(42\) representations of the Mathieu group \(M_{11}\), straight line programs for computing generators of representatives of all five classes of maximal subgroups, for computing representatives of the conjugacy classes of elements and of generators of maximally cyclic subgroups, contains no straight line program for applying outer automorphisms (well, in fact \(M_{11}\) admits no nontrivial outer automorphism), and contains straight line decisions that check a set of generators or a set of group elements for being a set of standard generators. Analogously, \(18\) representations of the alternating group \(A_5\) are available, straight line programs for computing generators of representatives of all three classes of maximal subgroups, and no straight line programs for computing representatives of the conjugacy classes of elements, of generators of maximally cyclic subgroups, and no for computing images under outer automorphisms; straight line decisions for checking the standardization of generators or group elements are available.
+ + ++ ++gap> DisplayAtlasInfo( [ "M11", "A5" ], NrMovedPoints, 11 ); +group | # | maxes | cl | cyc | out | fnd | chk | prs +------+---+-------+----+-----+-----+-----+-----+---- +M11 | 1 | 5 | + | + | | + | + | + +The given conditions restrict the overview to permutation representations on \(11\) points. The rows for all those groups are omitted for which no such representation is available, and the numbers of those representations are shown that satisfy the given conditions. In the above example, we see that no representation on \(11\) points is available for \(A_5\), and exactly one such representation is available for \(M_{11}\).
+ + ++ ++gap> DisplayAtlasInfo( "A5", IsPermGroup, true ); +Representations for G = A5: (all refer to std. generators 1) +--------------------------- +1: G <= Sym(5) 3-trans., on cosets of A4 (1st max.) +2: G <= Sym(6) 2-trans., on cosets of D10 (2nd max.) +3: G <= Sym(10) rank 3, on cosets of S3 (3rd max.) +gap> DisplayAtlasInfo( "A5", NrMovedPoints, [ 4 .. 9 ] ); +Representations for G = A5: (all refer to std. generators 1) +--------------------------- +1: G <= Sym(5) 3-trans., on cosets of A4 (1st max.) +2: G <= Sym(6) 2-trans., on cosets of D10 (2nd max.) +The first three representations stored for \(A_5\) are (in fact primitive) permutation representations.
+ + ++ ++gap> DisplayAtlasInfo( "A5", Dimension, [ 1 .. 3 ] ); +Representations for G = A5: (all refer to std. generators 1) +--------------------------- + 8: G <= GL(2a,4) character 2a + 9: G <= GL(2b,4) character 2b +10: G <= GL(3,5) character 3a +12: G <= GL(3a,9) character 3a +13: G <= GL(3b,9) character 3b +17: G <= GL(3a,Field([Sqrt(5)])) character 3a +18: G <= GL(3b,Field([Sqrt(5)])) character 3b +gap> DisplayAtlasInfo( "A5", Characteristic, 0 ); +Representations for G = A5: (all refer to std. generators 1) +--------------------------- +14: G <= GL(4,Z) character 4a +15: G <= GL(5,Z) character 5a +16: G <= GL(6,Z) character 3ab +17: G <= GL(3a,Field([Sqrt(5)])) character 3a +18: G <= GL(3b,Field([Sqrt(5)])) character 3b +The representations with number between \(4\) and \(13\) are (in fact irreducible) matrix representations over various finite fields, those with numbers \(14\) to \(16\) are integral matrix representations, and the last two are matrix representations over the field generated by \(\sqrt{{5}}\) over the rational number field.
+ + ++ ++gap> DisplayAtlasInfo( "A5", Identifier, "a" ); +Representations for G = A5: (all refer to std. generators 1) +--------------------------- + 4: G <= GL(4a,2) character 4a + 8: G <= GL(2a,4) character 2a +12: G <= GL(3a,9) character 3a +17: G <= GL(3a,Field([Sqrt(5)])) character 3a +Each of the representations with the numbers \(4, 8, 12\), and \(17\) is labeled with the distinguishing letter
+ + +a
.+ ++gap> DisplayAtlasInfo( "A5", NrMovedPoints, IsPrimeInt ); +Representations for G = A5: (all refer to std. generators 1) +--------------------------- +1: G <= Sym(5) 3-trans., on cosets of A4 (1st max.) +gap> DisplayAtlasInfo( "A5", Characteristic, IsOddInt ); +Representations for G = A5: (all refer to std. generators 1) +--------------------------- + 6: G <= GL(4,3) character 4a + 7: G <= GL(6,3) character 3ab +10: G <= GL(3,5) character 3a +11: G <= GL(5,5) character 5a +12: G <= GL(3a,9) character 3a +13: G <= GL(3b,9) character 3b +gap> DisplayAtlasInfo( "A5", Dimension, IsPrimeInt ); +Representations for G = A5: (all refer to std. generators 1) +--------------------------- + 8: G <= GL(2a,4) character 2a + 9: G <= GL(2b,4) character 2b +10: G <= GL(3,5) character 3a +11: G <= GL(5,5) character 5a +12: G <= GL(3a,9) character 3a +13: G <= GL(3b,9) character 3b +15: G <= GL(5,Z) character 5a +17: G <= GL(3a,Field([Sqrt(5)])) character 3a +18: G <= GL(3b,Field([Sqrt(5)])) character 3b +gap> DisplayAtlasInfo( "A5", Ring, IsFinite and IsPrimeField ); +Representations for G = A5: (all refer to std. generators 1) +--------------------------- + 4: G <= GL(4a,2) character 4a + 5: G <= GL(4b,2) character 2ab + 6: G <= GL(4,3) character 4a + 7: G <= GL(6,3) character 3ab +10: G <= GL(3,5) character 3a +11: G <= GL(5,5) character 5a +The above examples show how the output can be restricted using a property (a unary function that returns either
+ + +true
orfalse
) that followsNrMovedPoints
(Reference: NrMovedPoints for a permutation),Characteristic
(Reference: Characteristic),Dimension
(Reference: Dimension), orRing
(Reference: Ring) in the argument list ofDisplayAtlasInfo
(3.5-1).+ ++gap> DisplayAtlasInfo( "A5", IsStraightLineProgram, true ); +Programs for G = A5: (all refer to std. generators 1) +-------------------- +- class repres.* +- presentation +- maxes (all 3): + 1: A4 + 2: D10 + 3: S3 +- std. gen. checker: + (check) + (pres) +Straight line programs are available for computing generators of representatives of the three classes of maximal subgroups of \(A_5\), and a straight line decision for checking whether given generators are in fact standard generators is available as well as a presentation in terms of standard generators, see
+ + + +AtlasProgram
(3.5-4).3.5-3 AtlasGenerators
+ ++
‣ AtlasGenerators
( gapname, repnr[, maxnr] )( function ) +
‣ AtlasGenerators
( identifier )( function ) Returns: a record containing generators for a representation, or
+ +fail
.In the first form, gapname must be a string denoting a GAP name (see Section 3.2) of a group, and repnr a positive integer. If at least repnr representations for the group with GAP name gapname are available then
+ +AtlasGenerators
, when called with gapname and repnr, returns an immutable record describing the repnr-th representation; otherwisefail
is returned. If a third argument maxnr, a positive integer, is given then an immutable record describing the restriction of the repnr-th representation to the maxnr-th maximal subgroup is returned.The result record has at least the following components.
+ + ++
+- +
contents
- +
the identifier of the part of the database to which the generators belong, for example
+ +"core"
or"internal"
,- +
generators
- +
a list of generators for the group,
+ +- +
groupname
- +
the GAP name of the group (see Section 3.2),
+ +- +
identifier
- +
a GAP object (a list of filenames plus additional information) that uniquely determines the representation, see Section 7.7; the value can be used as
+ +identifier
argument ofAtlasGenerators
.- +
repname
- +
a string that is an initial part of the filenames of the generators.
+ +- +
repnr
- +
the number of the representation in the current session, equal to the argument repnr if this is given.
+ +- +
standardization
- +
the positive integer denoting the underlying standard generators,
+ +- +
type
- +
a string that describes the type of the representation (
+ +"perm"
for a permutation representation,"matff"
for a matrix representation over a finite field,"matint"
for a matrix representation over the ring of integers,"matalg"
for a matrix representation over an algebraic number field).Additionally, the following describing components may be available if they are known, and depending on the data type of the representation.
+ + ++
+- +
size
- +
the group order,
+ +- +
id
- +
the distinguishing string as described for
+ +DisplayAtlasInfo
(3.5-1),- +
charactername
- +
a string that describes the character of the representation,
+ +- +
constituents
- +
a list of positive integers denoting the positions of the irreducible constituents of the character of the representation,
+ +- +
p
(for permutation representations)- +
for the number of moved points,
+ +- +
dim
(for matrix representations)- +
the dimension of the matrices,
+ +- +
ring
(for matrix representations)- +
the ring generated by the matrix entries,
+ +- +
transitivity
(for permutation representations)- +
a nonnegative integer, see
+ +Transitivity
(Reference: Transitivity),- +
orbits
(for intransitive permutation representations)- +
the sorted list of orbit lengths on the set of moved points,
+ +- +
rankAction
(for transitive permutation representations)- +
the number of orbits of the point stabilizer on the set of moved points, see
+ +RankAction
(Reference: RankAction),- +
stabilizer
(for transitive permutation representations)- +
a string that describes the structure of the point stabilizers,
+ +- +
isPrimitive
(for transitive permutation representations)- +
+ +
true
if the point stabilizers are maximal subgroups, andfalse
otherwise,- +
maxnr
(for primitive permutation representations)- +
the number of the class of maximal subgroups that contains the point stabilizers, w. r. t. the
+ +Maxes
(CTblLib: Maxes) list.It should be noted that the number repnr refers to the number shown by
+ +DisplayAtlasInfo
(3.5-1) in the current session; it may be that after the addition of new representations (for example after loading a package that provides some), repnr refers to another representation.The alternative form of
+ + +AtlasGenerators
, with only argument identifier, can be used to fetch the result record withidentifier
value equal to identifier. The purpose of this variant is to access the same representation also in different GAP sessions.+ ++gap> gens1:= AtlasGenerators( "A5", 1 ); +rec( charactername := "1a+4a", constituents := [ 1, 4 ], + contents := "core", generators := [ (1,2)(3,4), (1,3,5) ], + groupname := "A5", id := "", + identifier := [ "A5", [ "A5G1-p5B0.m1", "A5G1-p5B0.m2" ], 1, 5 ], + isPrimitive := true, maxnr := 1, p := 5, rankAction := 2, + repname := "A5G1-p5B0", repnr := 1, size := 60, stabilizer := "A4", + standardization := 1, transitivity := 3, type := "perm" ) +gap> gens8:= AtlasGenerators( "A5", 8 ); +rec( charactername := "2a", constituents := [ 2 ], contents := "core", + dim := 2, + generators := [ [ [ Z(2)^0, 0*Z(2) ], [ Z(2^2), Z(2)^0 ] ], + [ [ 0*Z(2), Z(2)^0 ], [ Z(2)^0, Z(2)^0 ] ] ], groupname := "A5", + id := "a", + identifier := [ "A5", [ "A5G1-f4r2aB0.m1", "A5G1-f4r2aB0.m2" ], 1, + 4 ], repname := "A5G1-f4r2aB0", repnr := 8, ring := GF(2^2), + size := 60, standardization := 1, type := "matff" ) +gap> gens17:= AtlasGenerators( "A5", 17 ); +rec( charactername := "3a", constituents := [ 2 ], contents := "core", + dim := 3, + generators := + [ [ [ -1, 0, 0 ], [ 0, -1, 0 ], [ -E(5)-E(5)^4, -E(5)-E(5)^4, 1 ] + ], [ [ 0, 1, 0 ], [ 0, 0, 1 ], [ 1, 0, 0 ] ] ], + groupname := "A5", id := "a", + identifier := [ "A5", "A5G1-Ar3aB0.g", 1, 3 ], + repname := "A5G1-Ar3aB0", repnr := 17, ring := NF(5,[ 1, 4 ]), + size := 60, standardization := 1, type := "matalg" ) +Each of the above pairs of elements generates a group isomorphic to \(A_5\).
+ + ++ ++gap> gens1max2:= AtlasGenerators( "A5", 1, 2 ); +rec( charactername := "1a+4a", constituents := [ 1, 4 ], + contents := "core", generators := [ (1,2)(3,4), (2,3)(4,5) ], + groupname := "D10", id := "", + identifier := [ "A5", [ "A5G1-p5B0.m1", "A5G1-p5B0.m2" ], 1, 5, 2 ], + isPrimitive := true, maxnr := 1, p := 5, rankAction := 2, + repname := "A5G1-p5B0", repnr := 1, size := 10, stabilizer := "A4", + standardization := 1, transitivity := 3, type := "perm" ) +gap> id:= gens1max2.identifier;; +gap> gens1max2 = AtlasGenerators( id ); +true +gap> max2:= Group( gens1max2.generators );; +gap> Size( max2 ); +10 +gap> IdGroup( max2 ) = IdGroup( DihedralGroup( 10 ) ); +true +The elements stored in
+ + + +gens1max2.generators
describe the restriction of the first representation of \(A_5\) to a group in the second class of maximal subgroups of \(A_5\) according to the list in the ATLAS of Finite Groups [CCN+85]; this subgroup is isomorphic to the dihedral group \(D_{10}\).3.5-4 AtlasProgram
+ ++
‣ AtlasProgram
( gapname[, std][, "contents", sources][, "version", vers], ... )( function ) +
‣ AtlasProgram
( identifier )( function ) Returns: a record containing a program, or
+ +fail
.In the first form, gapname must be a string denoting a GAP name (see Section 3.2) of a group \(G\), say. If the database contains a straight line program (see Section Reference: Straight Line Programs) or straight line decision (see Section 6.1) or black box program (see Section 6.2) as described by the arguments indicated by ... (see below) then
+ +AtlasProgram
returns an immutable record containing this program. Otherwisefail
is returned.If the optional argument std is given, only those straight line programs/decisions are considered that take generators from the std-th set of standard generators of \(G\) as input, see Section 3.3.
+ +If the optional arguments
+ +"contents"
and sources are given then the latter must be either a string or a list of strings, with the same meaning as described forDisplayAtlasInfo
(3.5-1).If the optional arguments
+ +"version"
and vers are given then the latter must be either a number or a list of numbers, and only those straight line programs/decisions are considered whose version number fits to vers.The result record has at least the following components.
+ + ++
+- +
groupname
- +
the string gapname,
+ +- +
identifier
- +
a GAP object (a list of filenames plus additional information) that uniquely determines the program; the value can be used as identifier argument of
+ +AtlasProgram
(see below),- +
program
- +
the required straight line program/decision, or black box program,
+ +- +
standardization
- +
the positive integer denoting the underlying standard generators of \(G\),
+ +- +
version
- +
the substring of the filename of the program that denotes the version of the program.
+ +If the program computes generators of the restriction to a maximal subgroup then also the following components are present.
+ + ++
+- +
size
- +
the order of the maximal subgroup,
+ +- +
subgroupname
- +
a string denoting a name of the maximal subgroup.
+ +In the first form, the arguments indicated by ... must be as follows.
+ + ++
+- (the string
+"maxes"
and) a positive integer \(maxnr\) +- +
the required program computes generators of the \(maxnr\)-th maximal subgroup of the group with GAP name \(gapname\).
+ +In this case, the result record of
+ +AtlasProgram
also may contain a componentsize
, whose value is the order of the maximal subgroup in question.- the string
+"maxes"
+ and two positive integers \(maxnr\) and \(std2\)- +
the required program computes standard generators of the \(maxnr\)-th maximal subgroup of the group with GAP name \(gapname\), w. r. t. the standardization \(std2\).
+ +A prescribed
+ +"version"
parameter refers to the straight line program for computing the restriction, not to the program for standardizing the result of the restriction.The meaning of the component
+ +size
in the result, if present, is the same as in the previous case.- the string
+"maxstd"
and three positive integers +\(maxnr\), \(vers\), \(substd\)- +
the required program computes standard generators of the \(maxnr\)-th maximal subgroup of the group with GAP name \(gapname\) w. r. t. standardization \(substd\); in this case, the inputs of the program are not standard generators of the group with GAP name \(gapname\) but the outputs of the straight line program with version \(vers\) for computing generators of its \(maxnr\)-th maximal subgroup.
+ +- the string
+"kernel"
and a string \(factname\)- +
the required program computes generators of the kernel of an epimorphism from \(G\) to a group with GAP name \(factname\).
+ +- one of the strings
+"classes"
or"cyclic"
- +
the required program computes representatives of conjugacy classes of elements or representatives of generators of maximally cyclic subgroups of \(G\), respectively.
+ +See [BSWW01] and [SWW00] for the background concerning these straight line programs. In these cases, the result record of
+ +AtlasProgram
also contains a componentoutputs
, whose value is a list of class names of the outputs, as described in Section 3.4.- the string
+"cyc2ccl"
(and the string \(vers\))- +
the required program computes representatives of conjugacy classes of elements from representatives of generators of maximally cyclic subgroups of \(G\). Thus the inputs are the outputs of the program of type
+ +"cyclic"
whose version is \(vers\).- the strings
+"cyc2ccl"
, \(vers1\),"version"
, \(vers2\)- +
the required program computes representatives of conjugacy classes of elements from representatives of generators of maximally cyclic subgroups of \(G\), where the inputs are the outputs of the program of type
+ +"cyclic"
whose version is \(vers1\) and the required program itself has version \(vers2\).- the strings
+"automorphism"
and \(autname\)- +
the required program computes images of standard generators under the outer automorphism of \(G\) that is given by this string.
+ +Note that a value
+ +"2"
of \(autname\) means that the square of the automorphism is an inner automorphism of \(G\) (not necessarily the identity mapping) but the automorphism itself is not.- the string
+"check"
- +
the required result is a straight line decision that takes a list of generators for \(G\) and returns
+ +true
if these generators are standard generators of \(G\) w. r. t. the standardization std, andfalse
otherwise.- the string
+"presentation"
- +
the required result is a straight line decision that takes a list of group elements and returns
+ +true
if these elements are standard generators of \(G\) w. r. t. the standardization std, andfalse
otherwise.See
+ +StraightLineProgramFromStraightLineDecision
(6.1-9) for an example how to derive defining relators for \(G\) in terms of the standard generators from such a straight line decision.- the string
+"find"
- +
the required result is a black box program that takes \(G\) and returns a list of standard generators of \(G\), w. r. t. the standardization std.
+ +- the string
+"restandardize"
and an integer \(std2\)- +
the required result is a straight line program that computes standard generators of \(G\) w. r. t. the \(std2\)-th set of standard generators of \(G\); in this case, the argument std must be given.
+ +- the strings
+"other"
and \(descr\)- +
the required program is described by \(descr\).
+ +The second form of
+ + +AtlasProgram
, with only argument the list identifier, can be used to fetch the result record withidentifier
value equal to identifier.+ ++gap> prog:= AtlasProgram( "A5", 2 ); +rec( groupname := "A5", identifier := [ "A5", "A5G1-max2W1", 1 ], + program := <straight line program>, size := 10, + standardization := 1, subgroupname := "D10", version := "1" ) +gap> StringOfResultOfStraightLineProgram( prog.program, [ "a", "b" ] ); +"[ a, bbab ]" +gap> gens1:= AtlasGenerators( "A5", 1 ); +rec( charactername := "1a+4a", constituents := [ 1, 4 ], + contents := "core", generators := [ (1,2)(3,4), (1,3,5) ], + groupname := "A5", id := "", + identifier := [ "A5", [ "A5G1-p5B0.m1", "A5G1-p5B0.m2" ], 1, 5 ], + isPrimitive := true, maxnr := 1, p := 5, rankAction := 2, + repname := "A5G1-p5B0", repnr := 1, size := 60, stabilizer := "A4", + standardization := 1, transitivity := 3, type := "perm" ) +gap> maxgens:= ResultOfStraightLineProgram( prog.program, +> gens1.generators ); +[ (1,2)(3,4), (2,3)(4,5) ] +gap> maxgens = gens1max2.generators; +true +The above example shows that for restricting representations given by standard generators to a maximal subgroup of \(A_5\), we can also fetch and apply the appropriate straight line program. Such a program (see Reference: Straight Line Programs) takes standard generators of a group –in this example \(A_5\)– as its input, and returns a list of elements in this group –in this example generators of the \(D_{10}\) subgroup we had met above– which are computed essentially by evaluating structured words in terms of the standard generators.
+ + ++ ++gap> prog:= AtlasProgram( "J1", "cyclic" ); +rec( groupname := "J1", identifier := [ "J1", "J1G1-cycW1", 1 ], + outputs := [ "6A", "7A", "10B", "11A", "15B", "19A" ], + program := <straight line program>, standardization := 1, + version := "1" ) +gap> gens:= GeneratorsOfGroup( FreeGroup( "x", "y" ) );; +gap> ResultOfStraightLineProgram( prog.program, gens ); +[ (x*y)^2*((y*x)^2*y^2*x)^2*y^2, x*y, (x*(y*x*y)^2)^2*y, + (x*y*x*(y*x*y)^3*x*y^2)^2*x*y*x*(y*x*y)^2*y, x*y*x*(y*x*y)^2*y, + (x*y)^2*y ] +The above example shows how to fetch and use straight line programs for computing generators of representatives of maximally cyclic subgroups of a given group.
+ + + +3.5-5 AtlasProgramInfo
+ ++
‣ AtlasProgramInfo
( gapname[, std][, "contents", sources][, "version", vers], ... )( function ) Returns: a record describing a program, or
+ +fail
.+ + +
AtlasProgramInfo
takes the same arguments asAtlasProgram
(3.5-4), and returns a similar result. The only difference is that the records returned byAtlasProgramInfo
have no componentsprogram
andoutputs
. The idea is that one can useAtlasProgramInfo
for testing whether the program in question is available at all, but without downloading files. Theidentifier
component of the result ofAtlasProgramInfo
can then be used to fetch the program withAtlasProgram
(3.5-4).+ + + ++gap> AtlasProgramInfo( "J1", "cyclic" ); +rec( groupname := "J1", identifier := [ "J1", "J1G1-cycW1", 1 ], + standardization := 1, version := "1" ) +3.5-6 OneAtlasGeneratingSetInfo
+ ++
‣ OneAtlasGeneratingSetInfo
( [gapname, ][std, ][...] )( function ) Returns: a record describing a representation that satisfies the conditions, or
+ +fail
.Let gapname be a string denoting a GAP name (see Section 3.2) of a group \(G\), say. If the database contains at least one representation for \(G\) with the required properties then
+ +OneAtlasGeneratingSetInfo
returns a record \(r\) whose components are the same as those of the records returned byAtlasGenerators
(3.5-3), except that the componentgenerators
is not contained; the componentidentifier
of \(r\) can be used as input forAtlasGenerators
(3.5-3) in order to fetch the generators. If no representation satisfying the given conditions is available thenfail
is returned.If the argument std is given then it must be a positive integer or a list of positive integers, denoting the sets of standard generators w. r. t. which the representation shall be given (see Section 3.3).
+ +The argument gapname can be missing (then all available groups are considered), or a list of group names can be given instead.
+ +Further restrictions can be entered as arguments, with the same meaning as described for
+ +DisplayAtlasInfo
(3.5-1). The result ofOneAtlasGeneratingSetInfo
describes the first generating set for \(G\) that matches the restrictions, in the ordering shown byDisplayAtlasInfo
(3.5-1).Note that even in the case that the user preference
+ +AtlasRepAccessRemoteFiles
has the valuetrue
(see Section 4.2-1),OneAtlasGeneratingSetInfo
does not attempt to transfer remote data files, just the table of contents is evaluated. So this function (as well asAllAtlasGeneratingSetInfos
(3.5-7)) can be used to check for the availability of certain representations, and afterwards one can callAtlasGenerators
(3.5-3) for those representations one wants to work with.In the following example, we try to access information about permutation representations for the alternating group \(A_5\).
+ + ++ ++gap> info:= OneAtlasGeneratingSetInfo( "A5" ); +rec( charactername := "1a+4a", constituents := [ 1, 4 ], + contents := "core", groupname := "A5", id := "", + identifier := [ "A5", [ "A5G1-p5B0.m1", "A5G1-p5B0.m2" ], 1, 5 ], + isPrimitive := true, maxnr := 1, p := 5, rankAction := 2, + repname := "A5G1-p5B0", repnr := 1, size := 60, stabilizer := "A4", + standardization := 1, transitivity := 3, type := "perm" ) +gap> gens:= AtlasGenerators( info.identifier ); +rec( charactername := "1a+4a", constituents := [ 1, 4 ], + contents := "core", generators := [ (1,2)(3,4), (1,3,5) ], + groupname := "A5", id := "", + identifier := [ "A5", [ "A5G1-p5B0.m1", "A5G1-p5B0.m2" ], 1, 5 ], + isPrimitive := true, maxnr := 1, p := 5, rankAction := 2, + repname := "A5G1-p5B0", repnr := 1, size := 60, stabilizer := "A4", + standardization := 1, transitivity := 3, type := "perm" ) +gap> info = OneAtlasGeneratingSetInfo( "A5", IsPermGroup, true ); +true +gap> info = OneAtlasGeneratingSetInfo( "A5", NrMovedPoints, "minimal" ); +true +gap> info = OneAtlasGeneratingSetInfo( "A5", NrMovedPoints, [ 1 .. 10 ] ); +true +gap> OneAtlasGeneratingSetInfo( "A5", NrMovedPoints, 20 ); +fail +Note that a permutation representation of degree \(20\) could be obtained by taking twice the primitive representation on \(10\) points; however, the database does not store this imprimitive representation (cf. Section 3.1).
+ +We continue this example. Next we access matrix representations of \(A_5\).
+ + ++ + + ++gap> info:= OneAtlasGeneratingSetInfo( "A5", IsMatrixGroup, true ); +rec( charactername := "4a", constituents := [ 4 ], contents := "core", + dim := 4, groupname := "A5", id := "a", + identifier := [ "A5", [ "A5G1-f2r4aB0.m1", "A5G1-f2r4aB0.m2" ], 1, + 2 ], repname := "A5G1-f2r4aB0", repnr := 4, ring := GF(2), + size := 60, standardization := 1, type := "matff" ) +gap> gens:= AtlasGenerators( info.identifier ); +rec( charactername := "4a", constituents := [ 4 ], contents := "core", + dim := 4, + generators := [ <an immutable 4x4 matrix over GF2>, + <an immutable 4x4 matrix over GF2> ], groupname := "A5", + id := "a", + identifier := [ "A5", [ "A5G1-f2r4aB0.m1", "A5G1-f2r4aB0.m2" ], 1, + 2 ], repname := "A5G1-f2r4aB0", repnr := 4, ring := GF(2), + size := 60, standardization := 1, type := "matff" ) +gap> info = OneAtlasGeneratingSetInfo( "A5", Dimension, 4 ); +true +gap> info = OneAtlasGeneratingSetInfo( "A5", Characteristic, 2 ); +true +gap> info = OneAtlasGeneratingSetInfo( "A5", Ring, GF(2) ); +true +gap> OneAtlasGeneratingSetInfo( "A5", Characteristic, [2,5], Dimension, 2 ); +rec( charactername := "2a", constituents := [ 2 ], contents := "core", + dim := 2, groupname := "A5", id := "a", + identifier := [ "A5", [ "A5G1-f4r2aB0.m1", "A5G1-f4r2aB0.m2" ], 1, + 4 ], repname := "A5G1-f4r2aB0", repnr := 8, ring := GF(2^2), + size := 60, standardization := 1, type := "matff" ) +gap> OneAtlasGeneratingSetInfo( "A5", Characteristic, [2,5], Dimension, 1 ); +fail +gap> info:= OneAtlasGeneratingSetInfo( "A5", Characteristic, 0, +> Dimension, 4 ); +rec( charactername := "4a", constituents := [ 4 ], contents := "core", + dim := 4, groupname := "A5", id := "", + identifier := [ "A5", "A5G1-Zr4B0.g", 1, 4 ], + repname := "A5G1-Zr4B0", repnr := 14, ring := Integers, size := 60, + standardization := 1, type := "matint" ) +gap> gens:= AtlasGenerators( info.identifier ); +rec( charactername := "4a", constituents := [ 4 ], contents := "core", + dim := 4, + generators := + [ + [ [ 1, 0, 0, 0 ], [ 0, 0, 1, 0 ], [ 0, 1, 0, 0 ], + [ -1, -1, -1, -1 ] ], + [ [ 0, 1, 0, 0 ], [ 0, 0, 0, 1 ], [ 0, 0, 1, 0 ], + [ 1, 0, 0, 0 ] ] ], groupname := "A5", id := "", + identifier := [ "A5", "A5G1-Zr4B0.g", 1, 4 ], + repname := "A5G1-Zr4B0", repnr := 14, ring := Integers, size := 60, + standardization := 1, type := "matint" ) +gap> info = OneAtlasGeneratingSetInfo( "A5", Ring, Integers ); +true +gap> info = OneAtlasGeneratingSetInfo( "A5", Ring, CF(37) ); +true +gap> OneAtlasGeneratingSetInfo( "A5", Ring, Integers mod 77 ); +fail +gap> info:= OneAtlasGeneratingSetInfo( "A5", Ring, CF(5), Dimension, 3 ); +rec( charactername := "3a", constituents := [ 2 ], contents := "core", + dim := 3, groupname := "A5", id := "a", + identifier := [ "A5", "A5G1-Ar3aB0.g", 1, 3 ], + repname := "A5G1-Ar3aB0", repnr := 17, ring := NF(5,[ 1, 4 ]), + size := 60, standardization := 1, type := "matalg" ) +gap> gens:= AtlasGenerators( info.identifier ); +rec( charactername := "3a", constituents := [ 2 ], contents := "core", + dim := 3, + generators := + [ [ [ -1, 0, 0 ], [ 0, -1, 0 ], [ -E(5)-E(5)^4, -E(5)-E(5)^4, 1 ] + ], [ [ 0, 1, 0 ], [ 0, 0, 1 ], [ 1, 0, 0 ] ] ], + groupname := "A5", id := "a", + identifier := [ "A5", "A5G1-Ar3aB0.g", 1, 3 ], + repname := "A5G1-Ar3aB0", repnr := 17, ring := NF(5,[ 1, 4 ]), + size := 60, standardization := 1, type := "matalg" ) +gap> OneAtlasGeneratingSetInfo( "A5", Ring, GF(17) ); +fail +3.5-7 AllAtlasGeneratingSetInfos
+ ++
‣ AllAtlasGeneratingSetInfos
( [gapname, ][std, ][...] )( function ) Returns: the list of all records describing representations that satisfy the conditions.
+ ++ + +
AllAtlasGeneratingSetInfos
is similar toOneAtlasGeneratingSetInfo
(3.5-6). The difference is that the list of all records describing the available representations with the given properties is returned instead of just one such component. In particular an empty list is returned if no such representation is available.+ ++gap> AllAtlasGeneratingSetInfos( "A5", IsPermGroup, true ); +[ rec( charactername := "1a+4a", constituents := [ 1, 4 ], + contents := "core", groupname := "A5", id := "", + identifier := [ "A5", [ "A5G1-p5B0.m1", "A5G1-p5B0.m2" ], 1, 5 ] + , isPrimitive := true, maxnr := 1, p := 5, rankAction := 2, + repname := "A5G1-p5B0", repnr := 1, size := 60, + stabilizer := "A4", standardization := 1, transitivity := 3, + type := "perm" ), + rec( charactername := "1a+5a", constituents := [ 1, 5 ], + contents := "core", groupname := "A5", id := "", + identifier := [ "A5", [ "A5G1-p6B0.m1", "A5G1-p6B0.m2" ], 1, 6 ] + , isPrimitive := true, maxnr := 2, p := 6, rankAction := 2, + repname := "A5G1-p6B0", repnr := 2, size := 60, + stabilizer := "D10", standardization := 1, transitivity := 2, + type := "perm" ), + rec( charactername := "1a+4a+5a", constituents := [ 1, 4, 5 ], + contents := "core", groupname := "A5", id := "", + identifier := [ "A5", [ "A5G1-p10B0.m1", "A5G1-p10B0.m2" ], 1, + 10 ], isPrimitive := true, maxnr := 3, p := 10, + rankAction := 3, repname := "A5G1-p10B0", repnr := 3, + size := 60, stabilizer := "S3", standardization := 1, + transitivity := 1, type := "perm" ) ] +Note that a matrix representation in any characteristic can be obtained by reducing a permutation representation or an integral matrix representation; however, the database does not store such a representation (cf. Section 3.1).
+ + + +3.5-8 AtlasGroup
+ ++
‣ AtlasGroup
( [gapname, ][std, ][...] )( function ) +
‣ AtlasGroup
( identifier )( function ) Returns: a group that satisfies the conditions, or
+ +fail
.+ + +
AtlasGroup
takes the same arguments asOneAtlasGeneratingSetInfo
(3.5-6), and returns the group generated by thegenerators
component of the record that is returned byOneAtlasGeneratingSetInfo
(3.5-6) with these arguments; ifOneAtlasGeneratingSetInfo
(3.5-6) returnsfail
then alsoAtlasGroup
returnsfail
.+ ++gap> g:= AtlasGroup( "A5" ); +Group([ (1,2)(3,4), (1,3,5) ]) +Alternatively, it is possible to enter exactly one argument, a record identifier as returned by
+ + +OneAtlasGeneratingSetInfo
(3.5-6) orAllAtlasGeneratingSetInfos
(3.5-7), or theidentifier
component of such a record.+ ++gap> info:= OneAtlasGeneratingSetInfo( "A5" ); +rec( charactername := "1a+4a", constituents := [ 1, 4 ], + contents := "core", groupname := "A5", id := "", + identifier := [ "A5", [ "A5G1-p5B0.m1", "A5G1-p5B0.m2" ], 1, 5 ], + isPrimitive := true, maxnr := 1, p := 5, rankAction := 2, + repname := "A5G1-p5B0", repnr := 1, size := 60, stabilizer := "A4", + standardization := 1, transitivity := 3, type := "perm" ) +gap> AtlasGroup( info ); +Group([ (1,2)(3,4), (1,3,5) ]) +gap> AtlasGroup( info.identifier ); +Group([ (1,2)(3,4), (1,3,5) ]) +In the groups returned by
+ + + +AtlasGroup
, the value of the attributeAtlasRepInfoRecord
(3.5-10) is set. This information is used for example byAtlasSubgroup
(3.5-9) when this function is called with second argument a group created byAtlasGroup
.3.5-9 AtlasSubgroup
+ ++
‣ AtlasSubgroup
( gapname[, std][, ...], maxnr )( function ) +
‣ AtlasSubgroup
( identifier, maxnr )( function ) +
‣ AtlasSubgroup
( G, maxnr )( function ) Returns: a group that satisfies the conditions, or
+ +fail
.The arguments of
+ +AtlasSubgroup
, except the last argument maxnr, are the same as forAtlasGroup
(3.5-8). If the database provides a straight line program for restricting representations of the group with name gapname (given w. r. t. the std-th standard generators) to the maxnr-th maximal subgroup and if a representation with the required properties is available, in the sense that callingAtlasGroup
(3.5-8) with the same arguments except maxnr yields a group, thenAtlasSubgroup
returns the restriction of this representation to the maxnr-th maximal subgroup.In all other cases,
+ +fail
is returned.Note that the conditions refer to the group and not to the subgroup. It may happen that in the restriction of a permutation representation to a subgroup, fewer points are moved, or that the restriction of a matrix representation turns out to be defined over a smaller ring. Here is an example.
+ + ++ ++gap> g:= AtlasSubgroup( "A5", NrMovedPoints, 5, 1 ); +Group([ (1,5)(2,3), (1,3,5) ]) +gap> NrMovedPoints( g ); +4 +Alternatively, it is possible to enter exactly two arguments, the first being a record identifier as returned by
+ + +OneAtlasGeneratingSetInfo
(3.5-6) orAllAtlasGeneratingSetInfos
(3.5-7), or theidentifier
component of such a record, or a group G constructed withAtlasGroup
(3.5-8).+ + + ++gap> info:= OneAtlasGeneratingSetInfo( "A5" ); +rec( charactername := "1a+4a", constituents := [ 1, 4 ], + contents := "core", groupname := "A5", id := "", + identifier := [ "A5", [ "A5G1-p5B0.m1", "A5G1-p5B0.m2" ], 1, 5 ], + isPrimitive := true, maxnr := 1, p := 5, rankAction := 2, + repname := "A5G1-p5B0", repnr := 1, size := 60, stabilizer := "A4", + standardization := 1, transitivity := 3, type := "perm" ) +gap> AtlasSubgroup( info, 1 ); +Group([ (1,5)(2,3), (1,3,5) ]) +gap> AtlasSubgroup( info.identifier, 1 ); +Group([ (1,5)(2,3), (1,3,5) ]) +gap> AtlasSubgroup( AtlasGroup( "A5" ), 1 ); +Group([ (1,5)(2,3), (1,3,5) ]) +3.5-10 AtlasRepInfoRecord
+ ++
‣ AtlasRepInfoRecord
( G )( attribute ) +
‣ AtlasRepInfoRecord
( name )( attribute ) Returns: the record stored in the group G when this was constructed with
+ +AtlasGroup
(3.5-8), or a record with information about the group with name name.For a group G that has been constructed with
+ + +AtlasGroup
(3.5-8), the value of this attribute is the info record that describes G, in the sense that this record was the first argument of the call toAtlasGroup
(3.5-8), or it is the result of the call toOneAtlasGeneratingSetInfo
(3.5-6) with the conditions that were listed in the call toAtlasGroup
(3.5-8).+ ++gap> AtlasRepInfoRecord( AtlasGroup( "A5" ) ); +rec( charactername := "1a+4a", constituents := [ 1, 4 ], + contents := "core", groupname := "A5", id := "", + identifier := [ "A5", [ "A5G1-p5B0.m1", "A5G1-p5B0.m2" ], 1, 5 ], + isPrimitive := true, maxnr := 1, p := 5, rankAction := 2, + repname := "A5G1-p5B0", repnr := 1, size := 60, stabilizer := "A4", + standardization := 1, transitivity := 3, type := "perm" ) +For a string name that is a GAP name of a group \(G\), say,
+ + +AtlasRepInfoRecord
returns a record that contains information about \(G\) which is used byDisplayAtlasInfo
(3.5-1). The following components may be bound in the record.+
+ +- +
name
- +
the string name,
+ +- +
nrMaxes
- +
the number of conjugacy classes of maximal subgroups of \(G\),
+ +- +
size
- +
the order of \(G\),
+ +- +
sizesMaxes
- +
a list which contains at position \(i\), if bound, the order of a subgroup in the \(i\)-th class of maximal subgroups of \(G\),
+ +- +
slpMaxes
- +
a list of length two; the first entry is a list of positions \(i\) such that a straight line program for computing the restriction of representations of \(G\) to a subgroup in the \(i\)-th class of maximal subgroups is available via AtlasRep; the second entry is the corresponding list of standardizations of the generators of \(G\) for which these straight line programs are available,
+ +- +
structureMaxes
- +
a list which contains at position \(i\), if bound, a string that describes the structure of the subgroups in the \(i\)-th class of maximal subgroups of \(G\).
+ ++ + + ++gap> AtlasRepInfoRecord( "A5" ); +rec( name := "A5", nrMaxes := 3, size := 60, sizesMaxes := [ 12, 10, 6 ], + slpMaxes := [ [ 1 .. 3 ], [ [ 1 ], [ 1 ], [ 1 ] ] ], + structureMaxes := [ "A4", "D10", "S3" ] ) +gap> AtlasRepInfoRecord( "J5" ); +rec( ) +3.6 Browse Applications Provided by AtlasRep
+ +The functions
+ + + +BrowseMinimalDegrees
(3.6-1),BrowseBibliographySporadicSimple
(3.6-2), andBrowseAtlasInfo
(Browse: BrowseAtlasInfo) (an alternative toDisplayAtlasInfo
(3.5-1)) are available only if the GAP package Browse (see [BL18]) is loaded.3.6-1 BrowseMinimalDegrees
+ ++
‣ BrowseMinimalDegrees
( [gapnames] )( function ) Returns: the list of info records for the clicked representations.
+ +If the GAP package Browse (see [BL18]) is loaded then this function is available. It opens a browse table whose rows correspond to the groups for which AtlasRep knows some information about minimal degrees, whose columns correspond to the characteristics that occur, and whose entries are the known minimal degrees.
+ + ++ ++gap> if IsBound( BrowseMinimalDegrees ) then +> down:= NCurses.keys.DOWN;; DOWN:= NCurses.keys.NPAGE;; +> right:= NCurses.keys.RIGHT;; END:= NCurses.keys.END;; +> enter:= NCurses.keys.ENTER;; nop:= [ 14, 14, 14 ];; +> # just scroll in the table +> BrowseData.SetReplay( Concatenation( [ DOWN, DOWN, DOWN, +> right, right, right ], "sedddrrrddd", nop, nop, "Q" ) ); +> BrowseMinimalDegrees();; +> # restrict the table to the groups with minimal ordinary degree 6 +> BrowseData.SetReplay( Concatenation( "scf6", +> [ down, down, right, enter, enter ] , nop, nop, "Q" ) ); +> BrowseMinimalDegrees();; +> BrowseData.SetReplay( false ); +> fi; +If an argument gapnames is given then it must be a list of GAP names of groups. The browse table is then restricted to the rows corresponding to these group names and to the columns that are relevant for these groups. A perhaps interesting example is the subtable with the data concerning sporadic simple groups and their covering groups, which has been published in [Jan05]. This table can be shown as follows.
+ + ++ ++gap> if IsBound( BrowseMinimalDegrees ) then +> # just scroll in the table +> BrowseData.SetReplay( Concatenation( [ DOWN, DOWN, DOWN, END ], +> "rrrrrrrrrrrrrr", nop, nop, "Q" ) ); +> BrowseMinimalDegrees( BibliographySporadicSimple.groupNamesJan05 );; +> fi; +The browse table does not contain rows for the groups \(6.M_{22}\), \(12.M_{22}\), \(6.Fi_{22}\). Note that in spite of the title of [Jan05], the entries in Table 1 of this paper are in fact the minimal degrees of faithful irreducible representations, and in the above three cases, these degrees are larger than the minimal degrees of faithful representations. The underlying data of the browse table is about the minimal faithful (but not necessarily irreducible) degrees.
+ +The return value of
+ +BrowseMinimalDegrees
is the list ofOneAtlasGeneratingSetInfo
(3.5-6) values for those representations that have been "clicked" in visual mode.The variant without arguments of this function is also available in the menu shown by
+ + + +BrowseGapData
(Browse: BrowseGapData).3.6-2 BrowseBibliographySporadicSimple
+ ++
‣ BrowseBibliographySporadicSimple
( )( function ) Returns: a record as returned by
+ +ParseBibXMLExtString
(GAPDoc: ParseBibXMLextString).If the GAP package Browse (see [BL18]) is loaded then this function is available. It opens a browse table whose rows correspond to the entries of the bibliographies in the ATLAS of Finite Groups [CCN+85] and in the ATLAS of Brauer Characters [JLPW95].
+ +The function is based on
+ +BrowseBibliography
(Browse: BrowseBibliography), see the documentation of this function for details, e.g., about the return value.The returned record encodes the bibliography entries corresponding to those rows of the table that are "clicked" in visual mode, in the same format as the return value of
+ +ParseBibXMLExtString
(GAPDoc: ParseBibXMLextString), see the manual of the GAP package GAPDoc [LN18] for details.+ + +
BrowseBibliographySporadicSimple
can be called also via the menu shown byBrowseGapData
(Browse: BrowseGapData).+ ++gap> if IsBound( BrowseBibliographySporadicSimple ) then +> enter:= NCurses.keys.ENTER;; nop:= [ 14, 14, 14 ];; +> BrowseData.SetReplay( Concatenation( +> # choose the application +> "/Bibliography of Sporadic Simple Groups", [ enter, enter ], +> # search in the title column for the Atlas of Finite Groups +> "scr/Atlas of finite groups", [ enter, +> # and quit +> nop, nop, nop, nop ], "Q" ) ); +> BrowseGapData();; +> BrowseData.SetReplay( false ); +> fi; +The bibliographies contained in the ATLAS of Finite Groups [CCN+85] and in the ATLAS of Brauer Characters [JLPW95] are available online in HTML format, see http://www.math.rwth-aachen.de/~Thomas.Breuer/atlasrep/bibl/index.html.
+ +The source data in BibXMLext format, which are used by
+ +BrowseBibliographySporadicSimple
, are distributed with the AtlasRep package, in four files with suffixxml
in the package'sbibl
directory. Note that each of the two books contains two bibliographies.Details about the BibXMLext format, including information how to transform the data into other formats such as BibTeX, can be found in the GAP package GAPDoc (see [LN18]).
+ + + + + + + +
+generated by GAPDoc2HTML
+ + diff -Nru gap-atlasrep-1.5.1/doc/chap3.txt gap-atlasrep-2.1.0/doc/chap3.txt --- gap-atlasrep-1.5.1/doc/chap3.txt 2016-04-06 12:18:13.000000000 +0000 +++ gap-atlasrep-2.1.0/doc/chap3.txt 2019-06-21 15:10:33.000000000 +0000 @@ -3,23 +3,13 @@ [33X[0;0YThe [13Xuser interface[113X is the part of the [5XGAP[105X interface that allows one to display information about the current contents of the database and to access - individual data (perhaps from a remote server, see Section [14X4.3-1[114X). The + individual data (perhaps by downloading them, see Section [14X4.2-1[114X). The corresponding functions are described in this chapter. See Section [14X2.4[114X for some small examples how to use the functions of the interface.[133X - [33X[0;0YExtensions of the [5XAtlasRep[105X package are regarded as another part of the [5XGAP[105X - interface, they are described in Chapter [14X5[114X. Finally, the low level part of - the interface are described in Chapter [14X7[114X.[133X - - [33X[0;0YFor some of the examples in this chapter, the [5XGAP[105X packages [5XCTblLib[105X and - [5XTomLib[105X are needed, so we load them.[133X - - [4X[32X Example [32X[104X - [4X[25Xgap>[125X [27XLoadPackage( "ctbllib" );[127X[104X - [4X[28Xtrue[128X[104X - [4X[25Xgap>[125X [27XLoadPackage( "tomlib" );[127X[104X - [4X[28Xtrue[128X[104X - [4X[32X[104X + [33X[0;0YData extensions of the [5XAtlasRep[105X package are regarded as another part of the + [5XGAP[105X interface, they are described in Chapter [14X5[114X. Finally, the low level part + of the interface is described in Chapter [14X7[114X.[133X [1X3.1 [33X[0;0YAccessing vs. Constructing Representations[133X[101X @@ -28,7 +18,7 @@ this package to [13Xconstruct[113X representations from known ones. For example, if at least one permutation representation for a group [22XG[122X is stored but no matrix representation in a positive characteristic [22Xp[122X, say, then - [2XOneAtlasGeneratingSetInfo[102X ([14X3.5-5[114X) returns [9Xfail[109X when it is asked for a + [2XOneAtlasGeneratingSetInfo[102X ([14X3.5-6[114X) returns [9Xfail[109X when it is asked for a description of an available set of matrix generators for [22XG[122X in characteristic [22Xp[122X, although such a representation can be obtained by reduction modulo [22Xp[122X of an integral matrix representation, which in turn can be constructed from any @@ -42,16 +32,15 @@ which are called [13Xthe [5XGAP[105X names[113X of the group in the following.[133X [33X[0;0YFor a group [22XG[122X, say, whose character table is available in [5XGAP[105X's Character - Table Library, the admissible names of [22XG[122X are the admissible names of this - character table. If [22XG[122X is almost simple, one such name is the [2XIdentifier[102X - ([14XReference: Identifier (for character tables)[114X) value of the character table, - see [2XAccessing a Character Table from the Library[102X ([14XCTblLib: Accessing a - Character Table from the Library[114X). This name is usually very similar to the - name used in the [5XATLAS[105X of Finite Groups [CCNPW85]. For example, [10X"M22"[110X is a - [5XGAP[105X name of the Mathieu group [22XM_22[122X, [10X"12_1.U4(3).2_1"[110X is a [5XGAP[105X name of - [22X12_1.U_4(3).2_1[122X, the two names [10X"S5"[110X and [10X"A5.2"[110X are [5XGAP[105X names of the - symmetric group [22XS_5[122X, and the two names [10X"F3+"[110X and [10X"Fi24'"[110X are [5XGAP[105X names of - the simple Fischer group [22XFi_24^'[122X.[133X + Table Library (see [Bre13]), the admissible names of [22XG[122X are the admissible + names of this character table. One such name is the [2XIdentifier[102X ([14XReference: + Identifier for character tables[114X) value of the character table, see [14X'CTblLib: + Admissible Names for Character Tables in CTblLib'[114X. This name is usually very + similar to the name used in the [5XATLAS[105X of Finite Groups [CCN+85]. For + example, [10X"M22"[110X is a [5XGAP[105X name of the Mathieu group [22XM_22[122X, [10X"12_1.U4(3).2_1"[110X is + a [5XGAP[105X name of [22X12_1.U_4(3).2_1[122X, the two names [10X"S5"[110X and [10X"A5.2"[110X are [5XGAP[105X names + of the symmetric group [22XS_5[122X, and the two names [10X"F3+"[110X and [10X"Fi24'"[110X are [5XGAP[105X + names of the simple Fischer group [22XFi_24^'[122X.[133X [33X[0;0YWhen a [5XGAP[105X name is required as an input of a package function, this input is case insensitive. For example, both [10X"A5"[110X and [10X"a5"[110X are valid arguments of @@ -69,9 +58,10 @@ [33X[0;0YFor the general definition of [13Xstandard generators[113X of a group, see [Wil96].[133X [33X[0;0YSeveral [13Xdifferent[113X standard generators may be defined for a group, the - definitions can be found at[133X + definitions for each group that occurs in the [5XATLAS[105X of Group Representations + can be found at[133X - [33X[0;0Y[7Xhttp://brauer.maths.qmul.ac.uk/Atlas[107X[133X + [33X[0;0Y[7Xhttp://brauer.maths.qmul.ac.uk/Atlas/v3[107X.[133X [33X[0;0YWhen one specifies the standardization, the [22Xi[122X-th set of standard generators is denoted by the number [22Xi[122X. Note that when more than one set of standard @@ -81,18 +71,18 @@ standardization of their inputs. That is, a straight line program for computing generators of a certain subgroup of a group [22XG[122X is defined only for a specific set of standard generators of [22XG[122X, and applying the program to - matrix or permutation generators of [22XG[122X but w.r.t. a different standardization - may yield unpredictable results. Therefore the results returned by the - functions described in this chapter contain information about the - standardizations they refer to.[133X + matrix or permutation generators of [22XG[122X but w. r. t. a different + standardization may yield unpredictable results. Therefore the results + returned by the functions described in this chapter contain information + about the standardizations they refer to.[133X [1X3.4 [33X[0;0YClass Names Used in the [5XAtlasRep[105X[101X[1X Package[133X[101X - [33X[0;0YFor each straight line program (see [2XAtlasProgram[102X ([14X3.5-3[114X)) that is used to + [33X[0;0YFor each straight line program (see [2XAtlasProgram[102X ([14X3.5-4[114X)) that is used to compute lists of class representatives, it is essential to describe the classes in which these elements lie. Therefore, in these cases the records - returned by the function [2XAtlasProgram[102X ([14X3.5-3[114X) contain a component [10Xoutputs[110X + returned by the function [2XAtlasProgram[102X ([14X3.5-4[114X) contain a component [10Xoutputs[110X with value a list of [13Xclass names[113X.[133X [33X[0;0YCurrently we define these class names only for simple groups and certain @@ -105,7 +95,7 @@ [33X[0;0YFor the definition of class names of an almost simple group, we assume that the ordinary character tables of all nontrivial normal subgroups are shown - in the [5XATLAS[105X of Finite Groups [CCNPW85].[133X + in the [5XATLAS[105X of Finite Groups [CCN+85].[133X [33X[0;0YEach class name is a string consisting of the element order of the class in question followed by a combination of capital letters, digits, and the @@ -115,9 +105,9 @@ [31X1[131X [33X[0;6YFor the table of a [13Xsimple[113X group, the class names are the same as returned by the two argument version of the [5XGAP[105X function [2XClassNames[102X - ([14XReference: ClassNames[114X), cf. [CCNPW85, Chapter 7, Section 5]: The - classes are arranged w.r.t. increasing element order and for each - element order w.r.t. decreasing centralizer order, the conjugacy + ([14XReference: ClassNames[114X), cf. [CCN+85, Chapter 7, Section 5]: The + classes are arranged w. r. t. increasing element order and for each + element order w. r. t. decreasing centralizer order, the conjugacy classes that contain elements of order [22Xn[122X are named [22Xn[122X[10XA[110X, [22Xn[122X[10XB[110X, [22Xn[122X[10XC[110X, [22X...[122X; the alphabet used here is potentially infinite, and reads [10XA[110X, [10XB[110X, [10XC[110X, [22X...[122X, [10XZ[110X, [10XA1[110X, [10XB1[110X, [22X...[122X, [10XA2[110X, [10XB2[110X, [22X...[122X.[133X @@ -127,11 +117,11 @@ [31X2[131X [33X[0;6YNext we consider the case of an [13Xupward extension[113X [22XG.A[122X of a simple group [22XG[122X by a [13Xcyclic[113X group of order [22XA[122X. The [5XATLAS[105X defines class names for each - element [22Xg[122X of [22XG.A[122X only w.r.t. the group [22XG.a[122X, say, that is generated by - [22XG[122X and [22Xg[122X; namely, there is a power of [22Xg[122X (with the exponent coprime to - the order of [22Xg[122X) for which the class has a name of the same form as the - class names for simple groups, and the name of the class of [22Xg[122X - w.r.t. [22XG.a[122X is then obtained from this name by appending a suitable + element [22Xg[122X of [22XG.A[122X only w. r. t. the group [22XG.a[122X, say, that is generated + by [22XG[122X and [22Xg[122X; namely, there is a power of [22Xg[122X (with the exponent coprime + to the order of [22Xg[122X) for which the class has a name of the same form as + the class names for simple groups, and the name of the class of [22Xg[122X + w. r. t. [22XG.a[122X is then obtained from this name by appending a suitable number of dashes [10X'[110X. So dashed class names refer exactly to those classes that are not printed in the [5XATLAS[105X.[133X @@ -153,7 +143,7 @@ [31X3[131X [33X[0;6YNow we define class names for [13Xgeneral upward extensions[113X [22XG.A[122X of a simple group [22XG[122X. Each element [22Xg[122X of such a group lies in an upward - extension [22XG.a[122X by a cyclic group, and the class names w.r.t. [22XG.a[122X are + extension [22XG.a[122X by a cyclic group, and the class names w. r. t. [22XG.a[122X are already defined. The name of the class of [22Xg[122X in [22XG.A[122X is obtained by concatenating the names of the classes in the orbit of [22XG.A[122X on the classes of cyclic upward extensions of [22XG[122X, after ordering the names @@ -168,7 +158,7 @@ [22XU_3(5).2^{''}[122X to the class [10X2B[110X of [22XU_3(5).S_3[122X.[133X [33X[0;6YIt may happen that some names in the [10Xoutputs[110X component of a record - returned by [2XAtlasProgram[102X ([14X3.5-3[114X) do not uniquely determine the classes + returned by [2XAtlasProgram[102X ([14X3.5-4[114X) do not uniquely determine the classes of the corresponding elements. For example, the (algebraically conjugate) classes [10X39A[110X and [10X39B[110X of the group [22XCo_1[122X have not been distinguished yet. In such cases, the names used contain a minus sign @@ -184,7 +174,7 @@ [22Xm.G.A[122X onto [22XG.A[122X. Each class name of [22Xm.G.A[122X has the form [10XnX_0[110X, [10XnX_1[110X etc., where [10XnX[110X is the class name of the image under [22Xπ[122X, and the indices [10X0[110X, [10X1[110X etc. are chosen according to the position of the class in the lifting - order rows for [22XG[122X, see [CCNPW85, Chapter 7, Section 7, and the example + order rows for [22XG[122X, see [CCN+85, Chapter 7, Section 7, and the example in Section 8]).[133X [33X[0;6YFor example, if [22Xm = 6[122X then [10X1A_1[110X and [10X1A_5[110X denote the classes containing @@ -193,7 +183,7 @@ [1X3.4-2 AtlasClassNames[101X - [29X[2XAtlasClassNames[102X( [3Xtbl[103X ) [32X function + [33X[1;0Y[29X[2XAtlasClassNames[102X( [3Xtbl[103X ) [32X function[133X [6XReturns:[106X [33X[0;10Ya list of class names.[133X [33X[0;0YLet [3Xtbl[103X be the ordinary or modular character table of a group [22XG[122X, say, that @@ -232,7 +222,7 @@ [1X3.4-3 AtlasCharacterNames[101X - [29X[2XAtlasCharacterNames[102X( [3Xtbl[103X ) [32X function + [33X[1;0Y[29X[2XAtlasCharacterNames[102X( [3Xtbl[103X ) [32X function[133X [6XReturns:[106X [33X[0;10Ya list of character names.[133X [33X[0;0YLet [3Xtbl[103X be the ordinary or modular character table of a simple group. @@ -246,192 +236,230 @@ [4X[32X[104X - [1X3.5 [33X[0;0YAccessing Data of the [5XAtlasRep[105X[101X[1X Package[133X[101X + [1X3.5 [33X[0;0YAccessing Data via [5XAtlasRep[105X[101X[1X[133X[101X - [33X[0;0YNote that the output of the examples in this section refers to a perhaps - outdated table of contents; the current version of the database may contain - more information than is shown here.[133X + [33X[0;0YThe examples shown in this section refer to the situation that no extensions + have been notified, and to a perhaps outdated table of contents. That is, + the current version of the database may contain more information than is + shown here.[133X [1X3.5-1 DisplayAtlasInfo[101X - [29X[2XDisplayAtlasInfo[102X( [[3Xlistofnames[103X, ][[3Xstd[103X, ][[3X"contents"[103X, [3Xsources[103X, ][[3X...[103X] ) [32X function - [29X[2XDisplayAtlasInfo[102X( [3Xgapname[103X[, [3Xstd[103X][, [3X...[103X] ) [32X function + [33X[1;0Y[29X[2XDisplayAtlasInfo[102X( [[3Xlistofnames[103X, ][[3Xstd[103X, ][[3X"contents"[103X, [3Xsources[103X, ][[3X...[103X] ) [32X function[133X + [33X[1;0Y[29X[2XDisplayAtlasInfo[102X( [3Xgapname[103X[, [3Xstd[103X][, [3X...[103X] ) [32X function[133X [33X[0;0YThis function lists the information available via the [5XAtlasRep[105X package, for - the given input. Depending on whether remote access to data is enabled (see - Section [14X4.3-1[114X), all the data provided by the [5XATLAS[105X of Group Representations - or only those in the local installation are considered.[133X - - [33X[0;0YAn interactive alternative to [2XDisplayAtlasInfo[102X is the function - [2XBrowseAtlasInfo[102X ([14XBrowse: BrowseAtlasInfo[114X), see [BL14].[133X - - [33X[0;0YCalled without arguments, [2XDisplayAtlasInfo[102X prints an overview what - information the [5XATLAS[105X of Group Representations provides. One line is printed - for each group [22XG[122X, with the following columns.[133X + the given input.[133X + + [33X[0;0YThere are essentially three ways of calling this function.[133X + + [30X [33X[0;6YIf there is no argument or if the first argument is a list [3Xlistofnames[103X + of strings that are [5XGAP[105X names of groups, [2XDisplayAtlasInfo[102X shows an + overview of the known information.[133X + + [30X [33X[0;6YIf the first argument is a string [3Xgapname[103X that is a [5XGAP[105X name of a + group, [2XDisplayAtlasInfo[102X shows an overview of the information that is + available for this group.[133X + + [30X [33X[0;6YIf the string [10X"contents"[110X is the only argument then the function shows + which parts of the database are available; these are at least the + [10X"core"[110X part, which means the data from the [5XATLAS[105X of Group + Representations, and the [10X"internal"[110X part, which means the data that + are distributed with the [5XAtlasRep[105X package. Other parts can become + available by calls to [2XAtlasOfGroupRepresentationsNotifyData[102X ([14X5.1-1[114X).[133X + + [33X[0;0YIn each case, the information will be printed to the screen or will be fed + into a pager, see Section [14X4.2-12[114X. An interactive alternative to + [2XDisplayAtlasInfo[102X is the function [2XBrowseAtlasInfo[102X ([14XBrowse: BrowseAtlasInfo[114X), + see [BL18].[133X + + [33X[0;0YThe following paragraphs describe the structure of the output in the two + cases. Examples can be found in Section [14X3.5-2[114X.[133X + + [33X[0;0YCalled without arguments, [2XDisplayAtlasInfo[102X shows a general overview for all + groups. If some information is available for the group [22XG[122X, say, then one line + is shown for [22XG[122X, with the following columns.[133X - [8X[10Xgroup[110X[108X + [8X[10Xgroup[110X[8X[108X [33X[0;6Ythe [5XGAP[105X name of [22XG[122X (see Section [14X3.2[114X),[133X - [8X[10X#[110X[108X + [8X[10X#[110X[8X[108X [33X[0;6Ythe number of faithful representations stored for [22XG[122X that satisfy the additional conditions given (see below),[133X - [8X[10Xmaxes[110X[108X + [8X[10Xmaxes[110X[8X[108X [33X[0;6Ythe number of available straight line programs for computing generators of maximal subgroups of [22XG[122X,[133X - [8X[10Xcl[110X[108X + [8X[10Xcl[110X[8X[108X [33X[0;6Ya [10X+[110X sign if at least one program for computing representatives of conjugacy classes of elements of [22XG[122X is stored,[133X - [8X[10Xcyc[110X[108X + [8X[10Xcyc[110X[8X[108X [33X[0;6Ya [10X+[110X sign if at least one program for computing representatives of classes of maximally cyclic subgroups of [22XG[122X is stored,[133X - [8X[10Xout[110X[108X + [8X[10Xout[110X[8X[108X [33X[0;6Ydescriptions of outer automorphisms of [22XG[122X for which at least one program is stored,[133X - [8X[10Xfnd[110X[108X + [8X[10Xfnd[110X[8X[108X [33X[0;6Ya [10X+[110X sign if at least one program is available for finding standard generators,[133X - [8X[10Xchk[110X[108X + [8X[10Xchk[110X[8X[108X [33X[0;6Ya [10X+[110X sign if at least one program is available for checking whether a set of generators is a set of standard generators, and[133X - [8X[10Xprs[110X[108X + [8X[10Xprs[110X[8X[108X [33X[0;6Ya [10X+[110X sign if at least one program is available that encodes a presentation.[133X - [33X[0;0Y(The list can be printed to the screen or can be fed into a pager, see - Section [14X4.3-5[114X.)[133X - - [33X[0;0YCalled with a list [3Xlistofnames[103X of strings that are [5XGAP[105X names for a group - from the [5XATLAS[105X of Group Representations, [2XDisplayAtlasInfo[102X prints the - overview described above but restricted to the groups in this list.[133X + [33X[0;0YCalled with a list [3Xlistofnames[103X of strings that are [5XGAP[105X names of some groups, + [2XDisplayAtlasInfo[102X prints the overview described above but restricted to the + groups in this list.[133X [33X[0;0YIn addition to or instead of [3Xlistofnames[103X, the string [10X"contents"[110X and a - description [3Xsources[103X of the data may be given about which the overview is - formed. See below for admissible values of [3Xsources[103X.[133X + description [22Xsources[122X of the data may be given about which the overview is + formed. See below for admissible values of [22Xsources[122X.[133X - [33X[0;0YCalled with a string [3Xgapname[103X that is a [5XGAP[105X name for a group from the [5XATLAS[105X - of Group Representations, [2XDisplayAtlasInfo[102X prints an overview of the - information that is available for this group. One line is printed for each - faithful representation, showing the number of this representation (which - can be used in calls of [2XAtlasGenerators[102X ([14X3.5-2[114X)), and a string of one of the - following forms; in both cases, [3Xid[103X is a (possibly empty) string.[133X + [33X[0;0YCalled with a string [3Xgapname[103X that is a [5XGAP[105X name of a group, [2XDisplayAtlasInfo[102X + prints an overview of the information that is available for this group. One + line is printed for each faithful representation, showing the number of this + representation (which can be used in calls of [2XAtlasGenerators[102X ([14X3.5-3[114X)), and + a string of one of the following forms; in both cases, [22Xid[122X is a (possibly + empty) string.[133X - [8X[10XG <= Sym([3Xn[103X[10X[3Xid[103X[10X)[110X[108X - [33X[0;6Ydenotes a permutation representation of degree [3Xn[103X, for example [10XG <= + [8X[10XG <= Sym([110X[8X[22Xn[122X[22Xid[122X[10X)[110X[8X[108X + [33X[0;6Ydenotes a permutation representation of degree [22Xn[122X, for example [10XG <= Sym(40a)[110X and [10XG <= Sym(40b)[110X denote two (nonequivalent) representations of degree [22X40[122X.[133X - [8X[10XG <= GL([3Xn[103X[10X[3Xid[103X[10X,[3Xdescr[103X[10X)[110X[108X - [33X[0;6Ydenotes a matrix representation of dimension [3Xn[103X over a coefficient ring - described by [3Xdescr[103X, which can be a prime power, [10Xℤ[110X (denoting the ring + [8X[10XG <= GL([110X[8X[22Xn[122X[22Xid[122X,[22Xdescr[122X[10X)[110X[8X[108X + [33X[0;6Ydenotes a matrix representation of dimension [22Xn[122X over a coefficient ring + described by [22Xdescr[122X, which can be a prime power, [10Xℤ[110X (denoting the ring of integers), a description of an algebraic extension field, [10Xℂ[110X - (denoting an unspecified algebraic extension field), or [10Xℤ/[3Xm[103X[10Xℤ[110X for an - integer [3Xm[103X (denoting the ring of residues mod [3Xm[103X); for example, [10XG <= + (denoting an unspecified algebraic extension field), or [10Xℤ/[110X[22Xm[122X[10Xℤ[110X for an + integer [22Xm[122X (denoting the ring of residues mod [22Xm[122X); for example, [10XG <= GL(2a,4)[110X and [10XG <= GL(2b,4)[110X denote two (nonequivalent) representations of dimension [22X2[122X over the field with four elements.[133X - [33X[0;0YAfter the representations, the programs available for [3Xgapname[103X are listed.[133X - - [33X[0;0YThe following optional arguments can be used to restrict the overviews.[133X + [33X[0;0YAfter the representations, the programs available for [3Xgapname[103X are listed. + The following optional arguments can be used to restrict the overviews.[133X - [8X[3Xstd[103X[108X + [8X[3Xstd[103X[8X[108X [33X[0;6Ymust be a positive integer or a list of positive integers; if it is given then only those representations are considered that refer to the [3Xstd[103X-th set of standard generators or the [22Xi[122X-th set of standard generators, for [22Xi[122X in [3Xstd[103X (see Section [14X3.3[114X),[133X - [8X[10X"contents"[110X and [3Xsources[103X[108X - [33X[0;6Yfor a string or a list of strings [3Xsources[103X, restrict the data about - which the overview is formed; if [3Xsources[103X is the string [10X"public"[110X then - only non-private data (see Chapter [14X5[114X) are considered, if [3Xsources[103X is a - string that denotes a private extension in the sense of a [3Xdirid[103X - argument of [2XAtlasOfGroupRepresentationsNotifyPrivateDirectory[102X ([14X5.1-1[114X) - then only the data that belong to this private extension are - considered; also a list of such strings may be given, then the union - of these data is considered,[133X + [8X[10X"contents"[110X[8X and [22Xsources[122X[108X + [33X[0;6Yfor a string or a list of strings [22Xsources[122X, restrict the data about + which the overview is formed; if [22Xsources[122X is the string [10X"core"[110X then + only data from the [5XATLAS[105X of Group Representations are considered, if + [22Xsources[122X is a string that denotes a data extension in the sense of a + [10Xdirid[110X argument of [2XAtlasOfGroupRepresentationsNotifyData[102X ([14X5.1-1[114X) then + only the data that belong to this data extension are considered; also + a list of such strings may be given, then the union of these data is + considered,[133X - [8X[10XIdentifier[110X and [3Xid[103X[108X - [33X[0;6Yrestrict to representations with [10Xidentifier[110X component in the list [3Xid[103X + [8X[10XIdentifier[110X[8X and [22Xid[122X[108X + [33X[0;6Yrestrict to representations with [10Xidentifier[110X component in the list [22Xid[122X (note that this component is itself a list, entering this list is not - admissible), or satisfying the function [3Xid[103X,[133X + admissible), or satisfying the function [22Xid[122X,[133X - [8X[10XIsPermGroup[110X and [9Xtrue[109X[108X + [8X[10XIsPermGroup[110X[8X and [9Xtrue[109X[108X [33X[0;6Yrestrict to permutation representations,[133X - [8X[10XNrMovedPoints[110X and [3Xn[103X[108X - [33X[0;6Yfor a positive integer, a list of positive integers, or a property [3Xn[103X, - restrict to permutation representations of degree equal to [3Xn[103X, or in - the list [3Xn[103X, or satisfying the function [3Xn[103X,[133X + [8X[10XNrMovedPoints[110X[8X and [22Xn[122X[108X + [33X[0;6Yfor a positive integer, a list of positive integers, or a property [22Xn[122X, + restrict to permutation representations of degree equal to [22Xn[122X, or in + the list [22Xn[122X, or satisfying the function [22Xn[122X,[133X - [8X[10XNrMovedPoints[110X and the string [10X"minimal"[110X[108X + [8X[10XNrMovedPoints[110X[8X and the string [10X"minimal"[110X[8X[108X [33X[0;6Yrestrict to faithful permutation representations of minimal degree (if this information is available),[133X - [8X[10XIsTransitive[110X and [9Xtrue[109X or [9Xfalse[109X[108X - [33X[0;6Yrestrict to transitive or intransitive permutation representations (if - this information is available),[133X - - [8X[10XIsPrimitive[110X and [9Xtrue[109X or [9Xfalse[109X[108X - [33X[0;6Yrestrict to primitive or imprimitive permutation representations (if - this information is available),[133X + [8X[10XIsTransitive[110X[8X and a boolean value[108X + [33X[0;6Yrestrict to transitive or intransitive permutation representations + where this information is available (if the value [9Xtrue[109X or [9Xfalse[109X is + given), or to representations for which this information is not + available (if the value [9Xfail[109X is given),[133X + + [8X[10XIsPrimitive[110X[8X and a boolean value[108X + [33X[0;6Yrestrict to primitive or imprimitive permutation representations where + this information is available (if the value [9Xtrue[109X or [9Xfalse[109X is given), + or to representations for which this information is not available (if + the value [9Xfail[109X is given),[133X - [8X[10XTransitivity[110X and [3Xn[103X[108X + [8X[10XTransitivity[110X[8X and [22Xn[122X[108X [33X[0;6Yfor a nonnegative integer, a list of nonnegative integers, or a - property [3Xn[103X, restrict to permutation representations of transitivity - equal to [3Xn[103X, or in the list [3Xn[103X, or satisfying the function [3Xn[103X (if this - information is available),[133X + property [22Xn[122X, restrict to permutation representations for which the + information is available that the transitivity is equal to [22Xn[122X, or is in + the list [22Xn[122X, or satisfies the function [22Xn[122X; if [22Xn[122X is [9Xfail[109X then restrict to + all permutation representations for which this information is not + available,[133X - [8X[10XRankAction[110X and [3Xn[103X[108X + [8X[10XRankAction[110X[8X and [22Xn[122X[108X [33X[0;6Yfor a nonnegative integer, a list of nonnegative integers, or a - property [3Xn[103X, restrict to permutation representations of rank equal to - [3Xn[103X, or in the list [3Xn[103X, or satisfying the function [3Xn[103X (if this information - is available),[133X + property [22Xn[122X, restrict to permutation representations for which the + information is available that the rank is equal to [22Xn[122X, or is in the + list [22Xn[122X, or satisfies the function [22Xn[122X; if [22Xn[122X is [9Xfail[109X then restrict to all + permutation representations for which this information is not + available,[133X - [8X[10XIsMatrixGroup[110X and [9Xtrue[109X[108X + [8X[10XIsMatrixGroup[110X[8X and [9Xtrue[109X[108X [33X[0;6Yrestrict to matrix representations,[133X - [8X[10XCharacteristic[110X and [3Xp[103X[108X - [33X[0;6Yfor a prime integer, a list of prime integers, or a property [3Xp[103X, + [8X[10XCharacteristic[110X[8X and [22Xp[122X[108X + [33X[0;6Yfor a prime integer, a list of prime integers, or a property [22Xp[122X, restrict to matrix representations over fields of characteristic equal - to [3Xp[103X, or in the list [3Xp[103X, or satisfying the function [3Xp[103X (representations + to [22Xp[122X, or in the list [22Xp[122X, or satisfying the function [22Xp[122X (representations over residue class rings that are not fields can be addressed by - entering [9Xfail[109X as the value of [3Xp[103X),[133X + entering [9Xfail[109X as the value of [22Xp[122X),[133X - [8X[10XDimension[110X and [3Xn[103X[108X - [33X[0;6Yfor a positive integer, a list of positive integers, or a property [3Xn[103X, - restrict to matrix representations of dimension equal to [3Xn[103X, or in the - list [3Xn[103X, or satisfying the function [3Xn[103X,[133X - - [8X[10XCharacteristic[110X, [3Xp[103X, [10XDimension[110X, - and the string [10X"minimal"[110X[108X - [33X[0;6Yfor a prime integer [3Xp[103X, restrict to faithful matrix representations - over fields of characteristic [3Xp[103X that have minimal dimension (if this + [8X[10XDimension[110X[8X and [22Xn[122X[108X + [33X[0;6Yfor a positive integer, a list of positive integers, or a property [22Xn[122X, + restrict to matrix representations of dimension equal to [22Xn[122X, or in the + list [22Xn[122X, or satisfying the function [22Xn[122X,[133X + + [8X[10XCharacteristic[110X[8X, [22Xp[122X, [10XDimension[110X[8X, and the string [10X"minimal"[110X[8X[108X + [33X[0;6Yfor a prime integer [22Xp[122X, restrict to faithful matrix representations + over fields of characteristic [22Xp[122X that have minimal dimension (if this information is available),[133X - [8X[10XRing[110X and [3XR[103X[108X - [33X[0;6Yfor a ring or a property [3XR[103X, restrict to matrix representations over - this ring or satisfying this function (note that the representation - might be defined over a proper subring of [3XR[103X),[133X - - [8X[10XRing[110X, [3XR[103X, [10XDimension[110X, - and the string [10X"minimal"[110X[108X - [33X[0;6Yfor a ring [3XR[103X, restrict to faithful matrix representations over this + [8X[10XRing[110X[8X and [22XR[122X[108X + [33X[0;6Yfor a ring or a property [22XR[122X, restrict to matrix representations for + which the information is available that the ring spanned by the matrix + entries is contained in this ring or satisfies this property (note + that the representation might be defined over a proper subring); if [22XR[122X + is [9Xfail[109X then restrict to all matrix representations for which this + information is not available,[133X + + [8X[10XRing[110X[8X, [22XR[122X, [10XDimension[110X[8X, and the string [10X"minimal"[110X[8X[108X + [33X[0;6Yfor a ring [22XR[122X, restrict to faithful matrix representations over this ring that have minimal dimension (if this information is available),[133X - [8X[10XCharacter[110X and [3Xchi[103X[108X - [33X[0;6Yfor a class function or a list of class functions [3Xchi[103X, restrict to - matrix representations with these characters (note that the underlying + [8X[10XCharacter[110X[8X and [22Xchi[122X[108X + [33X[0;6Yfor a class function or a list of class functions [22Xchi[122X, restrict to + representations with these characters (note that the underlying characteristic of the class function, see Section [14X'Reference: UnderlyingCharacteristic'[114X, determines the characteristic of the - matrices), and[133X + representation),[133X + + [8X[10XCharacter[110X[8X and [22Xname[122X[108X + [33X[0;6Yfor a string [22Xname[122X, restrict to representations for which the character + is known to have this name, according to the information shown by + [2XDisplayAtlasInfo[102X; if the characteristic is not specified then it + defaults to zero,[133X + + [8X[10XCharacter[110X[8X and [22Xn[122X[108X + [33X[0;6Yfor a positive integer [22Xn[122X, restrict to representations for which the + character is known to be the [22Xn[122X-th irreducible character in [5XGAP[105X's + library character table of the group in question; if the + characteristic is not specified then it defaults to zero, and[133X - [8X[10XIsStraightLineProgram[110X and [9Xtrue[109X[108X + [8X[10XIsStraightLineProgram[110X[8X and [9Xtrue[109X[108X [33X[0;6Yrestrict to straight line programs, straight line decisions (see Section [14X6.1[114X), and black box programs (see Section [14X6.2[114X).[133X @@ -469,29 +497,88 @@ not related. (This coincides with the numbering used for the [2XMaxes[102X ([14XCTblLib: Maxes[114X) attribute for character tables.)[133X + + [1X3.5-2 [33X[0;0YExamples for DisplayAtlasInfo[133X[101X + + [33X[0;0YHere are some examples how [2XDisplayAtlasInfo[102X ([14X3.5-1[114X) can be called, and how + it output can be interpreted.[133X + + [4X[32X Example [32X[104X + [4X[25Xgap>[125X [27XDisplayAtlasInfo( "contents" );[127X[104X + [4X[28X- AtlasRepAccessRemoteFiles: false[128X[104X + [4X[28X[128X[104X + [4X[28X- AtlasRepDataDirectory: /home/you/gap/pkg/atlasrep/[128X[104X + [4X[28X[128X[104X + [4X[28XID | address, version, files [128X[104X + [4X[28X---------+------------------------------------------------[128X[104X + [4X[28Xcore | http://brauer.maths.qmul.ac.uk/Atlas/, [128X[104X + [4X[28X | version 2019-04-08, [128X[104X + [4X[28X | 10586 files locally available. [128X[104X + [4X[28X---------+------------------------------------------------[128X[104X + [4X[28Xinternal | atlasrep/datapkg, [128X[104X + [4X[28X | version 2019-05-06, [128X[104X + [4X[28X | 276 files locally available. [128X[104X + [4X[28X---------+------------------------------------------------[128X[104X + [4X[28Xmfer | http://www.math.rwth-aachen.de/~mfer/datagens/,[128X[104X + [4X[28X | version 2015-10-06, [128X[104X + [4X[28X | 34 files locally available. [128X[104X + [4X[28X---------+------------------------------------------------[128X[104X + [4X[28Xctblocks | ctblocks/atlas/, [128X[104X + [4X[28X | version 2019-04-08, [128X[104X + [4X[28X | 121 files locally available. [128X[104X + [4X[32X[104X + + [33X[0;0YNote: The above output does not fit to the rest of the manual examples, + since data extensions except [10Xinternal[110X have been removed at the beginning of + Chapter [14X2[114X.[133X + + [33X[0;0YThe output tells us that two data extensions have been notified in addition + to the core data from the [5XATLAS[105X of Group Representations and the (local) + internal data distributed with the [5XAtlasRep[105X package. The files of the + extension [10Xmfer[110X must be downloaded before they can be read (but note that the + access to remote files is disabled), and the files of the extension [10Xctblocks[110X + are locally available in the [11Xctblocks/atlas[111X subdirectory of the [5XGAP[105X package + directory. This table (in particular the numbers of locally available files) + depends on your installation of the package and how many files you have + already downloaded.[133X + [4X[32X Example [32X[104X [4X[25Xgap>[125X [27XDisplayAtlasInfo( [ "M11", "A5" ] );[127X[104X [4X[28Xgroup | # | maxes | cl | cyc | out | fnd | chk | prs[128X[104X [4X[28X------+----+-------+----+-----+-----+-----+-----+----[128X[104X [4X[28XM11 | 42 | 5 | + | + | | + | + | + [128X[104X - [4X[28XA5 | 18 | 3 | | | | | + | + [128X[104X + [4X[28XA5* | 18 | 3 | + | | | | + | + [128X[104X [4X[32X[104X - [33X[0;0YThe above output means that the [5XATLAS[105X of Group Representations contains [22X42[122X - representations of the Mathieu group [22XM_11[122X, straight line programs for - computing generators of representatives of all five classes of maximal - subgroups, for computing representatives of the conjugacy classes of - elements and of generators of maximally cyclic subgroups, contains no - straight line program for applying outer automorphisms (well, in fact [22XM_11[122X - admits no nontrivial outer automorphism), and contains straight line - decisions that check a set of generators or a set of group elements for - being a set of standard generators. Analogously, [22X18[122X representations of the - alternating group [22XA_5[122X are available, straight line programs for computing - generators of representatives of all three classes of maximal subgroups, and - no straight line programs for computing representatives of the conjugacy - classes of elements, of generators of maximally cyclic subgroups, and no for - computing images under outer automorphisms; straight line decisions for - checking the standardization of generators or group elements are available.[133X + [33X[0;0YThe above output means that the database provides [22X42[122X representations of the + Mathieu group [22XM_11[122X, straight line programs for computing generators of + representatives of all five classes of maximal subgroups, for computing + representatives of the conjugacy classes of elements and of generators of + maximally cyclic subgroups, contains no straight line program for applying + outer automorphisms (well, in fact [22XM_11[122X admits no nontrivial outer + automorphism), and contains straight line decisions that check a set of + generators or a set of group elements for being a set of standard + generators. Analogously, [22X18[122X representations of the alternating group [22XA_5[122X are + available, straight line programs for computing generators of + representatives of all three classes of maximal subgroups, and no straight + line programs for computing representatives of the conjugacy classes of + elements, of generators of maximally cyclic subgroups, and no for computing + images under outer automorphisms; straight line decisions for checking the + standardization of generators or group elements are available.[133X + + [4X[32X Example [32X[104X + [4X[25Xgap>[125X [27XDisplayAtlasInfo( [ "M11", "A5" ], NrMovedPoints, 11 );[127X[104X + [4X[28Xgroup | # | maxes | cl | cyc | out | fnd | chk | prs[128X[104X + [4X[28X------+---+-------+----+-----+-----+-----+-----+----[128X[104X + [4X[28XM11 | 1 | 5 | + | + | | + | + | + [128X[104X + [4X[32X[104X + + [33X[0;0YThe given conditions restrict the overview to permutation representations on + [22X11[122X points. The rows for all those groups are omitted for which no such + representation is available, and the numbers of those representations are + shown that satisfy the given conditions. In the above example, we see that + no representation on [22X11[122X points is available for [22XA_5[122X, and exactly one such + representation is available for [22XM_11[122X.[133X [4X[32X Example [32X[104X [4X[25Xgap>[125X [27XDisplayAtlasInfo( "A5", IsPermGroup, true );[127X[104X @@ -514,21 +601,21 @@ [4X[25Xgap>[125X [27XDisplayAtlasInfo( "A5", Dimension, [ 1 .. 3 ] );[127X[104X [4X[28XRepresentations for G = A5: (all refer to std. generators 1)[128X[104X [4X[28X---------------------------[128X[104X - [4X[28X 8: G <= GL(2a,4) [128X[104X - [4X[28X 9: G <= GL(2b,4) [128X[104X - [4X[28X10: G <= GL(3,5) [128X[104X - [4X[28X12: G <= GL(3a,9) [128X[104X - [4X[28X13: G <= GL(3b,9) [128X[104X - [4X[28X17: G <= GL(3a,Field([Sqrt(5)])) [128X[104X - [4X[28X18: G <= GL(3b,Field([Sqrt(5)])) [128X[104X + [4X[28X 8: G <= GL(2a,4) character 2a[128X[104X + [4X[28X 9: G <= GL(2b,4) character 2b[128X[104X + [4X[28X10: G <= GL(3,5) character 3a[128X[104X + [4X[28X12: G <= GL(3a,9) character 3a[128X[104X + [4X[28X13: G <= GL(3b,9) character 3b[128X[104X + [4X[28X17: G <= GL(3a,Field([Sqrt(5)])) character 3a[128X[104X + [4X[28X18: G <= GL(3b,Field([Sqrt(5)])) character 3b[128X[104X [4X[25Xgap>[125X [27XDisplayAtlasInfo( "A5", Characteristic, 0 );[127X[104X [4X[28XRepresentations for G = A5: (all refer to std. generators 1)[128X[104X [4X[28X---------------------------[128X[104X - [4X[28X14: G <= GL(4,Z) [128X[104X - [4X[28X15: G <= GL(5,Z) [128X[104X - [4X[28X16: G <= GL(6,Z) [128X[104X - [4X[28X17: G <= GL(3a,Field([Sqrt(5)])) [128X[104X - [4X[28X18: G <= GL(3b,Field([Sqrt(5)])) [128X[104X + [4X[28X14: G <= GL(4,Z) character 4a[128X[104X + [4X[28X15: G <= GL(5,Z) character 5a[128X[104X + [4X[28X16: G <= GL(6,Z) character 3ab[128X[104X + [4X[28X17: G <= GL(3a,Field([Sqrt(5)])) character 3a[128X[104X + [4X[28X18: G <= GL(3b,Field([Sqrt(5)])) character 3b[128X[104X [4X[32X[104X [33X[0;0YThe representations with number between [22X4[122X and [22X13[122X are (in fact irreducible) @@ -541,10 +628,10 @@ [4X[25Xgap>[125X [27XDisplayAtlasInfo( "A5", Identifier, "a" );[127X[104X [4X[28XRepresentations for G = A5: (all refer to std. generators 1)[128X[104X [4X[28X---------------------------[128X[104X - [4X[28X 4: G <= GL(4a,2) [128X[104X - [4X[28X 8: G <= GL(2a,4) [128X[104X - [4X[28X12: G <= GL(3a,9) [128X[104X - [4X[28X17: G <= GL(3a,Field([Sqrt(5)])) [128X[104X + [4X[28X 4: G <= GL(4a,2) character 4a[128X[104X + [4X[28X 8: G <= GL(2a,4) character 2a[128X[104X + [4X[28X12: G <= GL(3a,9) character 3a[128X[104X + [4X[28X17: G <= GL(3a,Field([Sqrt(5)])) character 3a[128X[104X [4X[32X[104X [33X[0;0YEach of the representations with the numbers [22X4, 8, 12[122X, and [22X17[122X is labeled @@ -558,107 +645,161 @@ [4X[25Xgap>[125X [27XDisplayAtlasInfo( "A5", Characteristic, IsOddInt );[127X[104X [4X[28XRepresentations for G = A5: (all refer to std. generators 1)[128X[104X [4X[28X---------------------------[128X[104X - [4X[28X 6: G <= GL(4,3) [128X[104X - [4X[28X 7: G <= GL(6,3) [128X[104X - [4X[28X10: G <= GL(3,5) [128X[104X - [4X[28X11: G <= GL(5,5) [128X[104X - [4X[28X12: G <= GL(3a,9) [128X[104X - [4X[28X13: G <= GL(3b,9) [128X[104X + [4X[28X 6: G <= GL(4,3) character 4a[128X[104X + [4X[28X 7: G <= GL(6,3) character 3ab[128X[104X + [4X[28X10: G <= GL(3,5) character 3a[128X[104X + [4X[28X11: G <= GL(5,5) character 5a[128X[104X + [4X[28X12: G <= GL(3a,9) character 3a[128X[104X + [4X[28X13: G <= GL(3b,9) character 3b[128X[104X [4X[25Xgap>[125X [27XDisplayAtlasInfo( "A5", Dimension, IsPrimeInt );[127X[104X [4X[28XRepresentations for G = A5: (all refer to std. generators 1)[128X[104X [4X[28X---------------------------[128X[104X - [4X[28X 8: G <= GL(2a,4) [128X[104X - [4X[28X 9: G <= GL(2b,4) [128X[104X - [4X[28X10: G <= GL(3,5) [128X[104X - [4X[28X11: G <= GL(5,5) [128X[104X - [4X[28X12: G <= GL(3a,9) [128X[104X - [4X[28X13: G <= GL(3b,9) [128X[104X - [4X[28X15: G <= GL(5,Z) [128X[104X - [4X[28X17: G <= GL(3a,Field([Sqrt(5)])) [128X[104X - [4X[28X18: G <= GL(3b,Field([Sqrt(5)])) [128X[104X + [4X[28X 8: G <= GL(2a,4) character 2a[128X[104X + [4X[28X 9: G <= GL(2b,4) character 2b[128X[104X + [4X[28X10: G <= GL(3,5) character 3a[128X[104X + [4X[28X11: G <= GL(5,5) character 5a[128X[104X + [4X[28X12: G <= GL(3a,9) character 3a[128X[104X + [4X[28X13: G <= GL(3b,9) character 3b[128X[104X + [4X[28X15: G <= GL(5,Z) character 5a[128X[104X + [4X[28X17: G <= GL(3a,Field([Sqrt(5)])) character 3a[128X[104X + [4X[28X18: G <= GL(3b,Field([Sqrt(5)])) character 3b[128X[104X [4X[25Xgap>[125X [27XDisplayAtlasInfo( "A5", Ring, IsFinite and IsPrimeField );[127X[104X [4X[28XRepresentations for G = A5: (all refer to std. generators 1)[128X[104X [4X[28X---------------------------[128X[104X - [4X[28X 4: G <= GL(4a,2) [128X[104X - [4X[28X 5: G <= GL(4b,2) [128X[104X - [4X[28X 6: G <= GL(4,3) [128X[104X - [4X[28X 7: G <= GL(6,3) [128X[104X - [4X[28X10: G <= GL(3,5) [128X[104X - [4X[28X11: G <= GL(5,5) [128X[104X + [4X[28X 4: G <= GL(4a,2) character 4a[128X[104X + [4X[28X 5: G <= GL(4b,2) character 2ab[128X[104X + [4X[28X 6: G <= GL(4,3) character 4a[128X[104X + [4X[28X 7: G <= GL(6,3) character 3ab[128X[104X + [4X[28X10: G <= GL(3,5) character 3a[128X[104X + [4X[28X11: G <= GL(5,5) character 5a[128X[104X [4X[32X[104X [33X[0;0YThe above examples show how the output can be restricted using a property (a unary function that returns either [9Xtrue[109X or [9Xfalse[109X) that follows [2XNrMovedPoints[102X - ([14XReference: NrMovedPoints (for a permutation)[114X), [2XCharacteristic[102X ([14XReference: + ([14XReference: NrMovedPoints for a permutation[114X), [2XCharacteristic[102X ([14XReference: Characteristic[114X), [2XDimension[102X ([14XReference: Dimension[114X), or [2XRing[102X ([14XReference: Ring[114X) - in the argument list of [2XDisplayAtlasInfo[102X.[133X + in the argument list of [2XDisplayAtlasInfo[102X ([14X3.5-1[114X).[133X [4X[32X Example [32X[104X [4X[25Xgap>[125X [27XDisplayAtlasInfo( "A5", IsStraightLineProgram, true );[127X[104X [4X[28XPrograms for G = A5: (all refer to std. generators 1)[128X[104X [4X[28X--------------------[128X[104X - [4X[28Xpresentation[128X[104X - [4X[28Xstd. gen. checker[128X[104X - [4X[28Xmaxes (all 3):[128X[104X - [4X[28X 1: A4[128X[104X - [4X[28X 2: D10[128X[104X - [4X[28X 3: S3[128X[104X + [4X[28X- class repres.* [128X[104X + [4X[28X- presentation [128X[104X + [4X[28X- maxes (all 3):[128X[104X + [4X[28X 1: A4 [128X[104X + [4X[28X 2: D10 [128X[104X + [4X[28X 3: S3 [128X[104X + [4X[28X- std. gen. checker:[128X[104X + [4X[28X (check) [128X[104X + [4X[28X (pres) [128X[104X [4X[32X[104X [33X[0;0YStraight line programs are available for computing generators of representatives of the three classes of maximal subgroups of [22XA_5[122X, and a straight line decision for checking whether given generators are in fact standard generators is available as well as a presentation in terms of - standard generators, see [2XAtlasProgram[102X ([14X3.5-3[114X).[133X + standard generators, see [2XAtlasProgram[102X ([14X3.5-4[114X).[133X - [1X3.5-2 AtlasGenerators[101X + [1X3.5-3 AtlasGenerators[101X - [29X[2XAtlasGenerators[102X( [3Xgapname[103X, [3Xrepnr[103X[, [3Xmaxnr[103X] ) [32X function - [29X[2XAtlasGenerators[102X( [3Xidentifier[103X ) [32X function + [33X[1;0Y[29X[2XAtlasGenerators[102X( [3Xgapname[103X, [3Xrepnr[103X[, [3Xmaxnr[103X] ) [32X function[133X + [33X[1;0Y[29X[2XAtlasGenerators[102X( [3Xidentifier[103X ) [32X function[133X [6XReturns:[106X [33X[0;10Ya record containing generators for a representation, or [9Xfail[109X.[133X [33X[0;0YIn the first form, [3Xgapname[103X must be a string denoting a [5XGAP[105X name (see - Section [14X3.2[114X) of a group, and [3Xrepnr[103X a positive integer. If the [5XATLAS[105X of Group - Representations contains at least [3Xrepnr[103X representations for the group with - [5XGAP[105X name [3Xgapname[103X then [2XAtlasGenerators[102X, when called with [3Xgapname[103X and [3Xrepnr[103X, - returns an immutable record describing the [3Xrepnr[103X-th representation; - otherwise [9Xfail[109X is returned. If a third argument [3Xmaxnr[103X, a positive integer, - is given then an immutable record describing the restriction of the [3Xrepnr[103X-th - representation to the [3Xmaxnr[103X-th maximal subgroup is returned.[133X + Section [14X3.2[114X) of a group, and [3Xrepnr[103X a positive integer. If at least [3Xrepnr[103X + representations for the group with [5XGAP[105X name [3Xgapname[103X are available then + [2XAtlasGenerators[102X, when called with [3Xgapname[103X and [3Xrepnr[103X, returns an immutable + record describing the [3Xrepnr[103X-th representation; otherwise [9Xfail[109X is returned. + If a third argument [3Xmaxnr[103X, a positive integer, is given then an immutable + record describing the restriction of the [3Xrepnr[103X-th representation to the + [3Xmaxnr[103X-th maximal subgroup is returned.[133X [33X[0;0YThe result record has at least the following components.[133X - [8X[10Xgenerators[110X[108X + [8X[10Xcontents[110X[8X[108X + [33X[0;6Ythe identifier of the part of the database to which the generators + belong, for example [10X"core"[110X or [10X"internal"[110X,[133X + + [8X[10Xgenerators[110X[8X[108X [33X[0;6Ya list of generators for the group,[133X - [8X[10Xgroupname[110X[108X + [8X[10Xgroupname[110X[8X[108X [33X[0;6Ythe [5XGAP[105X name of the group (see Section [14X3.2[114X),[133X - [8X[10Xidentifier[110X[108X + [8X[10Xidentifier[110X[8X[108X [33X[0;6Ya [5XGAP[105X object (a list of filenames plus additional information) that - uniquely determines the representation; the value can be used as - [3Xidentifier[103X argument of [2XAtlasGenerators[102X.[133X + uniquely determines the representation, see Section [14X7.7[114X; the value can + be used as [10Xidentifier[110X argument of [2XAtlasGenerators[102X.[133X - [8X[10Xrepnr[110X[108X + [8X[10Xrepname[110X[8X[108X + [33X[0;6Ya string that is an initial part of the filenames of the generators.[133X + + [8X[10Xrepnr[110X[8X[108X [33X[0;6Ythe number of the representation in the current session, equal to the argument [3Xrepnr[103X if this is given.[133X - [8X[10Xstandardization[110X[108X + [8X[10Xstandardization[110X[8X[108X [33X[0;6Ythe positive integer denoting the underlying standard generators,[133X - [33X[0;0YAdditionally, the group order may be stored in the component [10Xsize[110X, and - describing components may be available that depend on the data type of the - representation: For permutation representations, these are [10Xp[110X for the number - of moved points, [10Xid[110X for the distinguishing string as described for - [2XDisplayAtlasInfo[102X ([14X3.5-1[114X), and information about primitivity, point - stabilizers etc. if available; for matrix representations, these are [10Xdim[110X for - the dimension of the matrices, [10Xring[110X (if known) for the ring generated by the - matrix entries, [10Xid[110X for the distinguishing string, and information about the - character if available.[133X + [8X[10Xtype[110X[8X[108X + [33X[0;6Ya string that describes the type of the representation ([10X"perm"[110X for a + permutation representation, [10X"matff"[110X for a matrix representation over a + finite field, [10X"matint"[110X for a matrix representation over the ring of + integers, [10X"matalg"[110X for a matrix representation over an algebraic + number field).[133X + + [33X[0;0YAdditionally, the following [13Xdescribing components[113X may be available if they + are known, and depending on the data type of the representation.[133X + + [8X[10Xsize[110X[8X[108X + [33X[0;6Ythe group order,[133X + + [8X[10Xid[110X[8X[108X + [33X[0;6Ythe distinguishing string as described for [2XDisplayAtlasInfo[102X ([14X3.5-1[114X),[133X + + [8X[10Xcharactername[110X[8X[108X + [33X[0;6Ya string that describes the character of the representation,[133X + + [8X[10Xconstituents[110X[8X[108X + [33X[0;6Ya list of positive integers denoting the positions of the irreducible + constituents of the character of the representation,[133X + + [8X[10Xp[110X[8X (for permutation representations)[108X + [33X[0;6Yfor the number of moved points,[133X + + [8X[10Xdim[110X[8X (for matrix representations)[108X + [33X[0;6Ythe dimension of the matrices,[133X + + [8X[10Xring[110X[8X (for matrix representations)[108X + [33X[0;6Ythe ring generated by the matrix entries,[133X + + [8X[10Xtransitivity[110X[8X (for permutation representations)[108X + [33X[0;6Ya nonnegative integer, see [2XTransitivity[102X ([14XReference: Transitivity[114X),[133X + + [8X[10Xorbits[110X[8X (for intransitive permutation representations)[108X + [33X[0;6Ythe sorted list of orbit lengths on the set of moved points,[133X + + [8X[10XrankAction[110X[8X (for transitive permutation representations)[108X + [33X[0;6Ythe number of orbits of the point stabilizer on the set of moved + points, see [2XRankAction[102X ([14XReference: RankAction[114X),[133X + + [8X[10Xstabilizer[110X[8X (for transitive permutation representations)[108X + [33X[0;6Ya string that describes the structure of the point stabilizers,[133X + + [8X[10XisPrimitive[110X[8X (for transitive permutation representations)[108X + [33X[0;6Y[9Xtrue[109X if the point stabilizers are maximal subgroups, and [9Xfalse[109X + otherwise,[133X + + [8X[10Xmaxnr[110X[8X (for primitive permutation representations)[108X + [33X[0;6Ythe number of the class of maximal subgroups that contains the point + stabilizers, w. r. t. the [2XMaxes[102X ([14XCTblLib: Maxes[114X) list.[133X [33X[0;0YIt should be noted that the number [3Xrepnr[103X refers to the number shown by [2XDisplayAtlasInfo[102X ([14X3.5-1[114X) [13Xin the current session[113X; it may be that after the - addition of new representations, [3Xrepnr[103X refers to another representation.[133X + addition of new representations (for example after loading a package that + provides some), [3Xrepnr[103X refers to another representation.[133X [33X[0;0YThe alternative form of [2XAtlasGenerators[102X, with only argument [3Xidentifier[103X, can be used to fetch the result record with [10Xidentifier[110X value equal to @@ -667,14 +808,16 @@ [4X[32X Example [32X[104X [4X[25Xgap>[125X [27Xgens1:= AtlasGenerators( "A5", 1 );[127X[104X - [4X[28Xrec( generators := [ (1,2)(3,4), (1,3,5) ], groupname := "A5", [128X[104X - [4X[28X id := "", [128X[104X + [4X[28Xrec( charactername := "1a+4a", constituents := [ 1, 4 ], [128X[104X + [4X[28X contents := "core", generators := [ (1,2)(3,4), (1,3,5) ], [128X[104X + [4X[28X groupname := "A5", id := "", [128X[104X [4X[28X identifier := [ "A5", [ "A5G1-p5B0.m1", "A5G1-p5B0.m2" ], 1, 5 ], [128X[104X [4X[28X isPrimitive := true, maxnr := 1, p := 5, rankAction := 2, [128X[104X [4X[28X repname := "A5G1-p5B0", repnr := 1, size := 60, stabilizer := "A4", [128X[104X [4X[28X standardization := 1, transitivity := 3, type := "perm" )[128X[104X [4X[25Xgap>[125X [27Xgens8:= AtlasGenerators( "A5", 8 );[127X[104X - [4X[28Xrec( dim := 2, [128X[104X + [4X[28Xrec( charactername := "2a", constituents := [ 2 ], contents := "core",[128X[104X + [4X[28X dim := 2, [128X[104X [4X[28X generators := [ [ [ Z(2)^0, 0*Z(2) ], [ Z(2^2), Z(2)^0 ] ], [128X[104X [4X[28X [ [ 0*Z(2), Z(2)^0 ], [ Z(2)^0, Z(2)^0 ] ] ], groupname := "A5",[128X[104X [4X[28X id := "a", [128X[104X @@ -682,7 +825,8 @@ [4X[28X 4 ], repname := "A5G1-f4r2aB0", repnr := 8, ring := GF(2^2), [128X[104X [4X[28X size := 60, standardization := 1, type := "matff" )[128X[104X [4X[25Xgap>[125X [27Xgens17:= AtlasGenerators( "A5", 17 );[127X[104X - [4X[28Xrec( dim := 3, [128X[104X + [4X[28Xrec( charactername := "3a", constituents := [ 2 ], contents := "core",[128X[104X + [4X[28X dim := 3, [128X[104X [4X[28X generators := [128X[104X [4X[28X [ [ [ -1, 0, 0 ], [ 0, -1, 0 ], [ -E(5)-E(5)^4, -E(5)-E(5)^4, 1 ] [128X[104X [4X[28X ], [ [ 0, 1, 0 ], [ 0, 0, 1 ], [ 1, 0, 0 ] ] ], [128X[104X @@ -696,9 +840,13 @@ [4X[32X Example [32X[104X [4X[25Xgap>[125X [27Xgens1max2:= AtlasGenerators( "A5", 1, 2 );[127X[104X - [4X[28Xrec( generators := [ (1,2)(3,4), (2,3)(4,5) ], groupname := "D10", [128X[104X + [4X[28Xrec( charactername := "1a+4a", constituents := [ 1, 4 ], [128X[104X + [4X[28X contents := "core", generators := [ (1,2)(3,4), (2,3)(4,5) ], [128X[104X + [4X[28X groupname := "D10", id := "", [128X[104X [4X[28X identifier := [ "A5", [ "A5G1-p5B0.m1", "A5G1-p5B0.m2" ], 1, 5, 2 ],[128X[104X - [4X[28X repnr := 1, size := 10, standardization := 1 )[128X[104X + [4X[28X isPrimitive := true, maxnr := 1, p := 5, rankAction := 2, [128X[104X + [4X[28X repname := "A5G1-p5B0", repnr := 1, size := 10, stabilizer := "A4", [128X[104X + [4X[28X standardization := 1, transitivity := 3, type := "perm" )[128X[104X [4X[25Xgap>[125X [27Xid:= gens1max2.identifier;;[127X[104X [4X[25Xgap>[125X [27Xgens1max2 = AtlasGenerators( id );[127X[104X [4X[28Xtrue[128X[104X @@ -712,51 +860,98 @@ [33X[0;0YThe elements stored in [10Xgens1max2.generators[110X describe the restriction of the first representation of [22XA_5[122X to a group in the second class of maximal subgroups of [22XA_5[122X according to the list in the [5XATLAS[105X of Finite - Groups [CCNPW85]; this subgroup is isomorphic to the dihedral group [22XD_10[122X.[133X + Groups [CCN+85]; this subgroup is isomorphic to the dihedral group [22XD_10[122X.[133X - [1X3.5-3 AtlasProgram[101X + [1X3.5-4 AtlasProgram[101X - [29X[2XAtlasProgram[102X( [3Xgapname[103X[, [3Xstd[103X], [3X...[103X ) [32X function - [29X[2XAtlasProgram[102X( [3Xidentifier[103X ) [32X function + [33X[1;0Y[29X[2XAtlasProgram[102X( [3Xgapname[103X[, [3Xstd[103X][, [3X"contents"[103X, [3Xsources[103X][, [3X"version"[103X, [3Xvers[103X], [3X...[103X ) [32X function[133X + [33X[1;0Y[29X[2XAtlasProgram[102X( [3Xidentifier[103X ) [32X function[133X [6XReturns:[106X [33X[0;10Ya record containing a program, or [9Xfail[109X.[133X - [33X[0;0YIn the first form, [3Xgapname[103X must be a string denoting a [5XGAP[105X name (see Section - [14X3.2[114X) of a group [22XG[122X, say. If the [5XATLAS[105X of Group Representations contains a - straight line program (see Section [14X'Reference: Straight Line Programs'[114X) or - straight line decision (see Section [14X6.1[114X) or black box program (see - Section [14X6.2[114X) as described by the remaining arguments (see below) then - [2XAtlasProgram[102X returns an immutable record containing this program. Otherwise - [9Xfail[109X is returned.[133X + [33X[0;0YIn the first form, [3Xgapname[103X must be a string denoting a [5XGAP[105X name (see + Section [14X3.2[114X) of a group [22XG[122X, say. If the database contains a straight line + program (see Section [14X'Reference: Straight Line Programs'[114X) or straight line + decision (see Section [14X6.1[114X) or black box program (see Section [14X6.2[114X) as + described by the arguments indicated by [3X...[103X (see below) then [2XAtlasProgram[102X + returns an immutable record containing this program. Otherwise [9Xfail[109X is + returned.[133X [33X[0;0YIf the optional argument [3Xstd[103X is given, only those straight line programs/decisions are considered that take generators from the [3Xstd[103X-th set of standard generators of [22XG[122X as input, see Section [14X3.3[114X.[133X - [33X[0;0YThe result record has the following components.[133X + [33X[0;0YIf the optional arguments [10X"contents"[110X and [3Xsources[103X are given then the latter + must be either a string or a list of strings, with the same meaning as + described for [2XDisplayAtlasInfo[102X ([14X3.5-1[114X).[133X + + [33X[0;0YIf the optional arguments [10X"version"[110X and [3Xvers[103X are given then the latter must + be either a number or a list of numbers, and only those straight line + programs/decisions are considered whose version number fits to [3Xvers[103X.[133X - [8X[10Xprogram[110X[108X - [33X[0;6Ythe required straight line program/decision, or black box program,[133X + [33X[0;0YThe result record has at least the following components.[133X - [8X[10Xstandardization[110X[108X - [33X[0;6Ythe positive integer denoting the underlying standard generators of [22XG[122X,[133X + [8X[10Xgroupname[110X[8X[108X + [33X[0;6Ythe string [3Xgapname[103X,[133X - [8X[10Xidentifier[110X[108X + [8X[10Xidentifier[110X[8X[108X [33X[0;6Ya [5XGAP[105X object (a list of filenames plus additional information) that uniquely determines the program; the value can be used as [3Xidentifier[103X - argument of [2XAtlasProgram[102X (see below).[133X + argument of [2XAtlasProgram[102X (see below),[133X + + [8X[10Xprogram[110X[8X[108X + [33X[0;6Ythe required straight line program/decision, or black box program,[133X + + [8X[10Xstandardization[110X[8X[108X + [33X[0;6Ythe positive integer denoting the underlying standard generators of [22XG[122X,[133X + + [8X[10Xversion[110X[8X[108X + [33X[0;6Ythe substring of the filename of the program that denotes the version + of the program.[133X - [33X[0;0YIn the first form, the last arguments must be as follows.[133X + [33X[0;0YIf the program computes generators of the restriction to a maximal subgroup + then also the following components are present.[133X - [8X(the string [10X"maxes"[110X and) a positive integer [3Xmaxnr[103X - [108X - [33X[0;6Ythe required program computes generators of the [3Xmaxnr[103X-th maximal - subgroup of the group with [5XGAP[105X name [3Xgapname[103X.[133X + [8X[10Xsize[110X[8X[108X + [33X[0;6Ythe order of the maximal subgroup,[133X + + [8X[10Xsubgroupname[110X[8X[108X + [33X[0;6Ya string denoting a name of the maximal subgroup.[133X + + [33X[0;0YIn the first form, the arguments indicated by [3X...[103X must be as follows.[133X + + [8X(the string [10X"maxes"[110X[8X and) a positive integer [22Xmaxnr[122X [108X + [33X[0;6Ythe required program computes generators of the [22Xmaxnr[122X-th maximal + subgroup of the group with [5XGAP[105X name [22Xgapname[122X.[133X [33X[0;6YIn this case, the result record of [2XAtlasProgram[102X also may contain a component [10Xsize[110X, whose value is the order of the maximal subgroup in question.[133X - [8Xone of the strings [10X"classes"[110X or [10X"cyclic"[110X[108X + [8Xthe string [10X"maxes"[110X[8X and two positive integers [22Xmaxnr[122X and [22Xstd2[122X[108X + [33X[0;6Ythe required program computes standard generators of the [22Xmaxnr[122X-th + maximal subgroup of the group with [5XGAP[105X name [22Xgapname[122X, w. r. t. the + standardization [22Xstd2[122X.[133X + + [33X[0;6YA prescribed [10X"version"[110X parameter refers to the straight line program + for computing the restriction, not to the program for standardizing + the result of the restriction.[133X + + [33X[0;6YThe meaning of the component [10Xsize[110X in the result, if present, is the + same as in the previous case.[133X + + [8Xthe string [10X"maxstd"[110X[8X and three positive integers [22Xmaxnr[122X, [22Xvers[122X, [22Xsubstd[122X[108X + [33X[0;6Ythe required program computes standard generators of the [22Xmaxnr[122X-th + maximal subgroup of the group with [5XGAP[105X name [22Xgapname[122X + w. r. t. standardization [22Xsubstd[122X; in this case, the inputs of the + program are [13Xnot[113X standard generators of the group with [5XGAP[105X name [22Xgapname[122X + but the outputs of the straight line program with version [22Xvers[122X for + computing generators of its [22Xmaxnr[122X-th maximal subgroup.[133X + + [8Xthe string [10X"kernel"[110X[8X and a string [22Xfactname[122X[108X + [33X[0;6Ythe required program computes generators of the kernel of an + epimorphism from [22XG[122X to a group with [5XGAP[105X name [22Xfactname[122X.[133X + + [8Xone of the strings [10X"classes"[110X[8X or [10X"cyclic"[110X[8X[108X [33X[0;6Ythe required program computes representatives of conjugacy classes of elements or representatives of generators of maximally cyclic subgroups of [22XG[122X, respectively.[133X @@ -766,39 +961,52 @@ contains a component [10Xoutputs[110X, whose value is a list of class names of the outputs, as described in Section [14X3.4[114X.[133X - [8Xthe strings [10X"automorphism"[110X and [3Xautname[103X[108X + [8Xthe string [10X"cyc2ccl"[110X[8X (and the string [22Xvers[122X)[108X + [33X[0;6Ythe required program computes representatives of conjugacy classes of + elements from representatives of generators of maximally cyclic + subgroups of [22XG[122X. Thus the inputs are the outputs of the program of type + [10X"cyclic"[110X whose version is [22Xvers[122X.[133X + + [8Xthe strings [10X"cyc2ccl"[110X[8X, [22Xvers1[122X, [10X"version"[110X[8X, [22Xvers2[122X[108X + [33X[0;6Ythe required program computes representatives of conjugacy classes of + elements from representatives of generators of maximally cyclic + subgroups of [22XG[122X, where the inputs are the outputs of the program of + type [10X"cyclic"[110X whose version is [22Xvers1[122X and the required program itself + has version [22Xvers2[122X.[133X + + [8Xthe strings [10X"automorphism"[110X[8X and [22Xautname[122X[108X [33X[0;6Ythe required program computes images of standard generators under the outer automorphism of [22XG[122X that is given by this string.[133X - [33X[0;6YNote that a value [10X"2"[110X of [3Xautname[103X means that the square of the + [33X[0;6YNote that a value [10X"2"[110X of [22Xautname[122X means that the square of the automorphism is an inner automorphism of [22XG[122X (not necessarily the identity mapping) but the automorphism itself is not.[133X - [8Xthe string [10X"check"[110X[108X + [8Xthe string [10X"check"[110X[8X[108X [33X[0;6Ythe required result is a straight line decision that takes a list of generators for [22XG[122X and returns [9Xtrue[109X if these generators are standard - generators of [22XG[122X w.r.t. the standardization [3Xstd[103X, and [9Xfalse[109X otherwise.[133X + generators of [22XG[122X w. r. t. the standardization [3Xstd[103X, and [9Xfalse[109X otherwise.[133X - [8Xthe string [10X"presentation"[110X[108X + [8Xthe string [10X"presentation"[110X[8X[108X [33X[0;6Ythe required result is a straight line decision that takes a list of group elements and returns [9Xtrue[109X if these elements are standard - generators of [22XG[122X w.r.t. the standardization [3Xstd[103X, and [9Xfalse[109X otherwise.[133X + generators of [22XG[122X w. r. t. the standardization [3Xstd[103X, and [9Xfalse[109X otherwise.[133X [33X[0;6YSee [2XStraightLineProgramFromStraightLineDecision[102X ([14X6.1-9[114X) for an example how to derive defining relators for [22XG[122X in terms of the standard generators from such a straight line decision.[133X - [8Xthe string [10X"find"[110X[108X + [8Xthe string [10X"find"[110X[8X[108X [33X[0;6Ythe required result is a black box program that takes [22XG[122X and returns a - list of standard generators of [22XG[122X, w.r.t. the standardization [3Xstd[103X.[133X + list of standard generators of [22XG[122X, w. r. t. the standardization [3Xstd[103X.[133X - [8Xthe string [10X"restandardize"[110X and an integer [3Xstd2[103X[108X + [8Xthe string [10X"restandardize"[110X[8X and an integer [22Xstd2[122X[108X [33X[0;6Ythe required result is a straight line program that computes standard - generators of [22XG[122X w.r.t. the [3Xstd2[103X-th set of standard generators of [22XG[122X; in - this case, the argument [3Xstd[103X must be given.[133X + generators of [22XG[122X w. r. t. the [22Xstd2[122X-th set of standard generators of [22XG[122X; + in this case, the argument [3Xstd[103X must be given.[133X - [8Xthe strings [10X"other"[110X and [3Xdescr[103X[108X - [33X[0;6Ythe required program is described by [3Xdescr[103X.[133X + [8Xthe strings [10X"other"[110X[8X and [22Xdescr[122X[108X + [33X[0;6Ythe required program is described by [22Xdescr[122X.[133X [33X[0;0YThe second form of [2XAtlasProgram[102X, with only argument the list [3Xidentifier[103X, can be used to fetch the result record with [10Xidentifier[110X value equal to @@ -808,17 +1016,19 @@ [4X[25Xgap>[125X [27Xprog:= AtlasProgram( "A5", 2 );[127X[104X [4X[28Xrec( groupname := "A5", identifier := [ "A5", "A5G1-max2W1", 1 ], [128X[104X [4X[28X program :=, size := 10, [128X[104X - [4X[28X standardization := 1, subgroupname := "D10" )[128X[104X + [4X[28X standardization := 1, subgroupname := "D10", version := "1" )[128X[104X [4X[25Xgap>[125X [27XStringOfResultOfStraightLineProgram( prog.program, [ "a", "b" ] );[127X[104X [4X[28X"[ a, bbab ]"[128X[104X [4X[25Xgap>[125X [27Xgens1:= AtlasGenerators( "A5", 1 );[127X[104X - [4X[28Xrec( generators := [ (1,2)(3,4), (1,3,5) ], groupname := "A5", [128X[104X - [4X[28X id := "", [128X[104X + [4X[28Xrec( charactername := "1a+4a", constituents := [ 1, 4 ], [128X[104X + [4X[28X contents := "core", generators := [ (1,2)(3,4), (1,3,5) ], [128X[104X + [4X[28X groupname := "A5", id := "", [128X[104X [4X[28X identifier := [ "A5", [ "A5G1-p5B0.m1", "A5G1-p5B0.m2" ], 1, 5 ], [128X[104X [4X[28X isPrimitive := true, maxnr := 1, p := 5, rankAction := 2, [128X[104X [4X[28X repname := "A5G1-p5B0", repnr := 1, size := 60, stabilizer := "A4", [128X[104X [4X[28X standardization := 1, transitivity := 3, type := "perm" )[128X[104X - [4X[25Xgap>[125X [27Xmaxgens:= ResultOfStraightLineProgram( prog.program, gens1.generators );[127X[104X + [4X[25Xgap>[125X [27Xmaxgens:= ResultOfStraightLineProgram( prog.program,[127X[104X + [4X[25X>[125X [27X gens1.generators );[127X[104X [4X[28X[ (1,2)(3,4), (2,3)(4,5) ][128X[104X [4X[25Xgap>[125X [27Xmaxgens = gens1max2.generators;[127X[104X [4X[28Xtrue[128X[104X @@ -827,17 +1037,18 @@ [33X[0;0YThe above example shows that for restricting representations given by standard generators to a maximal subgroup of [22XA_5[122X, we can also fetch and apply the appropriate straight line program. Such a program (see [14X'Reference: - Straight Line Programs'[114X) takes standard generators of a group --in this - example [22XA_5[122X-- as its input, and returns a list of elements in this group - --in this example generators of the [22XD_10[122X subgroup we had met above-- which - are computed essentially by evaluating structured words in terms of the - standard generators.[133X + Straight Line Programs'[114X) takes standard generators of a group –in this + example [22XA_5[122X– as its input, and returns a list of elements in this group –in + this example generators of the [22XD_10[122X subgroup we had met above– which are + computed essentially by evaluating structured words in terms of the standard + generators.[133X [4X[32X Example [32X[104X [4X[25Xgap>[125X [27Xprog:= AtlasProgram( "J1", "cyclic" );[127X[104X [4X[28Xrec( groupname := "J1", identifier := [ "J1", "J1G1-cycW1", 1 ], [128X[104X [4X[28X outputs := [ "6A", "7A", "10B", "11A", "15B", "19A" ], [128X[104X - [4X[28X program := , standardization := 1 )[128X[104X + [4X[28X program := , standardization := 1, [128X[104X + [4X[28X version := "1" )[128X[104X [4X[25Xgap>[125X [27Xgens:= GeneratorsOfGroup( FreeGroup( "x", "y" ) );;[127X[104X [4X[25Xgap>[125X [27XResultOfStraightLineProgram( prog.program, gens );[127X[104X [4X[28X[ (x*y)^2*((y*x)^2*y^2*x)^2*y^2, x*y, (x*(y*x*y)^2)^2*y, [128X[104X @@ -849,44 +1060,43 @@ computing generators of representatives of maximally cyclic subgroups of a given group.[133X - [1X3.5-4 AtlasProgramInfo[101X + [1X3.5-5 AtlasProgramInfo[101X - [29X[2XAtlasProgramInfo[102X( [3Xgapname[103X[, [3Xstd[103X][, [3X"contents"[103X, [3Xsources[103X][, [3X...[103X] ) [32X function + [33X[1;0Y[29X[2XAtlasProgramInfo[102X( [3Xgapname[103X[, [3Xstd[103X][, [3X"contents"[103X, [3Xsources[103X][, [3X"version"[103X, [3Xvers[103X], [3X...[103X ) [32X function[133X [6XReturns:[106X [33X[0;10Ya record describing a program, or [9Xfail[109X.[133X - [33X[0;0Y[2XAtlasProgramInfo[102X takes the same arguments as [2XAtlasProgram[102X ([14X3.5-3[114X), and + [33X[0;0Y[2XAtlasProgramInfo[102X takes the same arguments as [2XAtlasProgram[102X ([14X3.5-4[114X), and returns a similar result. The only difference is that the records returned by [2XAtlasProgramInfo[102X have no components [10Xprogram[110X and [10Xoutputs[110X. The idea is that one can use [2XAtlasProgramInfo[102X for testing whether the program in question is - available at all, but without transferring it from a remote server. The - [10Xidentifier[110X component of the result of [2XAtlasProgramInfo[102X can then be used to - fetch the program with [2XAtlasProgram[102X ([14X3.5-3[114X).[133X + available at all, but without downloading files. The [10Xidentifier[110X component of + the result of [2XAtlasProgramInfo[102X can then be used to fetch the program with + [2XAtlasProgram[102X ([14X3.5-4[114X).[133X [4X[32X Example [32X[104X [4X[25Xgap>[125X [27XAtlasProgramInfo( "J1", "cyclic" );[127X[104X [4X[28Xrec( groupname := "J1", identifier := [ "J1", "J1G1-cycW1", 1 ], [128X[104X - [4X[28X standardization := 1 )[128X[104X + [4X[28X standardization := 1, version := "1" )[128X[104X [4X[32X[104X - [1X3.5-5 OneAtlasGeneratingSetInfo[101X + [1X3.5-6 OneAtlasGeneratingSetInfo[101X - [29X[2XOneAtlasGeneratingSetInfo[102X( [[3Xgapname[103X, ][[3Xstd[103X, ][[3X...[103X] ) [32X function + [33X[1;0Y[29X[2XOneAtlasGeneratingSetInfo[102X( [[3Xgapname[103X, ][[3Xstd[103X, ][[3X...[103X] ) [32X function[133X [6XReturns:[106X [33X[0;10Ya record describing a representation that satisfies the conditions, or [9Xfail[109X.[133X - [33X[0;0YLet [3Xgapname[103X be a string denoting a [5XGAP[105X name (see Section [14X3.2[114X) of a group [22XG[122X, - say. If the [5XATLAS[105X of Group Representations contains at least one - representation for [22XG[122X with the required properties then - [2XOneAtlasGeneratingSetInfo[102X returns a record [3Xr[103X whose components are the same - as those of the records returned by [2XAtlasGenerators[102X ([14X3.5-2[114X), except that the - component [10Xgenerators[110X is not contained; the component [10Xidentifier[110X of [3Xr[103X can be - used as input for [2XAtlasGenerators[102X ([14X3.5-2[114X) in order to fetch the generators. - If no representation satisfying the given conditions is available then [9Xfail[109X - is returned.[133X + [33X[0;0YLet [3Xgapname[103X be a string denoting a [5XGAP[105X name (see Section [14X3.2[114X) of a group [22XG[122X, + say. If the database contains at least one representation for [22XG[122X with the + required properties then [2XOneAtlasGeneratingSetInfo[102X returns a record [22Xr[122X whose + components are the same as those of the records returned by [2XAtlasGenerators[102X + ([14X3.5-3[114X), except that the component [10Xgenerators[110X is not contained; the + component [10Xidentifier[110X of [22Xr[122X can be used as input for [2XAtlasGenerators[102X ([14X3.5-3[114X) + in order to fetch the generators. If no representation satisfying the given + conditions is available then [9Xfail[109X is returned.[133X [33X[0;0YIf the argument [3Xstd[103X is given then it must be a positive integer or a list of - positive integers, denoting the sets of standard generators w.r.t. which the - representation shall be given (see Section [14X3.3[114X).[133X + positive integers, denoting the sets of standard generators w. r. t. which + the representation shall be given (see Section [14X3.3[114X).[133X [33X[0;0YThe argument [3Xgapname[103X can be missing (then all available groups are considered), or a list of group names can be given instead.[133X @@ -896,26 +1106,29 @@ [2XOneAtlasGeneratingSetInfo[102X describes the first generating set for [22XG[122X that matches the restrictions, in the ordering shown by [2XDisplayAtlasInfo[102X ([14X3.5-1[114X).[133X - [33X[0;0YNote that even in the case that the user parameter [21Xremote[121X has the value [9Xtrue[109X - (see Section [14X4.3-1[114X), [2XOneAtlasGeneratingSetInfo[102X does [13Xnot[113X attempt to [13Xtransfer[113X - remote data files, just the table of contents is evaluated. So this function - (as well as [2XAllAtlasGeneratingSetInfos[102X ([14X3.5-6[114X)) can be used to check for the + [33X[0;0YNote that even in the case that the user preference + [10XAtlasRepAccessRemoteFiles[110X has the value [9Xtrue[109X (see Section [14X4.2-1[114X), + [2XOneAtlasGeneratingSetInfo[102X does [13Xnot[113X attempt to [13Xtransfer[113X remote data files, + just the table of contents is evaluated. So this function (as well as + [2XAllAtlasGeneratingSetInfos[102X ([14X3.5-7[114X)) can be used to check for the availability of certain representations, and afterwards one can call - [2XAtlasGenerators[102X ([14X3.5-2[114X) for those representations one wants to work with.[133X + [2XAtlasGenerators[102X ([14X3.5-3[114X) for those representations one wants to work with.[133X [33X[0;0YIn the following example, we try to access information about permutation representations for the alternating group [22XA_5[122X.[133X [4X[32X Example [32X[104X [4X[25Xgap>[125X [27Xinfo:= OneAtlasGeneratingSetInfo( "A5" );[127X[104X - [4X[28Xrec( groupname := "A5", id := "", [128X[104X + [4X[28Xrec( charactername := "1a+4a", constituents := [ 1, 4 ], [128X[104X + [4X[28X contents := "core", groupname := "A5", id := "", [128X[104X [4X[28X identifier := [ "A5", [ "A5G1-p5B0.m1", "A5G1-p5B0.m2" ], 1, 5 ], [128X[104X [4X[28X isPrimitive := true, maxnr := 1, p := 5, rankAction := 2, [128X[104X [4X[28X repname := "A5G1-p5B0", repnr := 1, size := 60, stabilizer := "A4", [128X[104X [4X[28X standardization := 1, transitivity := 3, type := "perm" )[128X[104X [4X[25Xgap>[125X [27Xgens:= AtlasGenerators( info.identifier );[127X[104X - [4X[28Xrec( generators := [ (1,2)(3,4), (1,3,5) ], groupname := "A5", [128X[104X - [4X[28X id := "", [128X[104X + [4X[28Xrec( charactername := "1a+4a", constituents := [ 1, 4 ], [128X[104X + [4X[28X contents := "core", generators := [ (1,2)(3,4), (1,3,5) ], [128X[104X + [4X[28X groupname := "A5", id := "", [128X[104X [4X[28X identifier := [ "A5", [ "A5G1-p5B0.m1", "A5G1-p5B0.m2" ], 1, 5 ], [128X[104X [4X[28X isPrimitive := true, maxnr := 1, p := 5, rankAction := 2, [128X[104X [4X[28X repname := "A5G1-p5B0", repnr := 1, size := 60, stabilizer := "A4", [128X[104X @@ -931,21 +1144,21 @@ [4X[32X[104X [33X[0;0YNote that a permutation representation of degree [22X20[122X could be obtained by - taking twice the primitive representation on [22X10[122X points; however, the [5XATLAS[105X - of Group Representations does not store this imprimitive representation (cf. - Section [14X3.1[114X).[133X + taking twice the primitive representation on [22X10[122X points; however, the + database does not store this imprimitive representation (cf. Section [14X3.1[114X).[133X - [33X[0;0YWe continue this example a little. Next we access matrix representations of - [22XA_5[122X.[133X + [33X[0;0YWe continue this example. Next we access matrix representations of [22XA_5[122X.[133X [4X[32X Example [32X[104X [4X[25Xgap>[125X [27Xinfo:= OneAtlasGeneratingSetInfo( "A5", IsMatrixGroup, true );[127X[104X - [4X[28Xrec( dim := 4, groupname := "A5", id := "a", [128X[104X + [4X[28Xrec( charactername := "4a", constituents := [ 4 ], contents := "core",[128X[104X + [4X[28X dim := 4, groupname := "A5", id := "a", [128X[104X [4X[28X identifier := [ "A5", [ "A5G1-f2r4aB0.m1", "A5G1-f2r4aB0.m2" ], 1, [128X[104X [4X[28X 2 ], repname := "A5G1-f2r4aB0", repnr := 4, ring := GF(2), [128X[104X [4X[28X size := 60, standardization := 1, type := "matff" )[128X[104X [4X[25Xgap>[125X [27Xgens:= AtlasGenerators( info.identifier );[127X[104X - [4X[28Xrec( dim := 4, [128X[104X + [4X[28Xrec( charactername := "4a", constituents := [ 4 ], contents := "core",[128X[104X + [4X[28X dim := 4, [128X[104X [4X[28X generators := [ , [128X[104X [4X[28X ], groupname := "A5", [128X[104X [4X[28X id := "a", [128X[104X @@ -959,19 +1172,23 @@ [4X[25Xgap>[125X [27Xinfo = OneAtlasGeneratingSetInfo( "A5", Ring, GF(2) );[127X[104X [4X[28Xtrue[128X[104X [4X[25Xgap>[125X [27XOneAtlasGeneratingSetInfo( "A5", Characteristic, [2,5], Dimension, 2 );[127X[104X - [4X[28Xrec( dim := 2, groupname := "A5", id := "a", [128X[104X + [4X[28Xrec( charactername := "2a", constituents := [ 2 ], contents := "core",[128X[104X + [4X[28X dim := 2, groupname := "A5", id := "a", [128X[104X [4X[28X identifier := [ "A5", [ "A5G1-f4r2aB0.m1", "A5G1-f4r2aB0.m2" ], 1, [128X[104X [4X[28X 4 ], repname := "A5G1-f4r2aB0", repnr := 8, ring := GF(2^2), [128X[104X [4X[28X size := 60, standardization := 1, type := "matff" )[128X[104X [4X[25Xgap>[125X [27XOneAtlasGeneratingSetInfo( "A5", Characteristic, [2,5], Dimension, 1 );[127X[104X [4X[28Xfail[128X[104X - [4X[25Xgap>[125X [27Xinfo:= OneAtlasGeneratingSetInfo( "A5", Characteristic, 0, Dimension, 4 );[127X[104X - [4X[28Xrec( dim := 4, groupname := "A5", id := "", [128X[104X + [4X[25Xgap>[125X [27Xinfo:= OneAtlasGeneratingSetInfo( "A5", Characteristic, 0,[127X[104X + [4X[25X>[125X [27X Dimension, 4 );[127X[104X + [4X[28Xrec( charactername := "4a", constituents := [ 4 ], contents := "core",[128X[104X + [4X[28X dim := 4, groupname := "A5", id := "", [128X[104X [4X[28X identifier := [ "A5", "A5G1-Zr4B0.g", 1, 4 ], [128X[104X [4X[28X repname := "A5G1-Zr4B0", repnr := 14, ring := Integers, size := 60, [128X[104X [4X[28X standardization := 1, type := "matint" )[128X[104X [4X[25Xgap>[125X [27Xgens:= AtlasGenerators( info.identifier );[127X[104X - [4X[28Xrec( dim := 4, [128X[104X + [4X[28Xrec( charactername := "4a", constituents := [ 4 ], contents := "core",[128X[104X + [4X[28X dim := 4, [128X[104X [4X[28X generators := [128X[104X [4X[28X [ [128X[104X [4X[28X [ [ 1, 0, 0, 0 ], [ 0, 0, 1, 0 ], [ 0, 1, 0, 0 ], [128X[104X @@ -988,12 +1205,14 @@ [4X[25Xgap>[125X [27XOneAtlasGeneratingSetInfo( "A5", Ring, Integers mod 77 );[127X[104X [4X[28Xfail[128X[104X [4X[25Xgap>[125X [27Xinfo:= OneAtlasGeneratingSetInfo( "A5", Ring, CF(5), Dimension, 3 );[127X[104X - [4X[28Xrec( dim := 3, groupname := "A5", id := "a", [128X[104X + [4X[28Xrec( charactername := "3a", constituents := [ 2 ], contents := "core",[128X[104X + [4X[28X dim := 3, groupname := "A5", id := "a", [128X[104X [4X[28X identifier := [ "A5", "A5G1-Ar3aB0.g", 1, 3 ], [128X[104X [4X[28X repname := "A5G1-Ar3aB0", repnr := 17, ring := NF(5,[ 1, 4 ]), [128X[104X [4X[28X size := 60, standardization := 1, type := "matalg" )[128X[104X [4X[25Xgap>[125X [27Xgens:= AtlasGenerators( info.identifier );[127X[104X - [4X[28Xrec( dim := 3, [128X[104X + [4X[28Xrec( charactername := "3a", constituents := [ 2 ], contents := "core",[128X[104X + [4X[28X dim := 3, [128X[104X [4X[28X generators := [128X[104X [4X[28X [ [ [ -1, 0, 0 ], [ 0, -1, 0 ], [ -E(5)-E(5)^4, -E(5)-E(5)^4, 1 ] [128X[104X [4X[28X ], [ [ 0, 1, 0 ], [ 0, 0, 1 ], [ 1, 0, 0 ] ] ], [128X[104X @@ -1005,13 +1224,13 @@ [4X[28Xfail[128X[104X [4X[32X[104X - [1X3.5-6 AllAtlasGeneratingSetInfos[101X + [1X3.5-7 AllAtlasGeneratingSetInfos[101X - [29X[2XAllAtlasGeneratingSetInfos[102X( [[3Xgapname[103X, ][[3Xstd[103X, ][[3X...[103X] ) [32X function + [33X[1;0Y[29X[2XAllAtlasGeneratingSetInfos[102X( [[3Xgapname[103X, ][[3Xstd[103X, ][[3X...[103X] ) [32X function[133X [6XReturns:[106X [33X[0;10Ythe list of all records describing representations that satisfy the conditions.[133X - [33X[0;0Y[2XAllAtlasGeneratingSetInfos[102X is similar to [2XOneAtlasGeneratingSetInfo[102X ([14X3.5-5[114X). + [33X[0;0Y[2XAllAtlasGeneratingSetInfos[102X is similar to [2XOneAtlasGeneratingSetInfo[102X ([14X3.5-6[114X). The difference is that the list of [13Xall[113X records describing the available representations with the given properties is returned instead of just one such component. In particular an empty list is returned if no such @@ -1019,19 +1238,22 @@ [4X[32X Example [32X[104X [4X[25Xgap>[125X [27XAllAtlasGeneratingSetInfos( "A5", IsPermGroup, true );[127X[104X - [4X[28X[ rec( groupname := "A5", id := "", [128X[104X + [4X[28X[ rec( charactername := "1a+4a", constituents := [ 1, 4 ], [128X[104X + [4X[28X contents := "core", groupname := "A5", id := "", [128X[104X [4X[28X identifier := [ "A5", [ "A5G1-p5B0.m1", "A5G1-p5B0.m2" ], 1, 5 ][128X[104X [4X[28X , isPrimitive := true, maxnr := 1, p := 5, rankAction := 2, [128X[104X [4X[28X repname := "A5G1-p5B0", repnr := 1, size := 60, [128X[104X [4X[28X stabilizer := "A4", standardization := 1, transitivity := 3, [128X[104X [4X[28X type := "perm" ), [128X[104X - [4X[28X rec( groupname := "A5", id := "", [128X[104X + [4X[28X rec( charactername := "1a+5a", constituents := [ 1, 5 ], [128X[104X + [4X[28X contents := "core", groupname := "A5", id := "", [128X[104X [4X[28X identifier := [ "A5", [ "A5G1-p6B0.m1", "A5G1-p6B0.m2" ], 1, 6 ][128X[104X [4X[28X , isPrimitive := true, maxnr := 2, p := 6, rankAction := 2, [128X[104X [4X[28X repname := "A5G1-p6B0", repnr := 2, size := 60, [128X[104X [4X[28X stabilizer := "D10", standardization := 1, transitivity := 2, [128X[104X [4X[28X type := "perm" ), [128X[104X - [4X[28X rec( groupname := "A5", id := "", [128X[104X + [4X[28X rec( charactername := "1a+4a+5a", constituents := [ 1, 4, 5 ], [128X[104X + [4X[28X contents := "core", groupname := "A5", id := "", [128X[104X [4X[28X identifier := [ "A5", [ "A5G1-p10B0.m1", "A5G1-p10B0.m2" ], 1, [128X[104X [4X[28X 10 ], isPrimitive := true, maxnr := 3, p := 10, [128X[104X [4X[28X rankAction := 3, repname := "A5G1-p10B0", repnr := 3, [128X[104X @@ -1041,20 +1263,20 @@ [33X[0;0YNote that a matrix representation in any characteristic can be obtained by reducing a permutation representation or an integral matrix representation; - however, the [5XATLAS[105X of Group Representations does not [13Xstore[113X such a - representation (cf. Section [14X3.1[114X).[133X + however, the database does not [13Xstore[113X such a representation (cf. Section + [14X3.1[114X).[133X - [1X3.5-7 [33X[0;0YAtlasGroup[133X[101X + [1X3.5-8 [33X[0;0YAtlasGroup[133X[101X - [29X[2XAtlasGroup[102X( [[3Xgapname[103X[, [3Xstd[103X, ]][[3X...[103X] ) [32X function - [29X[2XAtlasGroup[102X( [3Xidentifier[103X ) [32X function + [33X[1;0Y[29X[2XAtlasGroup[102X( [[3Xgapname[103X, ][[3Xstd[103X, ][[3X...[103X] ) [32X function[133X + [33X[1;0Y[29X[2XAtlasGroup[102X( [3Xidentifier[103X ) [32X function[133X [6XReturns:[106X [33X[0;10Ya group that satisfies the conditions, or [9Xfail[109X.[133X - [33X[0;0Y[2XAtlasGroup[102X takes the same arguments as [2XOneAtlasGeneratingSetInfo[102X ([14X3.5-5[114X), + [33X[0;0Y[2XAtlasGroup[102X takes the same arguments as [2XOneAtlasGeneratingSetInfo[102X ([14X3.5-6[114X), and returns the group generated by the [10Xgenerators[110X component of the record - that is returned by [2XOneAtlasGeneratingSetInfo[102X ([14X3.5-5[114X) with these arguments; - if [2XOneAtlasGeneratingSetInfo[102X ([14X3.5-5[114X) returns [9Xfail[109X then also [2XAtlasGroup[102X + that is returned by [2XOneAtlasGeneratingSetInfo[102X ([14X3.5-6[114X) with these arguments; + if [2XOneAtlasGeneratingSetInfo[102X ([14X3.5-6[114X) returns [9Xfail[109X then also [2XAtlasGroup[102X returns [9Xfail[109X.[133X [4X[32X Example [32X[104X @@ -1063,13 +1285,14 @@ [4X[32X[104X [33X[0;0YAlternatively, it is possible to enter exactly one argument, a record - [3Xidentifier[103X as returned by [2XOneAtlasGeneratingSetInfo[102X ([14X3.5-5[114X) or - [2XAllAtlasGeneratingSetInfos[102X ([14X3.5-6[114X), or the [10Xidentifier[110X component of such a + [3Xidentifier[103X as returned by [2XOneAtlasGeneratingSetInfo[102X ([14X3.5-6[114X) or + [2XAllAtlasGeneratingSetInfos[102X ([14X3.5-7[114X), or the [10Xidentifier[110X component of such a record.[133X [4X[32X Example [32X[104X [4X[25Xgap>[125X [27Xinfo:= OneAtlasGeneratingSetInfo( "A5" );[127X[104X - [4X[28Xrec( groupname := "A5", id := "", [128X[104X + [4X[28Xrec( charactername := "1a+4a", constituents := [ 1, 4 ], [128X[104X + [4X[28X contents := "core", groupname := "A5", id := "", [128X[104X [4X[28X identifier := [ "A5", [ "A5G1-p5B0.m1", "A5G1-p5B0.m2" ], 1, 5 ], [128X[104X [4X[28X isPrimitive := true, maxnr := 1, p := 5, rankAction := 2, [128X[104X [4X[28X repname := "A5G1-p5B0", repnr := 1, size := 60, stabilizer := "A4", [128X[104X @@ -1081,26 +1304,26 @@ [4X[32X[104X [33X[0;0YIn the groups returned by [2XAtlasGroup[102X, the value of the attribute - [2XAtlasRepInfoRecord[102X ([14X3.5-9[114X) is set. This information is used for example by - [2XAtlasSubgroup[102X ([14X3.5-8[114X) when this function is called with second argument a + [2XAtlasRepInfoRecord[102X ([14X3.5-10[114X) is set. This information is used for example by + [2XAtlasSubgroup[102X ([14X3.5-9[114X) when this function is called with second argument a group created by [2XAtlasGroup[102X.[133X - [1X3.5-8 [33X[0;0YAtlasSubgroup[133X[101X + [1X3.5-9 [33X[0;0YAtlasSubgroup[133X[101X - [29X[2XAtlasSubgroup[102X( [3Xgapname[103X[, [3Xstd[103X][, [3X...[103X], [3Xmaxnr[103X ) [32X function - [29X[2XAtlasSubgroup[102X( [3Xidentifier[103X, [3Xmaxnr[103X ) [32X function - [29X[2XAtlasSubgroup[102X( [3XG[103X, [3Xmaxnr[103X ) [32X function + [33X[1;0Y[29X[2XAtlasSubgroup[102X( [3Xgapname[103X[, [3Xstd[103X][, [3X...[103X], [3Xmaxnr[103X ) [32X function[133X + [33X[1;0Y[29X[2XAtlasSubgroup[102X( [3Xidentifier[103X, [3Xmaxnr[103X ) [32X function[133X + [33X[1;0Y[29X[2XAtlasSubgroup[102X( [3XG[103X, [3Xmaxnr[103X ) [32X function[133X [6XReturns:[106X [33X[0;10Ya group that satisfies the conditions, or [9Xfail[109X.[133X - [33X[0;0YThe arguments of [2XAtlasSubgroup[102X, except the last argument [3Xmaxn[103X, are the same - as for [2XAtlasGroup[102X ([14X3.5-7[114X). If the [5XATLAS[105X of Group Representations provides a - straight line program for restricting representations of the group with name - [3Xgapname[103X (given w.r.t. the [3Xstd[103X-th standard generators) to the [3Xmaxnr[103X-th - maximal subgroup and if a representation with the required properties is - available, in the sense that calling [2XAtlasGroup[102X ([14X3.5-7[114X) with the same - arguments except [3Xmaxnr[103X yields a group, then [2XAtlasSubgroup[102X returns the - restriction of this representation to the [3Xmaxnr[103X-th maximal subgroup.[133X + [33X[0;0YThe arguments of [2XAtlasSubgroup[102X, except the last argument [3Xmaxnr[103X, are the same + as for [2XAtlasGroup[102X ([14X3.5-8[114X). If the database provides a straight line program + for restricting representations of the group with name [3Xgapname[103X (given + w. r. t. the [3Xstd[103X-th standard generators) to the [3Xmaxnr[103X-th maximal subgroup + and if a representation with the required properties is available, in the + sense that calling [2XAtlasGroup[102X ([14X3.5-8[114X) with the same arguments except [3Xmaxnr[103X + yields a group, then [2XAtlasSubgroup[102X returns the restriction of this + representation to the [3Xmaxnr[103X-th maximal subgroup.[133X [33X[0;0YIn all other cases, [9Xfail[109X is returned.[133X @@ -1118,13 +1341,14 @@ [4X[32X[104X [33X[0;0YAlternatively, it is possible to enter exactly two arguments, the first - being a record [3Xidentifier[103X as returned by [2XOneAtlasGeneratingSetInfo[102X ([14X3.5-5[114X) - or [2XAllAtlasGeneratingSetInfos[102X ([14X3.5-6[114X), or the [10Xidentifier[110X component of such a - record, or a group [3XG[103X constructed with [2XAtlasGroup[102X ([14X3.5-7[114X).[133X + being a record [3Xidentifier[103X as returned by [2XOneAtlasGeneratingSetInfo[102X ([14X3.5-6[114X) + or [2XAllAtlasGeneratingSetInfos[102X ([14X3.5-7[114X), or the [10Xidentifier[110X component of such a + record, or a group [3XG[103X constructed with [2XAtlasGroup[102X ([14X3.5-8[114X).[133X [4X[32X Example [32X[104X [4X[25Xgap>[125X [27Xinfo:= OneAtlasGeneratingSetInfo( "A5" );[127X[104X - [4X[28Xrec( groupname := "A5", id := "", [128X[104X + [4X[28Xrec( charactername := "1a+4a", constituents := [ 1, 4 ], [128X[104X + [4X[28X contents := "core", groupname := "A5", id := "", [128X[104X [4X[28X identifier := [ "A5", [ "A5G1-p5B0.m1", "A5G1-p5B0.m2" ], 1, 5 ], [128X[104X [4X[28X isPrimitive := true, maxnr := 1, p := 5, rankAction := 2, [128X[104X [4X[28X repname := "A5G1-p5B0", repnr := 1, size := 60, stabilizer := "A4", [128X[104X @@ -1137,45 +1361,88 @@ [4X[28XGroup([ (1,5)(2,3), (1,3,5) ])[128X[104X [4X[32X[104X - [1X3.5-9 AtlasRepInfoRecord[101X + [1X3.5-10 AtlasRepInfoRecord[101X - [29X[2XAtlasRepInfoRecord[102X( [3XG[103X ) [32X attribute + [33X[1;0Y[29X[2XAtlasRepInfoRecord[102X( [3XG[103X ) [32X attribute[133X + [33X[1;0Y[29X[2XAtlasRepInfoRecord[102X( [3Xname[103X ) [32X attribute[133X [6XReturns:[106X [33X[0;10Ythe record stored in the group [3XG[103X when this was constructed with - [2XAtlasGroup[102X ([14X3.5-7[114X).[133X + [2XAtlasGroup[102X ([14X3.5-8[114X), or a record with information about the group + with name [3Xname[103X.[133X - [33X[0;0YFor a group [3XG[103X that has been constructed with [2XAtlasGroup[102X ([14X3.5-7[114X), the value + [33X[0;0YFor a group [3XG[103X that has been constructed with [2XAtlasGroup[102X ([14X3.5-8[114X), the value of this attribute is the info record that describes [3XG[103X, in the sense that - this record was the first argument of the call to [2XAtlasGroup[102X ([14X3.5-7[114X), or it - is the result of the call to [2XOneAtlasGeneratingSetInfo[102X ([14X3.5-5[114X) with the - conditions that were listed in the call to [2XAtlasGroup[102X ([14X3.5-7[114X).[133X + this record was the first argument of the call to [2XAtlasGroup[102X ([14X3.5-8[114X), or it + is the result of the call to [2XOneAtlasGeneratingSetInfo[102X ([14X3.5-6[114X) with the + conditions that were listed in the call to [2XAtlasGroup[102X ([14X3.5-8[114X).[133X [4X[32X Example [32X[104X [4X[25Xgap>[125X [27XAtlasRepInfoRecord( AtlasGroup( "A5" ) );[127X[104X - [4X[28Xrec( groupname := "A5", id := "", [128X[104X + [4X[28Xrec( charactername := "1a+4a", constituents := [ 1, 4 ], [128X[104X + [4X[28X contents := "core", groupname := "A5", id := "", [128X[104X [4X[28X identifier := [ "A5", [ "A5G1-p5B0.m1", "A5G1-p5B0.m2" ], 1, 5 ], [128X[104X [4X[28X isPrimitive := true, maxnr := 1, p := 5, rankAction := 2, [128X[104X [4X[28X repname := "A5G1-p5B0", repnr := 1, size := 60, stabilizer := "A4", [128X[104X [4X[28X standardization := 1, transitivity := 3, type := "perm" )[128X[104X [4X[32X[104X + [33X[0;0YFor a string [3Xname[103X that is a [5XGAP[105X name of a group [22XG[122X, say, [2XAtlasRepInfoRecord[102X + returns a record that contains information about [22XG[122X which is used by + [2XDisplayAtlasInfo[102X ([14X3.5-1[114X). The following components may be bound in the + record.[133X + + [8X[10Xname[110X[8X[108X + [33X[0;6Ythe string [3Xname[103X,[133X + + [8X[10XnrMaxes[110X[8X[108X + [33X[0;6Ythe number of conjugacy classes of maximal subgroups of [22XG[122X,[133X + + [8X[10Xsize[110X[8X[108X + [33X[0;6Ythe order of [22XG[122X,[133X + + [8X[10XsizesMaxes[110X[8X[108X + [33X[0;6Ya list which contains at position [22Xi[122X, if bound, the order of a subgroup + in the [22Xi[122X-th class of maximal subgroups of [22XG[122X,[133X + + [8X[10XslpMaxes[110X[8X[108X + [33X[0;6Ya list of length two; the first entry is a list of positions [22Xi[122X such + that a straight line program for computing the restriction of + representations of [22XG[122X to a subgroup in the [22Xi[122X-th class of maximal + subgroups is available via [5XAtlasRep[105X; the second entry is the + corresponding list of standardizations of the generators of [22XG[122X for + which these straight line programs are available,[133X + + [8X[10XstructureMaxes[110X[8X[108X + [33X[0;6Ya list which contains at position [22Xi[122X, if bound, a string that describes + the structure of the subgroups in the [22Xi[122X-th class of maximal subgroups + of [22XG[122X.[133X + + [4X[32X Example [32X[104X + [4X[25Xgap>[125X [27XAtlasRepInfoRecord( "A5" );[127X[104X + [4X[28Xrec( name := "A5", nrMaxes := 3, size := 60, sizesMaxes := [ 12, 10, 6 ], [128X[104X + [4X[28X slpMaxes := [ [ 1 .. 3 ], [ [ 1 ], [ 1 ], [ 1 ] ] ], [128X[104X + [4X[28X structureMaxes := [ "A4", "D10", "S3" ] )[128X[104X + [4X[25Xgap>[125X [27XAtlasRepInfoRecord( "J5" );[127X[104X + [4X[28Xrec( )[128X[104X + [4X[32X[104X + [1X3.6 [33X[0;0Y[5XBrowse[105X[101X[1X Applications Provided by [5XAtlasRep[105X[101X[1X[133X[101X [33X[0;0YThe functions [2XBrowseMinimalDegrees[102X ([14X3.6-1[114X), [2XBrowseBibliographySporadicSimple[102X ([14X3.6-2[114X), and [2XBrowseAtlasInfo[102X ([14XBrowse: BrowseAtlasInfo[114X) (an alternative to [2XDisplayAtlasInfo[102X ([14X3.5-1[114X)) are available only if the [5XGAP[105X package [5XBrowse[105X (see - [BL14]) is loaded.[133X + [BL18]) is loaded.[133X [1X3.6-1 BrowseMinimalDegrees[101X - [29X[2XBrowseMinimalDegrees[102X( [[3Xgroupnames[103X] ) [32X function + [33X[1;0Y[29X[2XBrowseMinimalDegrees[102X( [[3Xgapnames[103X] ) [32X function[133X [6XReturns:[106X [33X[0;10Ythe list of info records for the clicked representations.[133X - [33X[0;0YIf the [5XGAP[105X package [5XBrowse[105X (see [BL14]) is loaded then this function is + [33X[0;0YIf the [5XGAP[105X package [5XBrowse[105X (see [BL18]) is loaded then this function is available. It opens a browse table whose rows correspond to the groups for - which the [5XATLAS[105X of Group Representations contains some information about - minimal degrees, whose columns correspond to the characteristics that occur, - and whose entries are the known minimal degrees.[133X + which [5XAtlasRep[105X knows some information about minimal degrees, whose columns + correspond to the characteristics that occur, and whose entries are the + known minimal degrees.[133X [4X[32X Example [32X[104X [4X[25Xgap>[125X [27Xif IsBound( BrowseMinimalDegrees ) then[127X[104X @@ -1194,12 +1461,12 @@ [4X[25X>[125X [27Xfi;[127X[104X [4X[32X[104X - [33X[0;0YIf an argument [3Xgroupnames[103X is given then it must be a list of group names of - the [5XATLAS[105X of Group Representations; the browse table is then restricted to - the rows corresponding to these group names and to the columns that are - relevant for these groups. A perhaps interesting example is the subtable - with the data concerning sporadic simple groups and their covering groups, - which has been published in [Jan05]. This table can be shown as follows.[133X + [33X[0;0YIf an argument [3Xgapnames[103X is given then it must be a list of [5XGAP[105X names of + groups. The browse table is then restricted to the rows corresponding to + these group names and to the columns that are relevant for these groups. A + perhaps interesting example is the subtable with the data concerning + sporadic simple groups and their covering groups, which has been published + in [Jan05]. This table can be shown as follows.[133X [4X[32X Example [32X[104X [4X[25Xgap>[125X [27Xif IsBound( BrowseMinimalDegrees ) then[127X[104X @@ -1210,7 +1477,7 @@ [4X[25X>[125X [27Xfi;[127X[104X [4X[32X[104X - [33X[0;0YThe browse table does not contain rows for the groups [22X6.M_22[122X, [22X12.M_22[122X, + [33X[0;0YThe browse table does [13Xnot[113X contain rows for the groups [22X6.M_22[122X, [22X12.M_22[122X, [22X6.Fi_22[122X. Note that in spite of the title of [Jan05], the entries in Table 1 of this paper are in fact the minimal degrees of faithful [13Xirreducible[113X representations, and in the above three cases, these degrees are larger than @@ -1219,7 +1486,7 @@ degrees.[133X [33X[0;0YThe return value of [2XBrowseMinimalDegrees[102X is the list of - [2XOneAtlasGeneratingSetInfo[102X ([14X3.5-5[114X) values for those representations that have + [2XOneAtlasGeneratingSetInfo[102X ([14X3.5-6[114X) values for those representations that have been [21Xclicked[121X in visual mode.[133X [33X[0;0YThe variant without arguments of this function is also available in the menu @@ -1227,13 +1494,13 @@ [1X3.6-2 BrowseBibliographySporadicSimple[101X - [29X[2XBrowseBibliographySporadicSimple[102X( ) [32X function + [33X[1;0Y[29X[2XBrowseBibliographySporadicSimple[102X( ) [32X function[133X [6XReturns:[106X [33X[0;10Ya record as returned by [2XParseBibXMLExtString[102X ([14XGAPDoc: ParseBibXMLextString[114X).[133X - [33X[0;0YIf the [5XGAP[105X package [5XBrowse[105X (see [BL14]) is loaded then this function is + [33X[0;0YIf the [5XGAP[105X package [5XBrowse[105X (see [BL18]) is loaded then this function is available. It opens a browse table whose rows correspond to the entries of - the bibliographies in the [5XATLAS[105X of Finite Groups [CCNPW85] and in the [5XATLAS[105X + the bibliographies in the [5XATLAS[105X of Finite Groups [CCN+85] and in the [5XATLAS[105X of Brauer Characters [JLPW95].[133X [33X[0;0YThe function is based on [2XBrowseBibliography[102X ([14XBrowse: BrowseBibliography[114X), @@ -1243,7 +1510,7 @@ [33X[0;0YThe returned record encodes the bibliography entries corresponding to those rows of the table that are [21Xclicked[121X in visual mode, in the same format as the return value of [2XParseBibXMLExtString[102X ([14XGAPDoc: ParseBibXMLextString[114X), see the - manual of the [5XGAP[105X package [5XGAPDoc[105X [LN12] for details.[133X + manual of the [5XGAP[105X package [5XGAPDoc[105X [LN18] for details.[133X [33X[0;0Y[2XBrowseBibliographySporadicSimple[102X can be called also via the menu shown by [2XBrowseGapData[102X ([14XBrowse: BrowseGapData[114X).[133X @@ -1263,16 +1530,16 @@ [4X[25X>[125X [27Xfi;[127X[104X [4X[32X[104X - [33X[0;0YThe bibliographies contained in the [5XATLAS[105X of Finite Groups [CCNPW85] and in + [33X[0;0YThe bibliographies contained in the [5XATLAS[105X of Finite Groups [CCN+85] and in the [5XATLAS[105X of Brauer Characters [JLPW95] are available online in HTML format, see [7Xhttp://www.math.rwth-aachen.de/~Thomas.Breuer/atlasrep/bibl/index.html[107X.[133X [33X[0;0YThe source data in BibXMLext format, which are used by - [2XBrowseBibliographySporadicSimple[102X, is part of the [5XAtlasRep[105X package, in four - files with suffix [11Xxml[111X in the package's [11Xbibl[111X directory. Note that each of the - two books contains two bibliographies.[133X + [2XBrowseBibliographySporadicSimple[102X, are distributed with the [5XAtlasRep[105X package, + in four files with suffix [11Xxml[111X in the package's [11Xbibl[111X directory. Note that + each of the two books contains two bibliographies.[133X [33X[0;0YDetails about the BibXMLext format, including information how to transform the data into other formats such as BibTeX, can be found in the [5XGAP[105X package - [5XGAPDoc[105X (see [LN12]).[133X + [5XGAPDoc[105X (see [LN18]).[133X diff -Nru gap-atlasrep-1.5.1/doc/chap4.html gap-atlasrep-2.1.0/doc/chap4.html --- gap-atlasrep-1.5.1/doc/chap4.html 2016-04-06 12:18:27.000000000 +0000 +++ gap-atlasrep-2.1.0/doc/chap4.html 2019-06-21 15:10:33.000000000 +0000 @@ -19,76 +19,74 @@ - - 4 Customizations of the AtlasRep Package -4.1 Installing the AtlasRep Package + + +4 Customizations of the AtlasRep Package + -4.2 Maintaining the Local Data of the AtlasRep -Package + -4.3 User Parameters for the AtlasRep Package +-
4.2-1 User preferenceAtlasRepAccessRemoteFiles
--
4.3-1 Local or Remote Access +
4.2-2 User preferenceAtlasRepDataDirectory
+ +
4.2-3 User preferenceAtlasRepTOCData
+ +
4.2-4 User preferenceFileTransferTool
-
4.3-2 Adding and Removing Servers +
4.2-5 User preferenceCompressDownloadedMeatAxeFiles
-
4.3-3 Accessing Data Files with the GAP Package IO -or withwget
+
4.2-6 User preferenceFileAccessFunctions
-
4.3-4 Compressed or Uncompressed Data Files +
4.2-7 User preferenceAtlasRepLocalServerPath
-
4.3-5 CustomizingDisplayAtlasInfo
+
4.2-8 User preferenceHowToReadMeatAxeTextFiles
-
4.3-6 Customizing the Access to Data Files +
4.2-9 User preferenceWriteHeaderFormatOfMeatAxeFiles
-
4.3-7 Reading Large Matrices over Finite Fields +
4.2-10 User preferenceWriteMeatAxeFilesOfMode2
-
4.3-8 AtlasOfGroupRepresentationsUserParameters -
4.3-9 User preferenceAtlasRepDataDirectory
+
4.2-11 User preferenceBaseOfMeatAxePermutation
-
4.3-10 User preferenceWriteMeatAxeFilesOfMode2
+
4.2-12 User preferenceDisplayFunction
-
4.3-11 User preferenceBaseOfMeatAxePermutation
+
4.2-13 User preferenceAtlasRepMarkNonCoreData
+ +
4.2-14 User preferenceDebugFileLoading
4.4 Web Services for the AtlasRep Package + -4 Customizations of the AtlasRep Package
- +4.1 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 thepkg
directory of the GAP 4 root directory, see Reference: Installing a GAP Package for details. It is however also possible to keep an additionalpkg
directory in your private directories, see Section Reference: GAP Root Directories. The latter possibility must be chosen if you do not have write access to the GAP root directory.Data files that are available from an earlier version of the package are in principle kept; see
+AtlasOfGroupRepresentationsTestTableOfContentsRemoteUpdates
(4.2-4) for necessary updates.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 thepkg
directory of the GAP 4 root directory, see Reference: Installing a GAP Package for details. It is however also possible to keep an additionalpkg
directory somewhere else, see Section Reference: GAP Root Directories. The latter possibility must be chosen if you do not have write access to the GAP root directory.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.
+If it is likely that you 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 [Neu14] is used to access remote data files (see Section 4.3-3) then its external binary must be available.
+The package consists entirely of GAP code, no external binaries need to be compiled for the package itself. However, if the GAP package IO [Neu14] is used to access remote data files (see Section 4.2-4) then its external binary must be available.
-After unpacking the package archive, the write permissions for those directories should be checked into which users will download files. Every user can customize these paths via a user preference, see Section 4.3-9, the defaults are the subdirectories
+datagens
anddataword
of the package directory. The recommended permissions under UNIX for the default directories are set as follows.After unpacking the package archive, the write permissions for those directories should be checked into which users will download files. Every user can customize these paths via a user preference, see Section 4.2-2, the defaults are the subdirectories
data*
of the package directory. The recommended permissions under UNIX for the default directories 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 +drwxrwxrwt 3 you you 1024 Apr 12 12:34 dataext +drwxrwxrwt 3 you you 1024 Apr 12 12:34 datagens +drwxrwxrwt 3 you you 1024 Apr 12 12:34 datapkg +drwxrwxrwt 3 you you 1024 Apr 12 12:34 datawordFor checking the installation of the package, you should start GAP and call
@@ -100,221 +98,240 @@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 7.8 for details.PDF, HTML, and text versions of the package manual are available in the
- + -doc
directory of the package.4.2 Maintaining the Local Data of the AtlasRep -Package
+4.2 User Preferences 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.This section describes global parameters for which it might make sense to change their defaults, using GAP's user preferences (see Reference: Configuring User preferences).
-For that, one can fetch the most recent version of the file
-gap/atlasprm.g
from the home page of the package (see Section 4.4), either by callingReloadAtlasTableOfContents
(4.2-1) in a GAP session or "by hand". In the latter case, the new file can then be read into the GAP session viaReplaceAtlasTableOfContents
(4.2-3). Alternatively, one can add a line to the user'sgaprc
file (see Reference: The gap.ini and gaprc files), which assigns the filename of the currentgap/atlasprm.g
file (as an absolute path or relative to the user's home directory, cf.Directory
(Reference: Directory)) to the global variableATLASREP_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 theetc
directory of the package for regularly updating the filegap/atlasprm.g
. Users without this write access can store the new file in a different place, and read it withReplaceAtlasTableOfContents
(4.2-3).+
+ -- +
Is access to remote data allowed (see Section 4.2-1)? If yes then also the following parameters are of interest.
- -4.2-1 ReloadAtlasTableOfContents
++
+- +
From where can the data be fetched (see Section 4.2-3)?
--
‣ ReloadAtlasTableOfContents
( dirname )( function ) Returns:
+fail
if the required table of contents could not be reloaded, otherwisetrue
.- +
Where are local copies of these data stored (see Section 4.2-2)?
-Let dirname be a string, which must be one of
+"remote"
,"local"
, or the name of a private data directory (see Chapter 5).- +
How are these data transfered (see Section 4.2-4)?
-In the case of
+"remote"
, the fileatlasprm.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 7.7).- +
Shall files be compressed after they have been downloaded (see Section 4.2-5)?
- +- +
The following parameters influence reading and writing of local files.
-4.2-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.
++
+- +
What shall actually happen when data are requested by the interface functions (see Section 4.2-6)?
- +- +
If the value of the user preference
-FileAccessFunctions
contains"direct access to a local server"
, what is its path (see Section 4.2-7)?4.2-3 ReplaceAtlasTableOfContents
+- +
Shall
-ScanMeatAxeFile
(7.3-1) focus on small runtime or on small space when reading MeatAxe text files (see Section 4.2-8)?-
‣ ReplaceAtlasTableOfContents
( filename )( function ) Let filename be the name of a file that has been created with
+StoreAtlasTableOfContents
(4.2-2).- +
Which kind of headers shall
-MeatAxeString
(7.3-2) create (see Section 4.2-9)?+
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.- +
Shall
- +MeatAxeString
(7.3-2) interpret permutation matrices more as permutations (mode 2) or as matrices (mode 1 or 6) (see Section 4.2-10)?- +
Shall the default for
-CMtxBinaryFFMatOrPerm
(7.3-4) be to write binary files of zero-based or one-based permutations (see Section 4.2-11)?4.2-4 AtlasOfGroupRepresentationsTestTableOfContentsRemoteUpdates
+- +
Which function is used by
-DisplayAtlasInfo
(3.5-1) for printing to the screen (see Section 4.2-12)?-
‣ AtlasOfGroupRepresentationsTestTableOfContentsRemoteUpdates
( )( function ) Returns: the list of names of all locally available data files that should be removed.
+- +
How does
-DisplayAtlasInfo
(3.5-1) mark data that do not belong to the core database (see Section 4.2-13)?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 [Neu14] is needed; if it is not available then an error message is printed, andfail
is returned.- +
Shall debug messages be printed when local data files are read (see Section 4.2-14)?
-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.
+4.2-1 User preference
- +AtlasRepAccessRemoteFiles
The value
-true
(the default) allows the AtlasRep package to fetch data files that are not yet locally available. If the value isfalse
then only those data files can be used that are available locally.4.3 User Parameters for the AtlasRep Package
+If you are working offline then you should set the value to
-false
.This section lists global parameters for which it might make sense to change their defaults by assignments to global variables (see
+AtlasOfGroupRepresentationsUserParameters
(4.3-8) for an overview of these parameters) or using GAP's user preferences (see Reference: Configuring User preferences).Changing the value in a running GAP session does not affect the information shown by
- + -DisplayAtlasInfo
(3.5-1), this information depends on the value of the preference at the time when the extension gets loaded.4.3-1 Local or Remote Access
+4.2-2 User preference
-AtlasRepDataDirectory
There are two possibilities to use the AtlasRep package.
+The value must be a string that is the filename of a directory (in the sense of
+ -IsDirectoryPath
(Reference: IsDirectoryPath)) that contains the directories in which downloaded data will be stored. The default is the installation path of the AtlasRep package (including a trailing slash symbol).-
-- Local access only (offline)
-- -
You can restrict the access to the data that are actually stored in the local installation of GAP.
+4.2-3 User preference
-AtlasRepTOCData
- 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 value must be a list of strings of the form
-"ID|address"
whereID
is the id of a part of the database andaddress
is an URL or a file path (as an absolute path or relative to the user's home directory, cf.Directory
(Reference: Directory)) of a readable JSON format file that contain the table of contents of this part, seeStringOfAtlasTableOfContents
(5.1-3).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 default lists four entries: the core database, the data distributed with the AtlasRep package, and the data that belong to the packages MFER and CTBlocks.
+ + -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 4.2).
+4.2-4 User preference
-FileTransferTool
Remote access is enabled if and only if the value of the
+remote
component of the global variableAtlasOfGroupRepresentationsInfo
(7.1-6) istrue
. 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 tofalse
.This user preference must be set if the user preference
-AtlasRepAccessRemoteFiles
has the valuetrue
, see Section 4.2-1. In this case, one needs either the GAP package IO [Neu14] or the external programwget
for accessing data files.Conversely, if the default value of the
+remote
component in your GAP installation isfalse
then changing this value totrue
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 Directories for details.Which alternative is chosen at runtime is given by the value of the package's user preference
- +FileTransferTool
.The value
-"wget"
means that onlywget
is tried. The value"io"
means that only the IO package is used. The value"prefer io to wget"
(the default) means that the IO package is used if this package is available, and otherwisewget
is tried.4.3-2 Adding and Removing Servers
+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 4.3).When access to remote data is enabled (see Section 4.3-1) then the available servers are given by the
+ -servers
component of the global variableAtlasOfGroupRepresentationsInfo
(7.1-6).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.
+4.2-5 User preference
-CompressDownloadedMeatAxeFiles
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.When used with UNIX, GAP can read
- +gzip
ped files, see Reference: Saving and Loading a Workspace. If the package's user preferenceCompressDownloadedMeatAxeFiles
has the valuetrue
then each MeatAxe format text file that is downloaded from the internet is afterwards compressed withgzip
. The default value isfalse
.Compressing files 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 2.0 the core database contained about 8400 data files in MeatAxe format, which needed about 1400 MB in uncompressed text format and about 275 MB in compressed text format.
-4.3-3 Accessing Data Files with the GAP Package IO -or with
+ -wget
When access to remote data is enabled (see Section 4.3-1) then one needs either the GAP package IO [Neu14] or the external program
+wget
for accessing data files.4.2-6 User preference
-FileAccessFunctions
The chosen alternative is given by the value of the
+wget
component of the global variableAtlasOfGroupRepresentationsInfo
(7.1-6).This preference allows one to customize what actually happens when data are requested by the interface functions: Is it necessary to download some files? If yes then which files are downloaded? If no then which files are actually read into GAP?
-If this component has the value
+true
then onlywget
is tried, if the value isfalse
then only the IO package is used. If this component is not bound or bound to another value thantrue
orfalse
(this is also the default) then the IO package is preferred towget
if this package is available, and otherwisewget
is tried.Currently one can choose among the following features.
-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 4.4).+
+- +
Download/read MeatAxe text files.
+ +- +
Prefer downloading/reading MeatAxe binary files.
+ +- +
Prefer reading locally available data files.
+ +(Of course files can be downloaded only if the user preference
- +AtlasRepAccessRemoteFiles
has the valuetrue
, see Section 4.2-1.)This feature could be used more generally, see Section 7.2 for technical details and the possibility to add other features.
-4.3-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 componentcompress
ofAtlasOfGroupRepresentationsInfo
(7.1-6) has the valuetrue
then each MeatAxe format file that is fetched from a remote server is afterwards compressed withgzip
. 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.5.1 there were about 8400 data files in MeatAxe format, which needed about 1400 MB in uncompressed text format and about 275 MB in compressed text format. The default value for the componentcompress
isfalse
.4.2-7 User preference
- +AtlasRepLocalServerPath
If the data of the core database are available locally (for example because one has access to a local mirror of the data) then one may prefer reading these files instead of downloading data. In order to achieve this, one can set the user preference
-AtlasRepLocalServerPath
and add"direct access to a local server"
to the user preferenceFileAccessFunctions
, see Section 4.2-6.4.3-5 Customizing
+DisplayAtlasInfo
The value must be a string that is the filename of a directory (in the sense of
-IsDirectoryPath
(Reference: IsDirectoryPath)) that contains the data of the ATLAS of Group Representations, in the same directory tree structure as on the ATLAS server.The way how
+ - +DisplayAtlasInfo
(3.5-1) shows the requested overview is controlled by the componentdisplayFunction
ofAtlasOfGroupRepresentationsInfo
(7.1-6). The default value isPrintFormattedString
(GAPDoc: PrintFormattedString) andAGR.Pager
; the latter callsPager
(Reference: Pager) with theformatted
option, which is necessary for switching off GAP's automatic line breaking.4.2-8 User preference
-HowToReadMeatAxeTextFiles
4.3-6 Customizing the Access to Data Files
+The value
-"fast"
means thatScanMeatAxeFile
(7.3-1) reads text files viaStringFile
(GAPDoc: StringFile). Otherwise each file containing a matrix over a finite field is read line by line viaReadLine
(Reference: ReadLine), and the GAP matrix is constructed line by line, in a compressed representation (see Reference: Row Vectors over Finite Fields and Reference: Matrices over Finite Fields); this makes it possible to read large matrices in a reasonable amount of space.By default, local data files are stored in the subdirectories
+datagens
anddataword
of the directory given by the user preferenceAtlasRepDataDirectory
(see Section 4.3-9), and the files are exactly the text files provided on the servers. However, a more flexible approach may be useful.The
-StringFile
(GAPDoc: StringFile) approach is faster but needs more intermediate space when text files containing matrices over finite fields are read. For example, a 4370 by 4370 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. This means that when one reads the file with the fast variant, GAP will temporarily grow by more than this value.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.
+Note that this parameter has an effect only when
-ScanMeatAxeFile
(7.3-1) is used. It has no effect for example if MeatAxe binary files are read, cf.FFMatOrPermCMtxBinary
(7.3-5).As a consequence, one would like to customize the meaning of the following three access steps.
+ + +4.2-9 User preference
+ +WriteHeaderFormatOfMeatAxeFiles
This user preference determines the format of the header lines of MeatAxe format strings created by
MeatAxeString
(7.3-2), see theC
-MeatAxe manual [Rin] for details. The following values are supported.-
-- Are the required files 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.
+- +
"numeric"
- -
means that the header line of the returned string consists of four integers (in the case of a matrix these are mode, row number, column number and field size),
- How can a file be made locally available?
-A different server file may be fetched or some postprocessing may be required.
+- +
"numeric (fixed)"
- -
means that the header line of the returned string consists of four integers as in the case
"numeric"
, but additionally each integer is right aligned in a substring of length (at least) six,- How is the data of a file accessed by GAP?
-A different function may be needed to read the file.
+- +
"textual"
means that the header line of the returned string consists of assignments such as
matrix field=2
.Details how to achieve these customizations can be found in Section 7.2.
- - + -4.3-7 Reading Large Matrices over Finite Fields
+4.2-10 User preference
-WriteMeatAxeFilesOfMode2
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
(7.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 4370 by 4370 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 variableCMeatAxe.FastRead
(7.1-4) totrue
orfalse
, respectively.Note that this parameter is meaningful only when
+ScanMeatAxeFile
(7.3-1) is used. It has no effect for example if MeatAxe binary files are read, cf.FFMatOrPermCMtxBinary
(7.3-5).The value
- + -true
means that the functionMeatAxeString
(7.3-2) will encode permutation matrices via mode 2 descriptions, that is, the first entry in the header line is 2, and the following lines contain the positions of the nonzero entries. If the value isfalse
(the default) thenMeatAxeString
(7.3-2) encodes permutation matrices via mode 1 or mode 6 descriptions, that is, the lines contain the matrix entries.4.3-8 AtlasOfGroupRepresentationsUserParameters
+4.2-11 User preference
-BaseOfMeatAxePermutation
-
‣ AtlasOfGroupRepresentationsUserParameters
( )( function ) This function returns a string that describes an overview of the current values of the user parameters introduced in this section. One can use
+Pager
(Reference: Pager) for showing the overview.The value 0 means that the function
- +CMtxBinaryFFMatOrPerm
(7.3-4) writes zero-based permutations, that is, permutations acting on the points from 0 to the degree minus one; this is achieved by shifting down all images of the GAP permutation by one. The value 1 (the default) means that the permutation stored in the binary file acts on the points from 1 to the degree.Up to version 2.3 of the
-C
-MeatAxe, permutations in binary files were always one-based. Zero-based permutations were introduced in version 2.4.4.3-9 User preference
+ -AtlasRepDataDirectory
The value must be a string that is the filename of a directory (in the sense of
+IsDirectoryPath
(Reference: IsDirectoryPath)) that contains the directoriesdatagens
anddataword
in which downloaded data will be stored. The default is the installation path of the AtlasRep package (including a trailing slash symbol).4.2-12 User preference
- +DisplayFunction
The way how
-DisplayAtlasInfo
(3.5-1) shows the requested overview is controlled by the package AtlasRep's user preferenceDisplayFunction
. The value must be a string that evaluates to a GAP function. The default value is"Print"
(see"PrintFormattedString"
(seePrintFormattedString
(GAPDoc: PrintFormattedString)) and"AGR.Pager"
; the latter means thatPager
(Reference: Pager) is called with theformatted
option, which is necessary for switching off GAP's automatic line breaking.4.3-10 User preference
+ -WriteMeatAxeFilesOfMode2
The value
+true
means that the functionMeatAxeString
(7.3-2) will encode permutation matrices via mode 2 descriptions, that is, the first entry in the header line is 2, and the following lines contain the positions of the nonzero entries. If the value isfalse
(the default) thenMeatAxeString
(7.3-2) encodes permutation matrices via mode 1 or mode 6 descriptions, that is, the lines contain the matrix entries.4.2-13 User preference
- +AtlasRepMarkNonCoreData
The value is a string (the default is a star '*') that is used in
-DisplayAtlasInfo
(3.5-1) to mark data that do not belong to the core database, see Section 5.2.4.3-11 User preference
+ -BaseOfMeatAxePermutation
The value 0 means that the function
+CMtxBinaryFFMatOrPerm
(7.3-4) writes zero-based permutations, that is, permutations acting on the points from 0 to the degree minus one; this is achieved by shifting down all images of the GAP permutation by one. The value 1 (the default) means that the permutation stored in the binary file acts on the points from 1 to the degree.4.2-14 User preference
-DebugFileLoading
Up to version 2.3 of the
+C
-MeatAxe, permutations in binary files were always one-based. Zero-based permutations were introduced in version 2.4, which still is able to read files containing one-based permutations.If the value is
- + -true
then debug messages are printed before and after data files get loaded. The default value isfalse
.4.4 Web Services for the AtlasRep Package
+4.3 Web Contents for the AtlasRep Package
-The home page of the AtlasRep package is
+The home page of the AtlasRep package provides
-http://www.math.rwth-aachen.de/~Thomas.Breuer/atlasrep.
-Besides package archives and introductory package information, it provides
++
- +
package archives,
+introductory package information,
--
- + -- +
the current file with the table of contents (the file
+gap/atlasprm.g
of the package, see http://www.math.rwth-aachen.de/~Thomas.Breuer/atlasrep/atlasprm.g), cf.ReloadAtlasTableOfContents
(4.2-1),- -
the current table of contents of core data in the file
atlasprm.json
of the package, cf.StringOfAtlasTableOfContents
(5.1-3),a starter archive containing many small representations and programs (see http://www.math.rwth-aachen.de/~Thomas.Breuer/atlasrep/atlasrepdata.tar.gz),
+- -
the list of changes of server files in HTML format (see http://www.math.rwth-aachen.de/~Thomas.Breuer/atlasrep/htm/data/changes.htm), cf.
+AtlasOfGroupRepresentationsTestTableOfContentsRemoteUpdates
(4.2-4), and- -
a starter archive containing many small representations and programs, and
an overview of the data available via the GAP interface to the ATLAS of Group Representations, in HTML format (see http://www.math.rwth-aachen.de/~Thomas.Breuer/atlasrep/htm/data/overview.htm); this is similar to the information shown by
+DisplayAtlasInfo
(3.5-1), further information can be found on the home page of the ATLAS, see http://brauer.maths.qmul.ac.uk/Atlas.an overview of the core data in a similar format as the information shown by the function
DisplayAtlasInfo
(3.5-1) of the package; more details can be found on the home page of the ATLAS of Group Representations.4.5 Extending the ATLAS Database
+4.4 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 5 for details.
+It is also possible to make additional representations and programs accessible for the GAP interface, and to use these "private" data in the same way as the core data. See Chapter 5 for details.
diff -Nru gap-atlasrep-1.5.1/doc/chap4_mj.html gap-atlasrep-2.1.0/doc/chap4_mj.html --- gap-atlasrep-1.5.1/doc/chap4_mj.html 1970-01-01 00:00:00.000000000 +0000 +++ gap-atlasrep-2.1.0/doc/chap4_mj.html 2019-06-21 15:10:33.000000000 +0000 @@ -0,0 +1,348 @@ + + + + + + + +GAP (AtlasRep) - Chapter 4: Customizations of the AtlasRep Package + + + + + + + + + + + + + + + +4 Customizations of the AtlasRep Package + ++ +4.2 User Preferences of the AtlasRep Package + ++ + ++
4.2-1 User preferenceAtlasRepAccessRemoteFiles
+ +
4.2-2 User preferenceAtlasRepDataDirectory
+ +
4.2-3 User preferenceAtlasRepTOCData
+ +
4.2-4 User preferenceFileTransferTool
+ +
4.2-5 User preferenceCompressDownloadedMeatAxeFiles
+ +
4.2-6 User preferenceFileAccessFunctions
+ +
4.2-7 User preferenceAtlasRepLocalServerPath
+ +
4.2-8 User preferenceHowToReadMeatAxeTextFiles
+ +
4.2-9 User preferenceWriteHeaderFormatOfMeatAxeFiles
+ +
4.2-10 User preferenceWriteMeatAxeFilesOfMode2
+ +
4.2-11 User preferenceBaseOfMeatAxePermutation
+ +
4.2-12 User preferenceDisplayFunction
+ +
4.2-13 User preferenceAtlasRepMarkNonCoreData
+ +
4.2-14 User preferenceDebugFileLoading
+ +4 Customizations of the AtlasRep Package
+ + + +4.1 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 thepkg
directory of the GAP 4 root directory, see Reference: Installing a GAP Package for details. It is however also possible to keep an additionalpkg
directory somewhere else, see Section Reference: GAP Root Directories. The latter possibility must be chosen if you do not have write access to the GAP root directory.If it is likely that you 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 [Neu14] is used to access remote data files (see Section 4.2-4) then its external binary must be available.
+ +After unpacking the package archive, the write permissions for those directories should be checked into which users will download files. Every user can customize these paths via a user preference, see Section 4.2-2, the defaults are the subdirectories
+ + +data*
of the package directory. The recommended permissions under UNIX for the default directories are set as follows.+ ++you@unix> chmod 1777 atlasrep/data* +you@unix> ls -ld atlasrep/data* +drwxrwxrwt 3 you you 1024 Apr 12 12:34 dataext +drwxrwxrwt 3 you you 1024 Apr 12 12:34 datagens +drwxrwxrwt 3 you you 1024 Apr 12 12:34 datapkg +drwxrwxrwt 3 you you 1024 Apr 12 12:34 dataword +For checking the installation of the package, you should start GAP and 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.
+ +PDF, HTML, and text versions of the package manual are available in the
+ + + +doc
directory of the package.4.2 User Preferences of the AtlasRep Package
+ +This section describes global parameters for which it might make sense to change their defaults, using GAP's user preferences (see Reference: Configuring User preferences).
+ + ++
+ + +- +
Is access to remote data allowed (see Section 4.2-1)? If yes then also the following parameters are of interest.
+ + + +- +
The following parameters influence reading and writing of local files.
+ + ++
+- +
What shall actually happen when data are requested by the interface functions (see Section 4.2-6)?
+ +- +
If the value of the user preference
+ +FileAccessFunctions
contains"direct access to a local server"
, what is its path (see Section 4.2-7)?- +
Shall
+ +ScanMeatAxeFile
(7.3-1) focus on small runtime or on small space when reading MeatAxe text files (see Section 4.2-8)?- +
Which kind of headers shall
+ +MeatAxeString
(7.3-2) create (see Section 4.2-9)?- +
Shall
+ +MeatAxeString
(7.3-2) interpret permutation matrices more as permutations (mode 2) or as matrices (mode 1 or 6) (see Section 4.2-10)?- +
Shall the default for
+ +CMtxBinaryFFMatOrPerm
(7.3-4) be to write binary files of zero-based or one-based permutations (see Section 4.2-11)?- +
Which function is used by
+ +DisplayAtlasInfo
(3.5-1) for printing to the screen (see Section 4.2-12)?- +
How does
+ +DisplayAtlasInfo
(3.5-1) mark data that do not belong to the core database (see Section 4.2-13)?- +
Shall debug messages be printed when local data files are read (see Section 4.2-14)?
+ +4.2-1 User preference
+ +AtlasRepAccessRemoteFiles
The value
+ +true
(the default) allows the AtlasRep package to fetch data files that are not yet locally available. If the value isfalse
then only those data files can be used that are available locally.If you are working offline then you should set the value to
+ +false
.Changing the value in a running GAP session does not affect the information shown by
+ + + +DisplayAtlasInfo
(3.5-1), this information depends on the value of the preference at the time when the extension gets loaded.4.2-2 User preference
+ +AtlasRepDataDirectory
The value must be a string that is the filename of a directory (in the sense of
+ + + +IsDirectoryPath
(Reference: IsDirectoryPath)) that contains the directories in which downloaded data will be stored. The default is the installation path of the AtlasRep package (including a trailing slash symbol).4.2-3 User preference
+ +AtlasRepTOCData
The value must be a list of strings of the form
+ +"ID|address"
whereID
is the id of a part of the database andaddress
is an URL or a file path (as an absolute path or relative to the user's home directory, cf.Directory
(Reference: Directory)) of a readable JSON format file that contain the table of contents of this part, seeStringOfAtlasTableOfContents
(5.1-3).The default lists four entries: the core database, the data distributed with the AtlasRep package, and the data that belong to the packages MFER and CTBlocks.
+ + + +4.2-4 User preference
+ +FileTransferTool
This user preference must be set if the user preference
+ +AtlasRepAccessRemoteFiles
has the valuetrue
, see Section 4.2-1. In this case, one needs either the GAP package IO [Neu14] or the external programwget
for accessing data files.Which alternative is chosen at runtime is given by the value of the package's user preference
+ +FileTransferTool
.The value
+ +"wget"
means that onlywget
is tried. The value"io"
means that only the IO package is used. The value"prefer io to wget"
(the default) means that the IO package is used if this package is available, and otherwisewget
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 4.3).4.2-5 User preference
+ +CompressDownloadedMeatAxeFiles
When used with UNIX, GAP can read
+ +gzip
ped files, see Reference: Saving and Loading a Workspace. If the package's user preferenceCompressDownloadedMeatAxeFiles
has the valuetrue
then each MeatAxe format text file that is downloaded from the internet is afterwards compressed withgzip
. The default value isfalse
.Compressing files 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 2.0 the core database contained 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.
+ + + +4.2-6 User preference
+ +FileAccessFunctions
This preference allows one to customize what actually happens when data are requested by the interface functions: Is it necessary to download some files? If yes then which files are downloaded? If no then which files are actually read into GAP?
+ +Currently one can choose among the following features.
+ ++
+- +
Download/read MeatAxe text files.
+ +- +
Prefer downloading/reading MeatAxe binary files.
+ +- +
Prefer reading locally available data files.
+ +(Of course files can be downloaded only if the user preference
+ +AtlasRepAccessRemoteFiles
has the valuetrue
, see Section 4.2-1.)This feature could be used more generally, see Section 7.2 for technical details and the possibility to add other features.
+ + + +4.2-7 User preference
+ +AtlasRepLocalServerPath
If the data of the core database are available locally (for example because one has access to a local mirror of the data) then one may prefer reading these files instead of downloading data. In order to achieve this, one can set the user preference
+ +AtlasRepLocalServerPath
and add"direct access to a local server"
to the user preferenceFileAccessFunctions
, see Section 4.2-6.The value must be a string that is the filename of a directory (in the sense of
+ + + +IsDirectoryPath
(Reference: IsDirectoryPath)) that contains the data of the ATLAS of Group Representations, in the same directory tree structure as on the ATLAS server.4.2-8 User preference
+ +HowToReadMeatAxeTextFiles
The value
+ +"fast"
means thatScanMeatAxeFile
(7.3-1) reads text files viaStringFile
(GAPDoc: StringFile). Otherwise each file containing a matrix over a finite field is read line by line viaReadLine
(Reference: ReadLine), and the GAP matrix is constructed line by line, in a compressed representation (see Reference: Row Vectors over Finite Fields and Reference: Matrices over Finite Fields); this makes it possible to read large matrices in a reasonable amount of space.The
+ +StringFile
(GAPDoc: StringFile) approach is faster but needs more intermediate space when text files containing matrices over finite fields are read. 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. This means that when one reads the file with the fast variant, GAP will temporarily grow by more than this value.Note that this parameter has an effect only when
+ + + +ScanMeatAxeFile
(7.3-1) is used. It has no effect for example if MeatAxe binary files are read, cf.FFMatOrPermCMtxBinary
(7.3-5).4.2-9 User preference
+ +WriteHeaderFormatOfMeatAxeFiles
This user preference determines the format of the header lines of MeatAxe format strings created by
+ + +MeatAxeString
(7.3-2), see theC
-MeatAxe manual [Rin] for details. The following values are supported.+
+ + +- +
"numeric"
- +
means that the header line of the returned string consists of four integers (in the case of a matrix these are mode, row number, column number and field size),
+ +- +
"numeric (fixed)"
- +
means that the header line of the returned string consists of four integers as in the case
+ +"numeric"
, but additionally each integer is right aligned in a substring of length (at least) six,- +
"textual"
- +
means that the header line of the returned string consists of assignments such as
+ +matrix field=2
.4.2-10 User preference
+ +WriteMeatAxeFilesOfMode2
The value
+ + + +true
means that the functionMeatAxeString
(7.3-2) will encode permutation matrices via mode 2 descriptions, that is, the first entry in the header line is 2, and the following lines contain the positions of the nonzero entries. If the value isfalse
(the default) thenMeatAxeString
(7.3-2) encodes permutation matrices via mode 1 or mode 6 descriptions, that is, the lines contain the matrix entries.4.2-11 User preference
+ +BaseOfMeatAxePermutation
The value \(0\) means that the function
+ +CMtxBinaryFFMatOrPerm
(7.3-4) writes zero-based permutations, that is, permutations acting on the points from \(0\) to the degree minus one; this is achieved by shifting down all images of the GAP permutation by one. The value \(1\) (the default) means that the permutation stored in the binary file acts on the points from \(1\) to the degree.Up to version 2.3 of the
+ + + +C
-MeatAxe, permutations in binary files were always one-based. Zero-based permutations were introduced in version 2.4.4.2-12 User preference
+ +DisplayFunction
The way how
+ + + +DisplayAtlasInfo
(3.5-1) shows the requested overview is controlled by the package AtlasRep's user preferenceDisplayFunction
. The value must be a string that evaluates to a GAP function. The default value is"Print"
(see"PrintFormattedString"
(seePrintFormattedString
(GAPDoc: PrintFormattedString)) and"AGR.Pager"
; the latter means thatPager
(Reference: Pager) is called with theformatted
option, which is necessary for switching off GAP's automatic line breaking.4.2-13 User preference
+ +AtlasRepMarkNonCoreData
The value is a string (the default is a star '*') that is used in
+ + + +DisplayAtlasInfo
(3.5-1) to mark data that do not belong to the core database, see Section 5.2.4.2-14 User preference
+ +DebugFileLoading
If the value is
+ + + +true
then debug messages are printed before and after data files get loaded. The default value isfalse
.4.3 Web Contents for the AtlasRep Package
+ +The home page of the AtlasRep package provides
+ + ++
+ + +- +
package archives,
+ +- +
introductory package information,
+ +- +
the current table of contents of core data in the file
+ +atlasprm.json
of the package, cf.StringOfAtlasTableOfContents
(5.1-3),- + +
+- +
a starter archive containing many small representations and programs, and
+ +- +
an overview of the core data in a similar format as the information shown by the function
+ +DisplayAtlasInfo
(3.5-1) of the package; more details can be found on the home page of the ATLAS of Group Representations.4.4 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 make additional representations and programs accessible for the GAP interface, and to use these "private" data in the same way as the core data. See Chapter 5 for details.
+ + + + + + + +
+generated by GAPDoc2HTML
+ + diff -Nru gap-atlasrep-1.5.1/doc/chap4.txt gap-atlasrep-2.1.0/doc/chap4.txt --- gap-atlasrep-1.5.1/doc/chap4.txt 2016-04-06 12:18:13.000000000 +0000 +++ gap-atlasrep-2.1.0/doc/chap4.txt 2019-06-21 15:10:33.000000000 +0000 @@ -7,36 +7,33 @@ [33X[0;0YTo install the package, unpack the archive file in a directory in the [11Xpkg[111X directory of your local copy of [5XGAP[105X 4. This might be the [11Xpkg[111X directory of the [5XGAP[105X 4 root directory, see [14X'Reference: Installing a GAP Package'[114X for - details. It is however also possible to keep an additional [11Xpkg[111X directory in - your private directories, see Section [14X'Reference: GAP Root Directories'[114X. The - latter possibility [13Xmust[113X be chosen if you do not have write access to the [5XGAP[105X - root directory.[133X - - [33X[0;0YData files that are available from an earlier version of the package are in - principle kept; - see [2XAtlasOfGroupRepresentationsTestTableOfContentsRemoteUpdates[102X ([14X4.2-4[114X) for - necessary updates.[133X + details. It is however also possible to keep an additional [11Xpkg[111X directory + somewhere else, see Section [14X'Reference: GAP Root Directories'[114X. The latter + possibility [13Xmust[113X be chosen if you do not have write access to the [5XGAP[105X root + directory.[133X - [33X[0;0YIf it is likely that one will work offline, it makes sense to install the + [33X[0;0YIf it is likely that you will work offline, it makes sense to install the [21Xstarter archive[121X that can be downloaded from the package's homepage.[133X [33X[0;0YThe package consists entirely of [5XGAP[105X code, no external binaries need to be compiled for the package itself. However, if the [5XGAP[105X package [5XIO[105X [Neu14] is - used to access remote data files (see Section [14X4.3-3[114X) then its external + used to access remote data files (see Section [14X4.2-4[114X) then its external binary must be available.[133X [33X[0;0YAfter unpacking the package archive, the write permissions for those directories should be checked into which users will download files. Every - user can customize these paths via a user preference, see Section [14X4.3-9[114X, the - defaults are the subdirectories [11Xdatagens[111X and [11Xdataword[111X of the package - directory. The recommended permissions under UNIX for the default - directories are set as follows.[133X + user can customize these paths via a user preference, see Section [14X4.2-2[114X, the + defaults are the subdirectories [11Xdata*[111X of the package directory. The + recommended permissions under UNIX for the default directories are set as + follows.[133X [4X[32X Example [32X[104X [4X[28Xyou@unix> chmod 1777 atlasrep/data*[128X[104X [4X[28Xyou@unix> ls -ld atlasrep/data*[128X[104X - [4X[28Xdrwxrwxrwt 3 you you 1024 Oct 31 12:34 datagens[128X[104X - [4X[28Xdrwxrwxrwt 3 you you 1024 Oct 31 12:34 dataword[128X[104X + [4X[28Xdrwxrwxrwt 3 you you 1024 Apr 12 12:34 dataext[128X[104X + [4X[28Xdrwxrwxrwt 3 you you 1024 Apr 12 12:34 datagens[128X[104X + [4X[28Xdrwxrwxrwt 3 you you 1024 Apr 12 12:34 datapkg[128X[104X + [4X[28Xdrwxrwxrwt 3 you you 1024 Apr 12 12:34 dataword[128X[104X [4X[32X[104X [33X[0;0YFor checking the installation of the package, you should start [5XGAP[105X and call[133X @@ -49,282 +46,212 @@ else being printed; otherwise the output lines tell you what should be changed.[133X - [33X[0;0YMore test files are available in the [11Xtst[111X directory of the package, see - Section [14X7.8[114X for details.[133X - [33X[0;0YPDF, HTML, and text versions of the package manual are available in the [11Xdoc[111X directory of the package.[133X - [1X4.2 [33X[0;0YMaintaining the Local Data of the [5XAtlasRep[105X[101X[1X Package[133X[101X + [1X4.2 [33X[0;0YUser Preferences of the [5XAtlasRep[105X[101X[1X Package[133X[101X + + [33X[0;0YThis section describes global parameters for which it might make sense to + change their defaults, using [5XGAP[105X's user preferences (see [14X'Reference: + Configuring User preferences'[114X).[133X + + [30X [33X[0;6YIs access to remote data allowed (see Section [14X4.2-1[114X)? If yes then also + the following parameters are of interest.[133X + + [30X [33X[0;12YFrom where can the data be fetched (see Section [14X4.2-3[114X)?[133X + + [30X [33X[0;12YWhere are local copies of these data stored (see Section [14X4.2-2[114X)?[133X + + [30X [33X[0;12YHow are these data transfered (see Section [14X4.2-4[114X)?[133X + + [30X [33X[0;12YShall files be compressed after they have been downloaded (see + Section [14X4.2-5[114X)?[133X + + [30X [33X[0;6YThe following parameters influence reading and writing of local files.[133X + + [30X [33X[0;12YWhat shall actually happen when data are requested by the + interface functions (see Section [14X4.2-6[114X)?[133X + + [30X [33X[0;12YIf the value of the user preference [10XFileAccessFunctions[110X contains + [10X"direct access to a local server"[110X, what is its path (see Section + [14X4.2-7[114X)?[133X + + [30X [33X[0;12YShall [2XScanMeatAxeFile[102X ([14X7.3-1[114X) focus on small runtime or on small + space when reading [5XMeatAxe[105X text files (see Section [14X4.2-8[114X)?[133X + + [30X [33X[0;12YWhich kind of headers shall [2XMeatAxeString[102X ([14X7.3-2[114X) create (see + Section [14X4.2-9[114X)?[133X + + [30X [33X[0;12YShall [2XMeatAxeString[102X ([14X7.3-2[114X) interpret permutation matrices more + as permutations (mode 2) or as matrices (mode 1 or 6) (see + Section [14X4.2-10[114X)?[133X + + [30X [33X[0;12YShall the default for [2XCMtxBinaryFFMatOrPerm[102X ([14X7.3-4[114X) be to write + binary files of zero-based or one-based permutations (see + Section [14X4.2-11[114X)?[133X + + [30X [33X[0;6YWhich function is used by [2XDisplayAtlasInfo[102X ([14X3.5-1[114X) for printing to the + screen (see Section [14X4.2-12[114X)?[133X + + [30X [33X[0;6YHow does [2XDisplayAtlasInfo[102X ([14X3.5-1[114X) mark data that do not belong to the + core database (see Section [14X4.2-13[114X)?[133X + + [30X [33X[0;6YShall debug messages be printed when local data files are read (see + Section [14X4.2-14[114X)?[133X + + + [1X4.2-1 [33X[0;0YUser preference [10XAtlasRepAccessRemoteFiles[110X[101X[1X[133X[101X + + [33X[0;0YThe value [9Xtrue[109X (the default) allows the [5XAtlasRep[105X package to fetch data files + that are not yet locally available. If the value is [9Xfalse[109X then only those + data files can be used that are available locally.[133X + + [33X[0;0YIf you are working offline then you should set the value to [9Xfalse[109X.[133X + + [33X[0;0YChanging the value in a running [5XGAP[105X session does not affect the information + shown by [2XDisplayAtlasInfo[102X ([14X3.5-1[114X), this information depends on the value of + the preference at the time when the extension gets loaded.[133X + + + [1X4.2-2 [33X[0;0YUser preference [10XAtlasRepDataDirectory[110X[101X[1X[133X[101X + + [33X[0;0YThe value must be a string that is the filename of a directory (in the sense + of [2XIsDirectoryPath[102X ([14XReference: IsDirectoryPath[114X)) that contains the + directories in which downloaded data will be stored. The default is the + installation path of the [5XAtlasRep[105X package (including a trailing slash + symbol).[133X + + + [1X4.2-3 [33X[0;0YUser preference [10XAtlasRepTOCData[110X[101X[1X[133X[101X - [33X[0;0YThe current [13Xtable of contents[113X of the database is contained in the file - [11Xgap/atlasprm.g[111X of the [5XAtlasRep[105X 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 [5XAtlasRep[105X package, thus it is - useful to update the table of contents of the package from time to time.[133X - - [33X[0;0YFor that, one can fetch the most recent version of the file [11Xgap/atlasprm.g[111X - from the home page of the package (see Section [14X4.4[114X), either by - calling [2XReloadAtlasTableOfContents[102X ([14X4.2-1[114X) in a [5XGAP[105X session or [21Xby hand[121X. In - the latter case, the new file can then be read into the [5XGAP[105X session via - [2XReplaceAtlasTableOfContents[102X ([14X4.2-3[114X). Alternatively, one can add a line to - the user's [11Xgaprc[111X file (see [14X'Reference: The gap.ini and gaprc files'[114X), which - assigns the filename of the current [11Xgap/atlasprm.g[111X file (as an absolute path - or relative to the user's home directory, cf. [2XDirectory[102X ([14XReference: - Directory[114X)) to the global variable [10XATLASREP_TOCFILE[110X; in this case, this file - is read instead of the one from the package distribution when the package is - loaded.[133X - - [33X[0;0YUsers who have write access to the directory where the [5XAtlasRep[105X package is - installed can alternatively use the [11Xmaketoc[111X script in the [11Xetc[111X directory of - the package for regularly updating the file [11Xgap/atlasprm.g[111X. Users without - this write access can store the new file in a different place, and read it - with [2XReplaceAtlasTableOfContents[102X ([14X4.2-3[114X).[133X - - [1X4.2-1 ReloadAtlasTableOfContents[101X - - [29X[2XReloadAtlasTableOfContents[102X( [3Xdirname[103X ) [32X function - [6XReturns:[106X [33X[0;10Y[9Xfail[109X if the required table of contents could not be reloaded, - otherwise [9Xtrue[109X.[133X - - [33X[0;0YLet [3Xdirname[103X be a string, which must be one of [10X"remote"[110X, [10X"local"[110X, or the name - of a private data directory (see Chapter [14X5[114X).[133X - - [33X[0;0YIn the case of [10X"remote"[110X, the file [11Xatlasprm.g[111X is fetched from the package's - home page, and then read into [5XGAP[105X. In the case of [10X"local"[110X, the subset of the - data listed in the [10X"remote"[110X 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 [3Xdirname[103X - is replaced by the one obtained from inspecting the actual contents of the - data directories (see Section [14X7.7[114X).[133X - - [1X4.2-2 StoreAtlasTableOfContents[101X - - [29X[2XStoreAtlasTableOfContents[102X( [3Xfilename[103X ) [32X function - - [33X[0;0YLet [3Xfilename[103X be a string. This function prints the loaded table of contents - of the servers to the file with name [3Xfilename[103X.[133X - - [1X4.2-3 ReplaceAtlasTableOfContents[101X - - [29X[2XReplaceAtlasTableOfContents[102X( [3Xfilename[103X ) [32X function - - [33X[0;0YLet [3Xfilename[103X be the name of a file that has been created with - [2XStoreAtlasTableOfContents[102X ([14X4.2-2[114X).[133X - - [33X[0;0Y[2XReplaceAtlasTableOfContents[102X first removes the information that [5XGAP[105X has - stored about the table of contents of the servers, and then reads the file - with name [3Xfilename[103X, thus replacing the previous information by the stored - one.[133X - - [1X4.2-4 AtlasOfGroupRepresentationsTestTableOfContentsRemoteUpdates[101X - - [29X[2XAtlasOfGroupRepresentationsTestTableOfContentsRemoteUpdates[102X( ) [32X function - [6XReturns:[106X [33X[0;10Ythe list of names of all locally available data files that should - be removed.[133X - - [33X[0;0YThis function fetches the file [11Xchanges.html[111X 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 [5XGAP[105X package [5XIO[105X [Neu14] is needed; if it is not available then an error - message is printed, and [9Xfail[109X is returned.[133X - - [33X[0;0YIf 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 - [10Xtouch[110Xing files in the local directories will cheat this function.)[133X - - [33X[0;0YIt 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.[133X - - - [1X4.3 [33X[0;0YUser Parameters for the [5XAtlasRep[105X[101X[1X Package[133X[101X - - [33X[0;0YThis section lists global parameters for which it might make sense to change - their defaults by assignments to global variables (see - [2XAtlasOfGroupRepresentationsUserParameters[102X ([14X4.3-8[114X) for an overview of these - parameters) or using [5XGAP[105X's user preferences (see [14X'Reference: Configuring - User preferences'[114X).[133X - - - [1X4.3-1 [33X[0;0YLocal or Remote Access[133X[101X - - [33X[0;0YThere are two possibilities to use the [5XAtlasRep[105X package.[133X - - [8X[13XLocal access only (offline)[113X[108X - [33X[0;6YYou can restrict the access to the data that are actually stored in - the local installation of [5XGAP[105X.[133X - - [8X[13XRemote access (online)[113X[108X - [33X[0;6YIf your computer is connected to a network that provides access to the - [5XATLAS[105X 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.[133X - - [33X[0;0YThe latter possibility is presently not used by other [5XGAP[105X packages, so it - may be regarded as an important feature of the [5XAtlasRep[105X package. Anyhow it - requires a few words of explanation.[133X - - [33X[0;0YThe possibility of online access reflects in particular the fact that the - [5XATLAS[105X of Group Representations is designed as an [13Xopen database[113X, it is - expected to grow. As soon as the developers of the [5XATLAS[105X of Group - Representations add new information to the servers, these data become - available in [5XGAP[105X when remote access is enabled, after one has updated the - corresponding table of contents (see Section [14X4.2[114X).[133X - - [33X[0;0YRemote access is enabled if and only if the value of the [10Xremote[110X component of - the global variable [2XAtlasOfGroupRepresentationsInfo[102X ([14X7.1-6[114X) is [9Xtrue[109X. If one - wants to work offline, i.e., if one does [13Xnot[113X want [5XGAP[105X to attempt accessing - remote data then this value must be set to [9Xfalse[109X.[133X - - [33X[0;0YConversely, if the default value of the [10Xremote[110X component in your [5XGAP[105X - installation is [9Xfalse[109X then changing this value to [9Xtrue[109X may be not - successful. First, it might be the case that no server is reachable. And - second, if one can in principle [13Xdownload[113X files from a server then it might - be impossible to actually [13Xstore[113X 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 [14X'Reference: - GAP Root Directories'[114X for details.[133X - - - [1X4.3-2 [33X[0;0YAdding and Removing Servers[133X[101X - - [33X[0;0YWhen access to remote data is enabled (see Section [14X4.3-1[114X) then the available - servers are given by the [10Xservers[110X component of the global variable - [2XAtlasOfGroupRepresentationsInfo[102X ([14X7.1-6[114X).[133X - - [33X[0;0Y[13XRemoving[113X entries from this list means to disable access to the corresponding - servers, [13Xadding[113X 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.[133X - - [33X[0;0YCurrently 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 [10Xservers[110X component, this will be announced in the [5XGAP[105X Forum, cf. - [14X'Tutorial: Further Information about GAP'[114X. The same holds when upgrades of - the package become available.[133X - - - [1X4.3-3 [33X[0;0YAccessing Data Files with the [5XGAP[105X[101X[1X Package [5XIO[105X[101X[1X or with [11Xwget[111X[101X[1X[133X[101X - - [33X[0;0YWhen access to remote data is enabled (see Section [14X4.3-1[114X) then one needs - either the [5XGAP[105X package [5XIO[105X [Neu14] or the external program [11Xwget[111X for accessing - data files.[133X - - [33X[0;0YThe chosen alternative is given by the value of the [10Xwget[110X component of the - global variable [2XAtlasOfGroupRepresentationsInfo[102X ([14X7.1-6[114X).[133X - - [33X[0;0YIf this component has the value [9Xtrue[109X then only [11Xwget[111X is tried, if the value - is [9Xfalse[109X then only the [5XIO[105X package is used. If this component is not bound or - bound to another value than [9Xtrue[109X or [9Xfalse[109X (this is also the default) then - the [5XIO[105X package is preferred to [11Xwget[111X if this package is available, and + [33X[0;0YThe value must be a list of strings of the form [10X"ID|address"[110X where [10XID[110X is the + id of a part of the database and [10Xaddress[110X is an URL or a file path (as an + absolute path or relative to the user's home directory, cf. [2XDirectory[102X + ([14XReference: Directory[114X)) of a readable JSON format file that contain the + table of contents of this part, see [2XStringOfAtlasTableOfContents[102X ([14X5.1-3[114X).[133X + + [33X[0;0YThe default lists four entries: the core database, the data distributed with + the [5XAtlasRep[105X package, and the data that belong to the packages [5XMFER[105X and + [5XCTBlocks[105X.[133X + + + [1X4.2-4 [33X[0;0YUser preference [10XFileTransferTool[110X[101X[1X[133X[101X + + [33X[0;0YThis user preference must be set if the user preference + [10XAtlasRepAccessRemoteFiles[110X has the value [9Xtrue[109X, see Section [14X4.2-1[114X. In this + case, one needs either the [5XGAP[105X package [5XIO[105X [Neu14] or the external program + [11Xwget[111X for accessing data files.[133X + + [33X[0;0YWhich alternative is chosen at runtime is given by the value of the + package's user preference [10XFileTransferTool[110X.[133X + + [33X[0;0YThe value [10X"wget"[110X means that only [11Xwget[111X is tried. The value [10X"io"[110X means that + only the [5XIO[105X package is used. The value [10X"prefer io to wget"[110X (the default) + means that the [5XIO[105X package is used if this package is available, and otherwise [11Xwget[111X is tried.[133X [33X[0;0YNote that the system program [11Xwget[111X 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 [5XAtlasRep[105X package (see Section [14X4.4[114X).[133X + page of the [5XAtlasRep[105X package (see Section [14X4.3[114X).[133X - [1X4.3-4 [33X[0;0YCompressed or Uncompressed Data Files[133X[101X + [1X4.2-5 [33X[0;0YUser preference [10XCompressDownloadedMeatAxeFiles[110X[101X[1X[133X[101X [33X[0;0YWhen used with UNIX, [5XGAP[105X can read [11Xgzip[111Xped files, see [14X'Reference: Saving and - Loading a Workspace'[114X. If the component [10Xcompress[110X of - [2XAtlasOfGroupRepresentationsInfo[102X ([14X7.1-6[114X) has the value [9Xtrue[109X then each [5XMeatAxe[105X - format file that is fetched from a remote server is afterwards compressed - with [11Xgzip[111X. This saves a lot of space if many [5XMeatAxe[105X format files are + Loading a Workspace'[114X. If the package's user preference + [10XCompressDownloadedMeatAxeFiles[110X has the value [9Xtrue[109X then each [5XMeatAxe[105X format + text file that is downloaded from the internet is afterwards compressed with + [11Xgzip[111X. The default value is [9Xfalse[109X.[133X + + [33X[0;0YCompressing files saves a lot of space if many [5XMeatAxe[105X 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.5.1 there were about [22X8400[122X - data files in [5XMeatAxe[105X format, which needed about [22X1400[122X MB in uncompressed - text format and about [22X275[122X MB in compressed text format. The default value - for the component [10Xcompress[110X is [9Xfalse[109X.[133X + example, at the time of the release of version 2.0 the core database + contained about [22X8400[122X data files in [5XMeatAxe[105X format, which needed about [22X1400[122X + MB in uncompressed text format and about [22X275[122X MB in compressed text format.[133X - [1X4.3-5 [33X[0;0YCustomizing [10XDisplayAtlasInfo[110X[101X[1X[133X[101X + [1X4.2-6 [33X[0;0YUser preference [10XFileAccessFunctions[110X[101X[1X[133X[101X - [33X[0;0YThe way how [2XDisplayAtlasInfo[102X ([14X3.5-1[114X) shows the requested overview is - controlled by the component [10XdisplayFunction[110X of - [2XAtlasOfGroupRepresentationsInfo[102X ([14X7.1-6[114X). The default value is [2XPrint[102X - ([14XReference: Print[114X), other useful values are [2XPrintFormattedString[102X ([14XGAPDoc: - PrintFormattedString[114X) and [10XAGR.Pager[110X; the latter calls [2XPager[102X ([14XReference: - Pager[114X) with the [10Xformatted[110X option, which is necessary for switching off [5XGAP[105X's - automatic line breaking.[133X - - - [1X4.3-6 [33X[0;0YCustomizing the Access to Data Files[133X[101X - - [33X[0;0YBy default, local data files are stored in the subdirectories [11Xdatagens[111X and - [11Xdataword[111X of the directory given by the user preference [10XAtlasRepDataDirectory[110X - (see Section [14X4.3-9[114X), and the files are exactly the text files provided on - the servers. However, a more flexible approach may be useful.[133X - - [33X[0;0YFirst, one may want to use [13Xdifferent file formats[113X, for example the [5XMeatAxe[105X - binary files that are provided by the servers parallel to the [5XMeatAxe[105X text - files. Second, one may want to use [13Xa different directory structure[113X, 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.[133X + [33X[0;0YThis preference allows one to customize what actually happens when data are + requested by the interface functions: Is it necessary to download some + files? If yes then which files are downloaded? If no then which files are + actually read into [5XGAP[105X?[133X + + [33X[0;0YCurrently one can choose among the following features.[133X + + [31X1[131X [33X[0;6YDownload/read [5XMeatAxe[105X text files.[133X + + [31X2[131X [33X[0;6YPrefer downloading/reading [5XMeatAxe[105X binary files.[133X + + [31X3[131X [33X[0;6YPrefer reading locally available data files.[133X + + [33X[0;0Y(Of course files can be downloaded only if the user preference + [10XAtlasRepAccessRemoteFiles[110X has the value [9Xtrue[109X, see Section [14X4.2-1[114X.)[133X + + [33X[0;0YThis feature could be used more generally, see Section [14X7.2[114X for technical + details and the possibility to add other features.[133X - [33X[0;0YAs a consequence, one would like to customize the meaning of the following - three access steps.[133X - [8XAre the required files locally available?[108X - [33X[0;6YThe 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.[133X - - [8XHow can a file be made locally available?[108X - [33X[0;6YA different server file may be fetched or some postprocessing may be - required.[133X - - [8XHow is the data of a file accessed by [5XGAP[105X?[108X - [33X[0;6YA different function may be needed to read the file.[133X - - [33X[0;0YDetails how to achieve these customizations can be found in Section [14X7.2[114X.[133X - - - [1X4.3-7 [33X[0;0YReading Large Matrices over Finite Fields[133X[101X - - [33X[0;0YMatrices over finite fields in [5XGAP[105X can be represented in a compressed format - that needs less space than the corresponding text file. Such a [5XMeatAxe[105X - format text file can be read by [2XScanMeatAxeFile[102X ([14X7.3-1[114X) 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 [22X4370[122X by [22X4370[122X matrix over the field - with two elements (as occurs for an irreducible representation of the Baby - Monster) requires less than [22X3[122X MB space in [5XGAP[105X but the corresponding [5XMeatAxe[105X - format text file is more than [22X19[122X MB large, which means that when one reads - the file with the fast variant, [5XGAP[105X will temporarily grow by more than this - value. One can change the mode by setting the global variable - [2XCMeatAxe.FastRead[102X ([14X7.1-4[114X) to [9Xtrue[109X or [9Xfalse[109X, respectively.[133X + [1X4.2-7 [33X[0;0YUser preference [10XAtlasRepLocalServerPath[110X[101X[1X[133X[101X - [33X[0;0YNote that this parameter is meaningful only when [2XScanMeatAxeFile[102X ([14X7.3-1[114X) is + [33X[0;0YIf the data of the core database are available locally (for example because + one has access to a local mirror of the data) then one may prefer reading + these files instead of downloading data. In order to achieve this, one can + set the user preference [10XAtlasRepLocalServerPath[110X and add [10X"direct access to a + local server"[110X to the user preference [10XFileAccessFunctions[110X, see Section [14X4.2-6[114X.[133X + + [33X[0;0YThe value must be a string that is the filename of a directory (in the sense + of [2XIsDirectoryPath[102X ([14XReference: IsDirectoryPath[114X)) that contains the data of + the [5XATLAS[105X of Group Representations, in the same directory tree structure as + on the [5XATLAS[105X server.[133X + + + [1X4.2-8 [33X[0;0YUser preference [10XHowToReadMeatAxeTextFiles[110X[101X[1X[133X[101X + + [33X[0;0YThe value [10X"fast"[110X means that [2XScanMeatAxeFile[102X ([14X7.3-1[114X) reads text files via + [2XStringFile[102X ([14XGAPDoc: StringFile[114X). Otherwise each file containing a matrix + over a finite field is read line by line via [2XReadLine[102X ([14XReference: ReadLine[114X), + and the [5XGAP[105X matrix is constructed line by line, in a compressed + representation (see [14X'Reference: Row Vectors over Finite Fields'[114X + and [14X'Reference: Matrices over Finite Fields'[114X); this makes it possible to + read large matrices in a reasonable amount of space.[133X + + [33X[0;0YThe [2XStringFile[102X ([14XGAPDoc: StringFile[114X) approach is faster but needs more + intermediate space when text files containing matrices over finite fields + are read. For example, a [22X4370[122X by [22X4370[122X matrix over the field with two + elements (as occurs for an irreducible representation of the Baby Monster) + requires less than [22X3[122X MB space in [5XGAP[105X but the corresponding [5XMeatAxe[105X format + text file is more than [22X19[122X MB large. This means that when one reads the file + with the fast variant, [5XGAP[105X will temporarily grow by more than this value.[133X + + [33X[0;0YNote that this parameter has an effect only when [2XScanMeatAxeFile[102X ([14X7.3-1[114X) is used. It has no effect for example if [5XMeatAxe[105X binary files are read, cf. [2XFFMatOrPermCMtxBinary[102X ([14X7.3-5[114X).[133X - [1X4.3-8 AtlasOfGroupRepresentationsUserParameters[101X - [29X[2XAtlasOfGroupRepresentationsUserParameters[102X( ) [32X function + [1X4.2-9 [33X[0;0YUser preference [10XWriteHeaderFormatOfMeatAxeFiles[110X[101X[1X[133X[101X - [33X[0;0YThis function returns a string that describes an overview of the current - values of the user parameters introduced in this section. One can use [2XPrint[102X - ([14XReference: Print[114X) or [2XPager[102X ([14XReference: Pager[114X) for showing the overview.[133X + [33X[0;0YThis user preference determines the format of the header lines of [5XMeatAxe[105X + format strings created by [2XMeatAxeString[102X ([14X7.3-2[114X), see the [10XC[110X-[5XMeatAxe[105X + manual [Rin] for details. The following values are supported.[133X + [8X[10X"numeric"[110X[8X[108X + [33X[0;6Ymeans that the header line of the returned string consists of four + integers (in the case of a matrix these are mode, row number, column + number and field size),[133X - [1X4.3-9 [33X[0;0YUser preference [10XAtlasRepDataDirectory[110X[101X[1X[133X[101X + [8X[10X"numeric (fixed)"[110X[8X[108X + [33X[0;6Ymeans that the header line of the returned string consists of four + integers as in the case [10X"numeric"[110X, but additionally each integer is + right aligned in a substring of length (at least) six,[133X - [33X[0;0YThe value must be a string that is the filename of a directory (in the sense - of [2XIsDirectoryPath[102X ([14XReference: IsDirectoryPath[114X)) that contains the - directories [11Xdatagens[111X and [11Xdataword[111X in which downloaded data will be stored. - The default is the installation path of the [5XAtlasRep[105X package (including a - trailing slash symbol).[133X + [8X[10X"textual"[110X[8X[108X + [33X[0;6Ymeans that the header line of the returned string consists of + assignments such as [10Xmatrix field=2[110X.[133X - [1X4.3-10 [33X[0;0YUser preference [10XWriteMeatAxeFilesOfMode2[110X[101X[1X[133X[101X + [1X4.2-10 [33X[0;0YUser preference [10XWriteMeatAxeFilesOfMode2[110X[101X[1X[133X[101X [33X[0;0YThe value [9Xtrue[109X means that the function [2XMeatAxeString[102X ([14X7.3-2[114X) will encode permutation matrices via mode 2 descriptions, that is, the first entry in @@ -334,7 +261,7 @@ is, the lines contain the matrix entries.[133X - [1X4.3-11 [33X[0;0YUser preference [10XBaseOfMeatAxePermutation[110X[101X[1X[133X[101X + [1X4.2-11 [33X[0;0YUser preference [10XBaseOfMeatAxePermutation[110X[101X[1X[133X[101X [33X[0;0YThe value [22X0[122X means that the function [2XCMtxBinaryFFMatOrPerm[102X ([14X7.3-4[114X) writes zero-based permutations, that is, permutations acting on the points from [22X0[122X @@ -343,47 +270,72 @@ stored in the binary file acts on the points from [22X1[122X to the degree.[133X [33X[0;0YUp to version 2.3 of the [10XC[110X-[5XMeatAxe[105X, permutations in binary files were always - one-based. Zero-based permutations were introduced in version 2.4, which - still is able to read files containing one-based permutations.[133X + one-based. Zero-based permutations were introduced in version 2.4.[133X + + + [1X4.2-12 [33X[0;0YUser preference [10XDisplayFunction[110X[101X[1X[133X[101X + + [33X[0;0YThe way how [2XDisplayAtlasInfo[102X ([14X3.5-1[114X) shows the requested overview is + controlled by the package [5XAtlasRep[105X's user preference [10XDisplayFunction[110X. The + value must be a string that evaluates to a [5XGAP[105X function. The default value + is [10X"Print"[110X (see [2XPrint[102X ([14XReference: Print[114X)), other useful values are + [10X"PrintFormattedString"[110X (see [2XPrintFormattedString[102X ([14XGAPDoc: + PrintFormattedString[114X)) and [10X"AGR.Pager"[110X; the latter means that [2XPager[102X + ([14XReference: Pager[114X) is called with the [10Xformatted[110X option, which is necessary + for switching off [5XGAP[105X's automatic line breaking.[133X + + + [1X4.2-13 [33X[0;0YUser preference [10XAtlasRepMarkNonCoreData[110X[101X[1X[133X[101X + + [33X[0;0YThe value is a string (the default is a star '*') that is used in + [2XDisplayAtlasInfo[102X ([14X3.5-1[114X) to mark data that do not belong to the core + database, see Section [14X5.2[114X.[133X + + + [1X4.2-14 [33X[0;0YUser preference [10XDebugFileLoading[110X[101X[1X[133X[101X + + [33X[0;0YIf the value is [9Xtrue[109X then debug messages are printed before and after data + files get loaded. The default value is [9Xfalse[109X.[133X - [1X4.4 [33X[0;0YWeb Services for the [5XAtlasRep[105X[101X[1X Package[133X[101X + [1X4.3 [33X[0;0YWeb Contents for the [5XAtlasRep[105X[101X[1X Package[133X[101X - [33X[0;0YThe home page of the [5XAtlasRep[105X package is[133X + [33X[0;0YThe home page of the [5XAtlasRep[105X package + ([7Xhttp://www.math.rwth-aachen.de/~Thomas.Breuer/atlasrep[107X) provides[133X - [33X[0;0Y[7Xhttp://www.math.rwth-aachen.de/~Thomas.Breuer/atlasrep[107X.[133X + [30X [33X[0;6Ypackage archives,[133X - [33X[0;0YBesides package archives and introductory package information, it provides[133X + [30X [33X[0;6Yintroductory package information,[133X - [30X [33X[0;6Ythe current file with the [13Xtable of contents[113X (the file [11Xgap/atlasprm.g[111X - of the package, see - [7Xhttp://www.math.rwth-aachen.de/~Thomas.Breuer/atlasrep/atlasprm.g[107X), - cf. [2XReloadAtlasTableOfContents[102X ([14X4.2-1[114X),[133X + [30X [33X[0;6Ythe current [13Xtable of contents[113X of core data in the file [11Xatlasprm.json[111X + ([7Xhttp://www.math.rwth-aachen.de/~Thomas.Breuer/atlasrep/atlasprm.json[107X) + of the package, cf. [2XStringOfAtlasTableOfContents[102X ([14X5.1-3[114X),[133X - [30X [33X[0;6Ya [13Xstarter archive[113X containing many small representations and programs - (see - [7Xhttp://www.math.rwth-aachen.de/~Thomas.Breuer/atlasrep/atlasrepdata.tar.gz[107X),[133X + [30X [33X[0;6Ythe list of changes of remote core data files + ( + http://www.math.rwth-aachen.de/~Thomas.Breuer/atlasrep/htm/data/changes.htm + ),[133X - [30X [33X[0;6Ythe list of [13Xchanges of server files[113X in HTML format (see - [7Xhttp://www.math.rwth-aachen.de/~Thomas.Breuer/atlasrep/htm/data/changes.htm[107X), - cf. [2XAtlasOfGroupRepresentationsTestTableOfContentsRemoteUpdates[102X - ([14X4.2-4[114X), and[133X + [30X [33X[0;6Ya starter archive + ( + http://www.math.rwth-aachen.de/~Thomas.Breuer/atlasrep/atlasrepdata.tar.gz + ) containing many small representations and programs, and[133X - [30X [33X[0;6Yan [13Xoverview of the data[113X available via the [5XGAP[105X interface to the [5XATLAS[105X - of Group Representations, in HTML format (see - [7Xhttp://www.math.rwth-aachen.de/~Thomas.Breuer/atlasrep/htm/data/overview.htm[107X); - this is similar to the information shown by [2XDisplayAtlasInfo[102X ([14X3.5-1[114X), - further information can be found on the home page of the [5XATLAS[105X, see - [7Xhttp://brauer.maths.qmul.ac.uk/Atlas[107X.[133X + [30X [33X[0;6Yan overview of the core data + ([7Xhttp://www.math.rwth-aachen.de/~Thomas.Breuer/atlasrep/htm/data[107X) in a + similar format as the information shown by the function + [2XDisplayAtlasInfo[102X ([14X3.5-1[114X) of the package; more details can be found on + the home page of the [5XATLAS[105X of Group Representations + ([7Xhttp://brauer.maths.qmul.ac.uk/Atlas/v3[107X).[133X - [1X4.5 [33X[0;0YExtending the [5XATLAS[105X[101X[1X Database[133X[101X + [1X4.4 [33X[0;0YExtending the [5XATLAS[105X[101X[1X Database[133X[101X [33X[0;0YUsers who have computed new representations that might be interesting for inclusion into the [5XATLAS[105X of Group representations can send the data in question to [7Xmailto:R.A.Wilson@qmul.ac.uk[107X.[133X - [33X[0;0YIt is also possible to store [21Xprivate[121X representations and programs in local - directories, and to use them in the same way as the [21Xofficial[121X data. See - Chapter [14X5[114X for details.[133X + [33X[0;0YIt is also possible to make additional representations and programs + accessible for the [5XGAP[105X interface, and to use these [21Xprivate[121X data in the same + way as the core data. See Chapter [14X5[114X for details.[133X diff -Nru gap-atlasrep-1.5.1/doc/chap5.html gap-atlasrep-2.1.0/doc/chap5.html --- gap-atlasrep-1.5.1/doc/chap5.html 2016-04-06 12:18:27.000000000 +0000 +++ gap-atlasrep-2.1.0/doc/chap5.html 2019-06-21 15:10:33.000000000 +0000 @@ -5,8 +5,7 @@ -GAP (AtlasRep) - Chapter 5: Private Extensions of the AtlasRep Package - +GAP (AtlasRep) - Chapter 5: Extensions of the AtlasRep Package @@ -20,108 +19,168 @@ - -5 Private Extensions of the AtlasRep Package - -5.1 Adding a Private Data Directory + + +5 Extensions of the AtlasRep Package + -5.2 The Effect of Private Extensions on the User Interface + - --5 Private Extensions of the AtlasRep Package -
+5 Extensions of the AtlasRep Package
It may be interesting to use the functions of the GAP interface also for representations or programs that are not part of the ATLAS of Group Representations. This chapter describes how to achieve this.
-The main idea is that users can notify directories containing the "private" data files, which may consist of
+The main idea is that users can notify collections of "private" data files, which may consist of
-
-new faithful representations and programs for groups that are declared already in the "official" ATLAS of Group Representations,
+- -
new faithful representations and programs for groups that are declared already in the core part of the database that belongs to the "official" ATLAS of Group Representations (see Section 5.1),
the declaration of groups that are not declared in the "official" ATLAS of Group Representations, and representations and programs for them, and
+- -
the declaration of groups that are not declared in the ATLAS of Group Representations, and representations and programs for them (see Section 5.2), and
the definition of new kinds of representations and programs.
+the definition of new kinds of representations and programs (see Section 7.5).
The first two issues are dealt with in Section 5.1 and Section 5.2. The last is described in Section 7.5.
+A test example of a local extension is given in Section 5.3. Another such example is the small collection of data that is distributed together with the package, in its
+ +datapkg
directory; its contents can be listed by callingDisplayAtlasInfo( "contents", "internal" )
.Examples of extensions by files that can be downloaded from the internet can be found in the GAP packages MFER [BHM09] and CTBlocks [Bre14]. These extensions are automatically notified as soon as AtlasRep is available, via the default value of the user preference
+ +AtlasRepTOCData
, see Section 4.2-3; their contents can be listed by callingDisplayAtlasInfo( "contents", "mfer" )
andDisplayAtlasInfo( "contents", "ctblocks" )
, respectively.Several of the sanity checks for the core part of the AtlasRep data make sense also for data extensions, see Section 7.9 for more information.
+ + + +5.1 Notify Additional Data
+ +After the AtlasRep package has been loaded into the GAP session, one can extend the data which the interface can access by own representations and programs. The following two variants are supported.
+ + ++
+- +
The additional data files are locally available in some directory. Information about the declaration of new groups or about additional information such as the character names of representations can be provided in an optional JSON format file named
+ +toc.json
in this directory.- +
The data files can be downloaded from the internet. Both the list of available data and additional information as in the above case are given by either a local JSON format file or the URL of a JSON format file. This variant requires the user preference
+ +AtlasRepAccessRemoteFiles
(see Section 4.2-1) to have the valuetrue
.In both cases,
+ + + +AtlasOfGroupRepresentationsNotifyData
(5.1-1) can be used to make the private data available to the interface.5.1-1 AtlasOfGroupRepresentationsNotifyData
+ ++
‣ AtlasOfGroupRepresentationsNotifyData
( dir, id[, test] )( function ) +
‣ AtlasOfGroupRepresentationsNotifyData
( filename[, id][, test] )( function ) +
‣ AtlasOfGroupRepresentationsNotifyData
( url[, id][, test] )( function ) Returns:
+ +true
if the overview of the additional data can be evaluated and if the names of the data files in the extension are compatible with the data files that had been available before the call, otherwisefalse
.The following variants are supported for notifying additional data.
-Finally, an example of using private extensions is given in Section 5.3.
-Several of the sanity checks for the official part of the AtlasRep package make sense also for private extensions, see Section 7.8 for more information.
++
+- Contents of a local directory
+- +
The first argument dir must be either a local directory (see Reference: Directories) or a string denoting the path of a local directory, such that the GAP object describing this directory can be obtained by calling
+ +Directory
(Reference: Directory) with the argument dir; in the latter case, dir can be an absolute path or a path relative to the user's home directory (starting with a tilde character~
) or a path relative to the directory where GAP was started. The files contained in this directory or in its subdirectories (only one level deep) are considered. If the directory contains a JSON document in a file with the nametoc.json
then this file gets evaluated; its purpose is to provide additional information about the data files.Calling
+ +AtlasOfGroupRepresentationsNotifyData
means to evaluate the contents of the directory and (if available) of the filetoc.json
.Accessing data means to read the locally available data files.
+ +The argument id must be a string. It will be used in the
+ +identifier
components of the records that are returned by interface functions (see Section 3.5) for data contained in the directory dir. (Note that the directory name may be different in different GAP sessions or for different users who want to access the same data, whereas theidentifier
components shall be independent of such differences.)An example of a local extension is the contents of the
+ +datapkg
directory of the AtlasRep package. This extension gets notified automatically when AtlasRep gets loaded. For restricting data collections to this extension, one can use the identifier"internal"
.- Local file describing the contents of a local or remote directory
+- +
The first argument filename must be the name of a local file whose content is a JSON document that lists the available data, additional information about these data, and an URL from where the data can be downloaded. The data format of this file is defined by the JSON schema file
+ +doc/atlasreptoc_schema.json
of the AtlasRep package.Calling
- +AtlasOfGroupRepresentationsNotifyData
means to evaluate the contents of the file filename, without trying to access the remote data. The id is then either given implicitly by theID
component of the JSON document or can be given as the second argument.Downloaded data files are stored in the subdirectory
-dataext/
id of the directory that is given by the user preferenceAtlasRepDataDirectory
, see Section 4.2-2.5.1 Adding a Private Data Directory
+Accessing data means to download remote files if necessary but to prefer files that are already locally available.
-After the AtlasRep package has been loaded into the GAP session, one can add private data. However, one should not add private files to the local data directories of the package, or modify files in these directories. Instead, additional data should be put into separate directories. It should be noted that a data file is fetched from a server only if the local data directories do not contain a file with this name, independent of the contents of the files. (As a consequence, corrupted files in the local data directories are not automatically replaced by a correct server file.)
+An example of such an extension is the set of permutation representations provided by the MFER package [BHM09]; due to the file sizes, these representations are not distributed together with the MFER package. For restricting data collections to this extension, one can use the identifier
- +"mfer"
.Another example is given by some of the data that belong to the CTBlocks package [Bre14]. These data are also distributed with that package, and notifying the extension in the situation that the CTBlocks package is available will make its local data available, via the component
-LocalDirectory
of the JSON documentctblocks.json
; notifying the extension in the situation that the CTBlocks package is not available will make the remote files available, via the componentDataURL
of this JSON document. For restricting data collections to this extension, one can use the identifier"ctblocks"
.5.1-1 AtlasOfGroupRepresentationsNotifyPrivateDirectory
+- URL of a file
+- +
(This variant works only if the IO package [Neu14] is available.)
+ +The first argument url must be the URL of a JSON document as in the previous case.
+ +Calling
+ +AtlasOfGroupRepresentationsNotifyData
in online mode (that is, the user preferenceAtlasRepAccessRemoteFiles
has the valuetrue
) means to download this file and to evaluate it; the id is then given implicitly by theID
component of the JSON document, and the contents of the document gets stored in a file with namedataext/
id/toc.json
, relative to the directory given by the value of the user preferenceAtlasRepDataDirectory
. Also downloaded files for this extension will be stored in the directorydataext/
id.Calling
-AtlasOfGroupRepresentationsNotifyData
in offline mode requires that the argument id is explicitly given. In this case, it is checked whether thedataext
subdirectory contains a subdirectory with name id; if not thenfalse
is returned, if yes then the contents of this local directory gets notified via the first form described above.-
‣ AtlasOfGroupRepresentationsNotifyPrivateDirectory
( dir[, dirid][, test] )( function ) Returns:
+true
if none of the filenames with admissible format in the directory dir is contained in other data directories and if the data belongs to groups whose names have been declared, otherwisefalse
.Accessing data in online mode means the same as in the case of a remote directory. Accessing data in offline mode means the same as in the case of a local directory.
+ +Examples of such extension are again the data from the packages CTBlocks and MFER described above, but in the situation that these packages are not loaded, and that just the web URLs of their JSON documents are entered which describe the contents.
+ +In all three cases, if the optional argument test is given then it must be either
-true
orfalse
. In thetrue
case, consistency checks are switched on during the notification. The default for test isfalse
.Let dir be a directory (see Reference: Directories) or a string denoting the name of a directory (such that the GAP object describing this directory can be obtained by calling
+Directory
(Reference: Directory) with the argument dir). In the following, let dirname be the name of the directory. So dirname can be an absolute path or a path relative to the home directory of the user (starting with a tilde character~
) or a path relative to the directory where GAP was started.The notification of an extension may happen as a side-effect when a GAP package gets loaded that provides the data in question. Besides that, one may collect the notifications of data extensions in one's
-gaprc
file (see Section Reference: The gap.ini and gaprc files).If the optional argument dirid is given, it must be a string. This value will be used in the
+ -identifier
components of the records that are returned by interface functions (see Section 3.5) for data contained in the directory dir. Note that the directory name may be different in different GAP sessions or for different users who want to access the same data, whereas theidentifier
components shall be independent of such differences. The default for dirid is dirname.If the optional argument test is given, it must be
+true
orfalse
. In thetrue
case, consistency checks are switched on while the filetoc.g
is read. This costs some extra time, but it is recommended after each extension of the filetoc.g
. The default for test isfalse
.5.1-2 AtlasOfGroupRepresentationsForgetData
-+
AtlasOfGroupRepresentationsNotifyPrivateDirectory
notifies the data in the directory dir to the AtlasRep package. First the pair[ dirname, dirid ]
is added to theprivate
component ofAtlasOfGroupRepresentationsInfo
(7.1-6). If the directory contains a file with the nametoc.g
then this file is read; this file is useful for adding new group names usingAGR.GNAN
and for adding describing data about the representations, see Section 7.7. Next the table of contents of the private directory is built from the list of files contained in the private directory or in its subdirectories (one layer deep).+
‣ AtlasOfGroupRepresentationsForgetData
( dirid )( function ) If dirid is the identifier of a database extension that has been notified with
-AtlasOfGroupRepresentationsNotifyData
(5.1-1) thenAtlasOfGroupRepresentationsForgetData
undoes the notification; this means that from then on, the data of this extension cannot be accessed anymore in the current session.Only those files are considered whose names match an admissible format (see Section 7.6). Filenames that are already contained in another data directory of the AtlasRep package are ignored, and messages about these filenames are printed if the info level of
+ -InfoAtlasRep
(7.1-1) is at least 1.Note that this implies that the files of the "official" (i.e. non-private) data directories have priority over files in private directories.
+5.1-3 StringOfAtlasTableOfContents
-If the directory contains files for groups whose names have not been declared before and if the info level of
+InfoAtlasRep
(7.1-1) is at least 1 then a message about these names is printed.+
‣ StringOfAtlasTableOfContents
( inforec )( function ) For a record inforec with at least the component
-ID
, with value"core"
or the identifier of a data extension (seeAtlasOfGroupRepresentationsNotifyData
(5.1-1)), this function returns a string that describes the part of AtlasRep data belonging to inforec.ID
.For convenience, the user may collect the notifications of private data directories in the file
+gaprc
(see Section Reference: The gap.ini and gaprc files).Printed to a file, the returned string can be used as the table of contents of this part of the data. For that purpose, also the following components of inforec must be bound (all strings).
- +Version
,SelfURL
(the internet address of the table of contents file itself). At least one of the following two components must be bound.DataURL
is the internet address of the directory from where the data in question can be downloaded.LocalDirectory
is a path relative to GAP'spkg
directory where the data may be stored locally (depending on whether some GAP package is installed). If the componentDataURL
is bound then the returned string contains the information about the data files; this is not necessary if the data are only locally available. If bothDataURL
andLocalDirectory
are bound then locally available data will be prefered at runtime.Alternatively, inforec can also be the
-ID
string; in this case, the values of those of the supported components mentioned above that are defined in an available JSON file for thisID
are automatically inserted. (If there is no such file yet then entering theID
string as inforec does not make sense.)5.1-2 AtlasOfGroupRepresentationsForgetPrivateDirectory
+For an example how to use the function, see Section 5.3.
--
‣ AtlasOfGroupRepresentationsForgetPrivateDirectory
( dirid )( function ) If dirid is the identifier of a private data directory that has been notified with
+ - +AtlasOfGroupRepresentationsNotifyPrivateDirectory
(5.1-1) thenAtlasOfGroupRepresentationsForgetPrivateDirectory
removes the directory from the list of notified private directories; this means that from then on, the data in this directory cannot be accessed anymore in the current session.5.2 The Effect of Extensions on the User Interface
-5.2 The Effect of Private Extensions on the User Interface
+First suppose that only new groups or new data for known groups or for new groups are added.
-First suppose that only new groups or new data for known groups are added.
+In this case,
-DisplayAtlasInfo
(3.5-1) lists the additional representations and programs in the same way as other data known to AtlasRep, except that parts outside the core database are marked with the string that is the value of the user preferenceAtlasRepMarkNonCoreData
, see Section 4.2-13. The ordering of representations listed byDisplayAtlasInfo
(3.5-1) (and referred to byAtlasGenerators
(3.5-3)) will in general change whenever extensions get notified. For the other interface functions described in Chapter 3, the only difference is that also the additional data can be accessed.In this case,
+DisplayAtlasInfo
(3.5-1) lists the private representations and programs in the same way as the "official" data, except that private parts are marked with the string stored in the componentmarkprivate
ofAtlasOfGroupRepresentationsInfo
(7.1-6); by default, this is a star*
. The ordering of representations listed byDisplayAtlasInfo
(3.5-1) (and referred to byAtlasGenerators
(3.5-2)) will in general change when private directories are notified. If several private directories are used then the ordering of data may depend on the ordering of notifications. For the other interface functions described in Chapter 3, the only difference is that also the private data can be accessed. In particular the "free format"groupnameGi-XdescrWn
for straight line programs (see Section 7.6) may be used in private directories; the data can be accessed withAtlasProgram
(3.5-3), where the last two arguments are the strings"other"
and descr.If also new data types are introduced in an extension (see Section 7.5) then additional columns or rows can appear in the output of
-DisplayAtlasInfo
(3.5-1), and new inputs can become meaningful for all interface functions.If also private data types are introduced (see Section 7.5) then additional columns or rows can appear in the output of
+ - +DisplayAtlasInfo
(3.5-1), and new inputs can become meaningful for all interface functions. Examples for these changes can be found in Section 5.3.5.3 An Example of Extending the AtlasRep Data
-5.3 An Example of Extending the AtlasRep Package -
+This section shows an extension by a few locally available files.
-In the beginning we set the info level of
+InfoAtlasRep
(7.1-1) to 1.We set the info level of
InfoAtlasRep
(7.1-1) to 1 in this section.--gap> level:= InfoLevel( InfoAtlasRep );; +gap> locallevel:= InfoLevel( InfoAtlasRep );; gap> SetInfoLevel( InfoAtlasRep, 1 );Let us assume that the directory
+privdir
contains data for the cyclic group C_4 of order 4 and for the alternating group A_5 on 5 points, respectively. Note that it is obvious what the term "standard generators" means for the group C_4.Let us assume that the local directory
privdir
contains data for the cyclic group C_4 of order 4 and for the alternating group A_5 on 5 points, respectively. Note that it is obvious what the term "standard generators" means for the group C_4.Further let us assume that
@@ -144,7 +203,7 @@privdir
contains the following files.- -
A5G1-p60B0.m1
andA5G1-p60B0.m2
the regular permutation representation of A_5.
+- @@ -170,32 +229,36 @@ > MeatAxeString( [ Permutation( (1,3,5), points, OnRight ) ], 60 ) );;
standard generators for A_5 in its regular permutation representation.
(We could also introduce intermediate directories
+C4
andA5
, say, each with the data for one group only. Here we do not show this because creating directories programmatically seems to be possible only with the GAP package IO.)(We could also introduce intermediate directories
-C4
andA5
, say, each with the data for one group only. Here we do not show this because creating directories programmatically seems to require the GAP package IO.)The official part of the AtlasRep package does not contain information about C_4, so we first notify this group, in the file
+privdir/toc.g
. Besides the name of the group, we store the following information: the group order, the number of (classes of) maximal subgroups, their orders, their structures, and describing data about the two permutation representations. (The group A_5 is known with nameA5
in the official part of the AtlasRep package, so it cannot be notified again.)The core part of the AtlasRep data does not contain information about C_4, so we first notify this group, in the file
privdir/toc.json
. Besides the name of the group, we store the following information: the group order, the number of (classes of) maximal subgroups, their orders, their structures, and describing data about the three representations. The group A_5 is already known with nameA5
in the core part of the AtlasRep data, so it need not and cannot be notified again.--gap> FileString( Filename( prv, "toc.g" ), Concatenation( [ -> "AGR.GNAN(\"C4\",\"C4\");\n", -> "AGR.GRS(\"C4\",4);\n", -> "AGR.MXN(\"C4\",1);\n", -> "AGR.MXO(\"C4\",[2]);\n", -> "AGR.MXS(\"C4\",[\"C2\"]);\n", -> "AGR.API(\"C4G1-p4B0\",[1,4,\"imprim\",\"1 < C2\"]);\n", -> "AGR.API(\"A5G1-p60B0\",[1,60,\"imprim\",\"1 < A4\"]);\n", -> ] ) );; +gap> FileString( Filename( prv, "toc.json" ), Concatenation( [ "{\n", +> "\"ID\":\"priv\",\n", +> "\"Data\":[\n", +> "[\"GNAN\",[\"C4\",\"C4\"]],\n", +> "[\"GRS\",[\"C4\",4]],\n", +> "[\"MXN\",[\"C4\",1]],\n", +> "[\"MXO\",[\"C4\",[2]]],\n", +> "[\"MXS\",[\"C4\",[\"C2\"]]],\n", +> "[\"RNG\",[\"C4G1-Ar1aB0\",\"CF(4)\"]],\n", +> "[\"API\",[\"C4G1-p4B0\",[1,4,\"imprim\",\"1 < C2\"]]],\n", +> "[\"API\",[\"A5G1-p60B0\",[1,60,\"imprim\",\"1 < S3\"]]]\n", +> "]\n", +> "}\n" ] ) );;Then we notify the private directory.
+Then we notify the extension.
--gap> AtlasOfGroupRepresentationsNotifyPrivateDirectory( prv, "priv", true ); +gap> AtlasOfGroupRepresentationsNotifyData( prv, "priv", true ); trueNow we can use the interface functions for accessing the data in the private directory.
+Now we can use the interface functions for accessing the additional data.
-@@ -206,17 +269,17 @@ gap> DisplayAtlasInfo( "C4" ); Representations for G = C4: (all refer to std. generators 1) --------------------------- -1: G <= Sym(4)* rank 4, on cosets of 1 < C2 -2: G <= GL(1a,C)* +1: G <= Sym(4)* rank 4, on cosets of 1 < C2 +2: G <= GL(1a,CF(4))* Programs for G = C4: (all refer to std. generators 1) -------------------- -automorphisms: - 2* -maxes (all 1): - 1*: C2 -other scripts: - "test"* +- automorphisms*: + 2* +- maxes (all 1): + 1*: C2 +- other scripts*: + "test"* gap> DisplayAtlasInfo( "C4", IsPermGroup, true ); Representations for G = C4: (all refer to std. generators 1) --------------------------- @@ -224,76 +287,77 @@ gap> DisplayAtlasInfo( "C4", IsMatrixGroup ); Representations for G = C4: (all refer to std. generators 1) --------------------------- -2: G <= GL(1a,C)* +2: G <= GL(1a,CF(4))* gap> DisplayAtlasInfo( "C4", Dimension, 2 ); gap> DisplayAtlasInfo( "A5", NrMovedPoints, 60 ); Representations for G = A5: (all refer to std. generators 1) --------------------------- -4: G <= Sym(60)* rank 60, on cosets of 1 < A4 +4: G <= Sym(60)* rank 60, on cosets of 1 < S3 gap> info:= OneAtlasGeneratingSetInfo( "C4" ); -rec( groupname := "C4", id := "", - identifier := [ [ "priv", "C4" ], [ "C4G1-p4B0.m1" ], 1, 4 ], +rec( contents := "priv", groupname := "C4", id := "", + identifier := [ "C4", [ [ "priv", "C4G1-p4B0.m1" ] ], 1, 4 ], isPrimitive := false, p := 4, rankAction := 4, repname := "C4G1-p4B0", repnr := 1, size := 4, stabilizer := "1 < C2", standardization := 1, transitivity := 1, type := "perm" ) gap> AtlasGenerators( info.identifier ); -rec( generators := [ (1,2,3,4) ], groupname := "C4", id := "", - identifier := [ [ "priv", "C4" ], [ "C4G1-p4B0.m1" ], 1, 4 ], +rec( contents := "priv", generators := [ (1,2,3,4) ], + groupname := "C4", id := "", + identifier := [ "C4", [ [ "priv", "C4G1-p4B0.m1" ] ], 1, 4 ], isPrimitive := false, p := 4, rankAction := 4, repname := "C4G1-p4B0", repnr := 1, size := 4, stabilizer := "1 < C2", standardization := 1, transitivity := 1, type := "perm" ) gap> AtlasProgram( "C4", 1 ); rec( groupname := "C4", - identifier := [ [ "priv", "C4" ], "C4G1-max1W1", 1 ], + identifier := [ "C4", [ [ "priv", "C4G1-max1W1" ] ], 1 ], program := <straight line program>, size := 2, standardization := 1, - subgroupname := "C2" ) + subgroupname := "C2", version := "1" ) gap> AtlasProgram( "C4", "maxes", 1 ); rec( groupname := "C4", - identifier := [ [ "priv", "C4" ], "C4G1-max1W1", 1 ], + identifier := [ "C4", [ [ "priv", "C4G1-max1W1" ] ], 1 ], program := <straight line program>, size := 2, standardization := 1, - subgroupname := "C2" ) + subgroupname := "C2", version := "1" ) gap> AtlasProgram( "C4", "maxes", 2 ); fail gap> AtlasGenerators( "C4", 1 ); -rec( generators := [ (1,2,3,4) ], groupname := "C4", id := "", - identifier := [ [ "priv", "C4" ], [ "C4G1-p4B0.m1" ], 1, 4 ], +rec( contents := "priv", generators := [ (1,2,3,4) ], + groupname := "C4", id := "", + identifier := [ "C4", [ [ "priv", "C4G1-p4B0.m1" ] ], 1, 4 ], isPrimitive := false, p := 4, rankAction := 4, repname := "C4G1-p4B0", repnr := 1, size := 4, stabilizer := "1 < C2", standardization := 1, transitivity := 1, type := "perm" ) gap> AtlasGenerators( "C4", 2 ); -rec( dim := 1, generators := [ [ [ E(4) ] ] ], groupname := "C4", - id := "a", identifier := [ [ "priv", "C4" ], "C4G1-Ar1aB0.g", 1, 1 ] - , repname := "C4G1-Ar1aB0", repnr := 2, size := 4, - standardization := 1, type := "matalg" ) +rec( contents := "priv", dim := 1, generators := [ [ [ E(4) ] ] ], + groupname := "C4", id := "a", + identifier := [ "C4", [ [ "priv", "C4G1-Ar1aB0.g" ] ], 1, 1 ], + repname := "C4G1-Ar1aB0", repnr := 2, ring := GaussianRationals, + size := 4, standardization := 1, type := "matalg" ) gap> AtlasGenerators( "C4", 3 ); fail gap> AtlasProgram( "C4", "other", "test" ); rec( groupname := "C4", - identifier := [ [ "priv", "C4" ], "C4G1-XtestW1", 1 ], - program := <straight line program>, standardization := 1 ) + identifier := [ "C4", [ [ "priv", "C4G1-XtestW1" ] ], 1 ], + program := <straight line program>, standardization := 1, + version := "1" )We can restrict the data shown by
+DisplayAtlasInfo
(3.5-1) to the private directory, as follows.We can restrict the data shown by
DisplayAtlasInfo
(3.5-1) to our extension, as follows.-gap> DisplayAtlasInfo( "contents", "priv" ); -group | # | maxes | cl | cyc | out | fnd | chk | p* --------------------------+---+-------+----+-----+-----+-----+-----+--* -A5* | 1 | | | | | | | * -C4* | 2 | 1 | | | 2 | | | * +group | # | maxes | cl | cyc | out | fnd | chk | prs +------+---+-------+----+-----+-----+-----+-----+---- +A5* | 1 | | | | | | | +C4* | 2 | 1 | | | 2 | | |For checking the data in the private directory, we apply the relevant sanity checks (see Section 7.8).
+For checking the data in the extension, we apply the relevant sanity checks (see Section 7.9).
+ +-gap> if not IsBound( AGR.Test ) then -> ReadPackage( "atlasrep", "gap/test.g" ); -> fi; gap> AGR.Test.Words( "priv" ); true gap> AGR.Test.FileHeaders( "priv" ); @@ -302,20 +366,119 @@ true gap> AGR.Test.BinaryFormat( "priv" ); true -gap> AGR.Test.Primitivity( "priv" ); +gap> AGR.Test.Primitivity( "priv" : TryToExtendData ); +true +gap> AGR.Test.Characters( "priv" : TryToExtendData ); +#I AGR.Test.Character: +#I add new info +["CHAR",["A5","A5G1-p60B0", +0,[1,[2,3],[3,3],[4,4],[5,5]],"1a+3a^3b^3+4a^4+5a^5"]], +#I AGR.Test.Character: +#I add new info +["CHAR",["C4","C4G1-p4B0",0,[1,2,3,4],"1abcd"]], true +We did not store the character information in the file
+ +privdir/toc.json
, and GAP was able to identify the characters of the two permutation representations. (The identification of the character for the matrix representation fails because we cannot distinguish between the two Galois conjugate faithful characters.)If we store the character information as proposed by GAP, this information will for example become part of the records returned by
+ + +OneAtlasGeneratingSetInfo
(3.5-6). (Note that we have to enter"priv"
as the last argument ofAGR.CHAR
when we call the function interactively, in order to assign the information to the right context.)+ ++gap> AGR.CHAR("A5","A5G1-p60B0", +> 0,[1,[2,3],[3,3],[4,4],[5,5]],"1a+3a^3b^3+4a^4+5a^5", "priv" ); +gap> AGR.CHAR("C4","C4G1-p4B0",0,[1,2,3,4],"1abcd", "priv" ); gap> AGR.Test.Characters( "priv" ); true +gap> OneAtlasGeneratingSetInfo( "C4" ); +rec( charactername := "1abcd", constituents := [ 1, 2, 3, 4 ], + contents := "priv", groupname := "C4", id := "", + identifier := [ "C4", [ [ "priv", "C4G1-p4B0.m1" ] ], 1, 4 ], + isPrimitive := false, p := 4, rankAction := 4, + repname := "C4G1-p4B0", repnr := 1, size := 4, + stabilizer := "1 < C2", standardization := 1, transitivity := 1, + type := "perm" ) +A string that describes the JSON format overview of the data extension can be created with
+ + +StringOfAtlasTableOfContents
(5.1-3).+ ++gap> Print( StringOfAtlasTableOfContents( "priv" ) ); +{ +"ID":"priv", +"Data":[ +["GNAN",["C4","C4"]], + +["GRS",["C4",4]], + +["MXN",["C4",1]], + +["MXO",["C4",[2]]], + +["MXS",["C4",["C2"]]], + +["RNG",["C4G1-Ar1aB0","CF(4)"]], + +["API",["A5G1-p60B0",[1,60,"imprim","1 < S3"]]], +["API",["C4G1-p4B0",[1,4,"imprim","1 < C2"]]], + +["CHAR",["A5","A5G1-p60B0",0,[1,[2,3],[3,3],[4,4],[5,5]],"1a+3a^3b^3+4\ +a^4+5a^5"]], +["CHAR",["C4","C4G1-p4B0",0,[1,2,3,4],"1abcd"]] +] +} +If we prescribe a
+ + +"DataURL"
component that starts with"http"
then also the"TOC"
lines are listed, in order to enable remote access to the data.-+gap> Print( StringOfAtlasTableOfContents( +> rec( ID:= "priv", DataURL:= "http://someurl" ) ) ); +{ +"ID":"priv", +"DataURL":"http://someurl", +"Data":[ +["GNAN",["C4","C4"]], + +["GRS",["C4",4]], + +["MXN",["C4",1]], + +["MXO",["C4",[2]]], + +["MXS",["C4",["C2"]]], + +["TOC",["perm","A5G1-p60B0.m",[118815263,24584221]]], +["TOC",["matalg","C4G1-Ar1aB0.g",[49815028]]], +["TOC",["otherscripts","C4G1-XtestW1",[-27672877]]], +["TOC",["out","C4G1-a2W1",[126435524]]], +["TOC",["maxes","C4G1-max1W1",[-27672877]]], +["TOC",["perm","C4G1-p4B0.m",[102601978]]], + +["RNG",["C4G1-Ar1aB0","CF(4)"]], + +["API",["A5G1-p60B0",[1,60,"imprim","1 < S3"]]], +["API",["C4G1-p4B0",[1,4,"imprim","1 < C2"]]], + +["CHAR",["A5","A5G1-p60B0",0,[1,[2,3],[3,3],[4,4],[5,5]],"1a+3a^3b^3+4\ +a^4+5a^5"]], +["CHAR",["C4","C4G1-p4B0",0,[1,2,3,4],"1abcd"]] +] +}Finally, we "uninstall" the private directory, and reset the info level that had been set to 1 in the beginning. (Also the group name
+C4
is removed this way, which is an advantage of using atoc.g
file over callingAGRGNAN
directly.), Note that we need not remove the data in the temporary directory, GAP will do this automatically.Finally, we "uninstall" our extension, and reset the info level that had been set to 1 in the beginning. (Also the group name
C4
is removed this way, which is an advantage of using atoc.json
file over callingAGR.GNAN
directly.),+-gap> AtlasOfGroupRepresentationsForgetPrivateDirectory( "priv" ); -gap> SetInfoLevel( InfoAtlasRep, level ); +gap> AtlasOfGroupRepresentationsForgetData( "priv" ); +gap> SetInfoLevel( InfoAtlasRep, locallevel );We need not care about removing the temporary directory and the files in it. GAP will try to remove directories created with
+ diff -Nru gap-atlasrep-1.5.1/doc/chap5_mj.html gap-atlasrep-2.1.0/doc/chap5_mj.html --- gap-atlasrep-1.5.1/doc/chap5_mj.html 1970-01-01 00:00:00.000000000 +0000 +++ gap-atlasrep-2.1.0/doc/chap5_mj.html 2019-06-21 15:10:33.000000000 +0000 @@ -0,0 +1,494 @@ + + + + + + + +DirectoryTemporary
(Reference: DirectoryTemporary) at the end of the GAP session.GAP (AtlasRep) - Chapter 5: Extensions of the AtlasRep Package + + + + + + + + + + + + + + + + + +5 Extensions of the AtlasRep Package
+ +It may be interesting to use the functions of the GAP interface also for representations or programs that are not part of the ATLAS of Group Representations. This chapter describes how to achieve this.
+ +The main idea is that users can notify collections of "private" data files, which may consist of
+ ++
+- +
new faithful representations and programs for groups that are declared already in the core part of the database that belongs to the "official" ATLAS of Group Representations (see Section 5.1),
+ +- +
the declaration of groups that are not declared in the ATLAS of Group Representations, and representations and programs for them (see Section 5.2), and
+ +- +
the definition of new kinds of representations and programs (see Section 7.5).
+ +A test example of a local extension is given in Section 5.3. Another such example is the small collection of data that is distributed together with the package, in its
+ +datapkg
directory; its contents can be listed by callingDisplayAtlasInfo( "contents", "internal" )
.Examples of extensions by files that can be downloaded from the internet can be found in the GAP packages MFER [BHM09] and CTBlocks [Bre14]. These extensions are automatically notified as soon as AtlasRep is available, via the default value of the user preference
+ +AtlasRepTOCData
, see Section 4.2-3; their contents can be listed by callingDisplayAtlasInfo( "contents", "mfer" )
andDisplayAtlasInfo( "contents", "ctblocks" )
, respectively.Several of the sanity checks for the core part of the AtlasRep data make sense also for data extensions, see Section 7.9 for more information.
+ + + +5.1 Notify Additional Data
+ +After the AtlasRep package has been loaded into the GAP session, one can extend the data which the interface can access by own representations and programs. The following two variants are supported.
+ + ++
+- +
The additional data files are locally available in some directory. Information about the declaration of new groups or about additional information such as the character names of representations can be provided in an optional JSON format file named
+ +toc.json
in this directory.- +
The data files can be downloaded from the internet. Both the list of available data and additional information as in the above case are given by either a local JSON format file or the URL of a JSON format file. This variant requires the user preference
+ +AtlasRepAccessRemoteFiles
(see Section 4.2-1) to have the valuetrue
.In both cases,
+ + + +AtlasOfGroupRepresentationsNotifyData
(5.1-1) can be used to make the private data available to the interface.5.1-1 AtlasOfGroupRepresentationsNotifyData
+ ++
‣ AtlasOfGroupRepresentationsNotifyData
( dir, id[, test] )( function ) +
‣ AtlasOfGroupRepresentationsNotifyData
( filename[, id][, test] )( function ) +
‣ AtlasOfGroupRepresentationsNotifyData
( url[, id][, test] )( function ) Returns:
+ +true
if the overview of the additional data can be evaluated and if the names of the data files in the extension are compatible with the data files that had been available before the call, otherwisefalse
.The following variants are supported for notifying additional data.
+ + ++
+- Contents of a local directory
+- +
The first argument dir must be either a local directory (see Reference: Directories) or a string denoting the path of a local directory, such that the GAP object describing this directory can be obtained by calling
+ +Directory
(Reference: Directory) with the argument dir; in the latter case, dir can be an absolute path or a path relative to the user's home directory (starting with a tilde character~
) or a path relative to the directory where GAP was started. The files contained in this directory or in its subdirectories (only one level deep) are considered. If the directory contains a JSON document in a file with the nametoc.json
then this file gets evaluated; its purpose is to provide additional information about the data files.Calling
+ +AtlasOfGroupRepresentationsNotifyData
means to evaluate the contents of the directory and (if available) of the filetoc.json
.Accessing data means to read the locally available data files.
+ +The argument id must be a string. It will be used in the
+ +identifier
components of the records that are returned by interface functions (see Section 3.5) for data contained in the directory dir. (Note that the directory name may be different in different GAP sessions or for different users who want to access the same data, whereas theidentifier
components shall be independent of such differences.)An example of a local extension is the contents of the
+ +datapkg
directory of the AtlasRep package. This extension gets notified automatically when AtlasRep gets loaded. For restricting data collections to this extension, one can use the identifier"internal"
.- Local file describing the contents of a local or remote directory
+- +
The first argument filename must be the name of a local file whose content is a JSON document that lists the available data, additional information about these data, and an URL from where the data can be downloaded. The data format of this file is defined by the JSON schema file
+ +doc/atlasreptoc_schema.json
of the AtlasRep package.Calling
+ +AtlasOfGroupRepresentationsNotifyData
means to evaluate the contents of the file filename, without trying to access the remote data. The id is then either given implicitly by theID
component of the JSON document or can be given as the second argument.Downloaded data files are stored in the subdirectory
+ +dataext/
id of the directory that is given by the user preferenceAtlasRepDataDirectory
, see Section 4.2-2.Accessing data means to download remote files if necessary but to prefer files that are already locally available.
+ +An example of such an extension is the set of permutation representations provided by the MFER package [BHM09]; due to the file sizes, these representations are not distributed together with the MFER package. For restricting data collections to this extension, one can use the identifier
+ +"mfer"
.Another example is given by some of the data that belong to the CTBlocks package [Bre14]. These data are also distributed with that package, and notifying the extension in the situation that the CTBlocks package is available will make its local data available, via the component
+ +LocalDirectory
of the JSON documentctblocks.json
; notifying the extension in the situation that the CTBlocks package is not available will make the remote files available, via the componentDataURL
of this JSON document. For restricting data collections to this extension, one can use the identifier"ctblocks"
.- URL of a file
+- +
(This variant works only if the IO package [Neu14] is available.)
+ +The first argument url must be the URL of a JSON document as in the previous case.
+ +Calling
+ +AtlasOfGroupRepresentationsNotifyData
in online mode (that is, the user preferenceAtlasRepAccessRemoteFiles
has the valuetrue
) means to download this file and to evaluate it; the id is then given implicitly by theID
component of the JSON document, and the contents of the document gets stored in a file with namedataext/
id/toc.json
, relative to the directory given by the value of the user preferenceAtlasRepDataDirectory
. Also downloaded files for this extension will be stored in the directorydataext/
id.Calling
+ +AtlasOfGroupRepresentationsNotifyData
in offline mode requires that the argument id is explicitly given. In this case, it is checked whether thedataext
subdirectory contains a subdirectory with name id; if not thenfalse
is returned, if yes then the contents of this local directory gets notified via the first form described above.Accessing data in online mode means the same as in the case of a remote directory. Accessing data in offline mode means the same as in the case of a local directory.
+ +Examples of such extension are again the data from the packages CTBlocks and MFER described above, but in the situation that these packages are not loaded, and that just the web URLs of their JSON documents are entered which describe the contents.
+ +In all three cases, if the optional argument test is given then it must be either
+ +true
orfalse
. In thetrue
case, consistency checks are switched on during the notification. The default for test isfalse
.The notification of an extension may happen as a side-effect when a GAP package gets loaded that provides the data in question. Besides that, one may collect the notifications of data extensions in one's
+ + + +gaprc
file (see Section Reference: The gap.ini and gaprc files).5.1-2 AtlasOfGroupRepresentationsForgetData
+ ++
‣ AtlasOfGroupRepresentationsForgetData
( dirid )( function ) If dirid is the identifier of a database extension that has been notified with
+ + + +AtlasOfGroupRepresentationsNotifyData
(5.1-1) thenAtlasOfGroupRepresentationsForgetData
undoes the notification; this means that from then on, the data of this extension cannot be accessed anymore in the current session.5.1-3 StringOfAtlasTableOfContents
+ ++
‣ StringOfAtlasTableOfContents
( inforec )( function ) For a record inforec with at least the component
+ +ID
, with value"core"
or the identifier of a data extension (seeAtlasOfGroupRepresentationsNotifyData
(5.1-1)), this function returns a string that describes the part of AtlasRep data belonging to inforec.ID
.Printed to a file, the returned string can be used as the table of contents of this part of the data. For that purpose, also the following components of inforec must be bound (all strings).
+ +Version
,SelfURL
(the internet address of the table of contents file itself). At least one of the following two components must be bound.DataURL
is the internet address of the directory from where the data in question can be downloaded.LocalDirectory
is a path relative to GAP'spkg
directory where the data may be stored locally (depending on whether some GAP package is installed). If the componentDataURL
is bound then the returned string contains the information about the data files; this is not necessary if the data are only locally available. If bothDataURL
andLocalDirectory
are bound then locally available data will be prefered at runtime.Alternatively, inforec can also be the
+ +ID
string; in this case, the values of those of the supported components mentioned above that are defined in an available JSON file for thisID
are automatically inserted. (If there is no such file yet then entering theID
string as inforec does not make sense.)For an example how to use the function, see Section 5.3.
+ + + +5.2 The Effect of Extensions on the User Interface
+ +First suppose that only new groups or new data for known groups or for new groups are added.
+ +In this case,
+ +DisplayAtlasInfo
(3.5-1) lists the additional representations and programs in the same way as other data known to AtlasRep, except that parts outside the core database are marked with the string that is the value of the user preferenceAtlasRepMarkNonCoreData
, see Section 4.2-13. The ordering of representations listed byDisplayAtlasInfo
(3.5-1) (and referred to byAtlasGenerators
(3.5-3)) will in general change whenever extensions get notified. For the other interface functions described in Chapter 3, the only difference is that also the additional data can be accessed.If also new data types are introduced in an extension (see Section 7.5) then additional columns or rows can appear in the output of
+ + + +DisplayAtlasInfo
(3.5-1), and new inputs can become meaningful for all interface functions.5.3 An Example of Extending the AtlasRep Data
+ +This section shows an extension by a few locally available files.
+ +We set the info level of
+ + +InfoAtlasRep
(7.1-1) to \(1\) in this section.+ ++gap> locallevel:= InfoLevel( InfoAtlasRep );; +gap> SetInfoLevel( InfoAtlasRep, 1 ); +Let us assume that the local directory
+ +privdir
contains data for the cyclic group \(C_4\) of order \(4\) and for the alternating group \(A_5\) on \(5\) points, respectively. Note that it is obvious what the term "standard generators" means for the group \(C_4\).Further let us assume that
+ + +privdir
contains the following files.+
+- +
C4G1-p4B0.m1
- +
a faithful permutation representation of \(C_4\) on \(4\) points,
+ +- +
C4G1-max1W1
- +
the straight line program that returns the square of its unique input,
+ +- +
C4G1-a2W1
- +
the straight line program that raises its unique input to the third power,
+ +- +
C4G1-XtestW1
- +
the straight line program that returns the square of its unique input,
+ +- +
A5G1-p60B0.m1
andA5G1-p60B0.m2
- +
standard generators for \(A_5\) in its regular permutation representation.
+ +The directory and the files can be created as follows.
+ + ++ ++gap> prv:= DirectoryTemporary( "privdir" );; +gap> FileString( Filename( prv, "C4G1-p4B0.m1" ), +> MeatAxeString( [ (1,2,3,4) ], 4 ) );; +gap> FileString( Filename( prv, "C4G1-max1W1" ), +> "inp 1\npwr 2 1 2\noup 1 2\n" );; +gap> FileString( Filename( prv, "C4G1-XtestW1" ), +> "inp 1\npwr 2 1 2\noup 1 2\n" );; +gap> FileString( Filename( prv, "C4G1-a2W1" ), +> "inp 1\npwr 3 1 2\noup 1 2\n" );; +gap> FileString( Filename( prv, "C4G1-Ar1aB0.g" ), +> "return rec( generators:= [ [[E(4)]] ] );\n" );; +gap> points:= Elements( AlternatingGroup( 5 ) );; +gap> FileString( Filename( prv, "A5G1-p60B0.m1" ), +> MeatAxeString( [ Permutation( (1,2)(3,4), points, OnRight ) ], 60 ) );; +gap> FileString( Filename( prv, "A5G1-p60B0.m2" ), +> MeatAxeString( [ Permutation( (1,3,5), points, OnRight ) ], 60 ) );; +(We could also introduce intermediate directories
+ +C4
andA5
, say, each with the data for one group only. Here we do not show this because creating directories programmatically seems to require the GAP package IO.)The core part of the AtlasRep data does not contain information about \(C_4\), so we first notify this group, in the file
+ + +privdir/toc.json
. Besides the name of the group, we store the following information: the group order, the number of (classes of) maximal subgroups, their orders, their structures, and describing data about the three representations. The group \(A_5\) is already known with nameA5
in the core part of the AtlasRep data, so it need not and cannot be notified again.+ ++gap> FileString( Filename( prv, "toc.json" ), Concatenation( [ "{\n", +> "\"ID\":\"priv\",\n", +> "\"Data\":[\n", +> "[\"GNAN\",[\"C4\",\"C4\"]],\n", +> "[\"GRS\",[\"C4\",4]],\n", +> "[\"MXN\",[\"C4\",1]],\n", +> "[\"MXO\",[\"C4\",[2]]],\n", +> "[\"MXS\",[\"C4\",[\"C2\"]]],\n", +> "[\"RNG\",[\"C4G1-Ar1aB0\",\"CF(4)\"]],\n", +> "[\"API\",[\"C4G1-p4B0\",[1,4,\"imprim\",\"1 < C2\"]]],\n", +> "[\"API\",[\"A5G1-p60B0\",[1,60,\"imprim\",\"1 < S3\"]]]\n", +> "]\n", +> "}\n" ] ) );; +Then we notify the extension.
+ + ++ ++gap> AtlasOfGroupRepresentationsNotifyData( prv, "priv", true ); +true +Now we can use the interface functions for accessing the additional data.
+ + ++ ++gap> DisplayAtlasInfo( [ "C4" ] ); +group | # | maxes | cl | cyc | out | fnd | chk | prs +------+---+-------+----+-----+-----+-----+-----+---- +C4* | 2 | 1 | | | 2 | | | +gap> DisplayAtlasInfo( "C4" ); +Representations for G = C4: (all refer to std. generators 1) +--------------------------- +1: G <= Sym(4)* rank 4, on cosets of 1 < C2 +2: G <= GL(1a,CF(4))* + +Programs for G = C4: (all refer to std. generators 1) +-------------------- +- automorphisms*: + 2* +- maxes (all 1): + 1*: C2 +- other scripts*: + "test"* +gap> DisplayAtlasInfo( "C4", IsPermGroup, true ); +Representations for G = C4: (all refer to std. generators 1) +--------------------------- +1: G <= Sym(4)* rank 4, on cosets of 1 < C2 +gap> DisplayAtlasInfo( "C4", IsMatrixGroup ); +Representations for G = C4: (all refer to std. generators 1) +--------------------------- +2: G <= GL(1a,CF(4))* +gap> DisplayAtlasInfo( "C4", Dimension, 2 ); +gap> DisplayAtlasInfo( "A5", NrMovedPoints, 60 ); +Representations for G = A5: (all refer to std. generators 1) +--------------------------- +4: G <= Sym(60)* rank 60, on cosets of 1 < S3 +gap> info:= OneAtlasGeneratingSetInfo( "C4" ); +rec( contents := "priv", groupname := "C4", id := "", + identifier := [ "C4", [ [ "priv", "C4G1-p4B0.m1" ] ], 1, 4 ], + isPrimitive := false, p := 4, rankAction := 4, + repname := "C4G1-p4B0", repnr := 1, size := 4, + stabilizer := "1 < C2", standardization := 1, transitivity := 1, + type := "perm" ) +gap> AtlasGenerators( info.identifier ); +rec( contents := "priv", generators := [ (1,2,3,4) ], + groupname := "C4", id := "", + identifier := [ "C4", [ [ "priv", "C4G1-p4B0.m1" ] ], 1, 4 ], + isPrimitive := false, p := 4, rankAction := 4, + repname := "C4G1-p4B0", repnr := 1, size := 4, + stabilizer := "1 < C2", standardization := 1, transitivity := 1, + type := "perm" ) +gap> AtlasProgram( "C4", 1 ); +rec( groupname := "C4", + identifier := [ "C4", [ [ "priv", "C4G1-max1W1" ] ], 1 ], + program := <straight line program>, size := 2, standardization := 1, + subgroupname := "C2", version := "1" ) +gap> AtlasProgram( "C4", "maxes", 1 ); +rec( groupname := "C4", + identifier := [ "C4", [ [ "priv", "C4G1-max1W1" ] ], 1 ], + program := <straight line program>, size := 2, standardization := 1, + subgroupname := "C2", version := "1" ) +gap> AtlasProgram( "C4", "maxes", 2 ); +fail +gap> AtlasGenerators( "C4", 1 ); +rec( contents := "priv", generators := [ (1,2,3,4) ], + groupname := "C4", id := "", + identifier := [ "C4", [ [ "priv", "C4G1-p4B0.m1" ] ], 1, 4 ], + isPrimitive := false, p := 4, rankAction := 4, + repname := "C4G1-p4B0", repnr := 1, size := 4, + stabilizer := "1 < C2", standardization := 1, transitivity := 1, + type := "perm" ) +gap> AtlasGenerators( "C4", 2 ); +rec( contents := "priv", dim := 1, generators := [ [ [ E(4) ] ] ], + groupname := "C4", id := "a", + identifier := [ "C4", [ [ "priv", "C4G1-Ar1aB0.g" ] ], 1, 1 ], + repname := "C4G1-Ar1aB0", repnr := 2, ring := GaussianRationals, + size := 4, standardization := 1, type := "matalg" ) +gap> AtlasGenerators( "C4", 3 ); +fail +gap> AtlasProgram( "C4", "other", "test" ); +rec( groupname := "C4", + identifier := [ "C4", [ [ "priv", "C4G1-XtestW1" ] ], 1 ], + program := <straight line program>, standardization := 1, + version := "1" ) +We can restrict the data shown by
+ + +DisplayAtlasInfo
(3.5-1) to our extension, as follows.+ ++gap> DisplayAtlasInfo( "contents", "priv" ); +group | # | maxes | cl | cyc | out | fnd | chk | prs +------+---+-------+----+-----+-----+-----+-----+---- +A5* | 1 | | | | | | | +C4* | 2 | 1 | | | 2 | | | +For checking the data in the extension, we apply the relevant sanity checks (see Section 7.9).
+ + ++ ++gap> AGR.Test.Words( "priv" ); +true +gap> AGR.Test.FileHeaders( "priv" ); +true +gap> AGR.Test.Files( "priv" ); +true +gap> AGR.Test.BinaryFormat( "priv" ); +true +gap> AGR.Test.Primitivity( "priv" : TryToExtendData ); +true +gap> AGR.Test.Characters( "priv" : TryToExtendData ); +#I AGR.Test.Character: +#I add new info +["CHAR",["A5","A5G1-p60B0", +0,[1,[2,3],[3,3],[4,4],[5,5]],"1a+3a^3b^3+4a^4+5a^5"]], +#I AGR.Test.Character: +#I add new info +["CHAR",["C4","C4G1-p4B0",0,[1,2,3,4],"1abcd"]], +true +We did not store the character information in the file
+ +privdir/toc.json
, and GAP was able to identify the characters of the two permutation representations. (The identification of the character for the matrix representation fails because we cannot distinguish between the two Galois conjugate faithful characters.)If we store the character information as proposed by GAP, this information will for example become part of the records returned by
+ + +OneAtlasGeneratingSetInfo
(3.5-6). (Note that we have to enter"priv"
as the last argument ofAGR.CHAR
when we call the function interactively, in order to assign the information to the right context.)+ ++gap> AGR.CHAR("A5","A5G1-p60B0", +> 0,[1,[2,3],[3,3],[4,4],[5,5]],"1a+3a^3b^3+4a^4+5a^5", "priv" ); +gap> AGR.CHAR("C4","C4G1-p4B0",0,[1,2,3,4],"1abcd", "priv" ); +gap> AGR.Test.Characters( "priv" ); +true +gap> OneAtlasGeneratingSetInfo( "C4" ); +rec( charactername := "1abcd", constituents := [ 1, 2, 3, 4 ], + contents := "priv", groupname := "C4", id := "", + identifier := [ "C4", [ [ "priv", "C4G1-p4B0.m1" ] ], 1, 4 ], + isPrimitive := false, p := 4, rankAction := 4, + repname := "C4G1-p4B0", repnr := 1, size := 4, + stabilizer := "1 < C2", standardization := 1, transitivity := 1, + type := "perm" ) +A string that describes the JSON format overview of the data extension can be created with
+ + +StringOfAtlasTableOfContents
(5.1-3).+ ++gap> Print( StringOfAtlasTableOfContents( "priv" ) ); +{ +"ID":"priv", +"Data":[ +["GNAN",["C4","C4"]], + +["GRS",["C4",4]], + +["MXN",["C4",1]], + +["MXO",["C4",[2]]], + +["MXS",["C4",["C2"]]], + +["RNG",["C4G1-Ar1aB0","CF(4)"]], + +["API",["A5G1-p60B0",[1,60,"imprim","1 < S3"]]], +["API",["C4G1-p4B0",[1,4,"imprim","1 < C2"]]], + +["CHAR",["A5","A5G1-p60B0",0,[1,[2,3],[3,3],[4,4],[5,5]],"1a+3a^3b^3+4\ +a^4+5a^5"]], +["CHAR",["C4","C4G1-p4B0",0,[1,2,3,4],"1abcd"]] +] +} +If we prescribe a
+ + +"DataURL"
component that starts with"http"
then also the"TOC"
lines are listed, in order to enable remote access to the data.+ ++gap> Print( StringOfAtlasTableOfContents( +> rec( ID:= "priv", DataURL:= "http://someurl" ) ) ); +{ +"ID":"priv", +"DataURL":"http://someurl", +"Data":[ +["GNAN",["C4","C4"]], + +["GRS",["C4",4]], + +["MXN",["C4",1]], + +["MXO",["C4",[2]]], + +["MXS",["C4",["C2"]]], + +["TOC",["perm","A5G1-p60B0.m",[118815263,24584221]]], +["TOC",["matalg","C4G1-Ar1aB0.g",[49815028]]], +["TOC",["otherscripts","C4G1-XtestW1",[-27672877]]], +["TOC",["out","C4G1-a2W1",[126435524]]], +["TOC",["maxes","C4G1-max1W1",[-27672877]]], +["TOC",["perm","C4G1-p4B0.m",[102601978]]], + +["RNG",["C4G1-Ar1aB0","CF(4)"]], + +["API",["A5G1-p60B0",[1,60,"imprim","1 < S3"]]], +["API",["C4G1-p4B0",[1,4,"imprim","1 < C2"]]], + +["CHAR",["A5","A5G1-p60B0",0,[1,[2,3],[3,3],[4,4],[5,5]],"1a+3a^3b^3+4\ +a^4+5a^5"]], +["CHAR",["C4","C4G1-p4B0",0,[1,2,3,4],"1abcd"]] +] +} +Finally, we "uninstall" our extension, and reset the info level that had been set to \(1\) in the beginning. (Also the group name
+ + +C4
is removed this way, which is an advantage of using atoc.json
file over callingAGR.GNAN
directly.),+ ++gap> AtlasOfGroupRepresentationsForgetData( "priv" ); +gap> SetInfoLevel( InfoAtlasRep, locallevel ); +We need not care about removing the temporary directory and the files in it. GAP will try to remove directories created with
+ + + + + + + +DirectoryTemporary
(Reference: DirectoryTemporary) at the end of the GAP session.
+generated by GAPDoc2HTML
+ + diff -Nru gap-atlasrep-1.5.1/doc/chap5.txt gap-atlasrep-2.1.0/doc/chap5.txt --- gap-atlasrep-1.5.1/doc/chap5.txt 2016-04-06 12:18:13.000000000 +0000 +++ gap-atlasrep-2.1.0/doc/chap5.txt 2019-06-21 15:10:33.000000000 +0000 @@ -1,146 +1,252 @@ - [1X5 [33X[0;0YPrivate Extensions of the [5XAtlasRep[105X[101X[1X Package[133X[101X + [1X5 [33X[0;0YExtensions of the [5XAtlasRep[105X[101X[1X Package[133X[101X [33X[0;0YIt may be interesting to use the functions of the [5XGAP[105X interface also for representations or programs that are [13Xnot[113X part of the [5XATLAS[105X of Group Representations. This chapter describes how to achieve this.[133X - [33X[0;0YThe main idea is that users can notify directories containing the [21Xprivate[121X - data files, which may consist of[133X + [33X[0;0YThe main idea is that users can notify collections of [21Xprivate[121X data files, + which may consist of[133X [31X1[131X [33X[0;6Ynew faithful representations and programs for groups that are declared - already in the [21Xofficial[121X [5XATLAS[105X of Group Representations,[133X + already in the core part of the database that belongs to the [21Xofficial[121X + [5XATLAS[105X of Group Representations (see Section [14X5.1[114X),[133X - [31X2[131X [33X[0;6Ythe declaration of groups that are not declared in the [21Xofficial[121X [5XATLAS[105X - of Group Representations, and representations and programs for them, - and[133X - - [31X3[131X [33X[0;6Ythe definition of new kinds of representations and programs.[133X - - [33X[0;0YThe first two issues are dealt with in Section [14X5.1[114X and Section [14X5.2[114X. The last - is described in Section [14X7.5[114X.[133X - - [33X[0;0YFinally, an example of using private extensions is given in Section [14X5.3[114X.[133X - - [33X[0;0YSeveral of the sanity checks for the official part of the [5XAtlasRep[105X package - make sense also for private extensions, see Section [14X7.8[114X for more - information.[133X - - - [1X5.1 [33X[0;0YAdding a Private Data Directory[133X[101X - - [33X[0;0YAfter the [5XAtlasRep[105X package has been loaded into the [5XGAP[105X session, one can add - private data. However, one should [13Xnot[113X add private files to the local data - directories of the package, or modify files in these directories. Instead, - additional data should be put into separate directories. It should be noted - that a data file is fetched from a server only if the local data directories - do not contain a file with this name, independent of the contents of the - files. (As a consequence, corrupted files in the local data directories are - [13Xnot[113X automatically replaced by a correct server file.)[133X - - [1X5.1-1 AtlasOfGroupRepresentationsNotifyPrivateDirectory[101X - - [29X[2XAtlasOfGroupRepresentationsNotifyPrivateDirectory[102X( [3Xdir[103X[, [3Xdirid[103X][, [3Xtest[103X] ) [32X function - [6XReturns:[106X [33X[0;10Y[9Xtrue[109X if none of the filenames with admissible format in the - directory [3Xdir[103X is contained in other data directories and if the - data belongs to groups whose names have been declared, otherwise - [9Xfalse[109X.[133X - - [33X[0;0YLet [3Xdir[103X be a directory (see [14X'Reference: Directories'[114X) or a string denoting - the name of a directory (such that the [5XGAP[105X object describing this directory - can be obtained by calling [2XDirectory[102X ([14XReference: Directory[114X) with the - argument [3Xdir[103X). In the following, let [3Xdirname[103X be the name of the directory. - So [3Xdirname[103X can be an absolute path or a path relative to the home directory - of the user (starting with a tilde character [10X~[110X) or a path relative to the - directory where [5XGAP[105X was started.[133X - - [33X[0;0YIf the optional argument [3Xdirid[103X is given, it must be a string. This value - will be used in the [10Xidentifier[110X components of the records that are returned - by interface functions (see Section [14X3.5[114X) for data contained in the directory - [3Xdir[103X. Note that the directory name may be different in different [5XGAP[105X sessions - or for different users who want to access the same data, whereas the - [10Xidentifier[110X components shall be independent of such differences. The default - for [3Xdirid[103X is [3Xdirname[103X.[133X - - [33X[0;0YIf the optional argument [3Xtest[103X is given, it must be [9Xtrue[109X or [9Xfalse[109X. In the - [9Xtrue[109X case, consistency checks are switched on while the file [11Xtoc.g[111X is read. - This costs some extra time, but it is recommended after each extension of - the file [11Xtoc.g[111X. The default for [3Xtest[103X is [9Xfalse[109X.[133X - - [33X[0;0Y[2XAtlasOfGroupRepresentationsNotifyPrivateDirectory[102X notifies the data in the - directory [3Xdir[103X to the [5XAtlasRep[105X package. First the pair [10X[ [3Xdirname[103X[10X, [3Xdirid[103X[10X ][110X is - added to the [10Xprivate[110X component of [2XAtlasOfGroupRepresentationsInfo[102X ([14X7.1-6[114X). - If the directory contains a file with the name [11Xtoc.g[111X then this file is read; - this file is useful for adding new group names using [10XAGR.GNAN[110X and for adding - describing data about the representations, see Section [14X7.7[114X. Next the table - of contents of the private directory is built from the list of files - contained in the private directory or in its subdirectories (one layer - deep).[133X - - [33X[0;0YOnly those files are considered whose names match an admissible format (see - Section [14X7.6[114X). Filenames that are already contained in another data directory - of the [5XAtlasRep[105X package are ignored, and messages about these filenames are - printed if the info level of [2XInfoAtlasRep[102X ([14X7.1-1[114X) is at least [22X1[122X.[133X - - [33X[0;0YNote that this implies that the files of the [21Xofficial[121X (i.e. non-private) - data directories have priority over files in private directories.[133X - - [33X[0;0YIf the directory contains files for groups whose names have not been - declared before and if the info level of [2XInfoAtlasRep[102X ([14X7.1-1[114X) is at least [22X1[122X - then a message about these names is printed.[133X - - [33X[0;0YFor convenience, the user may collect the notifications of private data - directories in the file [11Xgaprc[111X (see Section [14X'Reference: The gap.ini and gaprc - files'[114X).[133X - - [1X5.1-2 AtlasOfGroupRepresentationsForgetPrivateDirectory[101X - - [29X[2XAtlasOfGroupRepresentationsForgetPrivateDirectory[102X( [3Xdirid[103X ) [32X function - - [33X[0;0YIf [3Xdirid[103X is the identifier of a private data directory that has been - notified with [2XAtlasOfGroupRepresentationsNotifyPrivateDirectory[102X ([14X5.1-1[114X) then - [2XAtlasOfGroupRepresentationsForgetPrivateDirectory[102X removes the directory from - the list of notified private directories; this means that from then on, the - data in this directory cannot be accessed anymore in the current session.[133X - - - [1X5.2 [33X[0;0YThe Effect of Private Extensions on the User Interface[133X[101X - - [33X[0;0YFirst suppose that only new groups or new data for known groups are added.[133X - - [33X[0;0YIn this case, [2XDisplayAtlasInfo[102X ([14X3.5-1[114X) lists the private representations and - programs in the same way as the [21Xofficial[121X data, except that private parts are - marked with the string stored in the component [10Xmarkprivate[110X of - [2XAtlasOfGroupRepresentationsInfo[102X ([14X7.1-6[114X); by default, this is a star [10X*[110X. The + [31X2[131X [33X[0;6Ythe declaration of groups that are not declared in the [5XATLAS[105X of Group + Representations, and representations and programs for them (see + Section [14X5.2[114X), and[133X + + [31X3[131X [33X[0;6Ythe definition of new kinds of representations and programs (see + Section [14X7.5[114X).[133X + + [33X[0;0YA test example of a local extension is given in Section [14X5.3[114X. Another such + example is the small collection of data that is distributed together with + the package, in its [11Xdatapkg[111X directory; its contents can be listed by calling + [10XDisplayAtlasInfo( "contents", "internal" )[110X.[133X + + [33X[0;0YExamples of extensions by files that can be downloaded from the internet can + be found in the [5XGAP[105X packages [5XMFER[105X [BHM09] and [5XCTBlocks[105X [Bre14]. These + extensions are automatically notified as soon as [5XAtlasRep[105X is available, via + the default value of the user preference [10XAtlasRepTOCData[110X, see Section [14X4.2-3[114X; + their contents can be listed by calling [10XDisplayAtlasInfo( "contents", "mfer" + )[110X and [10XDisplayAtlasInfo( "contents", "ctblocks" )[110X, respectively.[133X + + [33X[0;0YSeveral of the sanity checks for the core part of the [5XAtlasRep[105X data make + sense also for data extensions, see Section [14X7.9[114X for more information.[133X + + + [1X5.1 [33X[0;0YNotify Additional Data[133X[101X + + [33X[0;0YAfter the [5XAtlasRep[105X package has been loaded into the [5XGAP[105X session, one can + extend the data which the interface can access by own representations and + programs. The following two variants are supported.[133X + + [30X [33X[0;6YThe additional data files are locally available in some directory. + Information about the declaration of new groups or about additional + information such as the character names of representations can be + provided in an optional JSON format file named [11Xtoc.json[111X in this + directory.[133X + + [30X [33X[0;6YThe data files can be downloaded from the internet. Both the list of + available data and additional information as in the above case are + given by either a local JSON format file or the URL of a JSON format + file. This variant requires the user preference + [10XAtlasRepAccessRemoteFiles[110X (see Section [14X4.2-1[114X) to have the value [9Xtrue[109X.[133X + + [33X[0;0YIn both cases, [2XAtlasOfGroupRepresentationsNotifyData[102X ([14X5.1-1[114X) can be used to + make the private data available to the interface.[133X + + + [1X5.1-1 [33X[0;0YAtlasOfGroupRepresentationsNotifyData[133X[101X + + [33X[1;0Y[29X[2XAtlasOfGroupRepresentationsNotifyData[102X( [3Xdir[103X, [3Xid[103X[, [3Xtest[103X] ) [32X function[133X + [33X[1;0Y[29X[2XAtlasOfGroupRepresentationsNotifyData[102X( [3Xfilename[103X[, [3Xid[103X][, [3Xtest[103X] ) [32X function[133X + [33X[1;0Y[29X[2XAtlasOfGroupRepresentationsNotifyData[102X( [3Xurl[103X[, [3Xid[103X][, [3Xtest[103X] ) [32X function[133X + [6XReturns:[106X [33X[0;10Y[9Xtrue[109X if the overview of the additional data can be evaluated and + if the names of the data files in the extension are compatible + with the data files that had been available before the call, + otherwise [9Xfalse[109X.[133X + + [33X[0;0YThe following variants are supported for notifying additional data.[133X + + [8XContents of a local directory[108X + [33X[0;6YThe first argument [3Xdir[103X must be either a local directory (see + [14X'Reference: Directories'[114X) or a string denoting the path of a local + directory, such that the [5XGAP[105X object describing this directory can be + obtained by calling [2XDirectory[102X ([14XReference: Directory[114X) with the argument + [3Xdir[103X; in the latter case, [3Xdir[103X can be an absolute path or a path + relative to the user's home directory (starting with a tilde character + [10X~[110X) or a path relative to the directory where [5XGAP[105X was started. The + files contained in this directory or in its subdirectories (only one + level deep) are considered. If the directory contains a JSON document + in a file with the name [11Xtoc.json[111X then this file gets evaluated; its + purpose is to provide additional information about the data files.[133X + + [33X[0;6YCalling [2XAtlasOfGroupRepresentationsNotifyData[102X means to evaluate the + contents of the directory and (if available) of the file [11Xtoc.json[111X.[133X + + [33X[0;6YAccessing data means to read the locally available data files.[133X + + [33X[0;6YThe argument [3Xid[103X must be a string. It will be used in the [10Xidentifier[110X + components of the records that are returned by interface functions + (see Section [14X3.5[114X) for data contained in the directory [3Xdir[103X. (Note that + the directory name may be different in different [5XGAP[105X sessions or for + different users who want to access the same data, whereas the + [10Xidentifier[110X components shall be independent of such differences.)[133X + + [33X[0;6YAn example of a local extension is the contents of the [11Xdatapkg[111X + directory of the [5XAtlasRep[105X package. This extension gets notified + automatically when [5XAtlasRep[105X gets loaded. For restricting data + collections to this extension, one can use the identifier [10X"internal"[110X.[133X + + [8XLocal file describing the contents of a local or remote directory[108X + [33X[0;6YThe first argument [3Xfilename[103X must be the name of a local file whose + content is a JSON document that lists the available data, additional + information about these data, and an URL from where the data can be + downloaded. The data format of this file is defined by the JSON schema + file [11Xdoc/atlasreptoc_schema.json[111X of the [5XAtlasRep[105X package.[133X + + [33X[0;6YCalling [2XAtlasOfGroupRepresentationsNotifyData[102X means to evaluate the + contents of the file [3Xfilename[103X, without trying to access the remote + data. The [3Xid[103X is then either given implicitly by the [10XID[110X component of + the JSON document or can be given as the second argument.[133X + + [33X[0;6YDownloaded data files are stored in the subdirectory [11Xdataext/[111X[3Xid[103X of the + directory that is given by the user preference [10XAtlasRepDataDirectory[110X, + see Section [14X4.2-2[114X.[133X + + [33X[0;6YAccessing data means to download remote files if necessary but to + prefer files that are already locally available.[133X + + [33X[0;6YAn example of such an extension is the set of permutation + representations provided by the [5XMFER[105X package [BHM09]; due to the file + sizes, these representations are [13Xnot[113X distributed together with the + [5XMFER[105X package. For restricting data collections to this extension, one + can use the identifier [10X"mfer"[110X.[133X + + [33X[0;6YAnother example is given by some of the data that belong to the + [5XCTBlocks[105X package [Bre14]. These data are also distributed with that + package, and notifying the extension in the situation that the + [5XCTBlocks[105X package is available will make its local data available, via + the component [10XLocalDirectory[110X of the JSON document [11Xctblocks.json[111X; + notifying the extension in the situation that the [5XCTBlocks[105X package is + [13Xnot[113X available will make the remote files available, via the component + [10XDataURL[110X of this JSON document. For restricting data collections to + this extension, one can use the identifier [10X"ctblocks"[110X.[133X + + [8XURL of a file[108X + [33X[0;6Y(This variant works only if the [5XIO[105X package [Neu14] is available.)[133X + + [33X[0;6YThe first argument [3Xurl[103X must be the URL of a JSON document as in the + previous case.[133X + + [33X[0;6YCalling [2XAtlasOfGroupRepresentationsNotifyData[102X in [13Xonline mode[113X (that is, + the user preference [10XAtlasRepAccessRemoteFiles[110X has the value [9Xtrue[109X) + means to download this file and to evaluate it; the [3Xid[103X is then given + implicitly by the [10XID[110X component of the JSON document, and the contents + of the document gets stored in a file with name [11Xdataext/[111X[3Xid[103X[11X/toc.json[111X, + relative to the directory given by the value of the user preference + [10XAtlasRepDataDirectory[110X. Also downloaded files for this extension will + be stored in the directory [11Xdataext/[111X[3Xid[103X.[133X + + [33X[0;6YCalling [2XAtlasOfGroupRepresentationsNotifyData[102X in [13Xoffline mode[113X requires + that the argument [3Xid[103X is explicitly given. In this case, it is checked + whether the [11Xdataext[111X subdirectory contains a subdirectory with name [3Xid[103X; + if not then [9Xfalse[109X is returned, if yes then the contents of this local + directory gets notified via the first form described above.[133X + + [33X[0;6YAccessing data in online mode means the same as in the case of a + remote directory. Accessing data in offline mode means the same as in + the case of a local directory.[133X + + [33X[0;6YExamples of such extension are again the data from the packages + [5XCTBlocks[105X and [5XMFER[105X described above, but in the situation that these + packages are [13Xnot[113X loaded, and that just the web URLs of their JSON + documents are entered which describe the contents.[133X + + [33X[0;0YIn all three cases, if the optional argument [3Xtest[103X is given then it must be + either [9Xtrue[109X or [9Xfalse[109X. In the [9Xtrue[109X case, consistency checks are switched on + during the notification. The default for [3Xtest[103X is [9Xfalse[109X.[133X + + [33X[0;0YThe notification of an extension may happen as a side-effect when a [5XGAP[105X + package gets loaded that provides the data in question. Besides that, one + may collect the notifications of data extensions in one's [11Xgaprc[111X file (see + Section [14X'Reference: The gap.ini and gaprc files'[114X).[133X + + [1X5.1-2 AtlasOfGroupRepresentationsForgetData[101X + + [33X[1;0Y[29X[2XAtlasOfGroupRepresentationsForgetData[102X( [3Xdirid[103X ) [32X function[133X + + [33X[0;0YIf [3Xdirid[103X is the identifier of a database extension that has been notified + with [2XAtlasOfGroupRepresentationsNotifyData[102X ([14X5.1-1[114X) then + [2XAtlasOfGroupRepresentationsForgetData[102X undoes the notification; this means + that from then on, the data of this extension cannot be accessed anymore in + the current session.[133X + + [1X5.1-3 StringOfAtlasTableOfContents[101X + + [33X[1;0Y[29X[2XStringOfAtlasTableOfContents[102X( [3Xinforec[103X ) [32X function[133X + + [33X[0;0YFor a record [3Xinforec[103X with at least the component [10XID[110X, with value [10X"core"[110X or + the identifier of a data extension (see + [2XAtlasOfGroupRepresentationsNotifyData[102X ([14X5.1-1[114X)), this function returns a + string that describes the part of [5XAtlasRep[105X data belonging to [3Xinforec[103X[10X.ID[110X.[133X + + [33X[0;0YPrinted to a file, the returned string can be used as the table of contents + of this part of the data. For that purpose, also the following components of + [3Xinforec[103X must be bound (all strings). [10XVersion[110X, [10XSelfURL[110X (the internet address + of the table of contents file itself). At least one of the following two + components must be bound. [10XDataURL[110X is the internet address of the directory + from where the data in question can be downloaded. [10XLocalDirectory[110X is a path + relative to [5XGAP[105X's [11Xpkg[111X directory where the data may be stored locally + (depending on whether some [5XGAP[105X package is installed). If the component + [10XDataURL[110X is bound then the returned string contains the information about the + data files; this is not necessary if the data are [13Xonly[113X locally available. If + both [10XDataURL[110X and [10XLocalDirectory[110X are bound then locally available data will + be prefered at runtime.[133X + + [33X[0;0YAlternatively, [3Xinforec[103X can also be the [10XID[110X string; in this case, the values + of those of the supported components mentioned above that are defined in an + available JSON file for this [10XID[110X are automatically inserted. (If there is no + such file yet then entering the [10XID[110X string as [3Xinforec[103X does not make sense.)[133X + + [33X[0;0YFor an example how to use the function, see Section [14X5.3[114X.[133X + + + [1X5.2 [33X[0;0YThe Effect of Extensions on the User Interface[133X[101X + + [33X[0;0YFirst suppose that only new groups or new data for known groups or for new + groups are added.[133X + + [33X[0;0YIn this case, [2XDisplayAtlasInfo[102X ([14X3.5-1[114X) lists the additional representations + and programs in the same way as other data known to [5XAtlasRep[105X, except that + parts outside the core database are marked with the string that is the value + of the user preference [10XAtlasRepMarkNonCoreData[110X, see Section [14X4.2-13[114X. The ordering of representations listed by [2XDisplayAtlasInfo[102X ([14X3.5-1[114X) (and referred - to by [2XAtlasGenerators[102X ([14X3.5-2[114X)) will in general change when private - directories are notified. If several private directories are used then the - ordering of data may depend on the ordering of notifications. For the other - interface functions described in Chapter [14X3[114X, the only difference is that also - the private data can be accessed. In particular the [21Xfree format[121X - [10X[3Xgroupname[103X[10XG[3Xi[103X[10X-X[3Xdescr[103X[10XW[3Xn[103X[10X[110X for straight line programs (see Section [14X7.6[114X) may be - used in private directories; the data can be accessed with [2XAtlasProgram[102X - ([14X3.5-3[114X), where the last two arguments are the strings [10X"other"[110X and [3Xdescr[103X.[133X + to by [2XAtlasGenerators[102X ([14X3.5-3[114X)) will in general change whenever extensions + get notified. For the other interface functions described in Chapter [14X3[114X, the + only difference is that also the additional data can be accessed.[133X - [33X[0;0YIf also private data types are introduced (see Section [14X7.5[114X) then additional - columns or rows can appear in the output of [2XDisplayAtlasInfo[102X ([14X3.5-1[114X), and - new inputs can become meaningful for all interface functions. Examples for - these changes can be found in Section [14X5.3[114X.[133X + [33X[0;0YIf also new data types are introduced in an extension (see Section [14X7.5[114X) then + additional columns or rows can appear in the output of [2XDisplayAtlasInfo[102X + ([14X3.5-1[114X), and new inputs can become meaningful for all interface functions.[133X - [1X5.3 [33X[0;0YAn Example of Extending the [5XAtlasRep[105X[101X[1X Package[133X[101X + [1X5.3 [33X[0;0YAn Example of Extending the [5XAtlasRep[105X[101X[1X Data[133X[101X - [33X[0;0YIn the beginning we set the info level of [2XInfoAtlasRep[102X ([14X7.1-1[114X) to [22X1[122X.[133X + [33X[0;0YThis section shows an extension by a few [13Xlocally available[113X files.[133X + + [33X[0;0YWe set the info level of [2XInfoAtlasRep[102X ([14X7.1-1[114X) to [22X1[122X in this section.[133X [4X[32X Example [32X[104X - [4X[25Xgap>[125X [27Xlevel:= InfoLevel( InfoAtlasRep );;[127X[104X + [4X[25Xgap>[125X [27Xlocallevel:= InfoLevel( InfoAtlasRep );;[127X[104X [4X[25Xgap>[125X [27XSetInfoLevel( InfoAtlasRep, 1 );[127X[104X [4X[32X[104X - [33X[0;0YLet us assume that the directory [11Xprivdir[111X contains data for the cyclic group - [22XC_4[122X of order [22X4[122X and for the alternating group [22XA_5[122X on [22X5[122X points, respectively. - Note that it is obvious what the term [21Xstandard generators[121X means for the - group [22XC_4[122X.[133X + [33X[0;0YLet us assume that the local directory [11Xprivdir[111X contains data for the cyclic + group [22XC_4[122X of order [22X4[122X and for the alternating group [22XA_5[122X on [22X5[122X points, + respectively. Note that it is obvious what the term [21Xstandard generators[121X + means for the group [22XC_4[122X.[133X [33X[0;0YFurther let us assume that [11Xprivdir[111X contains the following files.[133X @@ -158,7 +264,7 @@ [33X[0;6Ythe straight line program that returns the square of its unique input,[133X [8X[11XA5G1-p60B0.m1[111X and [11XA5G1-p60B0.m2[111X[108X - [33X[0;6Ythe regular permutation representation of [22XA_5[122X.[133X + [33X[0;6Ystandard generators for [22XA_5[122X in its regular permutation representation.[133X [33X[0;0YThe directory and the files can be created as follows.[133X @@ -183,38 +289,40 @@ [33X[0;0Y(We could also introduce intermediate directories [11XC4[111X and [11XA5[111X, say, each with the data for one group only. Here we do not show this because creating - directories programmatically seems to be possible only with the [5XGAP[105X package - [5XIO[105X.)[133X + directories programmatically seems to require the [5XGAP[105X package [5XIO[105X.)[133X - [33X[0;0YThe official part of the [5XAtlasRep[105X package does not contain information about - [22XC_4[122X, so we first notify this group, in the file [11Xprivdir/toc.g[111X. Besides the + [33X[0;0YThe core part of the [5XAtlasRep[105X data does not contain information about [22XC_4[122X, + so we first notify this group, in the file [11Xprivdir/toc.json[111X. Besides the name of the group, we store the following information: the group order, the number of (classes of) maximal subgroups, their orders, their structures, - and describing data about the two permutation representations. (The group - [22XA_5[122X is known with name [10XA5[110X in the official part of the [5XAtlasRep[105X package, so - it cannot be notified again.)[133X + and describing data about the three representations. The group [22XA_5[122X is + already known with name [10XA5[110X in the core part of the [5XAtlasRep[105X data, so it need + not and cannot be notified again.[133X [4X[32X Example [32X[104X - [4X[25Xgap>[125X [27XFileString( Filename( prv, "toc.g" ), Concatenation( [[127X[104X - [4X[25X>[125X [27X "AGR.GNAN(\"C4\",\"C4\");\n",[127X[104X - [4X[25X>[125X [27X "AGR.GRS(\"C4\",4);\n",[127X[104X - [4X[25X>[125X [27X "AGR.MXN(\"C4\",1);\n",[127X[104X - [4X[25X>[125X [27X "AGR.MXO(\"C4\",[2]);\n",[127X[104X - [4X[25X>[125X [27X "AGR.MXS(\"C4\",[\"C2\"]);\n",[127X[104X - [4X[25X>[125X [27X "AGR.API(\"C4G1-p4B0\",[1,4,\"imprim\",\"1 < C2\"]);\n",[127X[104X - [4X[25X>[125X [27X "AGR.API(\"A5G1-p60B0\",[1,60,\"imprim\",\"1 < A4\"]);\n",[127X[104X - [4X[25X>[125X [27X ] ) );;[127X[104X + [4X[25Xgap>[125X [27XFileString( Filename( prv, "toc.json" ), Concatenation( [ "{\n",[127X[104X + [4X[25X>[125X [27X "\"ID\":\"priv\",\n",[127X[104X + [4X[25X>[125X [27X "\"Data\":[\n",[127X[104X + [4X[25X>[125X [27X "[\"GNAN\",[\"C4\",\"C4\"]],\n",[127X[104X + [4X[25X>[125X [27X "[\"GRS\",[\"C4\",4]],\n",[127X[104X + [4X[25X>[125X [27X "[\"MXN\",[\"C4\",1]],\n",[127X[104X + [4X[25X>[125X [27X "[\"MXO\",[\"C4\",[2]]],\n",[127X[104X + [4X[25X>[125X [27X "[\"MXS\",[\"C4\",[\"C2\"]]],\n",[127X[104X + [4X[25X>[125X [27X "[\"RNG\",[\"C4G1-Ar1aB0\",\"CF(4)\"]],\n",[127X[104X + [4X[25X>[125X [27X "[\"API\",[\"C4G1-p4B0\",[1,4,\"imprim\",\"1 < C2\"]]],\n",[127X[104X + [4X[25X>[125X [27X "[\"API\",[\"A5G1-p60B0\",[1,60,\"imprim\",\"1 < S3\"]]]\n",[127X[104X + [4X[25X>[125X [27X "]\n",[127X[104X + [4X[25X>[125X [27X "}\n" ] ) );;[127X[104X [4X[32X[104X - [33X[0;0YThen we notify the private directory.[133X + [33X[0;0YThen we notify the extension.[133X [4X[32X Example [32X[104X - [4X[25Xgap>[125X [27XAtlasOfGroupRepresentationsNotifyPrivateDirectory( prv, "priv", true );[127X[104X + [4X[25Xgap>[125X [27XAtlasOfGroupRepresentationsNotifyData( prv, "priv", true );[127X[104X [4X[28Xtrue[128X[104X [4X[32X[104X - [33X[0;0YNow we can use the interface functions for accessing the data in the private - directory.[133X + [33X[0;0YNow we can use the interface functions for accessing the additional data.[133X [4X[32X Example [32X[104X [4X[25Xgap>[125X [27XDisplayAtlasInfo( [ "C4" ] );[127X[104X @@ -224,17 +332,17 @@ [4X[25Xgap>[125X [27XDisplayAtlasInfo( "C4" );[127X[104X [4X[28XRepresentations for G = C4: (all refer to std. generators 1)[128X[104X [4X[28X---------------------------[128X[104X - [4X[28X1: G <= Sym(4)* rank 4, on cosets of 1 < C2[128X[104X - [4X[28X2: G <= GL(1a,C)* [128X[104X + [4X[28X1: G <= Sym(4)* rank 4, on cosets of 1 < C2[128X[104X + [4X[28X2: G <= GL(1a,CF(4))* [128X[104X [4X[28X[128X[104X [4X[28XPrograms for G = C4: (all refer to std. generators 1)[128X[104X [4X[28X--------------------[128X[104X - [4X[28Xautomorphisms:[128X[104X - [4X[28X 2*[128X[104X - [4X[28Xmaxes (all 1):[128X[104X - [4X[28X 1*: C2[128X[104X - [4X[28Xother scripts:[128X[104X - [4X[28X "test"*[128X[104X + [4X[28X- automorphisms*:[128X[104X + [4X[28X 2* [128X[104X + [4X[28X- maxes (all 1):[128X[104X + [4X[28X 1*: C2 [128X[104X + [4X[28X- other scripts*:[128X[104X + [4X[28X "test"* [128X[104X [4X[25Xgap>[125X [27XDisplayAtlasInfo( "C4", IsPermGroup, true );[127X[104X [4X[28XRepresentations for G = C4: (all refer to std. generators 1)[128X[104X [4X[28X---------------------------[128X[104X @@ -242,76 +350,77 @@ [4X[25Xgap>[125X [27XDisplayAtlasInfo( "C4", IsMatrixGroup );[127X[104X [4X[28XRepresentations for G = C4: (all refer to std. generators 1)[128X[104X [4X[28X---------------------------[128X[104X - [4X[28X2: G <= GL(1a,C)* [128X[104X + [4X[28X2: G <= GL(1a,CF(4))* [128X[104X [4X[25Xgap>[125X [27XDisplayAtlasInfo( "C4", Dimension, 2 );[127X[104X [4X[25Xgap>[125X [27XDisplayAtlasInfo( "A5", NrMovedPoints, 60 );[127X[104X [4X[28XRepresentations for G = A5: (all refer to std. generators 1)[128X[104X [4X[28X---------------------------[128X[104X - [4X[28X4: G <= Sym(60)* rank 60, on cosets of 1 < A4[128X[104X + [4X[28X4: G <= Sym(60)* rank 60, on cosets of 1 < S3[128X[104X [4X[25Xgap>[125X [27Xinfo:= OneAtlasGeneratingSetInfo( "C4" );[127X[104X - [4X[28Xrec( groupname := "C4", id := "", [128X[104X - [4X[28X identifier := [ [ "priv", "C4" ], [ "C4G1-p4B0.m1" ], 1, 4 ], [128X[104X + [4X[28Xrec( contents := "priv", groupname := "C4", id := "", [128X[104X + [4X[28X identifier := [ "C4", [ [ "priv", "C4G1-p4B0.m1" ] ], 1, 4 ], [128X[104X [4X[28X isPrimitive := false, p := 4, rankAction := 4, [128X[104X [4X[28X repname := "C4G1-p4B0", repnr := 1, size := 4, [128X[104X [4X[28X stabilizer := "1 < C2", standardization := 1, transitivity := 1, [128X[104X [4X[28X type := "perm" )[128X[104X [4X[25Xgap>[125X [27XAtlasGenerators( info.identifier );[127X[104X - [4X[28Xrec( generators := [ (1,2,3,4) ], groupname := "C4", id := "", [128X[104X - [4X[28X identifier := [ [ "priv", "C4" ], [ "C4G1-p4B0.m1" ], 1, 4 ], [128X[104X + [4X[28Xrec( contents := "priv", generators := [ (1,2,3,4) ], [128X[104X + [4X[28X groupname := "C4", id := "", [128X[104X + [4X[28X identifier := [ "C4", [ [ "priv", "C4G1-p4B0.m1" ] ], 1, 4 ], [128X[104X [4X[28X isPrimitive := false, p := 4, rankAction := 4, [128X[104X [4X[28X repname := "C4G1-p4B0", repnr := 1, size := 4, [128X[104X [4X[28X stabilizer := "1 < C2", standardization := 1, transitivity := 1, [128X[104X [4X[28X type := "perm" )[128X[104X [4X[25Xgap>[125X [27XAtlasProgram( "C4", 1 );[127X[104X [4X[28Xrec( groupname := "C4", [128X[104X - [4X[28X identifier := [ [ "priv", "C4" ], "C4G1-max1W1", 1 ], [128X[104X + [4X[28X identifier := [ "C4", [ [ "priv", "C4G1-max1W1" ] ], 1 ], [128X[104X [4X[28X program :=, size := 2, standardization := 1,[128X[104X - [4X[28X subgroupname := "C2" )[128X[104X + [4X[28X subgroupname := "C2", version := "1" )[128X[104X [4X[25Xgap>[125X [27XAtlasProgram( "C4", "maxes", 1 );[127X[104X [4X[28Xrec( groupname := "C4", [128X[104X - [4X[28X identifier := [ [ "priv", "C4" ], "C4G1-max1W1", 1 ], [128X[104X + [4X[28X identifier := [ "C4", [ [ "priv", "C4G1-max1W1" ] ], 1 ], [128X[104X [4X[28X program := , size := 2, standardization := 1,[128X[104X - [4X[28X subgroupname := "C2" )[128X[104X + [4X[28X subgroupname := "C2", version := "1" )[128X[104X [4X[25Xgap>[125X [27XAtlasProgram( "C4", "maxes", 2 );[127X[104X [4X[28Xfail[128X[104X [4X[25Xgap>[125X [27XAtlasGenerators( "C4", 1 );[127X[104X - [4X[28Xrec( generators := [ (1,2,3,4) ], groupname := "C4", id := "", [128X[104X - [4X[28X identifier := [ [ "priv", "C4" ], [ "C4G1-p4B0.m1" ], 1, 4 ], [128X[104X + [4X[28Xrec( contents := "priv", generators := [ (1,2,3,4) ], [128X[104X + [4X[28X groupname := "C4", id := "", [128X[104X + [4X[28X identifier := [ "C4", [ [ "priv", "C4G1-p4B0.m1" ] ], 1, 4 ], [128X[104X [4X[28X isPrimitive := false, p := 4, rankAction := 4, [128X[104X [4X[28X repname := "C4G1-p4B0", repnr := 1, size := 4, [128X[104X [4X[28X stabilizer := "1 < C2", standardization := 1, transitivity := 1, [128X[104X [4X[28X type := "perm" )[128X[104X [4X[25Xgap>[125X [27XAtlasGenerators( "C4", 2 );[127X[104X - [4X[28Xrec( dim := 1, generators := [ [ [ E(4) ] ] ], groupname := "C4", [128X[104X - [4X[28X id := "a", identifier := [ [ "priv", "C4" ], "C4G1-Ar1aB0.g", 1, 1 ][128X[104X - [4X[28X , repname := "C4G1-Ar1aB0", repnr := 2, size := 4, [128X[104X - [4X[28X standardization := 1, type := "matalg" )[128X[104X + [4X[28Xrec( contents := "priv", dim := 1, generators := [ [ [ E(4) ] ] ], [128X[104X + [4X[28X groupname := "C4", id := "a", [128X[104X + [4X[28X identifier := [ "C4", [ [ "priv", "C4G1-Ar1aB0.g" ] ], 1, 1 ], [128X[104X + [4X[28X repname := "C4G1-Ar1aB0", repnr := 2, ring := GaussianRationals, [128X[104X + [4X[28X size := 4, standardization := 1, type := "matalg" )[128X[104X [4X[25Xgap>[125X [27XAtlasGenerators( "C4", 3 );[127X[104X [4X[28Xfail[128X[104X [4X[25Xgap>[125X [27XAtlasProgram( "C4", "other", "test" );[127X[104X [4X[28Xrec( groupname := "C4", [128X[104X - [4X[28X identifier := [ [ "priv", "C4" ], "C4G1-XtestW1", 1 ], [128X[104X - [4X[28X program := , standardization := 1 )[128X[104X + [4X[28X identifier := [ "C4", [ [ "priv", "C4G1-XtestW1" ] ], 1 ], [128X[104X + [4X[28X program := , standardization := 1, [128X[104X + [4X[28X version := "1" )[128X[104X [4X[32X[104X - [33X[0;0YWe can restrict the data shown by [2XDisplayAtlasInfo[102X ([14X3.5-1[114X) to the private - directory, as follows.[133X + [33X[0;0YWe can restrict the data shown by [2XDisplayAtlasInfo[102X ([14X3.5-1[114X) to our extension, + as follows.[133X [4X[32X Example [32X[104X [4X[25Xgap>[125X [27XDisplayAtlasInfo( "contents", "priv" );[127X[104X - [4X[28Xgroup | # | maxes | cl | cyc | out | fnd | chk | p*[128X[104X - [4X[28X-------------------------+---+-------+----+-----+-----+-----+-----+--*[128X[104X - [4X[28XA5* | 1 | | | | | | | *[128X[104X - [4X[28XC4* | 2 | 1 | | | 2 | | | *[128X[104X + [4X[28Xgroup | # | maxes | cl | cyc | out | fnd | chk | prs[128X[104X + [4X[28X------+---+-------+----+-----+-----+-----+-----+----[128X[104X + [4X[28XA5* | 1 | | | | | | | [128X[104X + [4X[28XC4* | 2 | 1 | | | 2 | | | [128X[104X [4X[32X[104X - [33X[0;0YFor checking the data in the private directory, we apply the relevant sanity - checks (see Section [14X7.8[114X).[133X + [33X[0;0YFor checking the data in the extension, we apply the relevant sanity checks + (see Section [14X7.9[114X).[133X [4X[32X Example [32X[104X - [4X[25Xgap>[125X [27Xif not IsBound( AGR.Test ) then[127X[104X - [4X[25X>[125X [27X ReadPackage( "atlasrep", "gap/test.g" );[127X[104X - [4X[25X>[125X [27X fi;[127X[104X [4X[25Xgap>[125X [27XAGR.Test.Words( "priv" );[127X[104X [4X[28Xtrue[128X[104X [4X[25Xgap>[125X [27XAGR.Test.FileHeaders( "priv" );[127X[104X @@ -320,20 +429,127 @@ [4X[28Xtrue[128X[104X [4X[25Xgap>[125X [27XAGR.Test.BinaryFormat( "priv" );[127X[104X [4X[28Xtrue[128X[104X - [4X[25Xgap>[125X [27XAGR.Test.Primitivity( "priv" );[127X[104X + [4X[25Xgap>[125X [27XAGR.Test.Primitivity( "priv" : TryToExtendData );[127X[104X + [4X[28Xtrue[128X[104X + [4X[25Xgap>[125X [27XAGR.Test.Characters( "priv" : TryToExtendData );[127X[104X + [4X[28X#I AGR.Test.Character:[128X[104X + [4X[28X#I add new info[128X[104X + [4X[28X["CHAR",["A5","A5G1-p60B0",[128X[104X + [4X[28X0,[1,[2,3],[3,3],[4,4],[5,5]],"1a+3a^3b^3+4a^4+5a^5"]],[128X[104X + [4X[28X#I AGR.Test.Character:[128X[104X + [4X[28X#I add new info[128X[104X + [4X[28X["CHAR",["C4","C4G1-p4B0",0,[1,2,3,4],"1abcd"]],[128X[104X [4X[28Xtrue[128X[104X + [4X[32X[104X + + [33X[0;0YWe did not store the character information in the file [11Xprivdir/toc.json[111X, and + [5XGAP[105X was able to identify the characters of the two permutation + representations. (The identification of the character for the matrix + representation fails because we cannot distinguish between the two Galois + conjugate faithful characters.)[133X + + [33X[0;0YIf we store the character information as proposed by [5XGAP[105X, this information + will for example become part of the records returned by + [2XOneAtlasGeneratingSetInfo[102X ([14X3.5-6[114X). (Note that we have to enter [10X"priv"[110X as the + last argument of [10XAGR.CHAR[110X when we call the function interactively, in order + to assign the information to the right context.)[133X + + [4X[32X Example [32X[104X + [4X[25Xgap>[125X [27XAGR.CHAR("A5","A5G1-p60B0",[127X[104X + [4X[25X>[125X [27X0,[1,[2,3],[3,3],[4,4],[5,5]],"1a+3a^3b^3+4a^4+5a^5", "priv" );[127X[104X + [4X[25Xgap>[125X [27XAGR.CHAR("C4","C4G1-p4B0",0,[1,2,3,4],"1abcd", "priv" );[127X[104X [4X[25Xgap>[125X [27XAGR.Test.Characters( "priv" );[127X[104X [4X[28Xtrue[128X[104X + [4X[25Xgap>[125X [27XOneAtlasGeneratingSetInfo( "C4" );[127X[104X + [4X[28Xrec( charactername := "1abcd", constituents := [ 1, 2, 3, 4 ], [128X[104X + [4X[28X contents := "priv", groupname := "C4", id := "", [128X[104X + [4X[28X identifier := [ "C4", [ [ "priv", "C4G1-p4B0.m1" ] ], 1, 4 ], [128X[104X + [4X[28X isPrimitive := false, p := 4, rankAction := 4, [128X[104X + [4X[28X repname := "C4G1-p4B0", repnr := 1, size := 4, [128X[104X + [4X[28X stabilizer := "1 < C2", standardization := 1, transitivity := 1, [128X[104X + [4X[28X type := "perm" )[128X[104X [4X[32X[104X - [33X[0;0YFinally, we [21Xuninstall[121X the private directory, and reset the info level that - had been set to [22X1[122X in the beginning. (Also the group name [10XC4[110X is removed this - way, which is an advantage of using a [11Xtoc.g[111X file over calling [10XAGRGNAN[110X - directly.), Note that we need not remove the data in the temporary - directory, [5XGAP[105X will do this automatically.[133X + [33X[0;0YA string that describes the JSON format overview of the data extension can + be created with [2XStringOfAtlasTableOfContents[102X ([14X5.1-3[114X).[133X [4X[32X Example [32X[104X - [4X[25Xgap>[125X [27XAtlasOfGroupRepresentationsForgetPrivateDirectory( "priv" );[127X[104X - [4X[25Xgap>[125X [27XSetInfoLevel( InfoAtlasRep, level );[127X[104X + [4X[25Xgap>[125X [27XPrint( StringOfAtlasTableOfContents( "priv" ) );[127X[104X + [4X[28X{[128X[104X + [4X[28X"ID":"priv",[128X[104X + [4X[28X"Data":[[128X[104X + [4X[28X["GNAN",["C4","C4"]],[128X[104X + [4X[28X[128X[104X + [4X[28X["GRS",["C4",4]],[128X[104X + [4X[28X[128X[104X + [4X[28X["MXN",["C4",1]],[128X[104X + [4X[28X[128X[104X + [4X[28X["MXO",["C4",[2]]],[128X[104X + [4X[28X[128X[104X + [4X[28X["MXS",["C4",["C2"]]],[128X[104X + [4X[28X[128X[104X + [4X[28X["RNG",["C4G1-Ar1aB0","CF(4)"]],[128X[104X + [4X[28X[128X[104X + [4X[28X["API",["A5G1-p60B0",[1,60,"imprim","1 < S3"]]],[128X[104X + [4X[28X["API",["C4G1-p4B0",[1,4,"imprim","1 < C2"]]],[128X[104X + [4X[28X[128X[104X + [4X[28X["CHAR",["A5","A5G1-p60B0",0,[1,[2,3],[3,3],[4,4],[5,5]],"1a+3a^3b^3+4\[128X[104X + [4X[28Xa^4+5a^5"]],[128X[104X + [4X[28X["CHAR",["C4","C4G1-p4B0",0,[1,2,3,4],"1abcd"]][128X[104X + [4X[28X][128X[104X + [4X[28X}[128X[104X + [4X[32X[104X + + [33X[0;0YIf we prescribe a [10X"DataURL"[110X component that starts with [10X"http"[110X then also the + [10X"TOC"[110X lines are listed, in order to enable remote access to the data.[133X + + [4X[32X Example [32X[104X + [4X[25Xgap>[125X [27XPrint( StringOfAtlasTableOfContents([127X[104X + [4X[25X>[125X [27X rec( ID:= "priv", DataURL:= "http://someurl" ) ) );[127X[104X + [4X[28X{[128X[104X + [4X[28X"ID":"priv",[128X[104X + [4X[28X"DataURL":"http://someurl",[128X[104X + [4X[28X"Data":[[128X[104X + [4X[28X["GNAN",["C4","C4"]],[128X[104X + [4X[28X[128X[104X + [4X[28X["GRS",["C4",4]],[128X[104X + [4X[28X[128X[104X + [4X[28X["MXN",["C4",1]],[128X[104X + [4X[28X[128X[104X + [4X[28X["MXO",["C4",[2]]],[128X[104X + [4X[28X[128X[104X + [4X[28X["MXS",["C4",["C2"]]],[128X[104X + [4X[28X[128X[104X + [4X[28X["TOC",["perm","A5G1-p60B0.m",[118815263,24584221]]],[128X[104X + [4X[28X["TOC",["matalg","C4G1-Ar1aB0.g",[49815028]]],[128X[104X + [4X[28X["TOC",["otherscripts","C4G1-XtestW1",[-27672877]]],[128X[104X + [4X[28X["TOC",["out","C4G1-a2W1",[126435524]]],[128X[104X + [4X[28X["TOC",["maxes","C4G1-max1W1",[-27672877]]],[128X[104X + [4X[28X["TOC",["perm","C4G1-p4B0.m",[102601978]]],[128X[104X + [4X[28X[128X[104X + [4X[28X["RNG",["C4G1-Ar1aB0","CF(4)"]],[128X[104X + [4X[28X[128X[104X + [4X[28X["API",["A5G1-p60B0",[1,60,"imprim","1 < S3"]]],[128X[104X + [4X[28X["API",["C4G1-p4B0",[1,4,"imprim","1 < C2"]]],[128X[104X + [4X[28X[128X[104X + [4X[28X["CHAR",["A5","A5G1-p60B0",0,[1,[2,3],[3,3],[4,4],[5,5]],"1a+3a^3b^3+4\[128X[104X + [4X[28Xa^4+5a^5"]],[128X[104X + [4X[28X["CHAR",["C4","C4G1-p4B0",0,[1,2,3,4],"1abcd"]][128X[104X + [4X[28X][128X[104X + [4X[28X}[128X[104X [4X[32X[104X + [33X[0;0YFinally, we [21Xuninstall[121X our extension, and reset the info level that had been + set to [22X1[122X in the beginning. (Also the group name [10XC4[110X is removed this way, + which is an advantage of using a [11Xtoc.json[111X file over calling [10XAGR.GNAN[110X + directly.),[133X + + [4X[32X Example [32X[104X + [4X[25Xgap>[125X [27XAtlasOfGroupRepresentationsForgetData( "priv" );[127X[104X + [4X[25Xgap>[125X [27XSetInfoLevel( InfoAtlasRep, locallevel );[127X[104X + [4X[32X[104X + + [33X[0;0YWe need not care about removing the temporary directory and the files in it. + [5XGAP[105X will try to remove directories created with [2XDirectoryTemporary[102X + ([14XReference: DirectoryTemporary[114X) at the end of the [5XGAP[105X session.[133X + diff -Nru gap-atlasrep-1.5.1/doc/chap6.html gap-atlasrep-2.1.0/doc/chap6.html --- gap-atlasrep-1.5.1/doc/chap6.html 2016-04-06 12:18:27.000000000 +0000 +++ gap-atlasrep-2.1.0/doc/chap6.html 2019-06-21 15:10:33.000000000 +0000 @@ -5,7 +5,7 @@ - GAP (AtlasRep) - Chapter 6: New GAP Objects and Utility Functions Provided by the + GAP (AtlasRep) - Chapter 6: New GAP Objects and Utility Functions provided by the AtlasRep Package @@ -20,8 +20,9 @@ - -6 New GAP Objects and Utility Functions Provided by the + + + +-6 New GAP Objects and Utility Functions Provided by the +
6 New GAP Objects and Utility Functions provided by the AtlasRep Package
This chapter describes GAP objects and functions that are provided by the AtlasRep package but that might be of general interest.
The new objects are straight line decisions (see Section 6.1) and black box programs (see Section 6.2).
-The new functions are concerned with representations of minimal degree, see Section 6.3.
+The new functions are concerned with representations of minimal degree, see Section 6.3, and a JSON interface, see Section 6.4.
6.1 Straight Line Decisions
-Straight line decisions are similar to straight line programs (see Section Reference: Straight Line Programs) but return
+true
orfalse
. A straight line decisions checks a property for its inputs. An important example is to check whether a given list of group generators is in fact a list of standard generators (cf. Section3.3) for this group.Straight line decisions are similar to straight line programs (see Section Reference: Straight Line Programs) but return
true
orfalse
. A straight line decision checks whether its inputs have some property. An important example is to check whether a given list of group generators is in fact a list of standard generators (cf. Section3.3) for this group.A straight line decision in GAP is represented by an object in the filter
@@ -86,7 +95,7 @@ -IsStraightLineDecision
(6.1-1) that stores a list of "lines" each of which has one of the following three forms.The first two forms have the same meaning as for straight line programs (see Section Reference: Straight Line Programs), the last form means a check whether the element stored at the label i-th has the order n.
+The first two forms have the same meaning as for straight line programs (see Section Reference: Straight Line Programs), the last form means a check whether the element stored at the i-th label has the order n.
For the meaning of the list of lines, see
@@ -100,14 +109,14 @@ResultOfStraightLineDecision
(6.1-6).6.1-1 IsStraightLineDecision
-+
‣ IsStraightLineDecision
( obj )( category )
‣ IsStraightLineDecision
( obj )( category ) Each straight line decision in GAP lies in the filter
IsStraightLineDecision
.6.1-2 LinesOfStraightLineDecision
-+
‣ LinesOfStraightLineDecision
( prog )( operation )
‣ LinesOfStraightLineDecision
( prog )( operation ) Returns: the list of lines that define the straight line decision.
This defining attribute for the straight line decision prog (see
@@ -126,7 +135,7 @@IsStraightLineDecision
(6.1-1)) corresponds toLinesOfStraightLineProgram
(Reference: LinesOfStraightLineProgram) for straight line programs.6.1-3 NrInputsOfStraightLineDecision
-+
‣ NrInputsOfStraightLineDecision
( prog )( operation )
‣ NrInputsOfStraightLineDecision
( prog )( operation ) Returns: the number of inputs required for the straight line decision.
This defining attribute corresponds to
@@ -141,7 +150,7 @@NrInputsOfStraightLineProgram
(Reference: NrInputsOfStraightLineProgram).6.1-4 ScanStraightLineDecision
-+
‣ ScanStraightLineDecision
( string )( function )
‣ ScanStraightLineDecision
( string )( function ) Returns: a record containing the straight line decision, or
fail
.Let string be a string that encodes a straight line decision in the sense that it consists of the lines listed for
@@ -177,8 +186,8 @@ScanStraightLineProgram
(7.4-1), except thatoup
lines are not allowed, and instead lines of the following form may occur.6.1-5 StraightLineDecision
--
‣ StraightLineDecision
( lines[, nrgens] )( function ) +
‣ StraightLineDecisionNC
( lines[, nrgens] )( function ) +
‣ StraightLineDecision
( lines[, nrgens] )( function )
‣ StraightLineDecisionNC
( lines[, nrgens] )( function ) Returns: the straight line decision given by the list of lines.
Let lines be a list of lists that defines a unique straight line decision (see
@@ -189,7 +198,7 @@IsStraightLineDecision
(6.1-1)); in this caseStraightLineDecision
returns this program, otherwise an error is signalled. The optional argument nrgens specifies the number of input generators of the program; if a list of integers (a line of form 1. in the definition above) occurs in lines then this number is not determined by lines and therefore must be specified by the argument nrgens; if not thenStraightLineDecision
returnsfail
.6.1-6 ResultOfStraightLineDecision
-+
‣ ResultOfStraightLineDecision
( prog, gens[, orderfunc] )( operation )
‣ ResultOfStraightLineDecision
( prog, gens[, orderfunc] )( operation ) Returns:
true
if all checks succeed, otherwisefalse
.@@ -251,7 +260,7 @@
ResultOfStraightLineDecision
evaluates the straight line decision (seeIsStraightLineDecision
(6.1-1)) prog at the group elements in the list gens.(Note that "satisfying dec" is a stronger property than "satisfying a presentation". For example, ⟨ x ∣ x^2 = x^3 = 1 ⟩ is a presentation for the trivial group, but the straight line decision that checks whether the order of x is both 2 and 3 clearly always returns
-false
.)The ATLAS of Group Representations contains the following two kinds of straight line decisions.
+AtlasRep supports the following two kinds of straight line decisions.
@@ -264,7 +273,7 @@
-Available presentations and semi-presentations are listed by
+DisplayAtlasInfo
(3.5-1), they can be accessed viaAtlasProgram
(3.5-3). (Clearly each presentation is also a semi-presentation. So a semi-presentation for some standard generators of a group is regarded as available whenever a presentation for these standard generators and this group is available.)Available presentations and semi-presentations are listed by
DisplayAtlasInfo
(3.5-1), they can be accessed viaAtlasProgram
(3.5-4). (Clearly each presentation is also a semi-presentation. So a semi-presentation for some standard generators of a group is regarded as available whenever a presentation for these standard generators and this group is available.)Note that different groups can have the same semi-presentation. We illustrate this with an example that is mentioned in [NW05]. The groups L_2(7) ≅ L_3(2) and L_2(8) are generated by elements of the orders 2 and 3 such that their product has order 7, and no further conditions are necessary to define standard generators.
@@ -273,9 +282,11 @@ gap> check:= AtlasProgram( "L2(8)", "check" ); rec( groupname := "L2(8)", identifier := [ "L2(8)", "L28G1-check1", 1, 1 ], - program := <straight line decision>, standardization := 1 ) + program := <straight line decision>, standardization := 1, + version := "1" ) gap> gens:= AtlasGenerators( "L2(8)", 1 ); -rec( charactername := "1a+8a", +rec( charactername := "1a+8a", constituents := [ 1, 6 ], + contents := "core", generators := [ (1,2)(3,4)(6,7)(8,9), (1,3,2)(4,5,6)(7,8,9) ], groupname := "L2(8)", id := "", identifier := [ "L2(8)", [ "L28G1-p9B0.m1", "L28G1-p9B0.m2" ], 1, 9 @@ -286,7 +297,7 @@ gap> ResultOfStraightLineDecision( check.program, gens.generators ); true gap> gens:= AtlasGenerators( "L3(2)", 1 ); -rec( generators := [ (2,4)(3,5), (1,2,3)(5,6,7) ], +rec( contents := "core", generators := [ (2,4)(3,5), (1,2,3)(5,6,7) ], groupname := "L3(2)", id := "a", identifier := [ "L3(2)", [ "L27G1-p7aB0.m1", "L27G1-p7aB0.m2" ], 1, 7 ], isPrimitive := true, maxnr := 1, p := 7, rankAction := 2, @@ -301,7 +312,7 @@6.1-8 AsStraightLineDecision
-+
‣ AsStraightLineDecision
( bbox )( attribute )
‣ AsStraightLineDecision
( bbox )( attribute ) Returns: an equivalent straight line decision for the given black box program, or
fail
.For a black box program (see
@@ -325,7 +336,7 @@IsBBoxProgram
(6.2-1)) bbox,AsStraightLineDecision
returns a straight line decision (seeIsStraightLineDecision
(6.1-1)) with the same output as bbox, in the sense ofAsBBoxProgram
(6.2-5), if such a straight line decision exists, andfail
otherwise.6.1-9 StraightLineProgramFromStraightLineDecision
-+
‣ StraightLineProgramFromStraightLineDecision
( dec )( operation )
‣ StraightLineProgramFromStraightLineDecision
( dec )( operation ) Returns: the straight line program associated to the given straight line decision.
For a straight line decision dec (see
@@ -390,7 +401,7 @@IsStraightLineDecision
(6.1-1),StraightLineProgramFromStraightLineDecision
returns the straight line program (seeIsStraightLineProgram
(Reference: IsStraightLineProgram) obtained by replacing each line of type 3. (i.e, each order check) by an assignment of the power in question to a new slot, and by declaring the list of these elements as the return value.In the case of general black box programs, currently GAP provides only the possibility to read an existing program via
-ScanBBoxProgram
(6.2-2), and to run the program usingRunBBoxProgram
(6.2-3). It is not our aim to write such programs in GAP.The special case of the "find" scripts mentioned above is also admissible as an argument of
+ResultOfBBoxProgram
(6.2-4), which returns either the set of generators orfail
.The special case of the "find" scripts mentioned above is also admissible as an argument of
ResultOfBBoxProgram
(6.2-4), which returns either the set of found generators orfail
.Contrary to the general situation, more support is provided for straight line programs and straight line decisions in GAP, see Section Reference: Straight Line Programs for functions that manipulate them (compose, restrict etc.).
@@ -398,7 +409,7 @@Conversely, one can create an equivalent general black box program from a straight line program or from a straight line decision with
-AsBBoxProgram
(6.2-5).(Computing a straight line program related to a given straight line decision is supported in the sense of
+StraightLineProgramFromStraightLineDecision
(6.1-9).)Computing a straight line program related to a given straight line decision is supported in the sense of
StraightLineProgramFromStraightLineDecision
(6.1-9).Note that none of these three kinds of objects is a special case of another: Running a black box program with
@@ -406,17 +417,17 @@RunBBoxProgram
(6.2-3) yields a record, running a straight line program withResultOfStraightLineProgram
(Reference: ResultOfStraightLineProgram) yields a list of elements, and running a straight line decision withResultOfStraightLineDecision
(6.1-6) yieldstrue
orfalse
.6.2-1 IsBBoxProgram
-+
‣ IsBBoxProgram
( obj )( category )
‣ IsBBoxProgram
( obj )( category ) Each black box program in GAP lies in the filter
IsBBoxProgram
.6.2-2 ScanBBoxProgram
-+
‣ ScanBBoxProgram
( string )( function )
‣ ScanBBoxProgram
( string )( function ) Returns: a record containing the black box program encoded by the input string, or
-fail
.For a string string that describes a black box program, e.g., the return value of
+StringFile
(GAPDoc: StringFile),ScanBBoxProgram
computes this black box program. If this is successful then the return value is a record containing as the value of its componentprogram
the corresponding GAP object that represents the program, otherwisefail
is returned.For a string string that describes a black box program, e.g., the return value of
StringFile
(GAPDoc: StringFile),ScanBBoxProgram
computes this black box program. If this is successful then the return value is a record containing as the value of its componentprogram
the corresponding GAP object that represents the program, otherwisefail
is returned.As the first example, we construct a black box program that tries to find standard generators for the alternating group A_5; these standard generators are any pair of elements of the orders 2 and 3, respectively, such that their product has order 5.
@@ -471,7 +482,7 @@6.2-3 RunBBoxProgram
-+
‣ RunBBoxProgram
( prog, G, input, options )( function )
‣ RunBBoxProgram
( prog, G, input, options )( function ) Returns: a record describing the result and the statistics of running the black box program prog, or
fail
, or the string"timeout"
.For a black box program prog, a group G, a list input of group elements, and a record options,
@@ -500,7 +511,7 @@RunBBoxProgram
applies prog to input, where G is used only to compute random elements.- -
orderfunction
the function for computing element orders (the default is
+Order
(Reference: Order)),the function for computing element orders (default
Order
(Reference: Order)),- @@ -545,10 +556,12 @@
quiet
6.2-4 ResultOfBBoxProgram
-+
‣ ResultOfBBoxProgram
( prog, G )( function )
‣ ResultOfBBoxProgram
( prog, G )( function ) Returns: a list of group elements or
-true
,false
,fail
, or the string"timeout"
.This function calls
+RunBBoxProgram
(6.2-3) with the black box program prog and second argument either a group or a list of group elements; the default options are assumed. The return value isfail
if this call yieldsfail
, otherwise thegens
component of the result, if bound, or theresult
component if not.This function calls
+ +RunBBoxProgram
(6.2-3) with the black box program prog and second argument either a group or a list of group elements; the default options ofRunBBoxProgram
(6.2-3) are assumed. The return value isfail
if this call yieldsfail
, otherwise thegens
component of the result, if bound, or theresult
component if not.Note that a group G is used as the second argument in the call of
RunBBoxProgram
(6.2-3) (the source for random elements), whereas a list G is used as the third argument (the inputs).As an example, we run the black box programs constructed in the example for
@@ -571,7 +584,7 @@ScanBBoxProgram
(6.2-2).6.2-5 AsBBoxProgram
-+
‣ AsBBoxProgram
( slp )( attribute )
‣ AsBBoxProgram
( slp )( attribute ) Returns: an equivalent black box program for the given straight line program or straight line decision.
Let slp be a straight line program (see
@@ -607,7 +620,7 @@IsStraightLineProgram
(Reference: IsStraightLineProgram)) or a straight line decision (seeIsStraightLineDecision
(6.1-1)). ThenAsBBoxProgram
returns a black box program bbox (seeIsBBoxProgram
(6.2-1)) with the "same" output as slp, in the sense thatResultOfBBoxProgram
(6.2-4) yields the same result for bbox asResultOfStraightLineProgram
(Reference: ResultOfStraightLineProgram) orResultOfStraightLineDecision
(6.1-6), respectively, for slp.6.2-6 AsStraightLineProgram
-+
‣ AsStraightLineProgram
( bbox )( attribute )
‣ AsStraightLineProgram
( bbox )( attribute ) Returns: an equivalent straight line program for the given black box program, or
fail
.For a black box program (see
@@ -632,15 +645,15 @@AsBBoxProgram
(6.2-5)) bbox,AsStraightLineProgram
returns a straight line program (seeIsStraightLineProgram
(Reference: IsStraightLineProgram)) with the same output as bbox if such a straight line program exists, andfail
otherwise.6.3 Representations of Minimal Degree
-This section deals with minimal degrees of permutation and matrix representations. We do not provide an algorithm that computes these degrees for an arbitrary group, we only provide some tools for evaluating known databases, mainly concerning "bicyclic extensions" (see [CCNPW85, Section 6.5]) of simple groups, in order to derive the minimal degrees, see Section 6.3-4.
+This section deals with minimal degrees of permutation and matrix representations. We do not provide an algorithm that computes these degrees for an arbitrary group, we only provide some tools for evaluating known databases, mainly concerning "bicyclic extensions" (see [CCN+85, Section 6.5]) of simple groups, in order to derive the minimal degrees, see Section 6.3-4.
-In the AtlasRep package, this information can be used for prescribing "minimality conditions" in
+DisplayAtlasInfo
(3.5-1),OneAtlasGeneratingSetInfo
(3.5-5), andAllAtlasGeneratingSetInfos
(3.5-6). An overview of the stored minimal degrees can be shown withBrowseMinimalDegrees
(3.6-1).In the AtlasRep package, this information can be used for prescribing "minimality conditions" in
DisplayAtlasInfo
(3.5-1),OneAtlasGeneratingSetInfo
(3.5-6), andAllAtlasGeneratingSetInfos
(3.5-7). An overview of the stored minimal degrees can be shown withBrowseMinimalDegrees
(3.6-1).6.3-1 MinimalRepresentationInfo
-+
‣ MinimalRepresentationInfo
( grpname, conditions )( function )
‣ MinimalRepresentationInfo
( grpname, conditions )( function ) Returns: a record with the components
value
andsource
, orfail
Let grpname be the GAP name of a group G, say. If the information described by conditions about minimal representations of this group can be computed or is stored then
@@ -649,7 +662,7 @@MinimalRepresentationInfo
returns a record with the componentsvalue
andsource
, otherwisefail
is returned.-
-If conditions is
+NrMovedPoints
(Reference: NrMovedPoints (for a permutation)) thenvalue
, if known, is the degree of a minimal faithful (not necessarily transitive) permutation representation for G.If conditions is
NrMovedPoints
(Reference: NrMovedPoints for a permutation) thenvalue
, if known, is the degree of a minimal faithful (not necessarily transitive) permutation representation for G.If conditions consists of
@@ -659,7 +672,7 @@Characteristic
(Reference: Characteristic) and a prime integer p thenvalue
, if known, is the dimension of a minimal faithful (not necessarily irreducible) matrix representation in characteristic p for G.In all cases, the value of the component
+source
is a list of strings that describe sources of the information, which can be the ordinary or modular character table of G (see [CCNPW85], [JLPW95], [HL89]), the table of marks of G, or [Jan05]. For an overview of minimal degrees of faithful matrix representations for sporadic simple groups and their covering groups, see alsoIn all cases, the value of the component
source
is a list of strings that describe sources of the information, which can be the ordinary or modular character table of G (see [CCN+85], [JLPW95], [HL89]), the table of marks of G, or [Jan05]. For an overview of minimal degrees of faithful matrix representations for sporadic simple groups and their covering groups, see alsohttp://www.math.rwth-aachen.de/~MOC/mindeg/.
@@ -702,7 +715,7 @@6.3-2 MinimalRepresentationInfoData
-+
‣ MinimalRepresentationInfoData
( global variable )
‣ MinimalRepresentationInfoData
( global variable ) This is a record whose components are GAP names of groups for which information about minimal permutation and matrix representations were known in advance or have been computed in the current GAP session. The value for the group G, say, is a record with the following components.
@@ -726,7 +739,7 @@6.3-3 SetMinimalRepresentationInfo
-+
‣ SetMinimalRepresentationInfo
( grpname, op, value, source )( function )
‣ SetMinimalRepresentationInfo
( grpname, op, value, source )( function ) Returns:
true
if the values were successfully set,false
if stored values contradict the given ones.This function sets an entry in
@@ -735,7 +748,7 @@MinimalRepresentationInfoData
(6.3-2) for the group G, say, with GAP name grpname.-
+ + ++
"NrMovedPoints"
(seeNrMovedPoints
(Reference: NrMovedPoints (for a permutation))), which means that value is the degree of minimal faithful (not necessarily transitive) permutation representations of G,
"NrMovedPoints"
(seeNrMovedPoints
(Reference: NrMovedPoints for a permutation)), which means that value is the degree of minimal faithful (not necessarily transitive) permutation representations of G,a list of length two with first entry
@@ -790,12 +803,12 @@"Characteristic"
(seeCharacteristic
(Reference: Characteristic)) and second entry char either zero or a prime integer, which means that value is the dimension of minimal faithful (not necessarily irreducible) matrix representations of G in characteristic char,- -
If the name of G has the form
"L2(
q)"
(denoting projective special linear groups in dimension two) then the minimal degree is q + 1, except if q ∈ { 2, 3, 5, 7, 9, 11 }, see [Hup67, Satz II.8.28].If the largest maximal subgroup of G is core-free then the index of this subgroup is the minimal degree. (This is used when the two character tables in question and the class fusion are available in GAP's Character Table Library ([Bre13]); this happens for many character tables of simple groups.)
+- -
If the largest maximal subgroup of G is core-free then the index of this subgroup is the minimal degree. (This is used when the two character tables in question and the class fusion are available in GAP's Character Table Library [Bre13]; this happens for many character tables of simple groups.)
If G has a unique minimal normal subgroup then each minimal faithful permutation representation is transitive.
+If G has a unique minimal normal subgroup then each minimal faithful permutation representation is transitive. (Note that the core of each point stabilizer is either trivial or contains the unique minimal normal subgroup.)
-In this case, the minimal degree can be computed directly from the information in the table of marks of G if this is available in GAP's Library of Tables of Marks ([NMP13]).
+In this case, the minimal degree can be computed directly from the information in the table of marks of G if this is available in GAP's Library of Tables of Marks [NMP18].
Suppose that the largest maximal subgroup of G is not core-free but simple and normal in G, and that the other maximal subgroups of G are core-free. In this case, we take the minimum of the indices of the core-free maximal subgroups and of the product of index and minimal degree of the normal maximal subgroup. (This suffices since no core-free subgroup of the whole group can contain a nontrivial normal subgroup of a normal maximal subgroup.)
@@ -806,6 +819,129 @@6.4 A JSON Interface
+ +We define a mapping between certain GAP objects and JSON (JavaScript Object Notation) texts (see [JSO14]), as follows.
+ + ++
+- +
The three GAP values
+ +true
,false
, andfail
correspond to the JSON textstrue
,false
, andnull
, respectively.- +
GAP strings correspond to JSON strings; special characters in a GAP string (control characters ASCII 0 to 31, backslash and double quote) are mapped as defined in JSON's specification, and other ASCII characters are kept as they are; if a GAP string contains non-ASCII characters, it is assumed that it is UTF-8 encoded, and one may choose either to keep non-ASCII characters as they are, or to create an ASCII only JSON string, using JSON's syntax for Unicode code points ("
+ +\uXXXX
"); in the other direction, JSON strings are assumed to be UTF-8 encoded, and are mapped to UTF-8 encoded GAP strings, by keeping the non-ASCII characters and converting substrings of the form\uXXXX
accordingly.- +
GAP integers (in the sense of
+ +IsInt
(Reference: IsInt)) are mapped to JSON numbers that consist of digits and optionally a leading sign character-
; in the other direction, JSON numbers of this form and also JSON numbers that involve no decimal dots and have no negative exponent (for example"2e3"
) are mapped to GAP integers.- +
GAP rationals (in the sense of
+ +IsRat
(Reference: IsRat)) which are not integers are represented by JSON floating point numbers; the JSON representation (and hence the precision) is given by first applyingFloat
(Reference: Float) and thenString
(Reference: String).- +
GAP floats (in the sense of Chapter Reference: Floats in the GAP Reference Manual) are mapped to JSON floating point numbers; the JSON representation (and hence the precision) is given by applying
+ +String
(Reference: String); in the other direction, JSON numbers that involve a decimal dot or a negative exponent are mapped to GAP floats.- +
(Nested and not self-referential) dense GAP lists of objects correspond to JSON arrays such that the list entries correspond to each other. (Note that JSON does not support non-dense arrays.)
+ +- +
(Nested and not self-referential) GAP records correspond to JSON objects such that both labels (which are strings in GAP and JSON) and values correspond to each other.
+ +The GAP functions
+ +AGR.JsonText
(6.4-2) andAGR.GapObjectOfJsonText
(6.4-3) can be used to create a JSON text from a suitable GAP object and the GAP object that corresponds to a given JSON text, respectively.Note that the composition of the two functions is in general not the identity mapping, because
+ +AGR.JsonText
(6.4-2) accepts non-integer rationals, whereasAGR.GapObjectOfJsonText
(6.4-3) does not create such objects.Note also that the results of
+ +AGR.JsonText
(6.4-2) do not contain information about dependencies between common subobjects. This is another reason why applying firstAGR.JsonText
(6.4-2) and thenAGR.GapObjectOfJsonText
(6.4-3) may yield a GAP object with different behaviour.Applying
+ + + +AGR.JsonText
(6.4-2) to a self-referential object such as[ ~ ]
will raise a "recursion depth trap" error.6.4-1 Why JSON?
+ +The aim of this JSON interface is to read and write certain data files with GAP such that these files become easily accessible independent of GAP. The function
+ +AGR.JsonText
(6.4-2) is intended just as a prototype, variants of this function are very likely to appear in other contexts, for example in order to force certain line formatting or ordering of record components.It is not the aim of the JSON interface to provide self-contained descriptions of arbitrary GAP objects, in order to read them into a GAP session. Note that those GAP objects for which a JSON equivalent exists (and many more) can be easily written to files as they are, and GAP can read them efficiently. On the other hand, more complicated GAP objects can be written and read via the so-called pickling, for which a framework is provided by the GAP package IO [Neu14].
+ +Here are a few situations which are handled well by pickling but which cannot be addressed with a JSON interface.
+ + ++
+ + +- +
Pickling and unpickling take care of common subobjects of the given GAP object. The following example shows that the applying first
+ + +AGR.JsonText
(6.4-2) and thenAGR.GapObjectOfJsonText
(6.4-3) may yield an object which behaves differently.+ ++gap> l:= [ [ 1 ] ];; l[2]:= l[1];; l; +[ [ 1 ], [ 1 ] ] +gap> new:= AGR.GapObjectOfJsonText( AGR.JsonText( l ) ).value; +[ [ 1 ], [ 1 ] ] +gap> Add( l[1], 2 ); l; +[ [ 1, 2 ], [ 1, 2 ] ] +gap> Add( new[1], 2 ); new; +[ [ 1, 2 ], [ 1 ] ] +- +
GAP admits self-referential objects, for example as follows.
+ + ++ ++gap> l:= [];; l[1]:= l;; +Pickling and unpickling take care of self-referential objects, but
+ +AGR.JsonText
(6.4-2) does not support the conversion of such objects.6.4-2 AGR.JsonText
+ ++
‣ AGR.JsonText
( obj[, mode] )( function ) Returns: a new mutable string that describes obj as a JSON text, or
+ +fail
.If obj is a GAP object for which a corresponding JSON text exists, according to the mapping described above, then such a JSON text is returned. Otherwise,
+ +fail
is returned.If the optional argument mode is given and has the value
+ + +"ASCII"
then the result in an ASCII string, otherwise the encoding of strings that are involved in obj is kept.+ + + ++gap> AGR.JsonText( [] ); +"[]" +gap> AGR.JsonText( "" ); +"\"\"" +gap> AGR.JsonText( "abc\ndef\cghi" ); +"\"abc\\ndef\\u0003ghi\"" +gap> AGR.JsonText( rec() ); +"{}" +gap> AGR.JsonText( [ , 2 ] ); +fail +gap> str:= [ '\303', '\266' ];; # umlaut o +gap> json:= AGR.JsonText( str );; List( json, IntChar ); +[ 34, 195, 182, 34 ] +gap> AGR.JsonText( str, "ASCII" ); +"\"\\u00F6\"" +6.4-3 AGR.GapObjectOfJsonText
+ ++
‣ AGR.GapObjectOfJsonText
( string )( function ) Returns: a new mutable record whose
+ +value
component, if bound, contains a mutable GAP object that represents the JSON text string.If string is a string that represents a JSON text then the result is a record with the components
+ + +value
(the corresponding GAP object in the sense of the above interface) andstatus
(valuetrue
). Otherwise, the result is a record with the componentsstatus
(valuefalse
) anderrpos
(the position in string where the string turns out to be not valid JSON).+ diff -Nru gap-atlasrep-1.5.1/doc/chap6_mj.html gap-atlasrep-2.1.0/doc/chap6_mj.html --- gap-atlasrep-1.5.1/doc/chap6_mj.html 1970-01-01 00:00:00.000000000 +0000 +++ gap-atlasrep-2.1.0/doc/chap6_mj.html 2019-06-21 15:10:33.000000000 +0000 @@ -0,0 +1,957 @@ + + + + + + + ++gap> AGR.GapObjectOfJsonText( "{ \"a\": 1 }" ); +rec( status := true, value := rec( a := 1 ) ) +gap> AGR.GapObjectOfJsonText( "{ \"a\": x }" ); +rec( errpos := 8, status := false ) +GAP (AtlasRep) - Chapter 6: New GAP Objects and Utility Functions provided by the +AtlasRep Package + + + + + + + + + + + + + + + +6 New GAP Objects and Utility Functions provided by the +AtlasRep Package ++ +6.1 Straight Line Decisions + ++ + + ++
6.1-1 IsStraightLineDecision +
6.1-2 LinesOfStraightLineDecision +
6.1-3 NrInputsOfStraightLineDecision +
6.1-4 ScanStraightLineDecision +
6.1-5 StraightLineDecision +
6.1-6 ResultOfStraightLineDecision +
6.1-7 Semi-Presentations and Presentations + +
6.1-8 AsStraightLineDecision +
6.1-9 StraightLineProgramFromStraightLineDecision +6 New GAP Objects and Utility Functions provided by the +AtlasRep Package
+ +This chapter describes GAP objects and functions that are provided by the AtlasRep package but that might be of general interest.
+ +The new objects are straight line decisions (see Section 6.1) and black box programs (see Section 6.2).
+ +The new functions are concerned with representations of minimal degree, see Section 6.3, and a JSON interface, see Section 6.4.
+ + + +6.1 Straight Line Decisions
+ +Straight line decisions are similar to straight line programs (see Section Reference: Straight Line Programs) but return
+ +true
orfalse
. A straight line decision checks whether its inputs have some property. An important example is to check whether a given list of group generators is in fact a list of standard generators (cf. Section3.3) for this group.A straight line decision in GAP is represented by an object in the filter
+ +IsStraightLineDecision
(6.1-1) that stores a list of "lines" each of which has one of the following three forms.+
+- +
a nonempty dense list \(l\) of integers,
+ +- +
a pair \([ l, i ]\) where \(l\) is a list of form 1. and \(i\) is a positive integer,
+ +- +
a list \([ \)
+ +"Order"
\(, i, n ]\) where \(i\) and \(n\) are positive integers.The first two forms have the same meaning as for straight line programs (see Section Reference: Straight Line Programs), the last form means a check whether the element stored at the \(i\)-th label has the order \(n\).
+ +For the meaning of the list of lines, see
+ +ResultOfStraightLineDecision
(6.1-6).Straight line decisions can be constructed using
+ +StraightLineDecision
(6.1-5), defining attributes for straight line decisions areNrInputsOfStraightLineDecision
(6.1-3) andLinesOfStraightLineDecision
(6.1-2), an operation for straight line decisions isResultOfStraightLineDecision
(6.1-6).Special methods applicable to straight line decisions are installed for the operations
+ +Display
(Reference: Display),IsInternallyConsistent
(Reference: IsInternallyConsistent),PrintObj
(Reference: PrintObj), andViewObj
(Reference: ViewObj).For a straight line decision prog, the default
+ + + +Display
(Reference: Display) method prints the interpretation of prog as a sequence of assignments of associative words and of order checks; a record with componentsgensnames
(with value a list of strings) andlistname
(a string) may be entered as second argument ofDisplay
(Reference: Display), in this case these names are used, the default forgensnames
is[ g1, g2,
\(\ldots\)]
, the default for listname is \(r\).6.1-1 IsStraightLineDecision
+ ++
‣ IsStraightLineDecision
( obj )( category ) Each straight line decision in GAP lies in the filter
+ + + +IsStraightLineDecision
.6.1-2 LinesOfStraightLineDecision
+ ++
‣ LinesOfStraightLineDecision
( prog )( operation ) Returns: the list of lines that define the straight line decision.
+ +This defining attribute for the straight line decision prog (see
+ + +IsStraightLineDecision
(6.1-1)) corresponds toLinesOfStraightLineProgram
(Reference: LinesOfStraightLineProgram) for straight line programs.+ + + ++gap> dec:= StraightLineDecision( [ [ [ 1, 1, 2, 1 ], 3 ], +> [ "Order", 1, 2 ], [ "Order", 2, 3 ], [ "Order", 3, 5 ] ] ); +<straight line decision> +gap> LinesOfStraightLineDecision( dec ); +[ [ [ 1, 1, 2, 1 ], 3 ], [ "Order", 1, 2 ], [ "Order", 2, 3 ], + [ "Order", 3, 5 ] ] +6.1-3 NrInputsOfStraightLineDecision
+ ++
‣ NrInputsOfStraightLineDecision
( prog )( operation ) Returns: the number of inputs required for the straight line decision.
+ +This defining attribute corresponds to
+ + +NrInputsOfStraightLineProgram
(Reference: NrInputsOfStraightLineProgram).+ + + ++gap> NrInputsOfStraightLineDecision( dec ); +2 +6.1-4 ScanStraightLineDecision
+ ++
‣ ScanStraightLineDecision
( string )( function ) Returns: a record containing the straight line decision, or
+ +fail
.Let string be a string that encodes a straight line decision in the sense that it consists of the lines listed for
+ + +ScanStraightLineProgram
(7.4-1), except thatoup
lines are not allowed, and instead lines of the following form may occur.+
+- +
chor
\(a\) \(b\)- +
means that it is checked whether the order of the element at label \(a\) is \(b\).
+ ++ + +
ScanStraightLineDecision
returns a record containing as the value of its componentprogram
the corresponding GAP straight line decision (seeIsStraightLineDecision
(6.1-1)) if the input string satisfies the syntax rules stated above, and returnsfail
otherwise. In the latter case, information about the first corrupted line of the program is printed if the info level ofInfoCMeatAxe
(7.1-2) is at least \(1\).+ + + ++gap> str:= "inp 2\nchor 1 2\nchor 2 3\nmu 1 2 3\nchor 3 5";; +gap> prg:= ScanStraightLineDecision( str ); +rec( program := <straight line decision> ) +gap> prg:= prg.program;; +gap> Display( prg ); +# input: +r:= [ g1, g2 ]; +# program: +if Order( r[1] ) <> 2 then return false; fi; +if Order( r[2] ) <> 3 then return false; fi; +r[3]:= r[1]*r[2]; +if Order( r[3] ) <> 5 then return false; fi; +# return value: +true +6.1-5 StraightLineDecision
+ ++
‣ StraightLineDecision
( lines[, nrgens] )( function ) +
‣ StraightLineDecisionNC
( lines[, nrgens] )( function ) Returns: the straight line decision given by the list of lines.
+ +Let lines be a list of lists that defines a unique straight line decision (see
+ +IsStraightLineDecision
(6.1-1)); in this caseStraightLineDecision
returns this program, otherwise an error is signalled. The optional argument nrgens specifies the number of input generators of the program; if a list of integers (a line of form 1. in the definition above) occurs in lines then this number is not determined by lines and therefore must be specified by the argument nrgens; if not thenStraightLineDecision
returnsfail
.+ + + +
StraightLineDecisionNC
does the same asStraightLineDecision
, except that the internal consistency of the program is not checked.6.1-6 ResultOfStraightLineDecision
+ ++
‣ ResultOfStraightLineDecision
( prog, gens[, orderfunc] )( operation ) Returns:
+ +true
if all checks succeed, otherwisefalse
.+ +
ResultOfStraightLineDecision
evaluates the straight line decision (seeIsStraightLineDecision
(6.1-1)) prog at the group elements in the list gens.The function for computing the order of a group element can be given as the optional argument orderfunc. For example, this may be a function that gives up at a certain limit if one has to be aware of extremely huge orders in failure cases.
+ +The result of a straight line decision with lines \(p_1, p_2, \ldots, p_k\) when applied to gens is defined as follows.
+ + ++
+- (a)
+- +
First a list \(r\) of intermediate values is initialized with a shallow copy of gens.
+ +- (b)
+- +
For \(i \leq k\), before the \(i\)-th step, let \(r\) be of length \(n\). If \(p_i\) is the external representation of an associative word in the first \(n\) generators then the image of this word under the homomorphism that is given by mapping \(r\) to these first \(n\) generators is added to \(r\). If \(p_i\) is a pair \([ l, j ]\), for a list \(l\), then the same element is computed, but instead of being added to \(r\), it replaces the \(j\)-th entry of \(r\). If \(p_i\) is a triple \([ \)
+ +"Order"
\(, i, n ]\) then it is checked whether the order of \(r[i]\) is \(n\); if not thenfalse
is returned immediately.- (c)
+- +
If all \(k\) lines have been processed and no order check has failed then
+ +true
is returned.Here are some examples.
+ + ++ ++gap> dec:= StraightLineDecision( [ ], 1 ); +<straight line decision> +gap> ResultOfStraightLineDecision( dec, [ () ] ); +true +The above straight line decision
+ + +dec
returnstrue
–for any input of the right length.+ ++gap> dec:= StraightLineDecision( [ [ [ 1, 1, 2, 1 ], 3 ], +> [ "Order", 1, 2 ], [ "Order", 2, 3 ], [ "Order", 3, 5 ] ] ); +<straight line decision> +gap> LinesOfStraightLineDecision( dec ); +[ [ [ 1, 1, 2, 1 ], 3 ], [ "Order", 1, 2 ], [ "Order", 2, 3 ], + [ "Order", 3, 5 ] ] +gap> ResultOfStraightLineDecision( dec, [ (), () ] ); +false +gap> ResultOfStraightLineDecision( dec, [ (1,2)(3,4), (1,4,5) ] ); +true +The above straight line decision admits two inputs; it tests whether the orders of the inputs are \(2\) and \(3\), and the order of their product is \(5\).
+ + + +6.1-7 Semi-Presentations and Presentations
+ +We can associate a finitely presented group \(F / R\) to each straight line decision dec, say, as follows. The free generators of the free group \(F\) are in bijection with the inputs, and the defining relators generating \(R\) as a normal subgroup of \(F\) are given by those words \(w^k\) for which dec contains a check whether the order of \(w\) equals \(k\).
+ +So if dec returns
+ +true
for the input list \([ g_1, g_2, \ldots, g_n ]\) then mapping the free generators of \(F\) to the inputs defines an epimorphism \(\Phi\) from \(F\) to the group \(G\), say, that is generated by these inputs, such that \(R\) is contained in the kernel of \(\Phi\).(Note that "satisfying dec" is a stronger property than "satisfying a presentation". For example, \(\langle x \mid x^2 = x^3 = 1 \rangle\) is a presentation for the trivial group, but the straight line decision that checks whether the order of \(x\) is both \(2\) and \(3\) clearly always returns
+ +false
.)AtlasRep supports the following two kinds of straight line decisions.
+ + ++
+- +
A presentation is a straight line decision dec that is defined for a set of standard generators of a group \(G\) and that returns
+ +true
if and only if the list of inputs is in fact a sequence of such standard generators for \(G\). In other words, the relators derived from the order checks in the way described above are defining relators for \(G\), and moreover these relators are words in terms of standard generators. (In particular the kernel of the map \(\Phi\) equals \(R\) whenever dec returnstrue
.)- +
A semi-presentation is a straight line decision dec that is defined for a set of standard generators of a group \(G\) and that returns
+ +true
for a list of inputs that is known to generate a group isomorphic with \(G\) if and only if these inputs form in fact a sequence of standard generators for \(G\). In other words, the relators derived from the order checks in the way described above are not necessarily defining relators for \(G\), but if we assume that the \(g_i\) generate \(G\) then they are standard generators. (In particular, \(F / R\) may be a larger group than \(G\) but in this case \(\Phi\) maps the free generators of \(F\) to standard generators of \(G\).)More about semi-presentations can be found in [NW05].
+ +Available presentations and semi-presentations are listed by
+ +DisplayAtlasInfo
(3.5-1), they can be accessed viaAtlasProgram
(3.5-4). (Clearly each presentation is also a semi-presentation. So a semi-presentation for some standard generators of a group is regarded as available whenever a presentation for these standard generators and this group is available.)Note that different groups can have the same semi-presentation. We illustrate this with an example that is mentioned in [NW05]. The groups \(L_2(7) \cong L_3(2)\) and \(L_2(8)\) are generated by elements of the orders \(2\) and \(3\) such that their product has order \(7\), and no further conditions are necessary to define standard generators.
+ + ++ + + ++gap> check:= AtlasProgram( "L2(8)", "check" ); +rec( groupname := "L2(8)", + identifier := [ "L2(8)", "L28G1-check1", 1, 1 ], + program := <straight line decision>, standardization := 1, + version := "1" ) +gap> gens:= AtlasGenerators( "L2(8)", 1 ); +rec( charactername := "1a+8a", constituents := [ 1, 6 ], + contents := "core", + generators := [ (1,2)(3,4)(6,7)(8,9), (1,3,2)(4,5,6)(7,8,9) ], + groupname := "L2(8)", id := "", + identifier := [ "L2(8)", [ "L28G1-p9B0.m1", "L28G1-p9B0.m2" ], 1, 9 + ], isPrimitive := true, maxnr := 1, p := 9, rankAction := 2, + repname := "L28G1-p9B0", repnr := 1, size := 504, + stabilizer := "2^3:7", standardization := 1, transitivity := 3, + type := "perm" ) +gap> ResultOfStraightLineDecision( check.program, gens.generators ); +true +gap> gens:= AtlasGenerators( "L3(2)", 1 ); +rec( contents := "core", generators := [ (2,4)(3,5), (1,2,3)(5,6,7) ], + groupname := "L3(2)", id := "a", + identifier := [ "L3(2)", [ "L27G1-p7aB0.m1", "L27G1-p7aB0.m2" ], 1, + 7 ], isPrimitive := true, maxnr := 1, p := 7, rankAction := 2, + repname := "L27G1-p7aB0", repnr := 1, size := 168, + stabilizer := "S4", standardization := 1, transitivity := 2, + type := "perm" ) +gap> ResultOfStraightLineDecision( check.program, gens.generators ); +true +6.1-8 AsStraightLineDecision
+ ++
‣ AsStraightLineDecision
( bbox )( attribute ) Returns: an equivalent straight line decision for the given black box program, or
+ +fail
.For a black box program (see
+ + +IsBBoxProgram
(6.2-1)) bbox,AsStraightLineDecision
returns a straight line decision (seeIsStraightLineDecision
(6.1-1)) with the same output as bbox, in the sense ofAsBBoxProgram
(6.2-5), if such a straight line decision exists, andfail
otherwise.+ + + ++gap> lines:= [ [ "Order", 1, 2 ], [ "Order", 2, 3 ], +> [ [ 1, 1, 2, 1 ], 3 ], [ "Order", 3, 5 ] ];; +gap> dec:= StraightLineDecision( lines, 2 ); +<straight line decision> +gap> bboxdec:= AsBBoxProgram( dec ); +<black box program> +gap> asdec:= AsStraightLineDecision( bboxdec ); +<straight line decision> +gap> LinesOfStraightLineDecision( asdec ); +[ [ "Order", 1, 2 ], [ "Order", 2, 3 ], [ [ 1, 1, 2, 1 ], 3 ], + [ "Order", 3, 5 ] ] +6.1-9 StraightLineProgramFromStraightLineDecision
+ ++
‣ StraightLineProgramFromStraightLineDecision
( dec )( operation ) Returns: the straight line program associated to the given straight line decision.
+ +For a straight line decision dec (see
+ +IsStraightLineDecision
(6.1-1),StraightLineProgramFromStraightLineDecision
returns the straight line program (seeIsStraightLineProgram
(Reference: IsStraightLineProgram) obtained by replacing each line of type 3. (i.e, each order check) by an assignment of the power in question to a new slot, and by declaring the list of these elements as the return value.This means that the return value describes exactly the defining relators of the presentation that is associated to the straight line decision, see 6.1-7.
+ +For example, one can use the return value for printing the relators with
+ + +StringOfResultOfStraightLineProgram
(Reference: StringOfResultOfStraightLineProgram), or for explicitly constructing the relators as words in terms of free generators, by applyingResultOfStraightLineProgram
(Reference: ResultOfStraightLineProgram) to the program and to these generators.+ + + ++gap> dec:= StraightLineDecision( [ [ [ 1, 1, 2, 1 ], 3 ], +> [ "Order", 1, 2 ], [ "Order", 2, 3 ], [ "Order", 3, 5 ] ] ); +<straight line decision> +gap> prog:= StraightLineProgramFromStraightLineDecision( dec ); +<straight line program> +gap> Display( prog ); +# input: +r:= [ g1, g2 ]; +# program: +r[3]:= r[1]*r[2]; +r[4]:= r[1]^2; +r[5]:= r[2]^3; +r[6]:= r[3]^5; +# return values: +[ r[4], r[5], r[6] ] +gap> StringOfResultOfStraightLineProgram( prog, [ "a", "b" ] ); +"[ a^2, b^3, (ab)^5 ]" +gap> gens:= GeneratorsOfGroup( FreeGroup( "a", "b" ) ); +[ a, b ] +gap> ResultOfStraightLineProgram( prog, gens ); +[ a^2, b^3, (a*b)^5 ] +6.2 Black Box Programs
+ +Black box programs formalize the idea that one takes some group elements, forms arithmetic expressions in terms of them, tests properties of these expressions, executes conditional statements (including jumps inside the program) depending on the results of these tests, and eventually returns some result.
+ +A specification of the language can be found in [Nic06], see also
+ +http://brauer.maths.qmul.ac.uk/Atlas/info/blackbox.html.
+ +The inputs of a black box program may be explicit group elements, and the program may also ask for random elements from a given group. The program steps form products, inverses, conjugates, commutators, etc. of known elements, tests concern essentially the orders of elements, and the result is a list of group elements or
+ +true
orfalse
orfail
.Examples that can be modeled by black box programs are
+ + ++
+- straight line programs,
+- +
which require a fixed number of input elements and form arithmetic expressions of elements but do not use random elements, tests, conditional statements and jumps; the return value is always a list of elements; these programs are described in Section Reference: Straight Line Programs.
+ +- straight line decisions,
+- +
which differ from straight line programs only in the sense that also order tests are admissible, and that the return value is
+ +true
if all these tests are satisfied, andfalse
as soon as the first such test fails; they are described in Section 6.1.- scripts for finding standard generators,
+- +
which take a group and a function to generate a random element in this group but no explicit input elements, admit all control structures, and return either a list of standard generators or
+ +fail
; seeResultOfBBoxProgram
(6.2-4) for examples.In the case of general black box programs, currently GAP provides only the possibility to read an existing program via
+ +ScanBBoxProgram
(6.2-2), and to run the program usingRunBBoxProgram
(6.2-3). It is not our aim to write such programs in GAP.The special case of the "find" scripts mentioned above is also admissible as an argument of
+ +ResultOfBBoxProgram
(6.2-4), which returns either the set of found generators orfail
.Contrary to the general situation, more support is provided for straight line programs and straight line decisions in GAP, see Section Reference: Straight Line Programs for functions that manipulate them (compose, restrict etc.).
+ +The functions
+ +AsStraightLineProgram
(6.2-6) andAsStraightLineDecision
(6.1-8) can be used to transform a general black box program object into a straight line program or a straight line decision if this is possible.Conversely, one can create an equivalent general black box program from a straight line program or from a straight line decision with
+ +AsBBoxProgram
(6.2-5).Computing a straight line program related to a given straight line decision is supported in the sense of
+ +StraightLineProgramFromStraightLineDecision
(6.1-9).Note that none of these three kinds of objects is a special case of another: Running a black box program with
+ + + +RunBBoxProgram
(6.2-3) yields a record, running a straight line program withResultOfStraightLineProgram
(Reference: ResultOfStraightLineProgram) yields a list of elements, and running a straight line decision withResultOfStraightLineDecision
(6.1-6) yieldstrue
orfalse
.6.2-1 IsBBoxProgram
+ ++
‣ IsBBoxProgram
( obj )( category ) Each black box program in GAP lies in the filter
+ + + +IsBBoxProgram
.6.2-2 ScanBBoxProgram
+ ++
‣ ScanBBoxProgram
( string )( function ) Returns: a record containing the black box program encoded by the input string, or
+ +fail
.For a string string that describes a black box program, e.g., the return value of
+ +StringFile
(GAPDoc: StringFile),ScanBBoxProgram
computes this black box program. If this is successful then the return value is a record containing as the value of its componentprogram
the corresponding GAP object that represents the program, otherwisefail
is returned.As the first example, we construct a black box program that tries to find standard generators for the alternating group \(A_5\); these standard generators are any pair of elements of the orders \(2\) and \(3\), respectively, such that their product has order \(5\).
+ + ++ ++gap> findstr:= "\ +> set V 0\n\ +> lbl START1\n\ +> rand 1\n\ +> ord 1 A\n\ +> incr V\n\ +> if V gt 100 then timeout\n\ +> if A notin 1 2 3 5 then fail\n\ +> if A noteq 2 then jmp START1\n\ +> lbl START2\n\ +> rand 2\n\ +> ord 2 B\n\ +> incr V\n\ +> if V gt 100 then timeout\n\ +> if B notin 1 2 3 5 then fail\n\ +> if B noteq 3 then jmp START2\n\ +> # The elements 1 and 2 have the orders 2 and 3, respectively.\n\ +> set X 0\n\ +> lbl CONJ\n\ +> incr X\n\ +> if X gt 100 then timeout\n\ +> rand 3\n\ +> cjr 2 3\n\ +> mu 1 2 4 # ab\n\ +> ord 4 C\n\ +> if C notin 2 3 5 then fail\n\ +> if C noteq 5 then jmp CONJ\n\ +> oup 2 1 2";; +gap> find:= ScanBBoxProgram( findstr ); +rec( program := <black box program> ) +The second example is a black box program that checks whether its two inputs are standard generators for \(A_5\).
+ + ++ + + ++gap> checkstr:= "\ +> chor 1 2\n\ +> chor 2 3\n\ +> mu 1 2 3\n\ +> chor 3 5";; +gap> check:= ScanBBoxProgram( checkstr ); +rec( program := <black box program> ) +6.2-3 RunBBoxProgram
+ ++
‣ RunBBoxProgram
( prog, G, input, options )( function ) Returns: a record describing the result and the statistics of running the black box program prog, or
+ +fail
, or the string"timeout"
.For a black box program prog, a group G, a list input of group elements, and a record options,
+ +RunBBoxProgram
applies prog to input, where G is used only to compute random elements.The return value is
+ + +fail
if a syntax error or an explicitfail
statement is reached at runtime, and the string"timeout"
if atimeout
statement is reached. (The latter might mean that the random choices were unlucky.) Otherwise a record with the following components is returned.+
+- +
gens
- +
a list of group elements, bound if an
+ +oup
statement was reached,- +
result
- +
+ +
true
if atrue
statement was reached,false
if either afalse
statement or a failed order check was reached,The other components serve as statistical information about the numbers of the various operations (
+ +multiply
,invert
,power
,order
,random
,conjugate
,conjugateinplace
,commutator
), and the runtime in milliseconds (timetaken
).The following components of options are supported.
+ + ++
+- +
randomfunction
- +
the function called with argument G in order to compute a random element of G (default
+ +PseudoRandom
(Reference: PseudoRandom))- +
orderfunction
- +
the function for computing element orders (default
+ +Order
(Reference: Order)),- +
quiet
- +
if
+ +true
then ignoreecho
statements (defaultfalse
),- +
verbose
- +
if
+ +true
then print information about the line that is currently processed, and about order checks (defaultfalse
),- +
allowbreaks
- +
if
+ +true
then callError
(Reference: Error) when abreak
statement is reached, otherwise ignorebreak
statements (defaulttrue
).As an example, we run the black box programs constructed in the example for
+ + +ScanBBoxProgram
(6.2-2).+ + + ++gap> g:= AlternatingGroup( 5 );; +gap> res:= RunBBoxProgram( find.program, g, [], rec() );; +gap> IsBound( res.gens ); IsBound( res.result ); +true +false +gap> List( res.gens, Order ); +[ 2, 3 ] +gap> Order( Product( res.gens ) ); +5 +gap> res:= RunBBoxProgram( check.program, "dummy", res.gens, rec() );; +gap> IsBound( res.gens ); IsBound( res.result ); +false +true +gap> res.result; +true +gap> othergens:= GeneratorsOfGroup( g );; +gap> res:= RunBBoxProgram( check.program, "dummy", othergens, rec() );; +gap> res.result; +false +6.2-4 ResultOfBBoxProgram
+ ++
‣ ResultOfBBoxProgram
( prog, G )( function ) Returns: a list of group elements or
+ +true
,false
,fail
, or the string"timeout"
.This function calls
+ +RunBBoxProgram
(6.2-3) with the black box program prog and second argument either a group or a list of group elements; the default options ofRunBBoxProgram
(6.2-3) are assumed. The return value isfail
if this call yieldsfail
, otherwise thegens
component of the result, if bound, or theresult
component if not.Note that a group G is used as the second argument in the call of
+ +RunBBoxProgram
(6.2-3) (the source for random elements), whereas a list G is used as the third argument (the inputs).As an example, we run the black box programs constructed in the example for
+ + +ScanBBoxProgram
(6.2-2).+ + + ++gap> g:= AlternatingGroup( 5 );; +gap> res:= ResultOfBBoxProgram( find.program, g );; +gap> List( res, Order ); +[ 2, 3 ] +gap> Order( Product( res ) ); +5 +gap> res:= ResultOfBBoxProgram( check.program, res ); +true +gap> othergens:= GeneratorsOfGroup( g );; +gap> res:= ResultOfBBoxProgram( check.program, othergens ); +false +6.2-5 AsBBoxProgram
+ ++
‣ AsBBoxProgram
( slp )( attribute ) Returns: an equivalent black box program for the given straight line program or straight line decision.
+ +Let slp be a straight line program (see
+ + +IsStraightLineProgram
(Reference: IsStraightLineProgram)) or a straight line decision (seeIsStraightLineDecision
(6.1-1)). ThenAsBBoxProgram
returns a black box program bbox (seeIsBBoxProgram
(6.2-1)) with the "same" output as slp, in the sense thatResultOfBBoxProgram
(6.2-4) yields the same result for bbox asResultOfStraightLineProgram
(Reference: ResultOfStraightLineProgram) orResultOfStraightLineDecision
(6.1-6), respectively, for slp.+ + + ++gap> f:= FreeGroup( "x", "y" );; gens:= GeneratorsOfGroup( f );; +gap> slp:= StraightLineProgram( [ [1,2,2,3], [3,-1] ], 2 ); +<straight line program> +gap> ResultOfStraightLineProgram( slp, gens ); +y^-3*x^-2 +gap> bboxslp:= AsBBoxProgram( slp ); +<black box program> +gap> ResultOfBBoxProgram( bboxslp, gens ); +[ y^-3*x^-2 ] +gap> lines:= [ [ "Order", 1, 2 ], [ "Order", 2, 3 ], +> [ [ 1, 1, 2, 1 ], 3 ], [ "Order", 3, 5 ] ];; +gap> dec:= StraightLineDecision( lines, 2 ); +<straight line decision> +gap> ResultOfStraightLineDecision( dec, [ (1,2)(3,4), (1,3,5) ] ); +true +gap> ResultOfStraightLineDecision( dec, [ (1,2)(3,4), (1,3,4) ] ); +false +gap> bboxdec:= AsBBoxProgram( dec ); +<black box program> +gap> ResultOfBBoxProgram( bboxdec, [ (1,2)(3,4), (1,3,5) ] ); +true +gap> ResultOfBBoxProgram( bboxdec, [ (1,2)(3,4), (1,3,4) ] ); +false +6.2-6 AsStraightLineProgram
+ ++
‣ AsStraightLineProgram
( bbox )( attribute ) Returns: an equivalent straight line program for the given black box program, or
+ +fail
.For a black box program (see
+ + +AsBBoxProgram
(6.2-5)) bbox,AsStraightLineProgram
returns a straight line program (seeIsStraightLineProgram
(Reference: IsStraightLineProgram)) with the same output as bbox if such a straight line program exists, andfail
otherwise.+ + + ++gap> Display( AsStraightLineProgram( bboxslp ) ); +# input: +r:= [ g1, g2 ]; +# program: +r[3]:= r[1]^2; +r[4]:= r[2]^3; +r[5]:= r[3]*r[4]; +r[3]:= r[5]^-1; +# return values: +[ r[3] ] +gap> AsStraightLineProgram( bboxdec ); +fail +6.3 Representations of Minimal Degree
+ +This section deals with minimal degrees of permutation and matrix representations. We do not provide an algorithm that computes these degrees for an arbitrary group, we only provide some tools for evaluating known databases, mainly concerning "bicyclic extensions" (see [CCN+85, Section 6.5]) of simple groups, in order to derive the minimal degrees, see Section 6.3-4.
+ +In the AtlasRep package, this information can be used for prescribing "minimality conditions" in
+ + + +DisplayAtlasInfo
(3.5-1),OneAtlasGeneratingSetInfo
(3.5-6), andAllAtlasGeneratingSetInfos
(3.5-7). An overview of the stored minimal degrees can be shown withBrowseMinimalDegrees
(3.6-1).6.3-1 MinimalRepresentationInfo
+ ++
‣ MinimalRepresentationInfo
( grpname, conditions )( function ) Returns: a record with the components
+ +value
andsource
, orfail
Let grpname be the GAP name of a group \(G\), say. If the information described by conditions about minimal representations of this group can be computed or is stored then
+ +MinimalRepresentationInfo
returns a record with the componentsvalue
andsource
, otherwisefail
is returned.The following values for conditions are supported.
+ + ++
+- +
If conditions is
+ +NrMovedPoints
(Reference: NrMovedPoints for a permutation) thenvalue
, if known, is the degree of a minimal faithful (not necessarily transitive) permutation representation for \(G\).- +
If conditions consists of
+ +Characteristic
(Reference: Characteristic) and a prime integer p thenvalue
, if known, is the dimension of a minimal faithful (not necessarily irreducible) matrix representation in characteristic p for \(G\).- +
If conditions consists of
+ +Size
(Reference: Size) and a prime power q thenvalue
, if known, is the dimension of a minimal faithful (not necessarily irreducible) matrix representation over the field of size q for \(G\).In all cases, the value of the component
+ +source
is a list of strings that describe sources of the information, which can be the ordinary or modular character table of \(G\) (see [CCN+85], [JLPW95], [HL89]), the table of marks of \(G\), or [Jan05]. For an overview of minimal degrees of faithful matrix representations for sporadic simple groups and their covering groups, see alsohttp://www.math.rwth-aachen.de/~MOC/mindeg/.
+ +Note that
+ +MinimalRepresentationInfo
cannot provide any information about minimal representations over prescribed fields in characteristic zero.Information about groups that occur in the AtlasRep package is precomputed in
+ +MinimalRepresentationInfoData
(6.3-2), so the packages CTblLib and TomLib are not needed whenMinimalRepresentationInfo
is called for these groups. (The only case that is not covered by this list is that one asks for the minimal degree of matrix representations over a prescribed field in characteristic coprime to the group order.)One of the following strings can be given as an additional last argument.
+ + ++
+ +- +
"cache"
- +
means that the function tries to compute (and then store) values that are not stored in
+ +MinimalRepresentationInfoData
(6.3-2), but stored values are preferred; this is also the default.- +
"lookup"
- +
means that stored values are returned but the function does not attempt to compute values that are not stored in
+ +MinimalRepresentationInfoData
(6.3-2).- +
"recompute"
- +
means that the function always tries to compute the desired value, and checks the result against stored values.
+ ++ + + ++gap> MinimalRepresentationInfo( "A5", NrMovedPoints ); +rec( + source := [ "computed (alternating group)", + "computed (char. table)", "computed (subgroup tables)", + "computed (subgroup tables, known repres.)", + "computed (table of marks)" ], value := 5 ) +gap> MinimalRepresentationInfo( "A5", Characteristic, 2 ); +rec( source := [ "computed (char. table)" ], value := 2 ) +gap> MinimalRepresentationInfo( "A5", Size, 2 ); +rec( source := [ "computed (char. table)" ], value := 4 ) +6.3-2 MinimalRepresentationInfoData
+ ++
‣ MinimalRepresentationInfoData
( global variable ) This is a record whose components are GAP names of groups for which information about minimal permutation and matrix representations were known in advance or have been computed in the current GAP session. The value for the group \(G\), say, is a record with the following components.
+ + ++
+- +
NrMovedPoints
- +
a record with the components
+ +value
(the degree of a smallest faithful permutation representation of \(G\)) andsource
(a string describing the source of this information).- +
Characteristic
- +
a record whose components are at most
+ +0
and strings corresponding to prime integers, each bound to a record with the componentsvalue
(the degree of a smallest faithful matrix representation of \(G\) in this characteristic) andsource
(a string describing the source of this information).- +
CharacteristicAndSize
- +
a record whose components are strings corresponding to prime integers p, each bound to a record with the components
+ +sizes
(a list of powers q of p),dimensions
(the corresponding list of minimal dimensions of faithful matrix representations of \(G\) over a field of size q),sources
(the corresponding list of strings describing the source of this information), andcomplete
(a record with the componentsval
(true
if the minimal dimension over any finite field in characteristic p can be derived from the values in the record, andfalse
otherwise) andsource
(a string describing the source of this information)).The values are set by
+ + + +SetMinimalRepresentationInfo
(6.3-3).6.3-3 SetMinimalRepresentationInfo
+ ++
‣ SetMinimalRepresentationInfo
( grpname, op, value, source )( function ) Returns:
+ +true
if the values were successfully set,false
if stored values contradict the given ones.This function sets an entry in
+ +MinimalRepresentationInfoData
(6.3-2) for the group \(G\), say, with GAP name grpname.Supported values for op are
+ + ++
+- +
+ +
"NrMovedPoints"
(seeNrMovedPoints
(Reference: NrMovedPoints for a permutation)), which means that value is the degree of minimal faithful (not necessarily transitive) permutation representations of \(G\),- +
a list of length two with first entry
+ +"Characteristic"
(seeCharacteristic
(Reference: Characteristic)) and second entry char either zero or a prime integer, which means that value is the dimension of minimal faithful (not necessarily irreducible) matrix representations of \(G\) in characteristic char,- +
a list of length two with first entry
+ +"Size"
(seeSize
(Reference: Size)) and second entry a prime power q, which means that value is the dimension of minimal faithful (not necessarily irreducible) matrix representations of \(G\) over the field with q elements, and- +
a list of length three with first entry
+ +"Characteristic"
(seeCharacteristic
(Reference: Characteristic)), second entry a prime integer p, and third entry the string"complete"
, which means that the information stored for characteristic p is complete in the sense that for any given power \(q\) of p, the minimal faithful degree over the field with \(q\) elements equals that for the largest stored field size of which \(q\) is a power.In each case, source is a string describing the source of the data; computed values are detected from the prefix
+ +"comp"
of source.If the intended value is already stored and differs from value then an error message is printed.
+ + ++ + + ++gap> SetMinimalRepresentationInfo( "A5", "NrMovedPoints", 5, +> "computed (alternating group)" ); +true +gap> SetMinimalRepresentationInfo( "A5", [ "Characteristic", 0 ], 3, +> "computed (char. table)" ); +true +gap> SetMinimalRepresentationInfo( "A5", [ "Characteristic", 2 ], 2, +> "computed (char. table)" ); +true +gap> SetMinimalRepresentationInfo( "A5", [ "Size", 2 ], 4, +> "computed (char. table)" ); +true +gap> SetMinimalRepresentationInfo( "A5", [ "Size", 4 ], 2, +> "computed (char. table)" ); +true +gap> SetMinimalRepresentationInfo( "A5", [ "Characteristic", 3 ], 3, +> "computed (char. table)" ); +true +6.3-4 Criteria Used to Compute Minimality Information
+ +The information about the minimal degree of a faithful matrix representation of \(G\) in a given characteristic or over a given field in positive characteristic is derived from the relevant (ordinary or modular) character table of \(G\), except in a few cases where this table itself is not known but enough information about the degrees is available in [HL89] and [Jan05].
+ +The following criteria are used for deriving the minimal degree of a faithful permutation representation of \(G\) from the information in the GAP libraries of character tables and of tables of marks.
+ + ++
+ + +- +
If the name of \(G\) has the form
+ +"A
\(n\)"
or"A
\(n\).2"
(denoting alternating and symmetric groups, respectively) then the minimal degree is \(n\), except if \(n\) is smaller than \(3\) or \(2\), respectively.- +
If the name of \(G\) has the form
+ +"L2(
\(q\))"
(denoting projective special linear groups in dimension two) then the minimal degree is \(q + 1\), except if \(q \in \{ 2, 3, 5, 7, 9, 11 \}\), see [Hup67, Satz II.8.28].- +
If the largest maximal subgroup of \(G\) is core-free then the index of this subgroup is the minimal degree. (This is used when the two character tables in question and the class fusion are available in GAP's Character Table Library [Bre13]; this happens for many character tables of simple groups.)
+ +- +
If \(G\) has a unique minimal normal subgroup then each minimal faithful permutation representation is transitive. (Note that the core of each point stabilizer is either trivial or contains the unique minimal normal subgroup.)
+ +In this case, the minimal degree can be computed directly from the information in the table of marks of \(G\) if this is available in GAP's Library of Tables of Marks [NMP18].
+ +Suppose that the largest maximal subgroup of \(G\) is not core-free but simple and normal in \(G\), and that the other maximal subgroups of \(G\) are core-free. In this case, we take the minimum of the indices of the core-free maximal subgroups and of the product of index and minimal degree of the normal maximal subgroup. (This suffices since no core-free subgroup of the whole group can contain a nontrivial normal subgroup of a normal maximal subgroup.)
+ +Let \(N\) be the unique minimal normal subgroup of \(G\), and assume that \(G/N\) is simple and has minimal degree \(n\), say. If there is a subgroup \(U\) of index \(n \cdot |N|\) in \(G\) that intersects \(N\) trivially then the minimal degree of \(G\) is \(n \cdot |N|\). (This is used for the case that \(N\) is central in \(G\) and \(N \times U\) occurs as a subgroup of \(G\).)
+ +- +
If we know a subgroup of \(G\) whose minimal degree is \(n\), say, and if we know either (a class fusion from) a core-free subgroup of index \(n\) in \(G\) or a faithful permutation representation of degree \(n\) for \(G\) then \(n\) is the minimal degree for \(G\). (This happens often for tables of almost simple groups.)
+ +6.4 A JSON Interface
+ +We define a mapping between certain GAP objects and JSON (JavaScript Object Notation) texts (see [JSO14]), as follows.
+ + ++
+- +
The three GAP values
+ +true
,false
, andfail
correspond to the JSON textstrue
,false
, andnull
, respectively.- +
GAP strings correspond to JSON strings; special characters in a GAP string (control characters ASCII \(0\) to \(31\), backslash and double quote) are mapped as defined in JSON's specification, and other ASCII characters are kept as they are; if a GAP string contains non-ASCII characters, it is assumed that it is UTF-8 encoded, and one may choose either to keep non-ASCII characters as they are, or to create an ASCII only JSON string, using JSON's syntax for Unicode code points ("
+ +\uXXXX
"); in the other direction, JSON strings are assumed to be UTF-8 encoded, and are mapped to UTF-8 encoded GAP strings, by keeping the non-ASCII characters and converting substrings of the form\uXXXX
accordingly.- +
GAP integers (in the sense of
+ +IsInt
(Reference: IsInt)) are mapped to JSON numbers that consist of digits and optionally a leading sign character-
; in the other direction, JSON numbers of this form and also JSON numbers that involve no decimal dots and have no negative exponent (for example"2e3"
) are mapped to GAP integers.- +
GAP rationals (in the sense of
+ +IsRat
(Reference: IsRat)) which are not integers are represented by JSON floating point numbers; the JSON representation (and hence the precision) is given by first applyingFloat
(Reference: Float) and thenString
(Reference: String).- +
GAP floats (in the sense of Chapter Reference: Floats in the GAP Reference Manual) are mapped to JSON floating point numbers; the JSON representation (and hence the precision) is given by applying
+ +String
(Reference: String); in the other direction, JSON numbers that involve a decimal dot or a negative exponent are mapped to GAP floats.- +
(Nested and not self-referential) dense GAP lists of objects correspond to JSON arrays such that the list entries correspond to each other. (Note that JSON does not support non-dense arrays.)
+ +- +
(Nested and not self-referential) GAP records correspond to JSON objects such that both labels (which are strings in GAP and JSON) and values correspond to each other.
+ +The GAP functions
+ +AGR.JsonText
(6.4-2) andAGR.GapObjectOfJsonText
(6.4-3) can be used to create a JSON text from a suitable GAP object and the GAP object that corresponds to a given JSON text, respectively.Note that the composition of the two functions is in general not the identity mapping, because
+ +AGR.JsonText
(6.4-2) accepts non-integer rationals, whereasAGR.GapObjectOfJsonText
(6.4-3) does not create such objects.Note also that the results of
+ +AGR.JsonText
(6.4-2) do not contain information about dependencies between common subobjects. This is another reason why applying firstAGR.JsonText
(6.4-2) and thenAGR.GapObjectOfJsonText
(6.4-3) may yield a GAP object with different behaviour.Applying
+ + + +AGR.JsonText
(6.4-2) to a self-referential object such as[ ~ ]
will raise a "recursion depth trap" error.6.4-1 Why JSON?
+ +The aim of this JSON interface is to read and write certain data files with GAP such that these files become easily accessible independent of GAP. The function
+ +AGR.JsonText
(6.4-2) is intended just as a prototype, variants of this function are very likely to appear in other contexts, for example in order to force certain line formatting or ordering of record components.It is not the aim of the JSON interface to provide self-contained descriptions of arbitrary GAP objects, in order to read them into a GAP session. Note that those GAP objects for which a JSON equivalent exists (and many more) can be easily written to files as they are, and GAP can read them efficiently. On the other hand, more complicated GAP objects can be written and read via the so-called pickling, for which a framework is provided by the GAP package IO [Neu14].
+ +Here are a few situations which are handled well by pickling but which cannot be addressed with a JSON interface.
+ + ++
+ + +- +
Pickling and unpickling take care of common subobjects of the given GAP object. The following example shows that the applying first
+ + +AGR.JsonText
(6.4-2) and thenAGR.GapObjectOfJsonText
(6.4-3) may yield an object which behaves differently.+ ++gap> l:= [ [ 1 ] ];; l[2]:= l[1];; l; +[ [ 1 ], [ 1 ] ] +gap> new:= AGR.GapObjectOfJsonText( AGR.JsonText( l ) ).value; +[ [ 1 ], [ 1 ] ] +gap> Add( l[1], 2 ); l; +[ [ 1, 2 ], [ 1, 2 ] ] +gap> Add( new[1], 2 ); new; +[ [ 1, 2 ], [ 1 ] ] +- +
GAP admits self-referential objects, for example as follows.
+ + ++ ++gap> l:= [];; l[1]:= l;; +Pickling and unpickling take care of self-referential objects, but
+ +AGR.JsonText
(6.4-2) does not support the conversion of such objects.6.4-2 AGR.JsonText
+ ++
‣ AGR.JsonText
( obj[, mode] )( function ) Returns: a new mutable string that describes obj as a JSON text, or
+ +fail
.If obj is a GAP object for which a corresponding JSON text exists, according to the mapping described above, then such a JSON text is returned. Otherwise,
+ +fail
is returned.If the optional argument mode is given and has the value
+ + +"ASCII"
then the result in an ASCII string, otherwise the encoding of strings that are involved in obj is kept.+ + + ++gap> AGR.JsonText( [] ); +"[]" +gap> AGR.JsonText( "" ); +"\"\"" +gap> AGR.JsonText( "abc\ndef\cghi" ); +"\"abc\\ndef\\u0003ghi\"" +gap> AGR.JsonText( rec() ); +"{}" +gap> AGR.JsonText( [ , 2 ] ); +fail +gap> str:= [ '\303', '\266' ];; # umlaut o +gap> json:= AGR.JsonText( str );; List( json, IntChar ); +[ 34, 195, 182, 34 ] +gap> AGR.JsonText( str, "ASCII" ); +"\"\\u00F6\"" +6.4-3 AGR.GapObjectOfJsonText
+ ++
‣ AGR.GapObjectOfJsonText
( string )( function ) Returns: a new mutable record whose
+ +value
component, if bound, contains a mutable GAP object that represents the JSON text string.If string is a string that represents a JSON text then the result is a record with the components
+ + +value
(the corresponding GAP object in the sense of the above interface) andstatus
(valuetrue
). Otherwise, the result is a record with the componentsstatus
(valuefalse
) anderrpos
(the position in string where the string turns out to be not valid JSON).+ + + + + + + ++gap> AGR.GapObjectOfJsonText( "{ \"a\": 1 }" ); +rec( status := true, value := rec( a := 1 ) ) +gap> AGR.GapObjectOfJsonText( "{ \"a\": x }" ); +rec( errpos := 8, status := false ) +
+generated by GAPDoc2HTML
+ + diff -Nru gap-atlasrep-1.5.1/doc/chap6.txt gap-atlasrep-2.1.0/doc/chap6.txt --- gap-atlasrep-1.5.1/doc/chap6.txt 2016-04-06 12:18:13.000000000 +0000 +++ gap-atlasrep-2.1.0/doc/chap6.txt 2019-06-21 15:10:33.000000000 +0000 @@ -1,5 +1,5 @@ - [1X6 [33X[0;0YNew [5XGAP[105X[101X[1X Objects and Utility Functions Provided by the [5XAtlasRep[105X[101X[1X Package[133X[101X + [1X6 [33X[0;0YNew [5XGAP[105X[101X[1X Objects and Utility Functions provided by the [5XAtlasRep[105X[101X[1X Package[133X[101X [33X[0;0YThis chapter describes [5XGAP[105X objects and functions that are provided by the [5XAtlasRep[105X package but that might be of general interest.[133X @@ -8,16 +8,16 @@ programs (see Section [14X6.2[114X).[133X [33X[0;0YThe new functions are concerned with representations of minimal degree, see - Section [14X6.3[114X.[133X + Section [14X6.3[114X, and a JSON interface, see Section [14X6.4[114X.[133X [1X6.1 [33X[0;0YStraight Line Decisions[133X[101X [33X[0;0Y[13XStraight line decisions[113X are similar to straight line programs (see Section [14X'Reference: Straight Line Programs'[114X) but return [9Xtrue[109X or [9Xfalse[109X. A - straight line decisions checks a property for its inputs. An important - example is to check whether a given list of group generators is in fact a - list of standard generators (cf. Section[14X3.3[114X) for this group.[133X + straight line decision checks whether its inputs have some property. An + important example is to check whether a given list of group generators is in + fact a list of standard generators (cf. Section[14X3.3[114X) for this group.[133X [33X[0;0YA straight line decision in [5XGAP[105X is represented by an object in the filter [2XIsStraightLineDecision[102X ([14X6.1-1[114X) that stores a list of [21Xlines[121X each of which has @@ -32,7 +32,7 @@ [33X[0;0YThe first two forms have the same meaning as for straight line programs (see Section [14X'Reference: Straight Line Programs'[114X), the last form means a check - whether the element stored at the label [22Xi[122X-th has the order [22Xn[122X.[133X + whether the element stored at the [22Xi[122X-th label has the order [22Xn[122X.[133X [33X[0;0YFor the meaning of the list of lines, see [2XResultOfStraightLineDecision[102X ([14X6.1-6[114X).[133X @@ -58,14 +58,14 @@ [1X6.1-1 IsStraightLineDecision[101X - [29X[2XIsStraightLineDecision[102X( [3Xobj[103X ) [32X Category + [33X[1;0Y[29X[2XIsStraightLineDecision[102X( [3Xobj[103X ) [32X Category[133X [33X[0;0YEach straight line decision in [5XGAP[105X lies in the filter [2XIsStraightLineDecision[102X.[133X [1X6.1-2 LinesOfStraightLineDecision[101X - [29X[2XLinesOfStraightLineDecision[102X( [3Xprog[103X ) [32X operation + [33X[1;0Y[29X[2XLinesOfStraightLineDecision[102X( [3Xprog[103X ) [32X operation[133X [6XReturns:[106X [33X[0;10Ythe list of lines that define the straight line decision.[133X [33X[0;0YThis defining attribute for the straight line decision [3Xprog[103X (see @@ -83,7 +83,7 @@ [1X6.1-3 NrInputsOfStraightLineDecision[101X - [29X[2XNrInputsOfStraightLineDecision[102X( [3Xprog[103X ) [32X operation + [33X[1;0Y[29X[2XNrInputsOfStraightLineDecision[102X( [3Xprog[103X ) [32X operation[133X [6XReturns:[106X [33X[0;10Ythe number of inputs required for the straight line decision.[133X [33X[0;0YThis defining attribute corresponds to [2XNrInputsOfStraightLineProgram[102X @@ -96,7 +96,7 @@ [1X6.1-4 ScanStraightLineDecision[101X - [29X[2XScanStraightLineDecision[102X( [3Xstring[103X ) [32X function + [33X[1;0Y[29X[2XScanStraightLineDecision[102X( [3Xstring[103X ) [32X function[133X [6XReturns:[106X [33X[0;10Ya record containing the straight line decision, or [9Xfail[109X.[133X [33X[0;0YLet [3Xstring[103X be a string that encodes a straight line decision in the sense @@ -104,7 +104,7 @@ except that [10Xoup[110X lines are not allowed, and instead lines of the following form may occur.[133X - [8X[10Xchor [110X[22Xa[122X [22Xb[122X[108X + [8X[10Xchor [110X[8X[22Xa[122X [22Xb[122X[108X [33X[0;6Ymeans that it is checked whether the order of the element at label [22Xa[122X is [22Xb[122X.[133X @@ -134,8 +134,8 @@ [1X6.1-5 StraightLineDecision[101X - [29X[2XStraightLineDecision[102X( [3Xlines[103X[, [3Xnrgens[103X] ) [32X function - [29X[2XStraightLineDecisionNC[102X( [3Xlines[103X[, [3Xnrgens[103X] ) [32X function + [33X[1;0Y[29X[2XStraightLineDecision[102X( [3Xlines[103X[, [3Xnrgens[103X] ) [32X function[133X + [33X[1;0Y[29X[2XStraightLineDecisionNC[102X( [3Xlines[103X[, [3Xnrgens[103X] ) [32X function[133X [6XReturns:[106X [33X[0;10Ythe straight line decision given by the list of lines.[133X [33X[0;0YLet [3Xlines[103X be a list of lists that defines a unique straight line decision @@ -151,7 +151,7 @@ [1X6.1-6 ResultOfStraightLineDecision[101X - [29X[2XResultOfStraightLineDecision[102X( [3Xprog[103X, [3Xgens[103X[, [3Xorderfunc[103X] ) [32X operation + [33X[1;0Y[29X[2XResultOfStraightLineDecision[102X( [3Xprog[103X, [3Xgens[103X[, [3Xorderfunc[103X] ) [32X operation[133X [6XReturns:[106X [33X[0;10Y[9Xtrue[109X if all checks succeed, otherwise [9Xfalse[109X.[133X [33X[0;0Y[2XResultOfStraightLineDecision[102X evaluates the straight line decision @@ -231,8 +231,7 @@ trivial group, but the straight line decision that checks whether the order of [22Xx[122X is both [22X2[122X and [22X3[122X clearly always returns [9Xfalse[109X.)[133X - [33X[0;0YThe [5XATLAS[105X of Group Representations contains the following two kinds of - straight line decisions.[133X + [33X[0;0Y[5XAtlasRep[105X supports the following two kinds of straight line decisions.[133X [30X [33X[0;6YA [13Xpresentation[113X is a straight line decision [3Xdec[103X that is defined for a set of standard generators of a group [22XG[122X and that returns [9Xtrue[109X if and @@ -257,7 +256,7 @@ [33X[0;6YMore about semi-presentations can be found in [NW05].[133X [33X[0;0YAvailable presentations and semi-presentations are listed by - [2XDisplayAtlasInfo[102X ([14X3.5-1[114X), they can be accessed via [2XAtlasProgram[102X ([14X3.5-3[114X). + [2XDisplayAtlasInfo[102X ([14X3.5-1[114X), they can be accessed via [2XAtlasProgram[102X ([14X3.5-4[114X). (Clearly each presentation is also a semi-presentation. So a semi-presentation for some standard generators of a group is regarded as available whenever a presentation for these standard generators and this @@ -273,9 +272,11 @@ [4X[25Xgap>[125X [27Xcheck:= AtlasProgram( "L2(8)", "check" );[127X[104X [4X[28Xrec( groupname := "L2(8)", [128X[104X [4X[28X identifier := [ "L2(8)", "L28G1-check1", 1, 1 ], [128X[104X - [4X[28X program :=, standardization := 1 )[128X[104X + [4X[28X program := , standardization := 1, [128X[104X + [4X[28X version := "1" )[128X[104X [4X[25Xgap>[125X [27Xgens:= AtlasGenerators( "L2(8)", 1 );[127X[104X - [4X[28Xrec( charactername := "1a+8a", [128X[104X + [4X[28Xrec( charactername := "1a+8a", constituents := [ 1, 6 ], [128X[104X + [4X[28X contents := "core", [128X[104X [4X[28X generators := [ (1,2)(3,4)(6,7)(8,9), (1,3,2)(4,5,6)(7,8,9) ], [128X[104X [4X[28X groupname := "L2(8)", id := "", [128X[104X [4X[28X identifier := [ "L2(8)", [ "L28G1-p9B0.m1", "L28G1-p9B0.m2" ], 1, 9 [128X[104X @@ -286,7 +287,7 @@ [4X[25Xgap>[125X [27XResultOfStraightLineDecision( check.program, gens.generators );[127X[104X [4X[28Xtrue[128X[104X [4X[25Xgap>[125X [27Xgens:= AtlasGenerators( "L3(2)", 1 );[127X[104X - [4X[28Xrec( generators := [ (2,4)(3,5), (1,2,3)(5,6,7) ], [128X[104X + [4X[28Xrec( contents := "core", generators := [ (2,4)(3,5), (1,2,3)(5,6,7) ],[128X[104X [4X[28X groupname := "L3(2)", id := "a", [128X[104X [4X[28X identifier := [ "L3(2)", [ "L27G1-p7aB0.m1", "L27G1-p7aB0.m2" ], 1, [128X[104X [4X[28X 7 ], isPrimitive := true, maxnr := 1, p := 7, rankAction := 2, [128X[104X @@ -299,7 +300,7 @@ [1X6.1-8 AsStraightLineDecision[101X - [29X[2XAsStraightLineDecision[102X( [3Xbbox[103X ) [32X attribute + [33X[1;0Y[29X[2XAsStraightLineDecision[102X( [3Xbbox[103X ) [32X attribute[133X [6XReturns:[106X [33X[0;10Yan equivalent straight line decision for the given black box program, or [9Xfail[109X.[133X @@ -325,7 +326,7 @@ [1X6.1-9 StraightLineProgramFromStraightLineDecision[101X - [29X[2XStraightLineProgramFromStraightLineDecision[102X( [3Xdec[103X ) [32X operation + [33X[1;0Y[29X[2XStraightLineProgramFromStraightLineDecision[102X( [3Xdec[103X ) [32X operation[133X [6XReturns:[106X [33X[0;10Ythe straight line program associated to the given straight line decision.[133X @@ -418,7 +419,7 @@ [33X[0;0YThe special case of the [21Xfind[121X scripts mentioned above is also admissible as an argument of [2XResultOfBBoxProgram[102X ([14X6.2-4[114X), which returns either the set of - generators or [9Xfail[109X.[133X + found generators or [9Xfail[109X.[133X [33X[0;0YContrary to the general situation, more support is provided for straight line programs and straight line decisions in [5XGAP[105X, see Section [14X'Reference: @@ -433,9 +434,9 @@ straight line program or from a straight line decision with [2XAsBBoxProgram[102X ([14X6.2-5[114X).[133X - [33X[0;0Y(Computing a straight line program related to a given straight line decision + [33X[0;0YComputing a straight line program related to a given straight line decision is supported in the sense of [2XStraightLineProgramFromStraightLineDecision[102X - ([14X6.1-9[114X).)[133X + ([14X6.1-9[114X).[133X [33X[0;0YNote that none of these three kinds of objects is a special case of another: Running a black box program with [2XRunBBoxProgram[102X ([14X6.2-3[114X) yields a record, @@ -446,13 +447,13 @@ [1X6.2-1 IsBBoxProgram[101X - [29X[2XIsBBoxProgram[102X( [3Xobj[103X ) [32X Category + [33X[1;0Y[29X[2XIsBBoxProgram[102X( [3Xobj[103X ) [32X Category[133X [33X[0;0YEach black box program in [5XGAP[105X lies in the filter [2XIsBBoxProgram[102X.[133X [1X6.2-2 ScanBBoxProgram[101X - [29X[2XScanBBoxProgram[102X( [3Xstring[103X ) [32X function + [33X[1;0Y[29X[2XScanBBoxProgram[102X( [3Xstring[103X ) [32X function[133X [6XReturns:[106X [33X[0;10Ya record containing the black box program encoded by the input string, or [9Xfail[109X.[133X @@ -515,7 +516,7 @@ [1X6.2-3 RunBBoxProgram[101X - [29X[2XRunBBoxProgram[102X( [3Xprog[103X, [3XG[103X, [3Xinput[103X, [3Xoptions[103X ) [32X function + [33X[1;0Y[29X[2XRunBBoxProgram[102X( [3Xprog[103X, [3XG[103X, [3Xinput[103X, [3Xoptions[103X ) [32X function[133X [6XReturns:[106X [33X[0;10Ya record describing the result and the statistics of running the black box program [3Xprog[103X, or [9Xfail[109X, or the string [10X"timeout"[110X.[133X @@ -528,10 +529,10 @@ reached. (The latter might mean that the random choices were unlucky.) Otherwise a record with the following components is returned.[133X - [8X[10Xgens[110X[108X + [8X[10Xgens[110X[8X[108X [33X[0;6Ya list of group elements, bound if an [10Xoup[110X statement was reached,[133X - [8X[10Xresult[110X[108X + [8X[10Xresult[110X[8X[108X [33X[0;6Y[9Xtrue[109X if a [10Xtrue[110X statement was reached, [9Xfalse[109X if either a [10Xfalse[110X statement or a failed order check was reached,[133X @@ -541,22 +542,22 @@ [33X[0;0YThe following components of [3Xoptions[103X are supported.[133X - [8X[10Xrandomfunction[110X[108X + [8X[10Xrandomfunction[110X[8X[108X [33X[0;6Ythe function called with argument [3XG[103X in order to compute a random element of [3XG[103X (default [2XPseudoRandom[102X ([14XReference: PseudoRandom[114X))[133X - [8X[10Xorderfunction[110X[108X - [33X[0;6Ythe function for computing element orders (the default is [2XOrder[102X - ([14XReference: Order[114X)),[133X + [8X[10Xorderfunction[110X[8X[108X + [33X[0;6Ythe function for computing element orders (default [2XOrder[102X ([14XReference: + Order[114X)),[133X - [8X[10Xquiet[110X[108X + [8X[10Xquiet[110X[8X[108X [33X[0;6Yif [9Xtrue[109X then ignore [10Xecho[110X statements (default [9Xfalse[109X),[133X - [8X[10Xverbose[110X[108X + [8X[10Xverbose[110X[8X[108X [33X[0;6Yif [9Xtrue[109X then print information about the line that is currently processed, and about order checks (default [9Xfalse[109X),[133X - [8X[10Xallowbreaks[110X[108X + [8X[10Xallowbreaks[110X[8X[108X [33X[0;6Yif [9Xtrue[109X then call [2XError[102X ([14XReference: Error[114X) when a [10Xbreak[110X statement is reached, otherwise ignore [10Xbreak[110X statements (default [9Xtrue[109X).[133X @@ -587,15 +588,19 @@ [1X6.2-4 ResultOfBBoxProgram[101X - [29X[2XResultOfBBoxProgram[102X( [3Xprog[103X, [3XG[103X ) [32X function + [33X[1;0Y[29X[2XResultOfBBoxProgram[102X( [3Xprog[103X, [3XG[103X ) [32X function[133X [6XReturns:[106X [33X[0;10Ya list of group elements or [9Xtrue[109X, [9Xfalse[109X, [9Xfail[109X, or the string [10X"timeout"[110X.[133X [33X[0;0YThis function calls [2XRunBBoxProgram[102X ([14X6.2-3[114X) with the black box program [3Xprog[103X and second argument either a group or a list of group elements; the default - options are assumed. The return value is [9Xfail[109X if this call yields [9Xfail[109X, - otherwise the [10Xgens[110X component of the result, if bound, or the [10Xresult[110X - component if not.[133X + options of [2XRunBBoxProgram[102X ([14X6.2-3[114X) are assumed. The return value is [9Xfail[109X if + this call yields [9Xfail[109X, otherwise the [10Xgens[110X component of the result, if bound, + or the [10Xresult[110X component if not.[133X + + [33X[0;0YNote that a [13Xgroup[113X [3XG[103X is used as the second argument in the call of + [2XRunBBoxProgram[102X ([14X6.2-3[114X) (the source for random elements), whereas a [13Xlist[113X [3XG[103X is + used as the third argument (the inputs).[133X [33X[0;0YAs an example, we run the black box programs constructed in the example for [2XScanBBoxProgram[102X ([14X6.2-2[114X).[133X @@ -616,7 +621,7 @@ [1X6.2-5 AsBBoxProgram[101X - [29X[2XAsBBoxProgram[102X( [3Xslp[103X ) [32X attribute + [33X[1;0Y[29X[2XAsBBoxProgram[102X( [3Xslp[103X ) [32X attribute[133X [6XReturns:[106X [33X[0;10Yan equivalent black box program for the given straight line program or straight line decision.[133X @@ -656,7 +661,7 @@ [1X6.2-6 AsStraightLineProgram[101X - [29X[2XAsStraightLineProgram[102X( [3Xbbox[103X ) [32X attribute + [33X[1;0Y[29X[2XAsStraightLineProgram[102X( [3Xbbox[103X ) [32X attribute[133X [6XReturns:[106X [33X[0;10Yan equivalent straight line program for the given black box program, or [9Xfail[109X.[133X @@ -686,18 +691,17 @@ [33X[0;0YThis section deals with minimal degrees of permutation and matrix representations. We do not provide an algorithm that computes these degrees for an arbitrary group, we only provide some tools for evaluating known - databases, mainly concerning [21Xbicyclic extensions[121X (see [CCNPW85, - Section 6.5]) of simple groups, in order to derive the minimal degrees, see - Section [14X6.3-4[114X.[133X + databases, mainly concerning [21Xbicyclic extensions[121X (see [CCN+85, Section 6.5]) + of simple groups, in order to derive the minimal degrees, see Section [14X6.3-4[114X.[133X [33X[0;0YIn the [5XAtlasRep[105X package, this information can be used for prescribing [21Xminimality conditions[121X in [2XDisplayAtlasInfo[102X ([14X3.5-1[114X), [2XOneAtlasGeneratingSetInfo[102X - ([14X3.5-5[114X), and [2XAllAtlasGeneratingSetInfos[102X ([14X3.5-6[114X). An overview of the stored + ([14X3.5-6[114X), and [2XAllAtlasGeneratingSetInfos[102X ([14X3.5-7[114X). An overview of the stored minimal degrees can be shown with [2XBrowseMinimalDegrees[102X ([14X3.6-1[114X).[133X [1X6.3-1 MinimalRepresentationInfo[101X - [29X[2XMinimalRepresentationInfo[102X( [3Xgrpname[103X, [3Xconditions[103X ) [32X function + [33X[1;0Y[29X[2XMinimalRepresentationInfo[102X( [3Xgrpname[103X, [3Xconditions[103X ) [32X function[133X [6XReturns:[106X [33X[0;10Ya record with the components [10Xvalue[110X and [10Xsource[110X, or [9Xfail[109X[133X [33X[0;0YLet [3Xgrpname[103X be the [5XGAP[105X name of a group [22XG[122X, say. If the information described @@ -707,10 +711,9 @@ [33X[0;0YThe following values for [3Xconditions[103X are supported.[133X - [30X [33X[0;6YIf [3Xconditions[103X is [2XNrMovedPoints[102X ([14XReference: NrMovedPoints (for a - permutation)[114X) then [10Xvalue[110X, if known, is the degree of a minimal - faithful (not necessarily transitive) permutation representation for - [22XG[122X.[133X + [30X [33X[0;6YIf [3Xconditions[103X is [2XNrMovedPoints[102X ([14XReference: NrMovedPoints for a + permutation[114X) then [10Xvalue[110X, if known, is the degree of a minimal faithful + (not necessarily transitive) permutation representation for [22XG[122X.[133X [30X [33X[0;6YIf [3Xconditions[103X consists of [2XCharacteristic[102X ([14XReference: Characteristic[114X) and a prime integer [3Xp[103X then [10Xvalue[110X, if known, is the dimension of a @@ -724,8 +727,8 @@ [33X[0;0YIn all cases, the value of the component [10Xsource[110X is a list of strings that describe sources of the information, which can be the ordinary or modular - character table of [22XG[122X (see [CCNPW85], [JLPW95], [HL89]), the table of marks - of [22XG[122X, or [Jan05]. For an overview of minimal degrees of faithful matrix + character table of [22XG[122X (see [CCN+85], [JLPW95], [HL89]), the table of marks of + [22XG[122X, or [Jan05]. For an overview of minimal degrees of faithful matrix representations for sporadic simple groups and their covering groups, see also[133X @@ -743,17 +746,17 @@ [33X[0;0YOne of the following strings can be given as an additional last argument.[133X - [8X[10X"cache"[110X[108X + [8X[10X"cache"[110X[8X[108X [33X[0;6Ymeans that the function tries to compute (and then store) values that are not stored in [2XMinimalRepresentationInfoData[102X ([14X6.3-2[114X), but stored values are preferred; this is also the default.[133X - [8X[10X"lookup"[110X[108X + [8X[10X"lookup"[110X[8X[108X [33X[0;6Ymeans that stored values are returned but the function does not attempt to compute values that are not stored in [2XMinimalRepresentationInfoData[102X ([14X6.3-2[114X).[133X - [8X[10X"recompute"[110X[108X + [8X[10X"recompute"[110X[8X[108X [33X[0;6Ymeans that the function always tries to compute the desired value, and checks the result against stored values.[133X @@ -772,26 +775,26 @@ [1X6.3-2 MinimalRepresentationInfoData[101X - [29X[2XMinimalRepresentationInfoData[102X[32X global variable + [33X[1;0Y[29X[2XMinimalRepresentationInfoData[102X[32X global variable[133X [33X[0;0YThis is a record whose components are [5XGAP[105X names of groups for which information about minimal permutation and matrix representations were known in advance or have been computed in the current [5XGAP[105X session. The value for the group [22XG[122X, say, is a record with the following components.[133X - [8X[10XNrMovedPoints[110X[108X + [8X[10XNrMovedPoints[110X[8X[108X [33X[0;6Ya record with the components [10Xvalue[110X (the degree of a smallest faithful permutation representation of [22XG[122X) and [10Xsource[110X (a string describing the source of this information).[133X - [8X[10XCharacteristic[110X[108X + [8X[10XCharacteristic[110X[8X[108X [33X[0;6Ya record whose components are at most [10X0[110X and strings corresponding to prime integers, each bound to a record with the components [10Xvalue[110X (the degree of a smallest faithful matrix representation of [22XG[122X in this characteristic) and [10Xsource[110X (a string describing the source of this information).[133X - [8X[10XCharacteristicAndSize[110X[108X + [8X[10XCharacteristicAndSize[110X[8X[108X [33X[0;6Ya record whose components are strings corresponding to prime integers [3Xp[103X, each bound to a record with the components [10Xsizes[110X (a list of powers [3Xq[103X of [3Xp[103X), [10Xdimensions[110X (the corresponding list of minimal dimensions of @@ -806,7 +809,7 @@ [1X6.3-3 SetMinimalRepresentationInfo[101X - [29X[2XSetMinimalRepresentationInfo[102X( [3Xgrpname[103X, [3Xop[103X, [3Xvalue[103X, [3Xsource[103X ) [32X function + [33X[1;0Y[29X[2XSetMinimalRepresentationInfo[102X( [3Xgrpname[103X, [3Xop[103X, [3Xvalue[103X, [3Xsource[103X ) [32X function[133X [6XReturns:[106X [33X[0;10Y[9Xtrue[109X if the values were successfully set, [9Xfalse[109X if stored values contradict the given ones.[133X @@ -815,8 +818,8 @@ [33X[0;0YSupported values for [3Xop[103X are[133X - [30X [33X[0;6Y[10X"NrMovedPoints"[110X (see [2XNrMovedPoints[102X ([14XReference: NrMovedPoints (for a - permutation)[114X)), which means that [3Xvalue[103X is the degree of minimal + [30X [33X[0;6Y[10X"NrMovedPoints"[110X (see [2XNrMovedPoints[102X ([14XReference: NrMovedPoints for a + permutation[114X)), which means that [3Xvalue[103X is the degree of minimal faithful (not necessarily transitive) permutation representations of [22XG[122X,[133X @@ -890,15 +893,17 @@ [30X [33X[0;6YIf the largest maximal subgroup of [22XG[122X is core-free then the index of this subgroup is the minimal degree. (This is used when the two character tables in question and the class fusion are available in - [5XGAP[105X's Character Table Library ([Bre13]); this happens for many - character tables of simple groups.)[133X + [5XGAP[105X's Character Table Library [Bre13]; this happens for many character + tables of simple groups.)[133X [30X [33X[0;6YIf [22XG[122X has a unique minimal normal subgroup then each minimal faithful - permutation representation is transitive.[133X + permutation representation is transitive. (Note that the core of each + point stabilizer is either trivial or contains the unique minimal + normal subgroup.)[133X [33X[0;6YIn this case, the minimal degree can be computed directly from the information in the table of marks of [22XG[122X if this is available in [5XGAP[105X's - Library of Tables of Marks ([NMP13]).[133X + Library of Tables of Marks [NMP18].[133X [33X[0;6YSuppose that the largest maximal subgroup of [22XG[122X is not core-free but simple and normal in [22XG[122X, and that the other maximal subgroups of [22XG[122X are @@ -920,3 +925,162 @@ the minimal degree for [22XG[122X. (This happens often for tables of almost simple groups.)[133X + + [1X6.4 [33X[0;0YA JSON Interface[133X[101X + + [33X[0;0YWe define a mapping between certain [5XGAP[105X objects and JSON (JavaScript Object + Notation) texts (see [JSO14]), as follows.[133X + + [30X [33X[0;6YThe three [5XGAP[105X values [9Xtrue[109X, [9Xfalse[109X, and [9Xfail[109X correspond to the JSON + texts [10Xtrue[110X, [10Xfalse[110X, and [10Xnull[110X, respectively.[133X + + [30X [33X[0;6Y[5XGAP[105X strings correspond to JSON strings; special characters in a [5XGAP[105X + string (control characters ASCII [22X0[122X to [22X31[122X, backslash and double quote) + are mapped as defined in JSON's specification, and other ASCII + characters are kept as they are; if a [5XGAP[105X string contains non-ASCII + characters, it is assumed that it is UTF-8 encoded, and one may choose + either to keep non-ASCII characters as they are, or to create an ASCII + only JSON string, using JSON's syntax for Unicode code points + ([21X[10X\uXXXX[110X[121X); in the other direction, JSON strings are assumed to be UTF-8 + encoded, and are mapped to UTF-8 encoded [5XGAP[105X strings, by keeping the + non-ASCII characters and converting substrings of the form [10X\uXXXX[110X + accordingly.[133X + + [30X [33X[0;6Y[5XGAP[105X integers (in the sense of [2XIsInt[102X ([14XReference: IsInt[114X)) are mapped to + JSON numbers that consist of digits and optionally a leading sign + character [10X-[110X; in the other direction, JSON numbers of this form and + also JSON numbers that involve no decimal dots and have no negative + exponent (for example [10X"2e3"[110X) are mapped to [5XGAP[105X integers.[133X + + [30X [33X[0;6Y[5XGAP[105X rationals (in the sense of [2XIsRat[102X ([14XReference: IsRat[114X)) which are not + integers are represented by JSON floating point numbers; the JSON + representation (and hence the precision) is given by first applying + [2XFloat[102X ([14XReference: Float[114X) and then [2XString[102X ([14XReference: String[114X).[133X + + [30X [33X[0;6Y[5XGAP[105X floats (in the sense of Chapter [14X'Reference: Floats'[114X in the [5XGAP[105X + Reference Manual) are mapped to JSON floating point numbers; the JSON + representation (and hence the precision) is given by applying [2XString[102X + ([14XReference: String[114X); in the other direction, JSON numbers that involve + a decimal dot or a negative exponent are mapped to [5XGAP[105X floats.[133X + + [30X [33X[0;6Y(Nested and not self-referential) dense [5XGAP[105X lists of objects + correspond to JSON arrays such that the list entries correspond to + each other. (Note that JSON does not support non-dense arrays.)[133X + + [30X [33X[0;6Y(Nested and not self-referential) [5XGAP[105X records correspond to JSON + objects such that both labels (which are strings in [5XGAP[105X and JSON) and + values correspond to each other.[133X + + [33X[0;0YThe [5XGAP[105X functions [2XAGR.JsonText[102X ([14X6.4-2[114X) and [2XAGR.GapObjectOfJsonText[102X ([14X6.4-3[114X) + can be used to create a JSON text from a suitable [5XGAP[105X object and the [5XGAP[105X + object that corresponds to a given JSON text, respectively.[133X + + [33X[0;0YNote that the composition of the two functions is in general [13Xnot[113X the + identity mapping, because [2XAGR.JsonText[102X ([14X6.4-2[114X) accepts non-integer + rationals, whereas [2XAGR.GapObjectOfJsonText[102X ([14X6.4-3[114X) does not create such + objects.[133X + + [33X[0;0YNote also that the results of [2XAGR.JsonText[102X ([14X6.4-2[114X) do not contain + information about dependencies between common subobjects. This is another + reason why applying first [2XAGR.JsonText[102X ([14X6.4-2[114X) and then + [2XAGR.GapObjectOfJsonText[102X ([14X6.4-3[114X) may yield a [5XGAP[105X object with different + behaviour.[133X + + [33X[0;0YApplying [2XAGR.JsonText[102X ([14X6.4-2[114X) to a self-referential object such as [10X[ ~ ][110X + will raise a [21Xrecursion depth trap[121X error.[133X + + + [1X6.4-1 [33X[0;0YWhy JSON?[133X[101X + + [33X[0;0YThe aim of this JSON interface is to read and write certain data files with + [5XGAP[105X such that these files become easily accessible independent of [5XGAP[105X. The + function [2XAGR.JsonText[102X ([14X6.4-2[114X) is intended just as a prototype, variants of + this function are very likely to appear in other contexts, for example in + order to force certain line formatting or ordering of record components.[133X + + [33X[0;0YIt is [13Xnot[113X the aim of the JSON interface to provide self-contained + descriptions of arbitrary [5XGAP[105X objects, in order to read them into a [5XGAP[105X + session. Note that those [5XGAP[105X objects for which a JSON equivalent exists (and + many more) can be easily written to files as they are, and [5XGAP[105X can read them + efficiently. On the other hand, more complicated [5XGAP[105X objects can be written + and read via the so-called [13Xpickling[113X, for which a framework is provided by + the [5XGAP[105X package [5XIO[105X [Neu14].[133X + + [33X[0;0YHere are a few situations which are handled well by pickling but which + cannot be addressed with a JSON interface.[133X + + [30X [33X[0;6YPickling and unpickling take care of common subobjects of the given + [5XGAP[105X object. The following example shows that the applying first + [2XAGR.JsonText[102X ([14X6.4-2[114X) and then [2XAGR.GapObjectOfJsonText[102X ([14X6.4-3[114X) may + yield an object which behaves differently.[133X + + [4X [32X Example [32X[104X + [4X[25Xgap>[125X [27Xl:= [ [ 1 ] ];; l[2]:= l[1];; l;[127X[104X + [4X[28X[ [ 1 ], [ 1 ] ][128X[104X + [4X[25Xgap>[125X [27Xnew:= AGR.GapObjectOfJsonText( AGR.JsonText( l ) ).value;[127X[104X + [4X[28X[ [ 1 ], [ 1 ] ][128X[104X + [4X[25Xgap>[125X [27XAdd( l[1], 2 ); l;[127X[104X + [4X[28X[ [ 1, 2 ], [ 1, 2 ] ][128X[104X + [4X[25Xgap>[125X [27XAdd( new[1], 2 ); new;[127X[104X + [4X[28X[ [ 1, 2 ], [ 1 ] ][128X[104X + [4X[32X[104X + + [30X [33X[0;6Y[5XGAP[105X admits self-referential objects, for example as follows.[133X + + [4X [32X Example [32X[104X + [4X[25Xgap>[125X [27Xl:= [];; l[1]:= l;;[127X[104X + [4X[32X[104X + + [33X[0;6YPickling and unpickling take care of self-referential objects, but + [2XAGR.JsonText[102X ([14X6.4-2[114X) does not support the conversion of such objects.[133X + + [1X6.4-2 AGR.JsonText[101X + + [33X[1;0Y[29X[2XAGR.JsonText[102X( [3Xobj[103X[, [3Xmode[103X] ) [32X function[133X + [6XReturns:[106X [33X[0;10Ya new mutable string that describes [3Xobj[103X as a JSON text, or [9Xfail[109X.[133X + + [33X[0;0YIf [3Xobj[103X is a [5XGAP[105X object for which a corresponding JSON text exists, according + to the mapping described above, then such a JSON text is returned. + Otherwise, [9Xfail[109X is returned.[133X + + [33X[0;0YIf the optional argument [3Xmode[103X is given and has the value [10X"ASCII"[110X then the + result in an ASCII string, otherwise the encoding of strings that are + involved in [3Xobj[103X is kept.[133X + + [4X[32X Example [32X[104X + [4X[25Xgap>[125X [27XAGR.JsonText( [] );[127X[104X + [4X[28X"[]"[128X[104X + [4X[25Xgap>[125X [27XAGR.JsonText( "" );[127X[104X + [4X[28X"\"\""[128X[104X + [4X[25Xgap>[125X [27XAGR.JsonText( "abc\ndef\cghi" );[127X[104X + [4X[28X"\"abc\\ndef\\u0003ghi\""[128X[104X + [4X[25Xgap>[125X [27XAGR.JsonText( rec() );[127X[104X + [4X[28X"{}"[128X[104X + [4X[25Xgap>[125X [27XAGR.JsonText( [ , 2 ] );[127X[104X + [4X[28Xfail[128X[104X + [4X[25Xgap>[125X [27Xstr:= [ '\303', '\266' ];; # umlaut o[127X[104X + [4X[25Xgap>[125X [27Xjson:= AGR.JsonText( str );; List( json, IntChar );[127X[104X + [4X[28X[ 34, 195, 182, 34 ][128X[104X + [4X[25Xgap>[125X [27XAGR.JsonText( str, "ASCII" );[127X[104X + [4X[28X"\"\\u00F6\""[128X[104X + [4X[32X[104X + + [1X6.4-3 AGR.GapObjectOfJsonText[101X + + [33X[1;0Y[29X[2XAGR.GapObjectOfJsonText[102X( [3Xstring[103X ) [32X function[133X + [6XReturns:[106X [33X[0;10Ya new mutable record whose [10Xvalue[110X component, if bound, contains a + mutable [5XGAP[105X object that represents the JSON text [3Xstring[103X.[133X + + [33X[0;0YIf [3Xstring[103X is a string that represents a JSON text then the result is a + record with the components [10Xvalue[110X (the corresponding [5XGAP[105X object in the sense + of the above interface) and [10Xstatus[110X (value [9Xtrue[109X). Otherwise, the result is a + record with the components [10Xstatus[110X (value [9Xfalse[109X) and [10Xerrpos[110X (the position in + [3Xstring[103X where the string turns out to be not valid JSON).[133X + + [4X[32X Example [32X[104X + [4X[25Xgap>[125X [27XAGR.GapObjectOfJsonText( "{ \"a\": 1 }" );[127X[104X + [4X[28Xrec( status := true, value := rec( a := 1 ) )[128X[104X + [4X[25Xgap>[125X [27XAGR.GapObjectOfJsonText( "{ \"a\": x }" );[127X[104X + [4X[28Xrec( errpos := 8, status := false )[128X[104X + [4X[32X[104X + diff -Nru gap-atlasrep-1.5.1/doc/chap7.html gap-atlasrep-2.1.0/doc/chap7.html --- gap-atlasrep-1.5.1/doc/chap7.html 2016-04-06 12:18:27.000000000 +0000 +++ gap-atlasrep-2.1.0/doc/chap7.html 2019-06-21 15:10:33.000000000 +0000 @@ -19,18 +19,17 @@ - - 7 Technicalities of the AtlasRep Package -7.1 Global Variables Used by the AtlasRep Package - + + + -7.4 Reading and Writing ATLAS Straight Line Programs + -7.5 Data Types Used in the ATLAS of Group Representations + -7.6 Filenames Used in the ATLAS of Group Representations + -- + -7.7 The Tables of Contents of the ATLAS of Group Representations - + + -- +7 Technicalities of the AtlasRep Package
-This chapter describes those parts of the GAP interface to the ATLAS of Group Representations that do not belong to the user interface (cf. Chapter 3).
+This chapter describes those parts of the GAP interface to the ATLAS of Group Representations that do not belong to the user interface (cf. Chapter 3).
-Besides global variables used for administrational purposes (see Section 7.1) and several sanity checks (see Section 7.8), they can be regarded as the interface between the data actually contained in the files and the corresponding GAP objects (see Section 7.2, 7.3, 7.4, and 7.5), and the interface between the remote and the local version of the database (see Section 7.6 and 7.7). The former interface contains functions to read and write files in MeatAxe format, which may be interesting for users familiar with MeatAxe standalones (see for example [Rin]). Other low level functions may be undocumented in the sense that they are not described in this manual. Users interested in them may look at the actual implementation in the
+gap
directory of the package, but it may happen that this will be changed in future versions of the package.Besides global variables used for administrational purposes (see Section 7.1) and several sanity checks (see Section 7.9), they can be regarded as the interface between the data actually contained in the files and the corresponding GAP objects (see Section 7.2, 7.3, 7.4, and 7.5), and the interface between the remote and the local version of the database (see Section 7.6 and 7.8). The former interface contains functions to read and write files in MeatAxe format, which may be interesting for users familiar with MeatAxe standalones (see for example [Rin]). Other low level functions may be undocumented in the sense that they are not described in this manual. Users interested in them may look at the actual implementation in the
- + -gap
directory of the package, but it may happen that this will be changed in future versions of the package.7.1 Global Variables Used by the AtlasRep Package -
+7.1 Global Variables Used by the AtlasRep Package
-For debugging purposes, the functions from the GAP interface to the ATLAS of Group Representations print information depending on the info level of the info classes
+InfoAtlasRep
(7.1-1),InfoCMeatAxe
(7.1-2), andInfoBBox
(7.1-3) (cf. Reference: Info Functions).For debugging purposes, AtlasRep functions print information depending on the info level of the info classes
-InfoAtlasRep
(7.1-1),InfoCMeatAxe
(7.1-2), andInfoBBox
(7.1-3) (cf. Reference: Info Functions).The info level of an info class can be changed using
- -SetInfoLevel
(Reference: SetInfoLevel). For example, the info level ofInfoAtlasRep
(7.1-1) can be set to the nonnegative integer n usingSetInfoLevel( InfoAtlasRep, n )
.Information about files being read can be obtained by setting the value of the global variable
+InfoRead1
toThe info level of an info class can be changed using
SetInfoLevel
(Reference: InfoLevel). For example, the info level ofInfoAtlasRep
(7.1-1) can be set to the nonnegative integer n usingSetInfoLevel( InfoAtlasRep,
n)
.7.1-1 InfoAtlasRep
--
‣ InfoAtlasRep
( info class ) If the info level of
+InfoAtlasRep
is at least 1 then information aboutfail
results of functions in the AtlasRep package is printed. If the info level is at least 2 then information about calls to external programs is printed. The default level is 0, no information is printed on this level.+
‣ InfoAtlasRep
( info class ) If the info level of
InfoAtlasRep
is at least 1 then information aboutfail
results of AtlasRep functions is printed. If the info level is at least 2 then also information about calls to external programs is printed. The default level is 0, no information is printed on this level.7.1-2 InfoCMeatAxe
--
‣ InfoCMeatAxe
( info class ) If the info level of
+InfoCMeatAxe
is at least 1 then information aboutfail
results ofC
-MeatAxe functions is printed. The default level is zero, no information is printed on this level.+
‣ InfoCMeatAxe
( info class ) If the info level of
InfoCMeatAxe
is at least 1 then information aboutfail
results ofC
-MeatAxe functions (see Section 7.3) is printed. The default level is zero, no information is printed on this level.7.1-3 InfoBBox
-+
‣ InfoBBox
( info class )
‣ InfoBBox
( info class ) If the info level of
- - -InfoBBox
is at least 1 then information aboutfail
results of functions dealing with black box programs (see Section 6.2) is printed. The default level is 0, no information is printed on this level.7.1-4 CMeatAxe.FastRead
- --
‣ CMeatAxe.FastRead
( global variable ) If this component is bound and has the value
- -true
thenScanMeatAxeFile
(7.3-1) reads text files viaStringFile
(GAPDoc: StringFile). Otherwise each file containing a matrix over a finite field is read line by line viaReadLine
(Reference: ReadLine), and the GAP matrix is constructed line by line, in a compressed representation (see Reference: Row Vectors over Finite Fields and Reference: Matrices over Finite Fields), which makes it possible to read large matrices in a reasonable amount of space. TheStringFile
(GAPDoc: StringFile) approach is faster but needs more intermediate space when text files containing matrices over finite fields are read.7.1-5 AGR
+7.1-4 AGR
--
‣ AGR
( global variable ) is a record whose components are functions and data that are used by the higher level interface functions.
++
‣ AGR
( global variable ) is a record whose components are functions and data that are used by the high level interface functions. Some of the components are documented, see for example the index of the package manual.
-7.1-6 AtlasOfGroupRepresentationsInfo
+7.1-5 AtlasOfGroupRepresentationsInfo
-+
‣ AtlasOfGroupRepresentationsInfo
( global variable )
‣ AtlasOfGroupRepresentationsInfo
( global variable ) This is a record that is defined in the file
-gap/types.g
of the package, with the following components.Components corresponding to user parameters (see Section 4.3) are
--
-- -
remote
- -
a boolean that controls what files are available; if the value is
- -true
then GAP is allowed to try remotely accessing any ATLAS file from the servers (see below) and thus all files listed in the global table of contents are available, if the value isfalse
then GAP may access only those files that are stored in the database directories of the local GAP installation (see Section 4.3-1),- -
servers
a list of pairs
+[
server,
path]
, where server is a string denoting thehttp
address of a server where files can be fetched that are not stored in the local database, and path is a string describing the path where the data directories on the server reside,- +
GAPnames
- -
a list of pairs, each containing the GAP name and the ATLAS-file name of a group, see Section 3.2,
- -
wget
controls whether the GAP package IO [Neu14] or the external program
+wget
is used to fetch data files, see 4.3-3,- +
notified
- -
a list used for administrating extensions of the database (see Chapter 5); the value is changed by
AtlasOfGroupRepresentationsNotifyData
(5.1-1) andAtlasOfGroupRepresentationsForgetData
(5.1-2),- -
compress
a boolean that controls whether MeatAxe format text files are stored in compressed form; if the value is
+true
then these files are compressed withgzip
after they have been fetched from a server, see Section 4.3-4,- +
characterinfo
,permrepinfo
,ringinfo
- -
additional information about representations, concerning the afforded characters, the point stabilizers of permutation representations, and the rings of definition of matrix representations; this information is used by
DisplayAtlasInfo
(3.5-1),- -
displayFunction
the function that is used by
+DisplayAtlasInfo
(3.5-1) for printing the formatted data, see Section 4.3-5,- +
TableOfContents
a record with at most the components
core
,internal
,local
,merged
,types
, and the identifiers of database extensions. The value of the componenttypes
is set inAGR.DeclareDataType
(7.5-1), and the values of the other components are created byAtlasOfGroupRepresentationsNotifyData
(5.1-1).- -
accessFunctions
- -
a list of records, each describing how to access the data files, see Sections 4.3-6 and 7.2, and
- -- -
markprivate
a string used in
+DisplayAtlasInfo
(3.5-1) to mark private data, see Section 5.2.a list of records, each describing how to access the data files, see Sections 4.2-6 and 7.2, and
System components (which are computed automatically) are
+ +7.2 How to Customize the Access to Data files
--
- -
GAPnames
- -
a list of pairs, each containing the GAP name and the ATLAS-file name of a group, see Section 3.2,
+By default, locally available data files are stored in prescribed directories, and the files are exactly the text files that have been downloaded from appropriate places in the internet. However, a more flexible approach may be useful.
-- -
groupnames
- -
a list of triples, each containing at the first position the name of the directory on each server that contains data about the group G in question, at the second position the name of the (usually simple) group for which a subdirectory exists that contains the data about G, and at the third position the ATLAS-file name used for G, see Section 7.6,
+First, one may want to use different file formats, for example MeatAxe binary files may be provided parallel to MeatAxe text files. Second, one may want to use a different directory structure, for example the same structure as used on some server –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.
-- -
private
a list of pairs of strings used for administrating private data (see Chapter 5); the value is changed by
+AtlasOfGroupRepresentationsNotifyPrivateDirectory
(5.1-1) andAtlasOfGroupRepresentationsForgetPrivateDirectory
(5.1-2),In order to achieve this (and perhaps more), we admit to customize the meaning of the following three access steps.
+ + ++
- - -- Are the required data locally available?
+- -
There may be different file formats available, such as text or binary files, and it may happen that the data are available in one file or are distributed to several files.
- -
characterinfo
,permrepinfo
,ringinfo
additional information about representations, concerning the characters afforded, the point stabilizers of permutation representations, and the ring of definition of matrix representations; this information is used by
+DisplayAtlasInfo
(3.5-1),- How can a file be made locally available?
+- -
A different remote file may be fetched, or some postprocessing may be required.
- -
TableOfContents
a record with at most the components
+local
,remote
,types
, and the names of private data directories. The values of the componentslocal
andremote
can be computed automatically byReloadAtlasTableOfContents
(4.2-1), the value of the componenttypes
is set inAGR.DeclareDataType
(7.5-1), and the values of the components for local data directories are created byAtlasOfGroupRepresentationsNotifyPrivateDirectory
(5.1-1).- How is the data of a file accessed by GAP?
+A different function may be needed to evaluate the file contents.
7.2 How to Customize the Access to Data files
- -We discuss the three steps listed in Section 4.3-6.
- -For creating an overview of the locally available data, the first of these steps must be available independent of actually accessing the file in question. For updating the local copy of the server data, the second of the above steps must be available independent of the third one. Therefore, the package provides the possibility to extend the default behaviour by adding new records to the
+accessFunctions
component ofAtlasOfGroupRepresentationsInfo
(7.1-6). Its components are as follows.For creating an overview of the locally available data, the first of these steps must be available independent of actually accessing the file in question. For updating the local copy of the server data, the second of the above steps must be available independent of the third one. Therefore, the package provides the possibility to extend the default behaviour by adding new records to the
accessFunctions
component ofAtlasOfGroupRepresentationsInfo
(7.1-5). The relevant record components are as follows.+
-- +
description
This must be a short string that describes for which kinds of files the functions in the current record are intended, which file formats are supported etc. The value is used as key in the user preference
+ +FileAccessFunctions
, see Section 4.2-6.- -
-location( filename, groupname, dirname, - type )
+location(
files, type)
Let filename be the default filename (without path) of the required file, or a list of such filenames. Let groupname be the ATLAS name of the group to which the data in these files belong, dirname be the default directory name (one of
+"datagens"
,"dataword"
, or the dirid value of a private directory, seeAtlasOfGroupRepresentationsNotifyPrivateDirectory
(5.1-1)), and type be the data type (seeAGR.DeclareDataType
(7.5-1)). This function must return either the absolute path(s) where the mechanism implemented by the current record expects the local version of the given file(s), orfail
if this function does not feel responsible for these file(s). In the latter case, thelocation
function in another record will know a path.Let files be a list of pairs
-[ dirname, filename ]
, and type be the data type (seeAGR.DeclareDataType
(7.5-1)) to which the files belong. This function must return either the absolute paths where the mechanism implemented by the current record expects the local version of the given files, orfail
if this function does not feel responsible for these files.The file(s) is/are regarded as not locally available if all installed
+location
functions return eitherfail
or paths of nonexisting files, in the sense ofIsExistingFile
(Reference: IsExistingFile).The files are regarded as not locally available if all installed
location
functions return eitherfail
or paths of nonexisting files, in the sense ofIsExistingFile
(Reference: IsExistingFile).- -
-fetch( filepath, filename, groupname, - dirname, type )
+fetch(
filepath, filename, dirname, type)
This function is called when a file is not locally available and if the
+location
function in the current record has returned a path or a list of paths. The arguments dirname and type must be the same as for thelocation
function, and filepath and filename must be strings (not lists of strings).- -
This function is called if a file is not locally available and if the
location
function in the current record has returned a list of paths. The argument type must be the same as for thelocation
function, and filepath and filename must be strings (not lists of strings).The return value must be
true
if the function succeeded with making the file locally available (including postprocessing if applicable), andfalse
otherwise.- -
contents( filepath, type )
This function is called when the
+location
function in the current record has returned the path(s) filepath, and if either these are paths of existing files or thefetch
function in the current record has been called for these paths, and the return value wastrue
. The argument type must be the same as for thelocation
and thefetch
functions.- +
contents(
files, type, filepaths)
- -
This function is called when the
location
function in the current record has returned the path(s) filepath, and if either these are paths of existing files or thefetch
function in the current record has been called for these paths, and the return value wastrue
. The first three arguments must be the same as for thelocation
function.The return value must be the contents of the file(s), in the sense that the GAP matrix, matrix list, permutation, permutation list, or program described by the file(s) is returned. This means that besides reading the file(s) via the appropriate function, interpreting the contents may be necessary.
- -
description
- -
This must be a short string that describes for which kinds of files the functions in the current record are intended, which file formats are supported etc. The value is used by
- -AtlasOfGroupRepresentationsUserParameters
(4.3-8).- -
active
The current
- -accessFunctions
record is ignored byAGR.FileContents
(7.6-2) if the value is nottrue
.In
- -AGR.FileContents
(7.6-2), the records in theaccessFunctions
component ofAtlasOfGroupRepresentationsInfo
(7.1-6) are considered in reversed order.By default, the
+accessFunctions
list contains three records. Only for one of them, theactive
component has the valuetrue
. One of the other two records can be used to change the access to permutation representations and to matrix representations over finite fields such that MeatAxe binary files are transferred and read instead of MeatAxe text files. The fourth record makes sense only if a local server is accessible, i. e., if the server files can be read directly, without being transferred into the data directories of the package.In
@@ -247,16 +217,16 @@AGR.FileContents
(7.6-2), those records in theaccessFunctions
component ofAtlasOfGroupRepresentationsInfo
(7.1-5) are considered –in reversed order– whosedescription
component occurs in the user preferenceFileAccessFunctions
, see Section 4.2-6.7.3-1 ScanMeatAxeFile
-+
‣ ScanMeatAxeFile
( filename[, q][, "string"] )( function )
‣ ScanMeatAxeFile
( filename[, q][, "string"] )( function ) Returns: the matrix or list of permutations stored in the file or encoded by the string.
Let filename be the name of a GAP readable file (see Reference: Filename) that contains a matrix or a permutation or a list of permutations in MeatAxe text format (see the section about the program
-zcv
in theC
-MeatAxe documentation [Rin]), and let q be a prime power.ScanMeatAxeFile
returns the corresponding GAP matrix or list of permutations, respectively.If the file contains a matrix then the way how it is read by
+ScanMeatAxeFile
depends on the value of the global variableCMeatAxe.FastRead
(7.1-4).If the file contains a matrix then the way how it is read by
ScanMeatAxeFile
depends on the value of the user preferenceHowToReadMeatAxeTextFiles
, see Section 4.2-8.If the parameter q is given then the result matrix is represented over the field with q elements, the default for q is the field size stored in the file.
-If the file contains a list of permutations then it is read with
+StringFile
(GAPDoc: StringFile); the parameter q, if given, is ignored in this case.If the file contains a list of permutations then it is read with
StringFile
(GAPDoc: StringFile); the parameter q, if given, is ignored in this case.If the string
@@ -264,18 +234,21 @@"string"
is entered as the third argument then the first argument must be a string as obtained by reading a file in MeatAxe text format as a text stream (seeInputTextFile
(Reference: InputTextFile)). Also in this case,ScanMeatAxeFile
returns the corresponding GAP matrix or list of permutations, respectively.7.3-2 MeatAxeString
--
‣ MeatAxeString
( mat, q )( operation ) -
‣ MeatAxeString
( perms, degree )( operation ) -
‣ MeatAxeString
( perm, q, dims )( operation ) Returns: a string encoding the GAP objects given as input in MeatAxe format.
++
‣ MeatAxeString
( mat, q )( operation ) +
‣ MeatAxeString
( perms, degree )( operation ) +
‣ MeatAxeString
( perm, q, dims )( operation ) +
‣ MeatAxeString
( intmat )( operation ) Returns: a string encoding the GAP objects given as input in
-C
-MeatAxe text format, see [Rin].In the first form, for a matrix mat whose entries lie in the finite field with q elements,
+MeatAxeString
returns a string that encodes mat as a matrix overGF(q)
, in MeatAxe text format.In the first form, for a matrix mat whose entries lie in the finite field with q elements,
-MeatAxeString
returns a string that encodes mat as a matrix overGF(q)
.In the second form, for a nonempty list perms of permutations that move only points up to the positive integer degree,
+MeatAxeString
returns a string that encodes perms as permutations of degree degree, inC
-MeatAxe text format (see [Rin]).In the second form, for a nonempty list perms of permutations that move only points up to the positive integer degree,
MeatAxeString
returns a string that encodes perms as permutations of degree degree.In the third form, for a permutation perm with largest moved point n, say, a prime power q, and a list dims of length two containing two positive integers larger than or equal to n,
-MeatAxeString
returns a string that encodes perm as a matrix overGF(q)
, of dimensions dims, whose first n rows and columns describe the permutation matrix corresponding to perm, and the remaining rows and columns are zero.When strings are printed to files using
+PrintTo
(Reference: PrintTo) orAppendTo
(Reference: AppendTo) then line breaks are inserted whenever lines exceed the number of characters given by the second entry of the list returned bySizeScreen
(Reference: SizeScreen), see Reference: Operations for Output Streams. This behaviour is not desirable for creating data files. So the recommended functions for printing the result ofMeatAxeString
to a file areFileString
(GAPDoc: FileString) andWriteAll
(Reference: WriteAll).In the fourth form, for a matrix intmat of integers,
+ +MeatAxeString
returns a string that encodes intmat as an integer matrix.When strings are printed to files using
PrintTo
(Reference: PrintTo) orAppendTo
(Reference: AppendTo) then line breaks are inserted whenever lines exceed the number of characters given by the second entry of the list returned bySizeScreen
(Reference: SizeScreen), see Reference: Operations for Output Streams. This behaviour is not desirable for creating data files. So the recommended functions for printing the result ofMeatAxeString
to a file areFileString
(GAPDoc: FileString) andWriteAll
(Reference: WriteAll).+@@ -326,10 +299,10 @@7.3-3 FFList
-+
‣ FFList
( F )( function )
‣ FFList
( F )( function ) Returns: a list of elements in the given finite field.
-+
‣ FFLists
( global variable )
‣ FFLists
( global variable )
FFList
is a utility program for the conversion of vectors and matrices from MeatAxe format to GAP format and vice versa. It is used byScanMeatAxeFile
(7.3-1) andMeatAxeString
(7.3-2).For a finite field F,
@@ -346,14 +319,16 @@ trueFFList
returns a list l giving the correspondence between the MeatAxe numbering and the GAP numbering of the elements in F.The MeatAxe defines the bijection between the elements in the field with q = p^d elements and the set { 0, 1, ..., q-1 } of integers by assigning the field element ∑_{i=0}^{d-1} c_i z^i to the integer ∑_{i=0}^{d-1} c_i p^i, where the c_i are in the set { 0, 1, ..., p-1 } and z is the primitive root of the field with q elements that corresponds to the residue class of the indeterminate, modulo the ideal spanned by the Conway polynomial of degree d over the field with p elements.
+7.3-4 CMtxBinaryFFMatOrPerm
-+
‣ CMtxBinaryFFMatOrPerm
( elm, def, outfile[, base] )( function )
‣ CMtxBinaryFFMatOrPerm
( elm, def, outfile[, base] )( function ) Let the pair (elm, def) be either of the form (M, q) where M is a matrix over a finite field F, say, with q ≤ 256 elements, or of the form (π, n) where π is a permutation with largest moved point at most n. Let outfile be a string.
-CMtxBinaryFFMatOrPerm
writes theC
-MeatAxe binary format of M, viewed as a matrix over F, or of π, viewed as a permutation on the points up to n, to the file with name outfile.In the case of a permutation π, the optional argument base prescribes whether the binary file contains the points from 0 to deg- 1 (base= 0, supported by version 2.4 of the
+C
-MeatAxe) or the points from 1 to deg (base= 1, supported by older versions of theC
-MeatAxe). The default for base is given by the value of the user preferenceBaseOfMeatAxePermutation
, see Section 4.3-11.In the case of a permutation π, the optional argument base prescribes whether the binary file contains the points from 0 to deg- 1 (base= 0, supported by version 2.4 of the
C
-MeatAxe) or the points from 1 to deg (base= 1, supported by older versions of theC
-MeatAxe). The default for base is given by the value of the user preferenceBaseOfMeatAxePermutation
, see Section 4.2-11.(The binary format is described in the
@@ -378,7 +353,7 @@C
-MeatAxe manual [Rin].)7.3-5 FFMatOrPermCMtxBinary
-+
‣ FFMatOrPermCMtxBinary
( fname )( function )
‣ FFMatOrPermCMtxBinary
( fname )( function ) Returns: the matrix or permutation stored in the file.
Let fname be the name of a file that contains the
@@ -399,7 +374,7 @@ trueC
-MeatAxe binary format of a matrix over a finite field or of a permutation, as is described in [Rin].FFMatOrPermCMtxBinary
returns the corresponding GAP matrix or permutation.7.4 Reading and Writing ATLAS Straight Line Programs
@@ -407,8 +382,8 @@7.4-1 ScanStraightLineProgram
--
‣ ScanStraightLineProgram
( filename[, "string"] )( function ) Returns: a record containing the straight line program.
++
‣ ScanStraightLineProgram
( filename[, "string"] )( function ) Returns: a record containing the straight line program, or
fail
.Let filename be the name of a file that contains a straight line program in the sense that it consists only of lines in the following form.
@@ -477,7 +452,7 @@If the string
-"string"
is entered as the second argument then the first argument must be a string as obtained by reading a file in MeatAxe text format as a text stream (seeInputTextFile
(Reference: InputTextFile)). Also in this case,ScanStraightLineProgram
returns either a record with the corresponding GAP straight line program orfail
.If the input describes a straight line program that computes certain class representatives of the group in question then the result record also contains the component
+outputs
. Its value is a list of strings, the entry at position i denoting the name of the class in which the i output of the straight line program lies; see Section 3.4 for the definition of the class names that occur.If the input describes a straight line program that computes certain class representatives of the group in question then the result record also contains the component
outputs
. Its value is a list of strings, the entry at position i denoting the name of the class in which the i output of the straight line program lies; see Section 3.4 for the definition of the class names that occur.Such straight line programs must end with a sequence of output specifications of the following form.
@@ -493,15 +468,15 @@7.4-2 AtlasStringOfProgram
--
‣ AtlasStringOfProgram
( prog[, outputnames] )( function ) +
‣ AtlasStringOfProgram
( prog[, "mtx"] )( function ) +
‣ AtlasStringOfProgram
( prog[, outputnames] )( function )
‣ AtlasStringOfProgram
( prog, "mtx" )( function ) Returns: a string encoding the straight line program/decision in the format used in ATLAS files.
-For a straight line program or straight line decision prog (see
+IsStraightLineProgram
(Reference: IsStraightLineProgram) andIsStraightLineDecision
(6.1-1)), this function returns a string describing the input format of an equivalent straight line program or straight line decision as used in the ATLAS of Group Representations, that is, the lines are of the form described inScanStraightLineProgram
(7.4-1).For a straight line program or straight line decision prog (see
IsStraightLineProgram
(Reference: IsStraightLineProgram) andIsStraightLineDecision
(6.1-1)), this function returns a string describing the input format of an equivalent straight line program or straight line decision as used in the data files, that is, the lines are of the form described inScanStraightLineProgram
(7.4-1).A list of strings that is given as the optional second argument outputnames is interpreted as the class names corresponding to the outputs; this argument has the effect that appropriate
-echo
statements appear in the result string.If the string
+"mtx"
is given as the second argument then the result has the format used in theC
-MeatAxe (see [Rin]) rather than the format described in Section 7.4. (Note that theC
-MeatAxe format does not make sense if the argument outputnames is given, and that this format does not supportinp
andoup
statements.)If the string
"mtx"
is given as the second argument then the result has the format used in theC
-MeatAxe (see [Rin]) rather than the format described forScanStraightLineProgram
(7.4-1). (Note that theC
-MeatAxe format does not make sense if the argument outputnames is given, and that this format does not supportinp
andoup
statements.)The argument prog must not be a black box program (see
@@ -557,9 +532,9 @@ "inp 2\nchor 1 2\nchor 2 3\nmu 1 2 3\nchor 3 5\n"IsBBoxProgram
(6.2-1)).7.5 Data Types Used in the ATLAS of Group Representations
+7.5 Data Types Used in the AtlasRep Package
Each representation or program that is administrated by the AtlasRep package belongs to a unique data type. Informally, examples of data types are "permutation representation", "matrix representation over the integers", or "straight line program for computing class representatives".
@@ -573,13 +548,13 @@- -
a line format of its own for the output produced by
DisplayAtlasInfo
(3.5-1) when called with first argument a group name,an input format of its own for
+AtlasProgram
(3.5-3),- -
an input format of its own for
AtlasProgram
(3.5-4),an input format of its own for
+OneAtlasGeneratingSetInfo
(3.5-5), and- -
an input format of its own for
OneAtlasGeneratingSetInfo
(3.5-6), andspecific tests for the data of this data type; these functions are used by the global tests described in Section 7.8.
+- @@ -589,8 +564,8 @@
specific tests for the data of this data type; these functions are used by the global tests described in Section 7.9.
7.5-1 AGR.DeclareDataType
--
‣ AGR.DeclareDataType
( kind, name, record )( function ) Let kind be one of the strings
+"rep"
or"prg"
, and record be a record.AGR.DeclareDataType
declares a new data type of representations (if kind is"rep"
) or of programs (if kind is"prg"
). For each group used in the AtlasRep package, the record that contains the information about the data will have a component name whose value is a list containing the data about the new type. Examples of name are"perm"
,"matff"
, and"classes"
.+
‣ AGR.DeclareDataType
( kind, name, record )( function ) Let kind be one of the strings
"rep"
or"prg"
, and record be a record. If kind is"rep"
thenAGR.DeclareDataType
declares a new data type of representations, if kind is"prg"
then it declares a new data type of programs. The string name is the name of the type, for example"perm"
,"matff"
, or"classes"
. AtlasRep stores the data for each group internally in a record whose component name holds the list of the data about the type with this name.Mandatory components of record are
@@ -605,11 +580,11 @@- -
ReadAndInterpretDefault
This is the function that does the work for the default
+contents
value of theaccessFunctions
component ofAtlasOfGroupRepresentationsInfo
(7.1-6), see Section 7.2. This function must take a path and return the GAP object given by this file.This is the function that does the work for the default
contents
value of theaccessFunctions
component ofAtlasOfGroupRepresentationsInfo
(7.1-5), see Section 7.2. This function must take a path and return the GAP object given by this file.- -
AddDescribingComponents
(forrep
only)This function takes two arguments, a record (that will be returned by
+AtlasGenerators
(3.5-2),OneAtlasGeneratingSetInfo
(3.5-5), orAllAtlasGeneratingSetInfos
(3.5-6)) and the type record record. It sets the componentsp
,dim
,id
, andring
that are promised for return values of the abovementioned three functions.This function takes two arguments, a record (that will be returned by
AtlasGenerators
(3.5-3),OneAtlasGeneratingSetInfo
(3.5-6), orAllAtlasGeneratingSetInfos
(3.5-7)) and the type record record. It sets the componentsp
,dim
,id
, andring
that are promised for return values of the abovementioned three functions.- @@ -626,139 +601,139 @@
DisplayGroup
(forrep
only)- -
DisplayPRG
(forprg
only)This is used in
+DisplayAtlasInfo
(3.5-1) for ATLAS programs. The value must be a function that takes four arguments (a list of tables of contents to examine, the name of the given group, a list of integers ortrue
for the required standardization, and a list of all available standardizations), and returns the list of lines (strings) to be printed as the information about the available programs of the current type and for the given group. (The default is to return an empty list.)This is used in
DisplayAtlasInfo
(3.5-1) for ATLAS programs. The value must be a function that takes four arguments (a list of tables of contents to examine, a list containing the GAP name and the ATLAS name of the given group, a list of integers ortrue
for the required standardization, and a list of all available standardizations), and returns the list of lines (strings) to be printed as the information about the available programs of the current type and for the given group. (The default is to return an empty list.)- -
AccessGroupCondition
(forrep
only)This is used in
+DisplayAtlasInfo
(3.5-1) andOneAtlasGeneratingSetInfo
(3.5-5). The value must be a function that takes two arguments (a list as returned byOneAtlasGeneratingSetInfo
(3.5-5), and a list of conditions), and returnstrue
orfalse
, depending on whether the first argument satisfies the conditions. (The default value isReturnFalse
(Reference: ReturnFalse).)This is used in
DisplayAtlasInfo
(3.5-1) andOneAtlasGeneratingSetInfo
(3.5-6). The value must be a function that takes two arguments (a list as returned byOneAtlasGeneratingSetInfo
(3.5-6), and a list of conditions), and returnstrue
orfalse
, depending on whether the first argument satisfies the conditions. (The default value isReturnFalse
(Reference: ReturnFalse).)The function must support conditions such as
[ IsPermGroup, true ]
and[ NrMovedPoints, [ 5, 6 ] ]
, in general a list of functions followed by a prescribed value, a list of prescribed values, another (unary) function, or the string"minimal"
. For an overview of the interesting functions, seeDisplayAtlasInfo
(3.5-1).- -
AccessPRG
(forprg
only)This is used in
+AtlasProgram
(3.5-3). The value must be a function that takes three arguments (the record with the information about the given group in the current table of contents, an integer or a list of integers ortrue
for the required standardization, and a list of conditions given by the optional arguments ofAtlasProgram
(3.5-3)), and returns eitherfail
or a list that together with the group name forms the identifier of a program that matches the conditions. (The default value isReturnFail
(Reference: ReturnFail).)This is used in
AtlasProgram
(3.5-4). The value must be a function that takes four arguments (the current table of contents, the group name, an integer or a list of integers ortrue
for the required standardization, and a list of conditions given by the optional arguments ofAtlasProgram
(3.5-4)), and returns eitherfail
or a list that together with the group name forms the identifier of a program that matches the conditions. (The default value isReturnFail
(Reference: ReturnFail).)- -
AtlasProgram
(forprg
only)This is used in
+AtlasProgram
(3.5-3) to create the result value from the identifier. (The default value isAtlasProgramDefault
, which works whenever the second entry of the identifier is the filename; this is not the case for example if the program is the composition of several programs.)This is used in
AtlasProgram
(3.5-4) to create the result value from the identifier. (The default value isAtlasProgramDefault
, which works whenever the second entry of the identifier is the filename; this is not the case for example if the program is the composition of several programs.)- -
AtlasProgramInfo
(forprg
only)This is used in
+AtlasProgramInfo
(3.5-4) to create the result value from the identifier. (The default value isAtlasProgramDefault
.)This is used in
AtlasProgramInfo
(3.5-5) to create the result value from the identifier. (The default value isAtlasProgramDefault
.)- -
TOCEntryString
This is used in
+StoreAtlasTableOfContents
(4.2-2). The value must be a function that takes two arguments (the name name of the type and a list as returned byAGR.ParseFilenameFormat
(7.6-1) and returns a string that describes the appropriate function call. (The default value isTOCEntryStringDefault
.)This is used in
StringOfAtlasTableOfContents
(5.1-3). The value must be a function that takes two or three arguments (the name name of the type, a list as returned byAGR.ParseFilenameFormat
(7.6-1), and optionally a string that indicates the "remote" format) and returns a string that describes the appropriate data format. (The default value isTOCEntryStringDefault
.)- -
PostprocessFileInfo
This is used in the construction of a table of contents via
+ReloadAtlasTableOfContents
(4.2-1), for testing or rearranging the data of the current table of contents. The value must be a function that takes two arguments, the table of contents record and the record in it that belongs to one fixed group. (The default function does nothing.)This is used in the construction of a table of contents for testing or rearranging the data of the current table of contents. The value must be a function that takes two arguments, the table of contents record and the record in it that belongs to one fixed group. (The default function does nothing.)
- -
SortTOCEntries
This is used in the construction of a table of contents (see
+ReloadAtlasTableOfContents
(4.2-1)), for sorting the entries after they have been added and after the value of the componentPostprocessFileInfo
has been called. The value must be a function that takes a list as returned byAGR.ParseFilenameFormat
(7.6-1), and returns the sorting key. (There is no default value, which means that no sorting is needed.)This is used in the construction of a table of contents for sorting the entries after they have been added and after the value of the component
PostprocessFileInfo
has been called. The value must be a function that takes a list as returned byAGR.ParseFilenameFormat
(7.6-1), and returns the sorting key. (There is no default value, which means that no sorting is needed.)- -
TestFileHeaders
(forrep
only)This is used in the function
+AGR.Test.FileHeaders
. The value must be a function that takes the same four arguments asAGR.FileContents
(7.6-2), except that the first argument"datagens"
can be replaced by"local"
and that the third argument is a list as returned byAGR.ParseFilenameFormat
(7.6-1). (The default value isReturnTrue
(Reference: ReturnTrue).)This is used in the function
AGR.Test.FileHeaders
. The value must be a function that takes the same four arguments asAGR.FileContents
(7.6-2), except that the third argument is a list as returned byAGR.ParseFilenameFormat
(7.6-1). (The default value isReturnTrue
(Reference: ReturnTrue).)- -
TestFiles
(forrep
only)This is used in the function
+AGR.Test.Files
. The format of the value and the default are the same as for the value of the componentTestFileHeaders
.This is used in the function
AGR.Test.Files
. The format of the value and the default are the same as for the componentTestFileHeaders
.- -
TestWords
(forprg
only)This is used in the function
+AGR.Test.Words
. The value must be a function that takes five arguments where the first four are the same arguments as forAGR.FileContents
(7.6-2), except that the first argument"dataword"
can be replaced by"local"
, and the fifth argument istrue
orfalse
, indicating verbose mode or not.- - + -
This is used in the function
AGR.Test.Words
. The value must be a function that takes five arguments where the first four are the same arguments as forAGR.FileContents
(7.6-2), except that the fifth argument istrue
orfalse
, indicating verbose mode or not.7.6 Filenames Used in the ATLAS of Group Representations
+7.6 Filenames Used in the AtlasRep Package
-The data of each local GAP version of the ATLAS of Group Representations are either private (see Chapter 5) or are stored in the two directories
+datagens
anddataword
. In the following, we describe the format of filenames in the latter two directories, as a reference of the "official" part of the ATLAS.AtlasRep expects that the filename of each data file describes the contents of the file. This section lists the definitions of the supported structures of filenames.
-In the directory
+datagens
, the generators for the representations available are stored, the directorydataword
contains the programs to compute conjugacy class representatives, generators of maximal subgroups, images of generators under automorphisms of a given group G from standard generators of G, and to check and compute standard generators (see Section 3.3).Each filename consists of two parts, separated by a minus sign
--
. The first part is always of the form groupnameG
i, where the integer i denotes the i-th set of standard generators for the group G, say, with ATLAS-file name groupname (see 3.2). The translations of the name groupname to the name(s) used within GAP is given by the componentGAPnames
ofAtlasOfGroupRepresentationsInfo
(7.1-5).The name of each data file in the ATLAS of Group Representations describes the contents of the file. This section lists the definitions of the filenames used.
- -Each filename consists of two parts, separated by a minus sign
- --
. The first part is always of the form groupnameG
i, where the integer i denotes the i-th set of standard generators for the group G, say, with ATLAS-file name groupname (see 3.2). The translations of the name groupname to the name(s) used within GAP is given by the componentGAPnames
ofAtlasOfGroupRepresentationsInfo
(7.1-6).The filenames in the directory
+dataword
have one of the following forms. In each of these cases, the suffixW
n means that n is the version number of the program.The names of files that contain straight line programs or straight line decisions have one of the following forms. In each of these cases, the suffix
W
n means that n is the version number of the program.-
-- +
groupnameGi-cycWn
- groupname
G
i-cycW
n- -
In this case, the file contains a straight line program that returns a list of representatives of generators of maximally cyclic subgroups of G. An example is
Co1G1-cycW1
.- +
groupnameGi-cclsWn
- groupname
G
i-cclsW
n- -
In this case, the file contains a straight line program that returns a list of conjugacy class representatives of G. An example is
RuG1-cclsW1
.- -
groupnameGicycWn-cclsWm
In this case, the file contains a straight line program that takes the return value of the program in the file groupname
+G
i-cycW
n (see above), and returns a list of conjugacy class representatives of G. An example isM11G1cycW1-cclsW1
.- groupname
+G
icycW
n-cclsW
m- +
In this case, the file contains a straight line program that takes the return value of the program in the file groupname
+ +G
i-cycW
n (see above), and returns a list of conjugacy class representatives of G. An example isM11G1cycW1-cclsW1
.- groupname
+G
i-max
kW
n- -
In this case, the file contains a straight line program that takes generators of G w. r. t. the i-th set of standard generators, and returns a list of generators (in general not standard generators) for a subgroup U in the k-th class of maximal subgroups of G. An example is
J1G1-max7W1
.- -
groupnameGi-maxkWn
In this case, the file contains a straight line program that takes generators of G w.r.t. the i-th set of standard generators, and returns a list of generators (in general not standard generators) for a subgroup U in the k-th class of maximal subgroups of G. An example is
+J1G1-max7W1
.- groupname
+G
imax
kW
n-
subgroupnameG
jW
m- -
In this case, the file contains a straight line program that takes the return value of the program in the file groupname
G
i-max
kW
n (see above), which are generators for a group U, say; subgroupname is a name for U, and the return value is a list of standard generators for U, w. r. t. the j-th set of standard generators. (Of course this implies that the groups in the k-th class of maximal subgroups of G are isomorphic to the group with name subgroupname.) An example isJ1G1max1W1-L211G1W1
; the first class of maximal subgroups of the Janko group J_1 consists of groups isomorphic to the linear group L_2(11), for which standard generators are defined.- -
groupnameGimaxkWn-subgroupnameGjWm
In this case, the file contains a straight line program that takes the return value of the program in the file groupname
+G
i-max
kW
n (see above), which are generators for a group U, say; subgroupname is a name for U, and the return value is a list of standard generators for U, w.r.t. the j-th set of standard generators. (Of course this implies that the groups in the k-th class of maximal subgroups of G are isomorphic to the group with name subgroupname.) An example isJ1G1max1W1-L211G1W1
; the first class of maximal subgroups of the Janko group J_1 consists of groups isomorphic to the linear group L_2(11), for which standard generators are defined.- groupname
+G
i-a
outnameW
n- -
In this case, the file contains a straight line program that takes generators of G w. r. t. the i-th set of standard generators, and returns the list of their images under the outer automorphism α of G given by the name outname; if this name is empty then α is the unique nontrivial outer automorphism of G; if it is a positive integer k then α is a generator of the unique cyclic order k subgroup of the outer automorphism group of G; if it is of the form
2_1
or2a
,4_2
or4b
,3_3
or3c
... then α generates the cyclic group of automorphisms induced on G by G.2_1, G.4_2, G.3_3 ...; finally, if it is of the form kp
d, with k one of the above forms and d an integer then d denotes the number of dashes appended to the automorphism described by k; if d = 1 then d can be omitted. Examples areA5G1-aW1
,L34G1-a2_1W1
,U43G1-a2_3pW1
, andO8p3G1-a2_2p5W1
; these file names describe the outer order 2 automorphism of A_5 (induced by the action of S_5) and the order 2 automorphisms of L_3(4), U_4(3), and O_8^+(3) induced by the actions of L_3(4).2_1, U_4(3).2_2^', and O_8^+(3).2_2^{'''''}, respectively.- -
groupnameGi-aoutnameWn
In this case, the file contains a straight line program that takes generators of G w.r.t. the i-th set of standard generators, and returns the list of their images under the outer automorphism α of G given by the name outname; if this name is empty then α is the unique nontrivial outer automorphism of G; if it is a positive integer k then α is a generator of the unique cyclic order k subgroup of the outer automorphism group of G; if it is of the form
+2_1
or2a
,4_2
or4b
,3_3
or3c
... then α generates the cyclic group of automorphisms induced on G by G.2_1, G.4_2, G.3_3 ...; finally, if it is of the form kp
d, with k one of the above forms and d an integer then d denotes the number of dashes appended to the automorphism described by k; if d = 1 then d can be omitted. Examples areA5G1-aW1
,L34G1-a2_1W1
,U43G1-a2_3pW1
, andO8p3G1-a2_2p5W1
; these file names describe the outer order 2 automorphism of A_5 (induced by the action of S_5) and the order 2 automorphisms of L_3(4), U_4(3), and O_8^+(3) induced by the actions of L_3(4).2_1, U_4(3).2_2^', and O_8^+(3).2_2^{'''''}, respectively.- groupname
+G
i-ker
factgroupnameW
n- -
In this case, the file contains a straight line program that takes generators of G w. r. t. the i-th set of standard generators, and returns generators of the kernel of an epimorphism that maps G to a group with ATLAS-file name factgroupname. An example is
2A5G1-kerA5W1
.- -
groupnameGi-GjWn
In this case, the file contains a straight line program that takes generators of G w.r.t. the i-th set of standard generators, and returns standard generators of G w.r.t. the j-th set of standard generators. An example is
+L35G1-G2W1
.- groupname
+G
i-G
jW
n- -
In this case, the file contains a straight line program that takes generators of G w. r. t. the i-th set of standard generators, and returns standard generators of G w. r. t. the j-th set of standard generators. An example is
L35G1-G2W1
.- -
groupnameGi-checkn
In this case, the file contains a straight line decision that takes generators of G, and returns
+true
if these generators are standard generators w.r.t. the i-th standardization, andfalse
otherwise.- groupname
+G
i-check
n- -
In this case, the file contains a straight line decision that takes generators of G, and returns
true
if these generators are standard generators w. r. t. the i-th standardization, andfalse
otherwise.- -
groupnameGi-Pn
In this case, the file contains a straight line decision that takes some group elements, and returns
+true
if these elements are standard generators for G, w.r.t. the i-th standardization, andfalse
otherwise.- groupname
+G
i-P
n- -
In this case, the file contains a straight line decision that takes some group elements, and returns
true
if these elements are standard generators for G, w. r. t. the i-th standardization, andfalse
otherwise.- -
groupnameGi-findn
In this case, the file contains a black box program that takes a group, and returns (if it is successful) a set of standard generators for G, w.r.t. the i-th standardization.
+- groupname
+G
i-find
n- -
In this case, the file contains a black box program that takes a group, and returns (if it is successful) a set of standard generators for G, w. r. t. the i-th standardization.
- -
groupnameGi-XdescrWn
In this case, the file contains a straight line program that takes generators of G w.r.t. the i-th set of standard generators, and whose return value corresponds to descr. This format is used only in private extensions (see Chapter 5), such a script can be accessed with descr as the third argument of
+AtlasProgram
(3.5-3).- groupname
+G
i-X
descrW
nIn this case, the file contains a straight line program that takes generators of G w. r. t. the i-th set of standard generators, and whose return value corresponds to descr. This format is used only in private extensions (see Chapter 5), such a script can be accessed with descr as the third argument of
AtlasProgram
(3.5-4).The filenames in the directory
+datagens
have one of the following forms. In each of these cases, id is a (possibly empty) string that starts with a lowercase alphabet letter (seeIsLowerAlphaChar
(Reference: IsLowerAlphaChar)), and m is a nonnegative integer, meaning that the generators are written w.r.t. the m-th basis (the meaning is defined by the ATLAS developers).The names of files that contain group generators have one of the following forms. In each of these cases, id is a (possibly empty) string that starts with a lowercase alphabet letter (see
IsLowerAlphaChar
(Reference: IsLowerAlphaChar)), and m is a nonnegative integer, meaning that the generators are written w. r. t. the m-th basis (the meaning is defined by the ATLAS developers).-
@@ -766,7 +741,7 @@- -
groupnameGi-fqrdimidBm.mnr
a file in MeatAxe text file format containing the nr-th generator of a matrix representation over the field with q elements, of dimension dim. An example is
+S5G1-f2r4aB0.m1
.- groupname
+G
i-f
qr
dimidB
m.m
nr- -
a file in MeatAxe text file format containing the nr-th generator of a matrix representation over the field with q elements, of dimension dim. An example is
S5G1-f2r4aB0.m1
.- -
groupnameGi-pnidBm.mnr
a file in MeatAxe text file format containing the nr-th generator of a permutation representation on n points. An example is
+M11G1-p11B0.m1
.- groupname
+G
i-p
nidB
m.m
nr- -
a file in MeatAxe text file format containing the nr-th generator of a permutation representation on n points. An example is
M11G1-p11B0.m1
.- -
groupnameGi-ArdimidBm.g
a GAP readable file containing all generators of a matrix representation of dimension dim over an algebraic number field not specified further. An example is
+A5G1-Ar3aB0.g
.- groupname
+G
i-Ar
dimidB
m.g
- -
a GAP readable file containing all generators of a matrix representation of dimension dim over an algebraic number field not specified further. An example is
A5G1-Ar3aB0.g
.- -
groupnameGi-ZrdimidBm.g
a GAP readable file containing all generators of a matrix representation over the integers, of dimension dim. An example is
+A5G1-Zr4B0.g
.- groupname
+G
i-Zr
dimidB
m.g- -
a GAP readable file containing all generators of a matrix representation over the integers, of dimension dim. An example is
A5G1-Zr4B0.g
.- -
groupnameGi-HrdimidBm.g
a GAP readable file containing all generators of a matrix representation over a quaternion algebra over an algebraic number field, of dimension dim. An example is
+2A6G1-Hr2aB0.g
.- groupname
+G
i-Hr
dimidB
m.g
- -
a GAP readable file containing all generators of a matrix representation over a quaternion algebra over an algebraic number field, of dimension dim. An example is
2A6G1-Hr2aB0.g
.- -
groupnameGi-ZnrdimidBm.g
a GAP readable file containing all generators of a matrix representation of dimension dim over the ring of integers mod n. An example is
+2A8G1-Z4r4aB0.g
.- groupname
+G
i-Z
nr
dimidB
m.g
a GAP readable file containing all generators of a matrix representation of dimension dim over the ring of integers mod n. An example is
2A8G1-Z4r4aB0.g
.7.6-1 AGR.ParseFilenameFormat
-+
‣ AGR.ParseFilenameFormat
( string, format )( function )
‣ AGR.ParseFilenameFormat
( string, format )( function ) Returns: a list of strings and integers if string matches format, and
fail
otherwise.Let string be a filename, and format be a list [ [ c_1, c_2, ..., c_n ], [ f_1, f_2, ..., f_n ] ] such that each entry c_i is a list of strings and of functions that take a character as their argument and return
@@ -791,52 +766,117 @@true
orfalse
, and such that each entry f_i is a function for parsing a filename, such as the currently undocumented functionsParseForwards
andParseBackwards
.7.6-2 AGR.FileContents
--
‣ AGR.FileContents
( dirname, groupname, filename, type )( function ) Returns: the GAP object obtained from reading and interpreting the file(s) with name(s) filename.
++
‣ AGR.FileContents
( files, type )( function ) Returns: the GAP object obtained from reading and interpreting the file(s) given by files.
-Let dirname and groupname be strings, filename be a string or a list of strings, and type be a data type (see
+AGR.DeclareDataType
(7.5-1)). dirname must be one of"datagens"
,"dataword"
, or the dirid value of a private directory, seeAtlasOfGroupRepresentationsNotifyPrivateDirectory
(5.1-1). If groupname is the ATLAS-file name of a group G (see Section 3.2), and if filename is either the name of an accessible file in the dirname directory of the ATLAS, or a list of such filenames, with data concerning G and for the data typetype
, thenAGR.FileContents
returns the contents of the corresponding file(s), in the sense that the file(s) (or equivalent ones, see Section 4.3-6) is/are read, and the result is interpreted if necessary; otherwisefail
is returned.Let files be a list of pairs of the form
-[ dirname, filename ]
, wheredirname
andfilename
are strings, and let type be a data type (seeAGR.DeclareDataType
(7.5-1)). Eachdirname
must be one of"datagens"
,"dataword"
, or thedirid
value of a data extension (seeAtlasOfGroupRepresentationsNotifyData
(5.1-1)). If the contents of each of the files in question is accessible and their data belong to the data typetype
thenAGR.FileContents
returns the contents of the files; otherwisefail
is returned.Note that if filename refers to file(s) already stored in the dirname directory then
+AGR.FileContents
does not check whether the table of contents of the ATLAS of Group Representations actually contains filename.Note that if some file is already stored in the dirname directory then
- + -AGR.FileContents
does not check whether the relevant table of contents actually contains filename.7.7 The Tables of Contents of the ATLAS of Group Representations -
+7.7 The record component
-identifier
used by the AtlasRep PackageThe list of data currently available is stored in several tables of contents, one for the local GAP data, one for the data on remote servers, and one for each private data directory. These tables of contents are created by
+ReloadAtlasTableOfContents
(4.2-1).The functions
-AtlasGenerators
(3.5-3),AtlasProgram
(3.5-4),AtlasProgramInfo
(3.5-5),OneAtlasGeneratingSetInfo
(3.5-6), andAllAtlasGeneratingSetInfos
(3.5-7) return records which have a componentidentifier
. The value of this component describes the record in the sense that one can reconstruct the whole record from it, and theidentifier
value can be used as an input forAtlasGenerators
(3.5-3),AtlasProgram
(3.5-4),AtlasProgramInfo
(3.5-5),AtlasGroup
(3.5-8), andAtlasSubgroup
(3.5-9).It is assumed that the local data directories contain only files that are also available on servers. Private extensions to the database (cf. Section 4.5 and Chapter 5) cannot be handled by putting the data files into the local directories.
+The
-identifier
component has the following format.Each table of contents is represented by a record whose components are the ATLAS-file names of the groups (see Section 3.2) and
-lastupdated
, a string describing the date of the last update of this table of contents. The value for each group name is a record whose components are the names of those data types (see Section 7.5) for which data are available.Here are the administrational functions that are used to build the tables of contents. Some of them may be useful also for private extensions of the package (see Chapter 5).
++
+- +
For records describing representations, it is a list of the form
-[ gapname, files, std, info ]
.The following functions define group names, available representations, and straight line programs.
+- +
For records describing straight line programs and straight line decisions, it is a list of the form
+[ gapname, files, std ]
.Here
-gapname
is the GAP name of the group in question,files
defines the data files,std
is the standardization of its generators, andinfo
is some information that depends on the type of the representation, for example the number of moved points in the case of a permutation representation.-
- -
AGR.GNAN( gapname, atlasname )
- -
Called with two strings gapname (the GAP name of the group) and atlasname (the ATLAS name of the group),
+AGR.GNAN
stores the information in the listAtlasOfGroupRepresentationsInfo.GAPnames
, which defines the name mapping between the ATLAS names and GAP names of the groups.The
-files
entry has one of the following formats:This function may be used also for private extensions of the database.
-An example of a valid call is
+AGR.GNAN("A5.2","S5")
.+
a string, in the case that exactly one file is needed that does not belong to a private extension; an example of such an
-identifier
value is[ "J1", "J1G1-cycW1", 1 ]
- -
AGR.GRP( dirname, simpname, groupname)
Called with three strings,
+ +AGR.GRP
stores in thegroupname
component ofAtlasOfGroupRepresentationsInfo
(7.1-6) in which path on the servers the data about the group with ATLAS name groupname can be found.- + +
a list whose entries are strings (which refer to files from the core part of the database) and pairs of the form
+ +[ tocid, file ]
(which refer to files from the extension given bytocid
); examples ofidentifier
values are[ "A5", [ "A5G1-p5B0.m1", "A5G1-p5B0.m2" ], 1, 5 ]
,[ "2.M12", [ [ "mfer", "2M12G1-cclsW1" ] ], 1 ]
,[ "2.M12", [ "M12G1-max1W1", [ "internal", "2M12G1-kerM12W1" ] ], 1 ]
,[ "2.M12", [ [ "mfer", "2M12G1-p24bB0.m1" ], [ "mfer", "2M12G1-p24bB0.m2" ] ], 1, 24 ]
.Up to version 1.5 of the AtlasRep package, a different
+ + + +identifier
format was used for files from extensions of the database. Namely, the first entry of the list was a pair[ tocid, groupname ]
, and the second entry was either a string or a list of strings. Note that with that old format, it was not possible to describe a combination of several files from different sources (core part and extension, or different extensions). The functionAtlasRepIdentifier
(7.7-1) can be used to convert between the two formats.7.7-1 AtlasRepIdentifier
-This function is not intended for private extensions of the database.
++
‣ AtlasRepIdentifier
( oldid )( function ) +
‣ AtlasRepIdentifier
( id, "old" )( function ) This function converts between the "old format" (the one used up to version 1.5.1 of the package) and the "new format" (the one used since version 2.0) of the
-identifier
component of the records returned by AtlasRep functions. Note that the two formats differ only foridentifier
components that describe data from non-core parts of the database.An example of a valid call is
+AGR.GRP("alt","A5","S5")
.If the only argument is a list oldid that is an
+ + +identifier
in old format then the function returns the correspondingidentifier
in new format. If there are two arguments, a list id that is anidentifier
in new format and the string "old", then the function returns the correspondingidentifier
in old format if this is possible, andfail
otherwise.+ + + ++gap> id:= [ "A5", [ "A5G1-p5B0.m1", "A5G1-p5B0.m2" ], 1, 5 ];; +gap> AtlasRepIdentifier( id ) = id; +true +gap> id:= [ "L2(8)", "L28G1-check1", 1, 1 ];; +gap> AtlasRepIdentifier( id ) = id; +true +gap> oldid:= [ [ "priv", "C4" ], [ "C4G1-p4B0.m1" ], 1, 4 ];; +gap> newid:= AtlasRepIdentifier( oldid ); +[ "C4", [ [ "priv", "C4G1-p4B0.m1" ] ], 1, 4 ] +gap> oldid = AtlasRepIdentifier( newid, "old" ); +true +gap> oldid:= [ [ "priv", "C4" ], "C4G1-max1W1", 1 ];; +gap> newid:= AtlasRepIdentifier( oldid ); +[ "C4", [ [ "priv", "C4G1-max1W1" ] ], 1 ] +gap> oldid = AtlasRepIdentifier( newid, "old" ); +true +gap> oldid:= [ [ "priv", "C4" ], "C4G1-Ar1aB0.g", 1, 1 ];; +gap> newid:= AtlasRepIdentifier( oldid ); +[ "C4", [ [ "priv", "C4G1-Ar1aB0.g" ] ], 1, 1 ] +gap> oldid = AtlasRepIdentifier( newid, "old" ); +true +gap> oldid:= [ [ "priv", "C4" ], "C4G1-XtestW1", 1 ];; +gap> newid:= AtlasRepIdentifier( oldid ); +[ "C4", [ [ "priv", "C4G1-XtestW1" ] ], 1 ] +gap> oldid = AtlasRepIdentifier( newid, "old" ); +true +gap> oldid:= [ [ "mfer", "2.M12" ], +> [ "2M12G1-p264aB0.m1", "2M12G1-p264aB0.m2" ], 1, 264 ];; +gap> newid:= AtlasRepIdentifier( oldid ); +[ "2.M12", + [ [ "mfer", "2M12G1-p264aB0.m1" ], [ "mfer", "2M12G1-p264aB0.m2" ] ] + , 1, 264 ] +gap> oldid = AtlasRepIdentifier( newid, "old" ); +true +7.8 The Tables of Contents of the AtlasRep Package
+ +The list of AtlasRep data is stored in several tables of contents, which are given essentially by JSON documents, one for the core data and one for each data extension in the sense of Chapter 5. The only exception are data extensions by locally available files in a given directory, where the contents of this directory itself describes the data in question. One can create such a JSON document for the contents of a given local data directory with the function
+ +StringOfAtlasTableOfContents
(5.1-3).Here are the administrational functions that are called when a data extension gets notified with
+ +AtlasOfGroupRepresentationsNotifyData
(5.1-1). In each case, gapname and atlasname denote the GAP and ATLAS name of the group in question (see Section 3.2), and dirid denotes the identifier of the data extension.The following functions define group names, available representations, and straight line programs.
+ + ++
@@ -844,38 +884,32 @@- +
AGR.GNAN(
gapname, atlasname[, dirid])
- -
Called with two strings gapname (the GAP name of the group) and atlasname (the ATLAS name of the group),
+ +AGR.GNAN
stores the information in the listAtlasOfGroupRepresentationsInfo.GAPnames
, which defines the name mapping between the ATLAS names and GAP names of the groups.An example of a valid call is
AGR.GNAN("A5.2","S5")
.- -
AGR.TOC( typename, filename, crcfile )
Called with two strings typename and filename, and a list crc of integers,
+AGR.TOC
notifies an entry to theTableOfContents.remote
component ofAtlasOfGroupRepresentationsInfo
(7.1-6), where typename must be the name of the data type to which the entry belongs, filename must be the prefix of the data file(s), and crc must be the list ofCrcFile
(Reference: CrcFile) values of the file(s).- +
AGR.TOC(
typename, filename, crc[, dirid])
-
AGR.TOC
notifies an entry to theTableOfContents.(
dirid)
component ofAtlasOfGroupRepresentationsInfo
(7.1-5). The string typename must be the name of the data type to which the entry belongs, the string filename must be the prefix of the data file(s), and crc must be a list of integers that are the CRC values of the data files (seeCrcFile
(Reference: CrcFile); in particular, the number of files that are described by the entry equals the length of crc.This function is not intended for private extensions of the database.
+The optional argument dirid is equal to the argument with the same name in the corresponding call of
-AtlasOfGroupRepresentationsNotifyData
(5.1-1). If no dirid argument is given then the current value ofAGR.DIRID
is taken as the default; this value is set automatically before atoc.json
file gets evaluated byAtlasOfGroupRepresentationsNotifyData
(5.1-1), and is reset afterwards. IfAGR.DIRID
is not bound and dirid is not given then this function has no effect.An example of a valid call is
+AGR.TOC("perm","S5G1-p5B0.m",[-3581724,115937465])
.An example of a valid call is
AGR.TOC("perm","alt/A5/mtx/S5G1-p5B0.m", [-3581724,115937465])
.-
- -
AGR.GRS( gapname, size )
Called with the string gapname (the GAP name of the group) and the integer size (the order of the group),
+AGR.GRS
stores this information inAtlasOfGroupRepresentationsInfo.GAPnames
.- +
AGR.GRS(
gapname, size[, dirid])
- -
The integer size is stored as the order of the group with GAP name gapname, in
AtlasOfGroupRepresentationsInfo.GAPnames
.An example of a valid call is
AGR.GRS("A5.2",120)
.- -
AGR.MXN( gapname, nrMaxes )
Called with the string gapname (the GAP name of the group) and the integer nrMaxes (the number of classes of maximal subgroups of the group),
+AGR.MXN
stores the information inAtlasOfGroupRepresentationsInfo.GAPnames
.- +
AGR.MXN(
gapname, nrMaxes[, dirid])
- -
The integer nrMaxes is stored as the number of classes of maximal subgroups of the group with GAP name gapname, in
AtlasOfGroupRepresentationsInfo.GAPnames
.An example of a valid call is
AGR.MXN("A5.2",4)
.- -
AGR.MXO( gapname, sizesMaxes )
Called with the string gapname (the GAP name of the group) and the list sizesMaxes (of subgroup orders of the classes of maximal subgroups of the group, not necessarily dense, in non-increasing order),
+AGR.MXO
stores the information inAtlasOfGroupRepresentationsInfo.GAPnames
.- +
AGR.MXO(
gapname, sizesMaxes[, dirid])
- -
The list sizesMaxes of subgroup orders of the classes of maximal subgroups of the group with GAP name gapname (not necessarily dense, in non-increasing order) is stored in
AtlasOfGroupRepresentationsInfo.GAPnames
.An example of a valid call is
AGR.MXO("A5.2",[60,24,20,12])
.- -
AGR.MXS( gapname, structureMaxes )
Called with the string gapname (the GAP name of the group) and the list structureMaxes (of strings describing the structures of the maximal subgroups of the group, not necessarily dense),
+AGR.MXS
stores the information inAtlasOfGroupRepresentationsInfo.GAPnames
.- +
AGR.MXS(
gapname, structureMaxes[, dirid])
- -
Called with the string The list structureMaxes of strings describing the structures of the maximal subgroups of the group with GAP name gapname (not necessarily dense), is stored in
AtlasOfGroupRepresentationsInfo.GAPnames
.An example of a valid call is
AGR.MXS("A5.2",["A5","S4","5:4","S3x2"])
.- -
AGR.KERPRG( gapname, kernelProgram )
- -
Called with the string gapname (the GAP name of the group) and the list kernelProgram (with entries the standardization of the group, the GAP name of a factor group, and the list of lines of a straight line program that computes generators of the kernel of the epimorphism from the group to the factor group),
- -AGR.KERPRG
stores the information inAtlasOfGroupRepresentationsInfo.GAPnames
.An example of a valid call is
- -AGR.KERPRG("2.J2",[1,"J2",[[[1,2]]]])
.- -
AGR.STDCOMP
Called with the string gapname (the GAP name of the group) and the list factorCompatibility (with entries the standardization of the group, the GAP name of a factor group, the standardization of this factor group, and
+true
orfalse
, indicating whether mapping the standard generators for gapname to those of factgapname defines an epimorphism),AGR.STDCOMP
stores the information inAtlasOfGroupRepresentationsInfo.GAPnames
.- +
AGR.STDCOMP(
gapname, factorCompatibility[, dirid])
The list factorCompatibility (with entries the standardization of the group with GAP name gapname , the GAP name of a factor group, the standardization of this factor group, and
true
orfalse
, indicating whether mapping the standard generators for gapname to those of factgapname defines an epimorphism) is stored inAtlasOfGroupRepresentationsInfo.GAPnames
.An example of a valid call is
@@ -885,149 +919,157 @@AGR.STDCOMP("2.A5.2",[1,"A5.2",1,true])
.-
-- -
AGR.RNG( repname, descr )
Called with two strings repname (denoting the name of a file containing the generators of a matrix representation over a ring that is not determined by the filename) and descr (describing this ring R, say),
+AGR.RNG
adds the triple [ repname, descr, R ] to the list stored in theringinfo
component ofAtlasOfGroupRepresentationsInfo
(7.1-6).- +
AGR.RNG(
repname, descr[, dirid])
- -
Called with two strings repname (denoting the name of a file containing the generators of a matrix representation over a ring that is not determined by the filename) and descr (describing this ring R, say),
AGR.RNG
adds the triple [ repname, descr, R ] to the list stored in theringinfo
component ofAtlasOfGroupRepresentationsInfo
(7.1-5).An example of a valid call is
AGR.RNG("A5G1-Ar3aB0","Field([Sqrt(5)])")
.- -
AGR.TOCEXT( atlasname, std, maxnr, files )
Called with the string atlasname (the ATLAS name of the group), the positive integers std (the standardization) and maxnr (the number of the class of maximal subgroups), and the list files (of filenames of straight line programs for computing generators of the maxnr-th maximal subgroup, using a straight line program for a factor group plus perhaps some straight line program for computing kernel generators),
+AGR.TOCEXT
stores the information in themaxext
component of the atlasname component of the"remote"
table of contents.- +
AGR.TOCEXT(
atlasname, std, maxnr, files[, dirid])
- -
Called with atlasname, the positive integers std (the standardization) and maxnr (the number of the class of maximal subgroups), and the list files (of filenames of straight line programs for computing generators of the maxnr-th maximal subgroup, using a straight line program for a factor group plus perhaps some straight line program for computing kernel generators),
AGR.TOCEXT
stores the information inAtlasOfGroupRepresentationsInfo.GAPnames
.An example of a valid call is
AGR.TOCEXT("2A5",1,3,["A5G1-max3W1"])
.- -
AGR.API( repname, info )
Called with the string repname (denoting the name of a permutation representation) and the list info (describing the point stabilizer of this representation),
+AGR.API
binds the component repname of the recordAtlasOfGroupRepresentationsInfo.permrepinfo
to info.- +
AGR.API(
repname, info[, dirid])
- -
Called with the string repname (denoting the name of a permutation representation) and the list info (describing the point stabilizer of this representation),
-AGR.API
binds the component repname of the recordAtlasOfGroupRepresentationsInfo.permrepinfo
to a record that describes the contents of info.info has the following entries.
+info has the following entries.
- -
At position 1, the transitivity is stored.
If the transitivity is zero then the second entry is the list of orbit lengths.
+- -
If the transitivity is zero then info has length two, and the second entry is the list of orbit lengths.
If the transitivity is positive then the second entry is the rank of the action.
+If the transitivity is positive then info has length four or five, and the second entry is the rank of the action.
- -
If the transitivity is positive then the third entry is one of the strings
"prim"
,"imprim"
, denoting primitivity or not.If the transitivity is positive then the fourth entry is a string describing the structure of the point stabilizer. If the third entry is
+"imprim"
then this description consists of a subgroup part and a maximal subgroup part, separated by" < "
.- -
If the transitivity is positive then the fourth entry is either the string
"???"
or a string that describes the structure of the point stabilizer. If the third entry is"imprim"
then this description consists of a subgroup part and a maximal subgroup part, separated by" < "
.If the third entry is
+"prim"
then the fifth entry is either"???"
or it denotes the number of the class of maximal subgroups that are the point stabilizers.If the third entry is
"prim"
then the fifth entry is either the string"???"
or the number of the class of maximal subgroups that are the point stabilizers.An example of a valid call is
AGR.API("A5G1-p5B0",[3,2,"prim","A4",1])
.- -
AGR.CHAR( groupname, repname, char, pos[, charname] )
Called with the strings groupname (the GAP name of the group) and repname (denoting the name of the representation), the integer char (the characteristic of the representation), and pos (the position or list of positions of the irreducible constituent(s)),
+AGR.CHAR
stores the information inAtlasOfGroupRepresentationsInfo.characterinfo
. A string describing the character can be entered as charname.- +
AGR.CHAR(
gapname, repname, char, pos[, charname[, dirid]])
Called with the strings gapname and repname (denoting the name of the representation), the integer char (the characteristic of the representation), and pos (the position or list of positions of the irreducible constituent(s)),
+ +AGR.CHAR
stores the information inAtlasOfGroupRepresentationsInfo.characterinfo
.A string describing the character can be entered as charname.
+ +If dirid is given but no charname is known then one can enter
fail
as the fifth argument.An example of a valid call is
AGR.CHAR("M11","M11G1-p11B0",0,[1,2],"1a+10a")
.These functions are used to create the initial table of contents for the server data of the AtlasRep package when the file
+ - +gap/atlasprm.g
of the package is read.7.9 Sanity Checks for the AtlasRep Package
-7.8 Sanity Checks for the ATLAS of Group Representations
+The file
-tst/testall.g
of the package containsTest
(Reference: Test) statements for checking whether the AtlasRep functions behave as documented. One can run these tests by callingReadPackage( "AtlasRep", "tst/testall.g" )
. The examples in the package manual form a part of the tests, they are collected in the filetst/docxpl.tst
of the package.The fact that the ATLAS of Group Representations is designed as an open database (see Section 4.3-1) makes it especially desirable to have consistency checks available which can be run automatically whenever new data are added by the developers of the ATLAS. The tests described in Section 7.8-1 can be used also for data from private extensions of the package (see Chapter 5), Section 7.8-2 lists tests which do not have this property.
+The remainder of this section deals with consistency checks of the data. The tests described in Section 7.9-1 can be used for data from any extension of the database (see Chapter 5), Section 7.9-2 lists tests which apply only to the core part of the database.
-All these tests apply only to the local table of contents (see Section 7.7) or to private extensions. So only those data files are checked that are actually available in the local GAP installation. No files are fetched from servers during these tests. The required space and time for running these tests depend on the amount of locally available data.
+All these tests apply only to locally available files (see Section 7.8), no files are downloaded during the tests. Thus the required space and time for running these tests depend on the amount of locally available data.
-The file
+tst/testall.g
of the package containsTest
(Reference: Test) statements for executing a collection of such sanity checks; one can run them by callingReadPackage( "AtlasRep", "tst/testall.g" )
. If no problem occurs then GAP prints only lines starting with one of the following.Some of the tests compute and verify additional data, such as information about point stabilizers of permutation representations. In these cases, output lines starting with
+ -#E
are error messages that point to inconsistencies, whereas output lines starting with#I
inform about data that have been computed and were not yet stored, or about stored data that were not verified. These tests are experimental in the sense that they involve several heuristics. Depending on the data to which they are applied, it may happen that the tests run out of space or do not finish in acceptable time. Please inform the package maintainer if you run into such problems.+-+ Input file: -+ GAP4stones: -7.9-1 Sanity Checks for a Table of Contents
-Some of the checks compute and verify additional data, such as information about point stabilizers of permutation representations. In these cases, output lines starting with
+#E
are error messages that point to inconsistencies, whereas output lines starting with#I
inform about data that have been computed and were not yet stored, or about stored data that were not verified.The following tests can be used to check the data that belong to a given part of the database (core data or extension). Each of these tests is given by a function with optional argument tocid, the identifying string that had been entered as the second argument of
-AtlasOfGroupRepresentationsNotifyData
(5.1-1). The contents of the core part can be checked by entering"core"
, which is also the default for tocid. The function returnsfalse
if an error occurs, otherwisetrue
. Currently the following tests of this kind are available. (For some of them, the global optionTryToExtendData
can be entered in order to try the computation of not yet stored data.)The examples in the package manual form a part of the tests, they are collected in the file
- +tst/docxpl.tst
of the package.+
- +
AGR.Test.GroupOrders()
- +
checks whether the group orders stored in the
-GAPnames
component ofAtlasOfGroupRepresentationsInfo
(7.1-5) coincide with the group orders computed from an ATLAS permutation representation of degree up toAGR.Test.MaxTestDegree
, from the available character table or table of marks with the given name, or from the structure of the name, in the sense that splitting the name at the first dot (.
) or colon (:
) and applying the same criteria to derive the group order from the two parts may yield enough information.7.8-1 Sanity Checks for a Table of Contents
+- +
AGR.Test.Words( [
tocid] )
- +
processes the straight line programs that belong to tocid, using the function stored in the
-TestWords
component of the data type in question.The following tests can be used to check the data that belong to a given table of contents. Each of these tests is given by a function with optional argument tocid, the identifying string that had been entered as the second argument of
+AtlasOfGroupRepresentationsNotifyPrivateDirectory
(5.1-1). The contents of the localdataword
directory can be checked by entering"local"
, which is also the default for tocid. The function returnsfalse
if an error occurs, otherwisetrue
. Currently the following tests of this kind are available.The straight line programs for the cases listed in
+AGR.Test.HardCases.TestWords
are omitted.- +
AGR.Test.ClassScripts( [
tocid] )
checks whether the straight line programs that belong to tocid and that compute representatives of certain conjugacy classes are consistent with information stored on the GAP character table of the group in question, in the sense that the given class names really occur in the character table and that the element orders and centralizer orders for the classes are correct.
--
- +- -
AGR.Test.Words( [tocid] )
- +
processes all straight line programs that are stored in the directory with identifier tocid, using the function stored in the
+TestWords
component of the data type in question.- +
AGR.Test.CycToCcls( [
tocid][:TryToExtendData] )
- -
checks whether all straight line programs that belong to tocid and that compute class representatives from representatives of cyclic subgroups possess a corresponding straight line program (anywhere in the database) for computing representatives of cyclic subgroups.
- -
AGR.Test.FileHeaders( [tocid] )
checks whether all MeatAxe text format data files in the directory with identifier tocid have a header line that is consistent with the filename, and whether the contents of all GAP format data files in this directory is consistent with the contents of the file.
+- +
AGR.Test.FileHeaders( [
tocid] )
- -
checks whether the MeatAxe text files that belong to tocid have a header line that is consistent with the filename, and whether the contents of all GAP format data files that belong to tocid is consistent with the filename.
- -
AGR.Test.Files( [tocid] )
checks whether the MeatAxe text files that are stored in the directory with identifier tocid can be read with
+ScanMeatAxeFile
(7.3-1) such that the result is notfail
. The function does not check whether the first line of a MeatAxe text file is consistent with the filename, since this can be tested withAGR.Test.FileHeaders
.- +
AGR.Test.Files( [
tocid] )
- -
checks whether the MeatAxe text files that belong to tocid can be read with
ScanMeatAxeFile
(7.3-1) such that the result is notfail
. The function does not check whether the first line of a MeatAxe text file is consistent with the filename, since this can be tested withAGR.Test.FileHeaders
.- -
AGR.Test.BinaryFormat( [tocid] )
checks whether all MeatAxe text format data files in the directory with identifier tocid satisfy that applying first
+CMtxBinaryFFMatOrPerm
(7.3-4) and thenFFMatOrPermCMtxBinary
(7.3-5) yields the same object.- +
AGR.Test.BinaryFormat( [
tocid] )
- -
checks whether all MeatAxe text files that belong to tocid satisfy that applying first
CMtxBinaryFFMatOrPerm
(7.3-4) and thenFFMatOrPermCMtxBinary
(7.3-5) yields the same object.- -
AGR.Test.Primitivity( [tocid] )
checks the stored primitivity information for the permutation representations that are stored in the directory with identifier tocid.
+- +
AGR.Test.Primitivity( [
tocid][:TryToExtendData] )
- -
checks the stored primitivity information for the permutation representations that belong to tocid. That is, the number of orbits, in case of a transitive action the transitivity, the rank, the information about the point stabilizers are computed if possible, and compared with the stored information.
- -
AGR.Test.Characters( [tocid] )
checks the stored character information for the matrix and permutation representations that are stored in the directory with identifier tocid.
+- +
AGR.Test.Characters( [
tocid][:TryToExtendData] )
- -
checks the character information (that belongs to tocid) for the matrix and permutation representations.
- +
AGR.Test.StdCompatibility( [
tocid][:TryToExtendData] )
- +
checks whether the information about the compatibility of standard generators of a group and its factor groups that is stored in the
-GAPnames
component ofAtlasOfGroupRepresentationsInfo
(7.1-5) and belongs to tocid coincides with computed values.7.8-2 Other Sanity Checks
+The following criterion is used for computing the value for a group G. Use the GAP Character Table Library to determine factor groups F of G for which standard generators are defined and moreover a presentation in terms of these standard generators is known. Evaluate the relators of the presentation in the standard generators of G, and let N be the normal closure of these elements in G. Then mapping the standard generators of F to the N-cosets of the standard generators of G is an epimorphism. If |G/N| = |F| holds then G/N and F are isomorphic, and the standard generators of G and F are compatible in the sense that mapping the standard generators of G to their N-cosets yields standard generators of F.
-The tests described in this section are not intended for checking data from private extensions of the AtlasRep package. Each of the tests is given by a function without arguments that returns
+false
if a contradiction was found during the test, andtrue
otherwise. Additionally, certain messages are printed when contradictions between stored and computed data are found, when stored data cannot be verified computationally, or when the computations yield improvements of the stored data. Currently the following tests of this kind are available.- +
AGR.Test.KernelGenerators( [
tocid][:TryToExtendData] )
- -
checks whether the straight line programs (that belong to tocid) for computing generators of kernels of natural epimorphisms between ATLAS groups compute generators of normal subgroups of the right group orders. If it is known that the given standard generators of the given group are compatible with some standard generators of the factor group in question (see the section about
+AGR.Test.StdCompatibility
) then it is also checked whether evaluating the straight line program at these standard generators of the factor group yields only the identity.Note that the verification of normal subgroups of matrix groups may be very time and space consuming if the package recog [NSA+18] is not available.
--
+ -- -
AGR.Test.GroupOrders()
- -
checks whether the group orders stored in the
+GAPnames
component ofAtlasOfGroupRepresentationsInfo
(7.1-6) coincide with the group orders computed from an ATLAS permutation representation of degree up toAGR.Test.MaxTestDegree
, from the character table or the table of marks with the given name, or from the structure of the name. Supported is a splitting of the name at the first dot (.
), where the two parts of the name are examined with the same criteria in order to derive the group order.The function also tries to find words for computing kernel generators of those epimorphisms for which no straight line programs are stored; the candidates are given by stored factor fusions between the character tables from the GAP Character Table Library.
- -
AGR.Test.MaxesOrders()
checks whether the orders of maximal subgroups stored in the component
+GAPnames
ofAtlasOfGroupRepresentationsInfo
(7.1-6) coincide with the orders computed from the restriction of an ATLAS permutation representation of degree up toAGR.Test.MaxTestDegree
, from the character table, or the table of marks with the given name, or from the information about maximal subgroups of a factor group modulo a normal subgroup that is contained in the Frattini subgroup.- +
AGR.Test.MaxesOrders( [
tocid] )
checks whether the orders of maximal subgroups stored in the component
GAPnames
ofAtlasOfGroupRepresentationsInfo
(7.1-5) coincide with the orders computed from the restriction of an ATLAS permutation representation of degree up toAGR.Test.MaxTestDegree
(using a straight line program that belongs to tocid), from the character table, or the table of marks with the given name, or from the information about maximal subgroups of the factor group modulo a normal subgroup that is contained in the Frattini subgroup.- -
AGR.Test.MaxesStructure()
checks whether the names of maximal subgroups stored in the component
+GAPnames
ofAtlasOfGroupRepresentationsInfo
(7.1-6) coincide with the names computed from the GAP character table with the given name.- -
checks whether the names of maximal subgroups stored in the component
GAPnames
ofAtlasOfGroupRepresentationsInfo
(7.1-5) coincide with the names computed from the GAP character table with the given name.- -
AGR.Test.StdCompatibility()
checks whether the information about the compatibility of standard generators of a group and its factor groups that is stored in the
- -GAPnames
component ofAtlasOfGroupRepresentationsInfo
(7.1-6) coincides with computed values.The following criterion is used for computing the value for a group G. Use the GAP Character Table Library to determine factor groups F of G for which standard generators are defined and moreover a presentation in terms of these standard generators is known. Evaluate the relators of the presentation in the standard generators of G, and let N be the normal closure of these elements in G. Then mapping the standard generators of F to the N-cosets of the standard generators of G is an epimorphism. If |G/N| = |F| holds then G/N and F are isomorphic, and the standard generators of G and F are compatible in the sense that mapping the standard generators of G to their N-cosets yields standard generators of F.
+- +
AGR.Test.MaxesStandardization( [
tocid] )
- -
checks whether the straight line programs (that belong to tocid) for standardizing the generators of maximal subgroups are correct: If a semi-presentation is available for the maximal subgroup and the standardization in question then it is used, otherwise an explicit isomorphism is tried.
- +
AGR.Test.CompatibleMaxes()
AGR.Test.CompatibleMaxes( [
tocid][:TryToExtendData] )
- -
checks whether the information about deriving straight line programs for restricting to subgroups from straight line programs that belong to a factor group coincide with computed values.
The following criterion is used for computing the value for a group G. If F is a factor group of G such that the standard generators of G and F are compatible (see the test function
AGR.Test.StdCompatibility
) and if there are a presentation for F and a permutation representation of G then it is checked whether the"maxes"
type straight line programs for F can be used to compute generators for the maximal subgroups of G; if not then generators of the kernel of the natural epimorphism from G to F, must be added.- -
AGR.Test.ClassScripts()
checks whether the straight line programs that compute representatives of certain conjugacy classes are consistent with information stored on the GAP character table of the group in question, in the sense that the given class names really occur in the character table and that the element orders and centralizer orders for the classes are correct.
+- -
AGR.Test.CycToCcls()
- +
checks whether some straight line program that computes representatives of conjugacy classes of a group can be computed from the ordinary GAP character table of that group and a straight line program that computes representatives of cyclic subgroups. In this case the missing scripts are printed if the level of
+InfoAtlasRep
(7.1-1) is at least 1.7.9-2 Other Sanity Checks
-The tests described in this section are intended for checking data that do not belong to a particular part of the AtlasRep database. Therefore all locally available data are used in these tests. Each of the tests is given by a function without arguments that returns
+ + +false
if a contradiction was found during the test, andtrue
otherwise. Additionally, certain messages are printed when contradictions between stored and computed data are found, when stored data cannot be verified computationally, or when the computations yield improvements of the stored data. Currently the following tests of this kind are available.+
AGR.Test.Standardization()
checks whether all generating sets corresponding to the same set of standard generators have the same element orders; for the case that straight line programs for computing certain class representatives are available, also the orders of these representatives are checked w. r. t. all generating sets.
@@ -1036,19 +1078,19 @@- -
checks whether the standard generators are compatible with those that occur in the TomLib package.
- -
AGR.Test.KernelGenerators()
checks whether the information stored in the
- -GAPnames
component ofAtlasOfGroupRepresentationsInfo
(7.1-6) about straight line programs for computing generators of the kernels of natural epimorphisms between ATLAS groups coincides with computed values.The following criterion is used for computing the value for a group G. Use the GAP Character Table Library to determine factor groups F of G for which standard generators are defined such that mapping standard generators of G to those of F defines a homomorphism, and such that a presentation of F in terms of its standard generators is known. Evaluating the relators of the presentation in the standard generators of G yields normal subgroup generators for the kernel.
- -A message is printed for each group name for which some straight line program for computing kernel generators was not stored but now was computed, or for which the stored info cannot be verified,
- -- -
AGR.Test.MinimalDegrees()
checks that the (permutation and matrix) representations available in the ATLAS of Group Representations do not have smaller degree than the claimed minimum.
+checks that the (permutation and matrix) representations available in the database do not have smaller degree than the minimum claimed in Section 6.3.
Finally, we reset the user preference and the info level which had been set at the beginning of Chapter 2.
+ + ++ diff -Nru gap-atlasrep-1.5.1/doc/chap7_mj.html gap-atlasrep-2.1.0/doc/chap7_mj.html --- gap-atlasrep-1.5.1/doc/chap7_mj.html 1970-01-01 00:00:00.000000000 +0000 +++ gap-atlasrep-2.1.0/doc/chap7_mj.html 2019-06-21 15:10:33.000000000 +0000 @@ -0,0 +1,1106 @@ + + + + + + + ++gap> SetUserPreference( "AtlasRep", "DisplayFunction", origpref ); +gap> SetInfoLevel( InfoAtlasRep, globallevel ); +GAP (AtlasRep) - Chapter 7: Technicalities of the AtlasRep Package + + + + + + + + + + + + + + + +7 Technicalities of the AtlasRep Package + + + + + + + + + ++ +7 Technicalities of the AtlasRep Package
+ +This chapter describes those parts of the GAP interface to the ATLAS of Group Representations that do not belong to the user interface (cf. Chapter 3).
+ +Besides global variables used for administrational purposes (see Section 7.1) and several sanity checks (see Section 7.9), they can be regarded as the interface between the data actually contained in the files and the corresponding GAP objects (see Section 7.2, 7.3, 7.4, and 7.5), and the interface between the remote and the local version of the database (see Section 7.6 and 7.8). The former interface contains functions to read and write files in MeatAxe format, which may be interesting for users familiar with MeatAxe standalones (see for example [Rin]). Other low level functions may be undocumented in the sense that they are not described in this manual. Users interested in them may look at the actual implementation in the
+ + + +gap
directory of the package, but it may happen that this will be changed in future versions of the package.7.1 Global Variables Used by the AtlasRep Package
+ +For debugging purposes, AtlasRep functions print information depending on the info level of the info classes
+ +InfoAtlasRep
(7.1-1),InfoCMeatAxe
(7.1-2), andInfoBBox
(7.1-3) (cf. Reference: Info Functions).The info level of an info class can be changed using
+ + + +SetInfoLevel
(Reference: InfoLevel). For example, the info level ofInfoAtlasRep
(7.1-1) can be set to the nonnegative integer \(n\) usingSetInfoLevel( InfoAtlasRep,
\(n\))
.7.1-1 InfoAtlasRep
+ ++
‣ InfoAtlasRep
( info class ) If the info level of
+ + + +InfoAtlasRep
is at least \(1\) then information aboutfail
results of AtlasRep functions is printed. If the info level is at least \(2\) then also information about calls to external programs is printed. The default level is \(0\), no information is printed on this level.7.1-2 InfoCMeatAxe
+ ++
‣ InfoCMeatAxe
( info class ) If the info level of
+ + + +InfoCMeatAxe
is at least \(1\) then information aboutfail
results ofC
-MeatAxe functions (see Section 7.3) is printed. The default level is zero, no information is printed on this level.7.1-3 InfoBBox
+ ++
‣ InfoBBox
( info class ) If the info level of
+ + + +InfoBBox
is at least \(1\) then information aboutfail
results of functions dealing with black box programs (see Section 6.2) is printed. The default level is \(0\), no information is printed on this level.7.1-4 AGR
+ ++
‣ AGR
( global variable ) is a record whose components are functions and data that are used by the high level interface functions. Some of the components are documented, see for example the index of the package manual.
+ + + +7.1-5 AtlasOfGroupRepresentationsInfo
+ ++
‣ AtlasOfGroupRepresentationsInfo
( global variable ) This is a record that is defined in the file
+ + +gap/types.g
of the package, with the following components.+
+ + +- +
GAPnames
- +
a list of pairs, each containing the GAP name and the ATLAS-file name of a group, see Section 3.2,
+ +- +
notified
- +
a list used for administrating extensions of the database (see Chapter 5); the value is changed by
+ +AtlasOfGroupRepresentationsNotifyData
(5.1-1) andAtlasOfGroupRepresentationsForgetData
(5.1-2),- +
characterinfo
,permrepinfo
,ringinfo
- +
additional information about representations, concerning the afforded characters, the point stabilizers of permutation representations, and the rings of definition of matrix representations; this information is used by
+ +DisplayAtlasInfo
(3.5-1),- +
TableOfContents
- +
a record with at most the components
+ +core
,internal
,local
,merged
,types
, and the identifiers of database extensions. The value of the componenttypes
is set inAGR.DeclareDataType
(7.5-1), and the values of the other components are created byAtlasOfGroupRepresentationsNotifyData
(5.1-1).- +
accessFunctions
- +
a list of records, each describing how to access the data files, see Sections 4.2-6 and 7.2, and
+ +7.2 How to Customize the Access to Data files
+ +By default, locally available data files are stored in prescribed directories, and the files are exactly the text files that have been downloaded from appropriate places in the internet. However, a more flexible approach may be useful.
+ +First, one may want to use different file formats, for example MeatAxe binary files may be provided parallel to MeatAxe text files. Second, one may want to use a different directory structure, for example the same structure as used on some server –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.
+ +In order to achieve this (and perhaps more), we admit to customize the meaning of the following three access steps.
+ + ++
+- Are the required data locally available?
+- +
There may be different file formats available, such as text or binary files, and it may happen that the data are available in one file or are distributed to several files.
+ +- How can a file be made locally available?
+- +
A different remote 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 evaluate the file contents.
+ +For creating an overview of the locally available data, the first of these steps must be available independent of actually accessing the file in question. For updating the local copy of the server data, the second of the above steps must be available independent of the third one. Therefore, the package provides the possibility to extend the default behaviour by adding new records to the
+ + +accessFunctions
component ofAtlasOfGroupRepresentationsInfo
(7.1-5). The relevant record components are as follows.+
+- +
description
- +
This must be a short string that describes for which kinds of files the functions in the current record are intended, which file formats are supported etc. The value is used as key in the user preference
+ +FileAccessFunctions
, see Section 4.2-6.- +
+location(
\(files, type\))
+- +
Let \(files\) be a list of pairs
+ +[ dirname, filename ]
, and \(type\) be the data type (seeAGR.DeclareDataType
(7.5-1)) to which the files belong. This function must return either the absolute paths where the mechanism implemented by the current record expects the local version of the given files, orfail
if this function does not feel responsible for these files.The files are regarded as not locally available if all installed
+ +location
functions return eitherfail
or paths of nonexisting files, in the sense ofIsExistingFile
(Reference: IsExistingFile).- +
+fetch(
\(filepath, filename, dirname, type\))
+- +
This function is called if a file is not locally available and if the
+ +location
function in the current record has returned a list of paths. The argument \(type\) must be the same as for thelocation
function, and \(filepath\) and \(filename\) must be strings (not lists of strings).The return value must be
+ +true
if the function succeeded with making the file locally available (including postprocessing if applicable), andfalse
otherwise.- +
contents(
\(files, type, filepaths\))
- +
This function is called when the
+ +location
function in the current record has returned the path(s) \(filepath\), and if either these are paths of existing files or thefetch
function in the current record has been called for these paths, and the return value wastrue
. The first three arguments must be the same as for thelocation
function.The return value must be the contents of the file(s), in the sense that the GAP matrix, matrix list, permutation, permutation list, or program described by the file(s) is returned. This means that besides reading the file(s) via the appropriate function, interpreting the contents may be necessary.
+ +In
+ + + +AGR.FileContents
(7.6-2), those records in theaccessFunctions
component ofAtlasOfGroupRepresentationsInfo
(7.1-5) are considered –in reversed order– whosedescription
component occurs in the user preferenceFileAccessFunctions
, see Section 4.2-6.7.3 Reading and Writing MeatAxe Format Files
+ + + +7.3-1 ScanMeatAxeFile
+ ++
‣ ScanMeatAxeFile
( filename[, q][, "string"] )( function ) Returns: the matrix or list of permutations stored in the file or encoded by the string.
+ +Let filename be the name of a GAP readable file (see Reference: Filename) that contains a matrix or a permutation or a list of permutations in MeatAxe text format (see the section about the program
+ +zcv
in theC
-MeatAxe documentation [Rin]), and let q be a prime power.ScanMeatAxeFile
returns the corresponding GAP matrix or list of permutations, respectively.If the file contains a matrix then the way how it is read by
+ +ScanMeatAxeFile
depends on the value of the user preferenceHowToReadMeatAxeTextFiles
, see Section 4.2-8.If the parameter q is given then the result matrix is represented over the field with q elements, the default for q is the field size stored in the file.
+ +If the file contains a list of permutations then it is read with
+ +StringFile
(GAPDoc: StringFile); the parameter q, if given, is ignored in this case.If the string
+ + + +"string"
is entered as the third argument then the first argument must be a string as obtained by reading a file in MeatAxe text format as a text stream (seeInputTextFile
(Reference: InputTextFile)). Also in this case,ScanMeatAxeFile
returns the corresponding GAP matrix or list of permutations, respectively.7.3-2 MeatAxeString
+ ++
‣ MeatAxeString
( mat, q )( operation ) +
‣ MeatAxeString
( perms, degree )( operation ) +
‣ MeatAxeString
( perm, q, dims )( operation ) +
‣ MeatAxeString
( intmat )( operation ) Returns: a string encoding the GAP objects given as input in
+ +C
-MeatAxe text format, see [Rin].In the first form, for a matrix mat whose entries lie in the finite field with q elements,
+ +MeatAxeString
returns a string that encodes mat as a matrix overGF(q)
.In the second form, for a nonempty list perms of permutations that move only points up to the positive integer degree,
+ +MeatAxeString
returns a string that encodes perms as permutations of degree degree.In the third form, for a permutation perm with largest moved point \(n\), say, a prime power q, and a list dims of length two containing two positive integers larger than or equal to \(n\),
+ +MeatAxeString
returns a string that encodes perm as a matrix overGF(q)
, of dimensions dims, whose first \(n\) rows and columns describe the permutation matrix corresponding to perm, and the remaining rows and columns are zero.In the fourth form, for a matrix intmat of integers,
+ +MeatAxeString
returns a string that encodes intmat as an integer matrix.When strings are printed to files using
+ + +PrintTo
(Reference: PrintTo) orAppendTo
(Reference: AppendTo) then line breaks are inserted whenever lines exceed the number of characters given by the second entry of the list returned bySizeScreen
(Reference: SizeScreen), see Reference: Operations for Output Streams. This behaviour is not desirable for creating data files. So the recommended functions for printing the result ofMeatAxeString
to a file areFileString
(GAPDoc: FileString) andWriteAll
(Reference: WriteAll).+ ++gap> mat:= [ [ 1, -1 ], [ 0, 1 ] ] * Z(3)^0;; +gap> str:= MeatAxeString( mat, 3 ); +"1 3 2 2\n12\n01\n" +gap> mat = ScanMeatAxeFile( str, "string" ); +true +gap> str:= MeatAxeString( mat, 9 ); +"1 9 2 2\n12\n01\n" +gap> mat = ScanMeatAxeFile( str, "string" ); +true +gap> perms:= [ (1,2,3)(5,6) ];; +gap> str:= MeatAxeString( perms, 6 ); +"12 1 6 1\n2\n3\n1\n4\n6\n5\n" +gap> perms = ScanMeatAxeFile( str, "string" ); +true +gap> str:= MeatAxeString( perms, 8 ); +"12 1 8 1\n2\n3\n1\n4\n6\n5\n7\n8\n" +gap> perms = ScanMeatAxeFile( str, "string" ); +true +Note that the output of
+ + +MeatAxeString
in the case of permutation matrices depends on the user preferenceWriteMeatAxeFilesOfMode2
.+ + + ++gap> perm:= (1,2,4);; +gap> str:= MeatAxeString( perm, 3, [ 5, 6 ] ); +"2 3 5 6\n2\n4\n3\n1\n5\n" +gap> mat:= ScanMeatAxeFile( str, "string" );; Print( mat, "\n" ); +[ [ 0*Z(3), Z(3)^0, 0*Z(3), 0*Z(3), 0*Z(3), 0*Z(3) ], + [ 0*Z(3), 0*Z(3), 0*Z(3), Z(3)^0, 0*Z(3), 0*Z(3) ], + [ 0*Z(3), 0*Z(3), Z(3)^0, 0*Z(3), 0*Z(3), 0*Z(3) ], + [ Z(3)^0, 0*Z(3), 0*Z(3), 0*Z(3), 0*Z(3), 0*Z(3) ], + [ 0*Z(3), 0*Z(3), 0*Z(3), 0*Z(3), Z(3)^0, 0*Z(3) ] ] +gap> pref:= UserPreference( "AtlasRep", "WriteMeatAxeFilesOfMode2" );; +gap> SetUserPreference( "AtlasRep", "WriteMeatAxeFilesOfMode2", true ); +gap> MeatAxeString( mat, 3 ) = str; +true +gap> SetUserPreference( "AtlasRep", "WriteMeatAxeFilesOfMode2", false ); +gap> MeatAxeString( mat, 3 ); +"1 3 5 6\n010000\n000100\n001000\n100000\n000010\n" +gap> SetUserPreference( "AtlasRep", "WriteMeatAxeFilesOfMode2", pref ); +7.3-3 FFList
+ ++
‣ FFList
( F )( function ) Returns: a list of elements in the given finite field.
+ ++
‣ FFLists
( global variable ) + +
FFList
is a utility program for the conversion of vectors and matrices from MeatAxe format to GAP format and vice versa. It is used byScanMeatAxeFile
(7.3-1) andMeatAxeString
(7.3-2).For a finite field F,
+ +FFList
returns a list \(l\) giving the correspondence between the MeatAxe numbering and the GAP numbering of the elements in F.The element of F corresponding to MeatAxe number \(n\) is \(l[ n+1 ]\), and the MeatAxe number of the field element \(z\) is
+ +Position(
\(l, z\)) - 1
.The global variable
+ + +FFLists
is used to store the information about F once it has been computed.+ ++gap> FFList( GF(4) ); +[ 0*Z(2), Z(2)^0, Z(2^2), Z(2^2)^2 ] +gap> IsBound( FFLists[4] ); +true +The MeatAxe defines the bijection between the elements in the field with \(q = p^d\) elements and the set \(\{ 0, 1, \ldots, q-1 \}\) of integers by assigning the field element \(\sum_{{i=0}}^{{d-1}} c_i z^i\) to the integer \(\sum_{{i=0}}^{{d-1}} c_i p^i\), where the \(c_i\) are in the set \(\{ 0, 1, \ldots, p-1 \}\) and \(z\) is the primitive root of the field with \(q\) elements that corresponds to the residue class of the indeterminate, modulo the ideal spanned by the Conway polynomial of degree \(d\) over the field with \(p\) elements.
+ + + +7.3-4 CMtxBinaryFFMatOrPerm
+ ++
‣ CMtxBinaryFFMatOrPerm
( elm, def, outfile[, base] )( function ) Let the pair \((\textit{elm}, \textit{def})\) be either of the form \((M, q)\) where \(M\) is a matrix over a finite field \(F\), say, with \(q \leq 256\) elements, or of the form \((\pi, n)\) where \(\pi\) is a permutation with largest moved point at most \(n\). Let outfile be a string.
+ +CMtxBinaryFFMatOrPerm
writes theC
-MeatAxe binary format of \(M\), viewed as a matrix over \(F\), or of \(\pi\), viewed as a permutation on the points up to \(n\), to the file with name outfile.In the case of a permutation \(\pi\), the optional argument base prescribes whether the binary file contains the points from \(0\) to deg\( - 1\) (base\( = 0\), supported by version 2.4 of the
+ +C
-MeatAxe) or the points from \(1\) to deg (base\( = 1\), supported by older versions of theC
-MeatAxe). The default for base is given by the value of the user preferenceBaseOfMeatAxePermutation
, see Section 4.2-11.(The binary format is described in the
+ + +C
-MeatAxe manual [Rin].)+ + + ++gap> tmpdir:= DirectoryTemporary();; +gap> mat:= Filename( tmpdir, "mat" );; +gap> q:= 4;; +gap> mats:= GeneratorsOfGroup( GL(10,q) );; +gap> CMtxBinaryFFMatOrPerm( mats[1], q, Concatenation( mat, "1" ) ); +gap> CMtxBinaryFFMatOrPerm( mats[2], q, Concatenation( mat, "2" ) ); +gap> prm:= Filename( tmpdir, "prm" );; +gap> n:= 200;; +gap> perms:= GeneratorsOfGroup( SymmetricGroup( n ) );; +gap> CMtxBinaryFFMatOrPerm( perms[1], n, Concatenation( prm, "1" ) ); +gap> CMtxBinaryFFMatOrPerm( perms[2], n, Concatenation( prm, "2" ) ); +gap> CMtxBinaryFFMatOrPerm( perms[1], n, Concatenation( prm, "1a" ), 0 ); +gap> CMtxBinaryFFMatOrPerm( perms[2], n, Concatenation( prm, "2b" ), 1 ); +7.3-5 FFMatOrPermCMtxBinary
+ ++
‣ FFMatOrPermCMtxBinary
( fname )( function ) Returns: the matrix or permutation stored in the file.
+ +Let fname be the name of a file that contains the
+ + +C
-MeatAxe binary format of a matrix over a finite field or of a permutation, as is described in [Rin].FFMatOrPermCMtxBinary
returns the corresponding GAP matrix or permutation.+ + + ++gap> FFMatOrPermCMtxBinary( Concatenation( mat, "1" ) ) = mats[1]; +true +gap> FFMatOrPermCMtxBinary( Concatenation( mat, "2" ) ) = mats[2]; +true +gap> FFMatOrPermCMtxBinary( Concatenation( prm, "1" ) ) = perms[1]; +true +gap> FFMatOrPermCMtxBinary( Concatenation( prm, "2" ) ) = perms[2]; +true +gap> FFMatOrPermCMtxBinary( Concatenation( prm, "1a" ) ) = perms[1]; +true +gap> FFMatOrPermCMtxBinary( Concatenation( prm, "2b" ) ) = perms[2]; +true +7.4 Reading and Writing ATLAS Straight Line Programs
+ + + +7.4-1 ScanStraightLineProgram
+ ++
‣ ScanStraightLineProgram
( filename[, "string"] )( function ) Returns: a record containing the straight line program, or
+ +fail
.Let filename be the name of a file that contains a straight line program in the sense that it consists only of lines in the following form.
+ + ++
+- +
#
\(anything\)- +
lines starting with a hash sign
+ +#
are ignored,- +
echo
\(anything\)- +
lines starting with
+ +echo
are ignored for theprogram
component of the result record (see below), they are used to set up the bijection between the labels used in the program and conjugacy class names in the case that the program computes dedicated class representatives,- +
inp
\(n\)- +
means that there are \(n\) inputs, referred to via the labels
+ +1
,2
, \(\ldots\), \(n\),- +
inp
\(k\) \(a1\) \(a2\) ... \(ak\)- +
means that the next \(k\) inputs are referred to via the labels \(a1\), \(a2\), ..., \(ak\),
+ +- +
cjr
\(a\) \(b\)- +
means that \(a\) is replaced by \(b\)
+ +^(-1) *
\(a\)*
\(b\),- +
cj
\(a\) \(b\) \(c\)- +
means that \(c\) is defined as \(b\)
+ +^(-1) *
\(a\)*
\(b\),- +
com
\(a\) \(b\) \(c\)- +
means that \(c\) is defined as \(a\)
+ +^(-1) *
\(b\)^(-1)*
\(a\)*
\(b\),- +
iv
\(a\) \(b\)- +
means that \(b\) is defined as \(a\)
+ +^(-1)
,- +
mu
\(a\) \(b\) \(c\)- +
means that \(c\) is defined as \(a\)
+ +*
\(b\),- +
pwr
\(a\) \(b\) \(c\)- +
means that \(c\) is defined as \(b\)
+ +^
\(a\),- +
cp
\(a\) \(b\)- +
means that \(b\) is defined as a copy of \(a\),
+ +- +
oup
\(l\)- +
means that there are \(l\) outputs, stored in the labels
+ +1
,2
, \(\ldots\), \(l\), and- +
oup
\(l\) \(b1\) \(b2\) ... \(bl\)- +
means that the next \(l\) outputs are stored in the labels \(b1\), \(b2\), ... \(bl\).
+ +Each of the labels \(a\), \(b\), \(c\) can be any nonempty sequence of digits and alphabet characters, except that the first argument of
+ +pwr
must denote an integer.If the
+ +inp
oroup
statements are missing then the input or output, respectively, is assumed to be given by the labels1
and2
. There can be multipleinp
lines at the beginning of the program and multipleoup
lines at the end of the program. Only the firstinp
oroup
line may omit the names of the elements. For example, an empty file filename or an empty string string represent a straight line program with two inputs that are returned as outputs.No command except
+ +cjr
may overwrite its own input. For example, the linemu a b a
is not legal. (This is not checked.)+ +
ScanStraightLineProgram
returns a record containing as the value of its componentprogram
the corresponding GAP straight line program (seeIsStraightLineProgram
(Reference: IsStraightLineProgram)) if the input string satisfies the syntax rules stated above, and returnsfail
otherwise. In the latter case, information about the first corrupted line of the program is printed if the info level ofInfoCMeatAxe
(7.1-2) is at least \(1\).If the string
+ +"string"
is entered as the second argument then the first argument must be a string as obtained by reading a file in MeatAxe text format as a text stream (seeInputTextFile
(Reference: InputTextFile)). Also in this case,ScanStraightLineProgram
returns either a record with the corresponding GAP straight line program orfail
.If the input describes a straight line program that computes certain class representatives of the group in question then the result record also contains the component
+ +outputs
. Its value is a list of strings, the entry at position \(i\) denoting the name of the class in which the \(i\) output of the straight line program lies; see Section 3.4 for the definition of the class names that occur.Such straight line programs must end with a sequence of output specifications of the following form.
+ + ++ ++echo "Classes 1A 2A 3A 5A 5B" +oup 5 3 1 2 4 5 +This example means that the list of outputs of the program contains elements of the classes
+ + + +1A
,2A
,3A
,5A
, and5B
(in this order), and that inside the program, these elements are referred to by the five names3
,1
,2
,4
, and5
.7.4-2 AtlasStringOfProgram
+ ++
‣ AtlasStringOfProgram
( prog[, outputnames] )( function ) +
‣ AtlasStringOfProgram
( prog, "mtx" )( function ) Returns: a string encoding the straight line program/decision in the format used in ATLAS files.
+ +For a straight line program or straight line decision prog (see
+ +IsStraightLineProgram
(Reference: IsStraightLineProgram) andIsStraightLineDecision
(6.1-1)), this function returns a string describing the input format of an equivalent straight line program or straight line decision as used in the data files, that is, the lines are of the form described inScanStraightLineProgram
(7.4-1).A list of strings that is given as the optional second argument outputnames is interpreted as the class names corresponding to the outputs; this argument has the effect that appropriate
+ +echo
statements appear in the result string.If the string
+ +"mtx"
is given as the second argument then the result has the format used in theC
-MeatAxe (see [Rin]) rather than the format described forScanStraightLineProgram
(7.4-1). (Note that theC
-MeatAxe format does not make sense if the argument outputnames is given, and that this format does not supportinp
andoup
statements.)The argument prog must not be a black box program (see
+ + +IsBBoxProgram
(6.2-1)).+ + + ++gap> str:= "inp 2\nmu 1 2 3\nmu 3 1 2\niv 2 1\noup 2 1 2";; +gap> prg:= ScanStraightLineProgram( str, "string" ); +rec( program := <straight line program> ) +gap> prg:= prg.program;; +gap> Display( prg ); +# input: +r:= [ g1, g2 ]; +# program: +r[3]:= r[1]*r[2]; +r[2]:= r[3]*r[1]; +r[1]:= r[2]^-1; +# return values: +[ r[1], r[2] ] +gap> StringOfResultOfStraightLineProgram( prg, [ "a", "b" ] ); +"[ (aba)^-1, aba ]" +gap> AtlasStringOfProgram( prg ); +"inp 2\nmu 1 2 3\nmu 3 1 2\niv 2 1\noup 2\n" +gap> prg:= StraightLineProgram( "(a^2b^3)^-1", [ "a", "b" ] ); +<straight line program> +gap> Print( AtlasStringOfProgram( prg ) ); +inp 2 +pwr 2 1 4 +pwr 3 2 5 +mu 4 5 3 +iv 3 4 +oup 1 4 +gap> prg:= StraightLineProgram( [ [2,3], [ [3,1,1,4], [1,2,3,1] ] ], 2 ); +<straight line program> +gap> Print( AtlasStringOfProgram( prg ) ); +inp 2 +pwr 3 2 3 +pwr 4 1 5 +mu 3 5 4 +pwr 2 1 6 +mu 6 3 5 +oup 2 4 5 +gap> Print( AtlasStringOfProgram( prg, "mtx" ) ); +# inputs are expected in 1 2 +zsm pwr3 2 3 +zsm pwr4 1 5 +zmu 3 5 4 +zsm pwr2 1 6 +zmu 6 3 5 +echo "outputs are in 4 5" +gap> str:= "inp 2\nchor 1 2\nchor 2 3\nmu 1 2 3\nchor 3 5";; +gap> prg:= ScanStraightLineDecision( str );; +gap> AtlasStringOfProgram( prg.program ); +"inp 2\nchor 1 2\nchor 2 3\nmu 1 2 3\nchor 3 5\n" +7.5 Data Types Used in the AtlasRep Package
+ +Each representation or program that is administrated by the AtlasRep package belongs to a unique data type. Informally, examples of data types are "permutation representation", "matrix representation over the integers", or "straight line program for computing class representatives".
+ +The idea is that for each data type, there can be
+ + ++
+- +
a column of its own in the output produced by
+ +DisplayAtlasInfo
(3.5-1) when called without arguments or with only argument a list of group names,- +
a line format of its own for the output produced by
+ +DisplayAtlasInfo
(3.5-1) when called with first argument a group name,- +
an input format of its own for
+ +AtlasProgram
(3.5-4),- +
an input format of its own for
+ +OneAtlasGeneratingSetInfo
(3.5-6), and- +
specific tests for the data of this data type; these functions are used by the global tests described in Section 7.9.
+ +Formally, a data type is defined by a record whose components are used by the interface functions. The details are described in the following.
+ + + +7.5-1 AGR.DeclareDataType
+ ++
‣ AGR.DeclareDataType
( kind, name, record )( function ) Let kind be one of the strings
+ +"rep"
or"prg"
, and record be a record. If kind is"rep"
thenAGR.DeclareDataType
declares a new data type of representations, if kind is"prg"
then it declares a new data type of programs. The string name is the name of the type, for example"perm"
,"matff"
, or"classes"
. AtlasRep stores the data for each group internally in a record whose component name holds the list of the data about the type with this name.Mandatory components of record are
+ + ++
+- +
FilenameFormat
- +
This defines the format of the filenames containing data of the type in question. The value must be a list that can be used as the second argument of
+ +AGR.ParseFilenameFormat
(7.6-1), such that only filenames of the type in question match. (It is not checked whether this "detection function" matches exactly one type, so declaring a new type needs care.)- +
AddFileInfo
- +
This defines the information stored in the table of contents for the data of the type. The value must be a function that takes three arguments (the current list of data for the type and the given group, a list returned by
+ +AGR.ParseFilenameFormat
(7.6-1) for the given type, and a filename). This function adds the necessary parts of the data entry to the list, and returnstrue
if the data belongs to the type, otherwisefalse
is returned; note that the latter case occurs if the filename matches the format description but additional conditions on the parts of the name are not satisfied (for example integer parts may be required to be positive or prime powers).- +
ReadAndInterpretDefault
- +
This is the function that does the work for the default
+ +contents
value of theaccessFunctions
component ofAtlasOfGroupRepresentationsInfo
(7.1-5), see Section 7.2. This function must take a path and return the GAP object given by this file.- +
AddDescribingComponents
(forrep
only)- +
This function takes two arguments, a record (that will be returned by
+ +AtlasGenerators
(3.5-3),OneAtlasGeneratingSetInfo
(3.5-6), orAllAtlasGeneratingSetInfos
(3.5-7)) and the type record record. It sets the componentsp
,dim
,id
, andring
that are promised for return values of the abovementioned three functions.- +
DisplayGroup
(forrep
only)- +
This defines the format of the lines printed by
+ +DisplayAtlasInfo
(3.5-1) for a given group. The value must be a function that takes a list as returned by the function given in the componentAddFileInfo
, and returns the string to be printed for the representation in question.Optional components of record are
+ + ++
+ + +- +
DisplayOverviewInfo
- +
This is used to introduce a new column in the output of
+ +DisplayAtlasInfo
(3.5-1) when this is called without arguments or with a list of group names as its only argument. The value must be a list of length three, containing at its first position a string used as the header of the column, at its second position one of the strings"r"
or"l"
, denoting right or left aligned column entries, and at its third position a function that takes two arguments (a list of tables of contents of the AtlasRep package and a group name), and returns a list of length two, containing the string to be printed as the column value andtrue
orfalse
, depending on whether private data is involved or not. (The default isfail
, indicating that no new column shall be printed.)- +
DisplayPRG
(forprg
only)- +
This is used in
+ +DisplayAtlasInfo
(3.5-1) for ATLAS programs. The value must be a function that takes four arguments (a list of tables of contents to examine, a list containing the GAP name and the ATLAS name of the given group, a list of integers ortrue
for the required standardization, and a list of all available standardizations), and returns the list of lines (strings) to be printed as the information about the available programs of the current type and for the given group. (The default is to return an empty list.)- +
AccessGroupCondition
(forrep
only)- +
This is used in
+ +DisplayAtlasInfo
(3.5-1) andOneAtlasGeneratingSetInfo
(3.5-6). The value must be a function that takes two arguments (a list as returned byOneAtlasGeneratingSetInfo
(3.5-6), and a list of conditions), and returnstrue
orfalse
, depending on whether the first argument satisfies the conditions. (The default value isReturnFalse
(Reference: ReturnFalse).)The function must support conditions such as
+ +[ IsPermGroup, true ]
and[ NrMovedPoints, [ 5, 6 ] ]
, in general a list of functions followed by a prescribed value, a list of prescribed values, another (unary) function, or the string"minimal"
. For an overview of the interesting functions, seeDisplayAtlasInfo
(3.5-1).- +
AccessPRG
(forprg
only)- +
This is used in
+ +AtlasProgram
(3.5-4). The value must be a function that takes four arguments (the current table of contents, the group name, an integer or a list of integers ortrue
for the required standardization, and a list of conditions given by the optional arguments ofAtlasProgram
(3.5-4)), and returns eitherfail
or a list that together with the group name forms the identifier of a program that matches the conditions. (The default value isReturnFail
(Reference: ReturnFail).)- +
AtlasProgram
(forprg
only)- +
This is used in
+ +AtlasProgram
(3.5-4) to create the result value from the identifier. (The default value isAtlasProgramDefault
, which works whenever the second entry of the identifier is the filename; this is not the case for example if the program is the composition of several programs.)- +
AtlasProgramInfo
(forprg
only)- +
This is used in
+ +AtlasProgramInfo
(3.5-5) to create the result value from the identifier. (The default value isAtlasProgramDefault
.)- +
TOCEntryString
- +
This is used in
+ +StringOfAtlasTableOfContents
(5.1-3). The value must be a function that takes two or three arguments (the name name of the type, a list as returned byAGR.ParseFilenameFormat
(7.6-1), and optionally a string that indicates the "remote" format) and returns a string that describes the appropriate data format. (The default value isTOCEntryStringDefault
.)- +
PostprocessFileInfo
- +
This is used in the construction of a table of contents for testing or rearranging the data of the current table of contents. The value must be a function that takes two arguments, the table of contents record and the record in it that belongs to one fixed group. (The default function does nothing.)
+ +- +
SortTOCEntries
- +
This is used in the construction of a table of contents for sorting the entries after they have been added and after the value of the component
+ +PostprocessFileInfo
has been called. The value must be a function that takes a list as returned byAGR.ParseFilenameFormat
(7.6-1), and returns the sorting key. (There is no default value, which means that no sorting is needed.)- +
TestFileHeaders
(forrep
only)- +
This is used in the function
+ +AGR.Test.FileHeaders
. The value must be a function that takes the same four arguments asAGR.FileContents
(7.6-2), except that the third argument is a list as returned byAGR.ParseFilenameFormat
(7.6-1). (The default value isReturnTrue
(Reference: ReturnTrue).)- +
TestFiles
(forrep
only)- +
This is used in the function
+ +AGR.Test.Files
. The format of the value and the default are the same as for the componentTestFileHeaders
.- +
TestWords
(forprg
only)- +
This is used in the function
+ +AGR.Test.Words
. The value must be a function that takes five arguments where the first four are the same arguments as forAGR.FileContents
(7.6-2), except that the fifth argument istrue
orfalse
, indicating verbose mode or not.7.6 Filenames Used in the AtlasRep Package
+ +AtlasRep expects that the filename of each data file describes the contents of the file. This section lists the definitions of the supported structures of filenames.
+ +Each filename consists of two parts, separated by a minus sign
+ +-
. The first part is always of the form \(groupname\)G
\(i\), where the integer \(i\) denotes the \(i\)-th set of standard generators for the group \(G\), say, with ATLAS-file name \(groupname\) (see 3.2). The translations of the name \(groupname\) to the name(s) used within GAP is given by the componentGAPnames
ofAtlasOfGroupRepresentationsInfo
(7.1-5).The names of files that contain straight line programs or straight line decisions have one of the following forms. In each of these cases, the suffix
+ + +W
\(n\) means that \(n\) is the version number of the program.+
+- \(groupname\)
+G
\(i\)-cycW
\(n\)- +
In this case, the file contains a straight line program that returns a list of representatives of generators of maximally cyclic subgroups of \(G\). An example is
+ +Co1G1-cycW1
.- \(groupname\)
+G
\(i\)-cclsW
\(n\)- +
In this case, the file contains a straight line program that returns a list of conjugacy class representatives of \(G\). An example is
+ +RuG1-cclsW1
.- \(groupname\)
+G
\(i\)cycW
\(n\)-cclsW
\(m\)- +
In this case, the file contains a straight line program that takes the return value of the program in the file \(groupname\)
+ +G
\(i\)-cycW
\(n\) (see above), and returns a list of conjugacy class representatives of \(G\). An example isM11G1cycW1-cclsW1
.- \(groupname\)
+G
\(i\)-max
\(k\)W
\(n\)- +
In this case, the file contains a straight line program that takes generators of \(G\) w. r. t. the \(i\)-th set of standard generators, and returns a list of generators (in general not standard generators) for a subgroup \(U\) in the \(k\)-th class of maximal subgroups of \(G\). An example is
+ +J1G1-max7W1
.- \(groupname\)
+G
\(i\)max
\(k\)W
\(n\)-
\(subgroupname\)G
\(j\)W
\(m\)- +
In this case, the file contains a straight line program that takes the return value of the program in the file \(groupname\)
+ +G
\(i\)-max
\(k\)W
\(n\) (see above), which are generators for a group \(U\), say; \(subgroupname\) is a name for \(U\), and the return value is a list of standard generators for \(U\), w. r. t. the \(j\)-th set of standard generators. (Of course this implies that the groups in the \(k\)-th class of maximal subgroups of \(G\) are isomorphic to the group with name \(subgroupname\).) An example isJ1G1max1W1-L211G1W1
; the first class of maximal subgroups of the Janko group \(J_1\) consists of groups isomorphic to the linear group \(L_2(11)\), for which standard generators are defined.- \(groupname\)
+G
\(i\)-a
\(outname\)W
\(n\)- +
In this case, the file contains a straight line program that takes generators of \(G\) w. r. t. the \(i\)-th set of standard generators, and returns the list of their images under the outer automorphism \(\alpha\) of \(G\) given by the name \(outname\); if this name is empty then \(\alpha\) is the unique nontrivial outer automorphism of \(G\); if it is a positive integer \(k\) then \(\alpha\) is a generator of the unique cyclic order \(k\) subgroup of the outer automorphism group of \(G\); if it is of the form
+ +2_1
or2a
,4_2
or4b
,3_3
or3c
\(\ldots\) then \(\alpha\) generates the cyclic group of automorphisms induced on \(G\) by \(G.2_1\), \(G.4_2\), \(G.3_3\) \(\ldots\); finally, if it is of the form \(k\)p
\(d\), with \(k\) one of the above forms and \(d\) an integer then \(d\) denotes the number of dashes appended to the automorphism described by \(k\); if \(d = 1\) then \(d\) can be omitted. Examples areA5G1-aW1
,L34G1-a2_1W1
,U43G1-a2_3pW1
, andO8p3G1-a2_2p5W1
; these file names describe the outer order \(2\) automorphism of \(A_5\) (induced by the action of \(S_5\)) and the order \(2\) automorphisms of \(L_3(4)\), \(U_4(3)\), and \(O_8^+(3)\) induced by the actions of \(L_3(4).2_1\), \(U_4(3).2_2^{\prime}\), and \(O_8^+(3).2_2^{{\prime\prime\prime\prime\prime}}\), respectively.- \(groupname\)
+G
\(i\)-ker
\(factgroupname\)W
\(n\)- +
In this case, the file contains a straight line program that takes generators of \(G\) w. r. t. the \(i\)-th set of standard generators, and returns generators of the kernel of an epimorphism that maps \(G\) to a group with ATLAS-file name \(factgroupname\). An example is
+ +2A5G1-kerA5W1
.- \(groupname\)
+G
\(i\)-G
\(j\)W
\(n\)- +
In this case, the file contains a straight line program that takes generators of \(G\) w. r. t. the \(i\)-th set of standard generators, and returns standard generators of \(G\) w. r. t. the \(j\)-th set of standard generators. An example is
+ +L35G1-G2W1
.- \(groupname\)
+G
\(i\)-check
\(n\)- +
In this case, the file contains a straight line decision that takes generators of \(G\), and returns
+ +true
if these generators are standard generators w. r. t. the \(i\)-th standardization, andfalse
otherwise.- \(groupname\)
+G
\(i\)-P
\(n\)- +
In this case, the file contains a straight line decision that takes some group elements, and returns
+ +true
if these elements are standard generators for \(G\), w. r. t. the \(i\)-th standardization, andfalse
otherwise.- \(groupname\)
+G
\(i\)-find
\(n\)- +
In this case, the file contains a black box program that takes a group, and returns (if it is successful) a set of standard generators for \(G\), w. r. t. the \(i\)-th standardization.
+ +- \(groupname\)
+G
\(i\)-X
\(descr\)W
\(n\)- +
In this case, the file contains a straight line program that takes generators of \(G\) w. r. t. the \(i\)-th set of standard generators, and whose return value corresponds to \(descr\). This format is used only in private extensions (see Chapter 5), such a script can be accessed with \(descr\) as the third argument of
+ +AtlasProgram
(3.5-4).The names of files that contain group generators have one of the following forms. In each of these cases, \(id\) is a (possibly empty) string that starts with a lowercase alphabet letter (see
+ + +IsLowerAlphaChar
(Reference: IsLowerAlphaChar)), and \(m\) is a nonnegative integer, meaning that the generators are written w. r. t. the \(m\)-th basis (the meaning is defined by the ATLAS developers).+
+ + +- \(groupname\)
+G
\(i\)-f
\(q\)r
\(dim\)\(id\)B
\(m\).m
\(nr\)- +
a file in MeatAxe text file format containing the \(nr\)-th generator of a matrix representation over the field with \(q\) elements, of dimension \(dim\). An example is
+ +S5G1-f2r4aB0.m1
.- \(groupname\)
+G
\(i\)-p
\(n\)\(id\)B
\(m\).m
\(nr\)- +
a file in MeatAxe text file format containing the \(nr\)-th generator of a permutation representation on \(n\) points. An example is
+ +M11G1-p11B0.m1
.- \(groupname\)
+G
\(i\)-Ar
\(dim\)\(id\)B
\(m\).g
- +
a GAP readable file containing all generators of a matrix representation of dimension \(dim\) over an algebraic number field not specified further. An example is
+ +A5G1-Ar3aB0.g
.- \(groupname\)
+G
\(i\)-Zr
\(dim\)\(id\)B
\(m\).g- +
a GAP readable file containing all generators of a matrix representation over the integers, of dimension \(dim\). An example is
+ +A5G1-Zr4B0.g
.- \(groupname\)
+G
\(i\)-Hr
\(dim\)\(id\)B
\(m\).g
- +
a GAP readable file containing all generators of a matrix representation over a quaternion algebra over an algebraic number field, of dimension \(dim\). An example is
+ +2A6G1-Hr2aB0.g
.- \(groupname\)
+G
\(i\)-Z
\(n\)r
\(dim\)\(id\)B
\(m\).g
- +
a GAP readable file containing all generators of a matrix representation of dimension \(dim\) over the ring of integers mod \(n\). An example is
+ +2A8G1-Z4r4aB0.g
.7.6-1 AGR.ParseFilenameFormat
+ ++
‣ AGR.ParseFilenameFormat
( string, format )( function ) Returns: a list of strings and integers if string matches format, and
+ +fail
otherwise.Let string be a filename, and format be a list \([ [ c_1, c_2, \ldots, c_n ], [ f_1, f_2, \ldots, f_n ] ]\) such that each entry \(c_i\) is a list of strings and of functions that take a character as their argument and return
+ +true
orfalse
, and such that each entry \(f_i\) is a function for parsing a filename, such as the currently undocumented functionsParseForwards
andParseBackwards
.+ + +
AGR.ParseFilenameFormat
returns a list of strings and integers such that the concatenation of theirString
(Reference: String) values yields string if string matches format, andfail
otherwise. Matching is defined as follows. Splitting string at each minus character (-
) yields \(m\) parts \(s_1, s_2, \ldots, s_m\). The string string matches format if \(s_i\) matches the conditions in \(c_i\), for \(1 \leq i \leq n\), in the sense that applying \(f_i\) to \(s_i\) and \(c_i\) yields a non-fail
result.+ + + ++gap> format:= [ [ [ IsChar, "G", IsDigitChar ], +> [ "p", IsDigitChar, AGR.IsLowerAlphaOrDigitChar, +> "B", IsDigitChar, ".m", IsDigitChar ] ], +> [ ParseBackwards, ParseForwards ] ];; +gap> AGR.ParseFilenameFormat( "A6G1-p10B0.m1", format ); +[ "A6", "G", 1, "p", 10, "", "B", 0, ".m", 1 ] +gap> AGR.ParseFilenameFormat( "A6G1-p15aB0.m1", format ); +[ "A6", "G", 1, "p", 15, "a", "B", 0, ".m", 1 ] +gap> AGR.ParseFilenameFormat( "A6G1-f2r16B0.m1", format ); +fail +7.6-2 AGR.FileContents
+ ++
‣ AGR.FileContents
( files, type )( function ) Returns: the GAP object obtained from reading and interpreting the file(s) given by files.
+ +Let files be a list of pairs of the form
+ +[ dirname, filename ]
, wheredirname
andfilename
are strings, and let type be a data type (seeAGR.DeclareDataType
(7.5-1)). Eachdirname
must be one of"datagens"
,"dataword"
, or thedirid
value of a data extension (seeAtlasOfGroupRepresentationsNotifyData
(5.1-1)). If the contents of each of the files in question is accessible and their data belong to the data typetype
thenAGR.FileContents
returns the contents of the files; otherwisefail
is returned.Note that if some file is already stored in the dirname directory then
+ + + +AGR.FileContents
does not check whether the relevant table of contents actually contains filename.7.7 The record component
+ +identifier
used by the AtlasRep PackageThe functions
+ +AtlasGenerators
(3.5-3),AtlasProgram
(3.5-4),AtlasProgramInfo
(3.5-5),OneAtlasGeneratingSetInfo
(3.5-6), andAllAtlasGeneratingSetInfos
(3.5-7) return records which have a componentidentifier
. The value of this component describes the record in the sense that one can reconstruct the whole record from it, and theidentifier
value can be used as an input forAtlasGenerators
(3.5-3),AtlasProgram
(3.5-4),AtlasProgramInfo
(3.5-5),AtlasGroup
(3.5-8), andAtlasSubgroup
(3.5-9).The
+ + +identifier
component has the following format.+
+- +
For records describing representations, it is a list of the form
+ +[ gapname, files, std, info ]
.- +
For records describing straight line programs and straight line decisions, it is a list of the form
+ +[ gapname, files, std ]
.Here
+ +gapname
is the GAP name of the group in question,files
defines the data files,std
is the standardization of its generators, andinfo
is some information that depends on the type of the representation, for example the number of moved points in the case of a permutation representation.The
+ + +files
entry has one of the following formats:+
+- +
a string, in the case that exactly one file is needed that does not belong to a private extension; an example of such an
+ +identifier
value is[ "J1", "J1G1-cycW1", 1 ]
- +
a list whose entries are strings (which refer to files from the core part of the database) and pairs of the form
+ +[ tocid, file ]
(which refer to files from the extension given bytocid
); examples ofidentifier
values are[ "A5", [ "A5G1-p5B0.m1", "A5G1-p5B0.m2" ], 1, 5 ]
,[ "2.M12", [ [ "mfer", "2M12G1-cclsW1" ] ], 1 ]
,[ "2.M12", [ "M12G1-max1W1", [ "internal", "2M12G1-kerM12W1" ] ], 1 ]
,[ "2.M12", [ [ "mfer", "2M12G1-p24bB0.m1" ], [ "mfer", "2M12G1-p24bB0.m2" ] ], 1, 24 ]
.Up to version 1.5 of the AtlasRep package, a different
+ + + +identifier
format was used for files from extensions of the database. Namely, the first entry of the list was a pair[ tocid, groupname ]
, and the second entry was either a string or a list of strings. Note that with that old format, it was not possible to describe a combination of several files from different sources (core part and extension, or different extensions). The functionAtlasRepIdentifier
(7.7-1) can be used to convert between the two formats.7.7-1 AtlasRepIdentifier
+ ++
‣ AtlasRepIdentifier
( oldid )( function ) +
‣ AtlasRepIdentifier
( id, "old" )( function ) This function converts between the "old format" (the one used up to version 1.5.1 of the package) and the "new format" (the one used since version 2.0) of the
+ +identifier
component of the records returned by AtlasRep functions. Note that the two formats differ only foridentifier
components that describe data from non-core parts of the database.If the only argument is a list oldid that is an
+ + +identifier
in old format then the function returns the correspondingidentifier
in new format. If there are two arguments, a list id that is anidentifier
in new format and the string "old", then the function returns the correspondingidentifier
in old format if this is possible, andfail
otherwise.+ + + ++gap> id:= [ "A5", [ "A5G1-p5B0.m1", "A5G1-p5B0.m2" ], 1, 5 ];; +gap> AtlasRepIdentifier( id ) = id; +true +gap> id:= [ "L2(8)", "L28G1-check1", 1, 1 ];; +gap> AtlasRepIdentifier( id ) = id; +true +gap> oldid:= [ [ "priv", "C4" ], [ "C4G1-p4B0.m1" ], 1, 4 ];; +gap> newid:= AtlasRepIdentifier( oldid ); +[ "C4", [ [ "priv", "C4G1-p4B0.m1" ] ], 1, 4 ] +gap> oldid = AtlasRepIdentifier( newid, "old" ); +true +gap> oldid:= [ [ "priv", "C4" ], "C4G1-max1W1", 1 ];; +gap> newid:= AtlasRepIdentifier( oldid ); +[ "C4", [ [ "priv", "C4G1-max1W1" ] ], 1 ] +gap> oldid = AtlasRepIdentifier( newid, "old" ); +true +gap> oldid:= [ [ "priv", "C4" ], "C4G1-Ar1aB0.g", 1, 1 ];; +gap> newid:= AtlasRepIdentifier( oldid ); +[ "C4", [ [ "priv", "C4G1-Ar1aB0.g" ] ], 1, 1 ] +gap> oldid = AtlasRepIdentifier( newid, "old" ); +true +gap> oldid:= [ [ "priv", "C4" ], "C4G1-XtestW1", 1 ];; +gap> newid:= AtlasRepIdentifier( oldid ); +[ "C4", [ [ "priv", "C4G1-XtestW1" ] ], 1 ] +gap> oldid = AtlasRepIdentifier( newid, "old" ); +true +gap> oldid:= [ [ "mfer", "2.M12" ], +> [ "2M12G1-p264aB0.m1", "2M12G1-p264aB0.m2" ], 1, 264 ];; +gap> newid:= AtlasRepIdentifier( oldid ); +[ "2.M12", + [ [ "mfer", "2M12G1-p264aB0.m1" ], [ "mfer", "2M12G1-p264aB0.m2" ] ] + , 1, 264 ] +gap> oldid = AtlasRepIdentifier( newid, "old" ); +true +7.8 The Tables of Contents of the AtlasRep Package
+ +The list of AtlasRep data is stored in several tables of contents, which are given essentially by JSON documents, one for the core data and one for each data extension in the sense of Chapter 5. The only exception are data extensions by locally available files in a given directory, where the contents of this directory itself describes the data in question. One can create such a JSON document for the contents of a given local data directory with the function
+ +StringOfAtlasTableOfContents
(5.1-3).Here are the administrational functions that are called when a data extension gets notified with
+ +AtlasOfGroupRepresentationsNotifyData
(5.1-1). In each case, \(gapname\) and \(atlasname\) denote the GAP and ATLAS name of the group in question (see Section 3.2), and \(dirid\) denotes the identifier of the data extension.The following functions define group names, available representations, and straight line programs.
+ + ++
+- +
AGR.GNAN(
\(gapname, atlasname[, dirid]\))
- +
Called with two strings \(gapname\) (the GAP name of the group) and \(atlasname\) (the ATLAS name of the group),
+ +AGR.GNAN
stores the information in the listAtlasOfGroupRepresentationsInfo.GAPnames
, which defines the name mapping between the ATLAS names and GAP names of the groups.An example of a valid call is
+ +AGR.GNAN("A5.2","S5")
.- +
AGR.TOC(
\(typename, filename, crc[, dirid]\))
- +
+ +
AGR.TOC
notifies an entry to theTableOfContents.(
\(dirid\))
component ofAtlasOfGroupRepresentationsInfo
(7.1-5). The string \(typename\) must be the name of the data type to which the entry belongs, the string \(filename\) must be the prefix of the data file(s), and \(crc\) must be a list of integers that are the CRC values of the data files (seeCrcFile
(Reference: CrcFile); in particular, the number of files that are described by the entry equals the length of \(crc\).The optional argument \(dirid\) is equal to the argument with the same name in the corresponding call of
+ +AtlasOfGroupRepresentationsNotifyData
(5.1-1). If no \(dirid\) argument is given then the current value ofAGR.DIRID
is taken as the default; this value is set automatically before atoc.json
file gets evaluated byAtlasOfGroupRepresentationsNotifyData
(5.1-1), and is reset afterwards. IfAGR.DIRID
is not bound and \(dirid\) is not given then this function has no effect.An example of a valid call is
+ +AGR.TOC("perm","alt/A5/mtx/S5G1-p5B0.m", [-3581724,115937465])
.The following functions add data about the groups and their standard generators. The function calls must be executed after the corresponding
+ + +AGR.GNAN
calls.+
+- +
AGR.GRS(
\(gapname, size[, dirid]\))
- +
The integer \(size\) is stored as the order of the group with GAP name \(gapname\), in
+ +AtlasOfGroupRepresentationsInfo.GAPnames
.An example of a valid call is
+ +AGR.GRS("A5.2",120)
.- +
AGR.MXN(
\(gapname, nrMaxes[, dirid]\))
- +
The integer \(nrMaxes\) is stored as the number of classes of maximal subgroups of the group with GAP name \(gapname\), in
+ +AtlasOfGroupRepresentationsInfo.GAPnames
.An example of a valid call is
+ +AGR.MXN("A5.2",4)
.- +
AGR.MXO(
\(gapname, sizesMaxes[, dirid]\))
- +
The list \(sizesMaxes\) of subgroup orders of the classes of maximal subgroups of the group with GAP name \(gapname\) (not necessarily dense, in non-increasing order) is stored in
+ +AtlasOfGroupRepresentationsInfo.GAPnames
.An example of a valid call is
+ +AGR.MXO("A5.2",[60,24,20,12])
.- +
AGR.MXS(
\(gapname, structureMaxes[, dirid]\))
- +
Called with the string The list \(structureMaxes\) of strings describing the structures of the maximal subgroups of the group with GAP name \(gapname\) (not necessarily dense), is stored in
+ +AtlasOfGroupRepresentationsInfo.GAPnames
.An example of a valid call is
+ +AGR.MXS("A5.2",["A5","S4","5:4","S3x2"])
.- +
AGR.STDCOMP(
\(gapname, factorCompatibility[, dirid]\))
- +
The list \(factorCompatibility\) (with entries the standardization of the group with GAP name \(gapname\) , the GAP name of a factor group, the standardization of this factor group, and
+ +true
orfalse
, indicating whether mapping the standard generators for \(gapname\) to those of \(factgapname\) defines an epimorphism) is stored inAtlasOfGroupRepresentationsInfo.GAPnames
.An example of a valid call is
+ +AGR.STDCOMP("2.A5.2",[1,"A5.2",1,true])
.The following functions add data about representations or straight line programs that are already known. The function calls must be executed after the corresponding
+ + +AGR.TOC
calls.+
+ + +- +
AGR.RNG(
\(repname, descr[, dirid]\))
- +
Called with two strings \(repname\) (denoting the name of a file containing the generators of a matrix representation over a ring that is not determined by the filename) and \(descr\) (describing this ring \(R\), say),
+ +AGR.RNG
adds the triple \([ repname, descr, R ]\) to the list stored in theringinfo
component ofAtlasOfGroupRepresentationsInfo
(7.1-5).An example of a valid call is
+ +AGR.RNG("A5G1-Ar3aB0","Field([Sqrt(5)])")
.- +
AGR.TOCEXT(
\(atlasname, std, maxnr, files[, dirid]\))
- +
Called with \(atlasname\), the positive integers \(std\) (the standardization) and \(maxnr\) (the number of the class of maximal subgroups), and the list \(files\) (of filenames of straight line programs for computing generators of the \(maxnr\)-th maximal subgroup, using a straight line program for a factor group plus perhaps some straight line program for computing kernel generators),
+ +AGR.TOCEXT
stores the information inAtlasOfGroupRepresentationsInfo.GAPnames
.An example of a valid call is
+ +AGR.TOCEXT("2A5",1,3,["A5G1-max3W1"])
.- +
AGR.API(
\(repname, info[, dirid]\))
- +
Called with the string \(repname\) (denoting the name of a permutation representation) and the list \(info\) (describing the point stabilizer of this representation),
+ +AGR.API
binds the component \(repname\) of the recordAtlasOfGroupRepresentationsInfo.permrepinfo
to a record that describes the contents of \(info\).\(info\) has the following entries.
+ + ++
+- +
At position \(1\), the transitivity is stored.
+ +- +
If the transitivity is zero then \(info\) has length two, and the second entry is the list of orbit lengths.
+ +- +
If the transitivity is positive then \(info\) has length four or five, and the second entry is the rank of the action.
+ +- +
If the transitivity is positive then the third entry is one of the strings
+ +"prim"
,"imprim"
, denoting primitivity or not.- +
If the transitivity is positive then the fourth entry is either the string
+ +"???"
or a string that describes the structure of the point stabilizer. If the third entry is"imprim"
then this description consists of a subgroup part and a maximal subgroup part, separated by" < "
.- +
If the third entry is
+ +"prim"
then the fifth entry is either the string"???"
or the number of the class of maximal subgroups that are the point stabilizers.An example of a valid call is
+ +AGR.API("A5G1-p5B0",[3,2,"prim","A4",1])
.- +
AGR.CHAR(
\(gapname, repname, char, pos[, charname[, dirid]]\))
- +
Called with the strings \(gapname\) and \(repname\) (denoting the name of the representation), the integer \(char\) (the characteristic of the representation), and \(pos\) (the position or list of positions of the irreducible constituent(s)),
+ +AGR.CHAR
stores the information inAtlasOfGroupRepresentationsInfo.characterinfo
.A string describing the character can be entered as \(charname\).
+ +If \(dirid\) is given but no \(charname\) is known then one can enter
+ +fail
as the fifth argument.An example of a valid call is
+ +AGR.CHAR("M11","M11G1-p11B0",0,[1,2],"1a+10a")
.7.9 Sanity Checks for the AtlasRep Package
+ +The file
+ +tst/testall.g
of the package containsTest
(Reference: Test) statements for checking whether the AtlasRep functions behave as documented. One can run these tests by callingReadPackage( "AtlasRep", "tst/testall.g" )
. The examples in the package manual form a part of the tests, they are collected in the filetst/docxpl.tst
of the package.The remainder of this section deals with consistency checks of the data. The tests described in Section 7.9-1 can be used for data from any extension of the database (see Chapter 5), Section 7.9-2 lists tests which apply only to the core part of the database.
+ +All these tests apply only to locally available files (see Section 7.8), no files are downloaded during the tests. Thus the required space and time for running these tests depend on the amount of locally available data.
+ +Some of the tests compute and verify additional data, such as information about point stabilizers of permutation representations. In these cases, output lines starting with
+ + + +#E
are error messages that point to inconsistencies, whereas output lines starting with#I
inform about data that have been computed and were not yet stored, or about stored data that were not verified. These tests are experimental in the sense that they involve several heuristics. Depending on the data to which they are applied, it may happen that the tests run out of space or do not finish in acceptable time. Please inform the package maintainer if you run into such problems.7.9-1 Sanity Checks for a Table of Contents
+ +The following tests can be used to check the data that belong to a given part of the database (core data or extension). Each of these tests is given by a function with optional argument \(tocid\), the identifying string that had been entered as the second argument of
+ + +AtlasOfGroupRepresentationsNotifyData
(5.1-1). The contents of the core part can be checked by entering"core"
, which is also the default for \(tocid\). The function returnsfalse
if an error occurs, otherwisetrue
. Currently the following tests of this kind are available. (For some of them, the global optionTryToExtendData
can be entered in order to try the computation of not yet stored data.)+
+ + +- +
AGR.Test.GroupOrders()
- +
checks whether the group orders stored in the
+ +GAPnames
component ofAtlasOfGroupRepresentationsInfo
(7.1-5) coincide with the group orders computed from an ATLAS permutation representation of degree up toAGR.Test.MaxTestDegree
, from the available character table or table of marks with the given name, or from the structure of the name, in the sense that splitting the name at the first dot (.
) or colon (:
) and applying the same criteria to derive the group order from the two parts may yield enough information.- +
AGR.Test.Words( [
\(tocid\)] )
- +
processes the straight line programs that belong to \(tocid\), using the function stored in the
+ +TestWords
component of the data type in question.The straight line programs for the cases listed in
+ +AGR.Test.HardCases.TestWords
are omitted.- +
AGR.Test.ClassScripts( [
\(tocid\)] )
- +
checks whether the straight line programs that belong to \(tocid\) and that compute representatives of certain conjugacy classes are consistent with information stored on the GAP character table of the group in question, in the sense that the given class names really occur in the character table and that the element orders and centralizer orders for the classes are correct.
+ +- +
AGR.Test.CycToCcls( [
\(tocid\)][:TryToExtendData] )
- +
checks whether all straight line programs that belong to \(tocid\) and that compute class representatives from representatives of cyclic subgroups possess a corresponding straight line program (anywhere in the database) for computing representatives of cyclic subgroups.
+ +- +
AGR.Test.FileHeaders( [
\(tocid\)] )
- +
checks whether the MeatAxe text files that belong to \(tocid\) have a header line that is consistent with the filename, and whether the contents of all GAP format data files that belong to \(tocid\) is consistent with the filename.
+ +- +
AGR.Test.Files( [
\(tocid\)] )
- +
checks whether the MeatAxe text files that belong to \(tocid\) can be read with
+ +ScanMeatAxeFile
(7.3-1) such that the result is notfail
. The function does not check whether the first line of a MeatAxe text file is consistent with the filename, since this can be tested withAGR.Test.FileHeaders
.- +
AGR.Test.BinaryFormat( [
\(tocid\)] )
- +
checks whether all MeatAxe text files that belong to \(tocid\) satisfy that applying first
+ +CMtxBinaryFFMatOrPerm
(7.3-4) and thenFFMatOrPermCMtxBinary
(7.3-5) yields the same object.- +
AGR.Test.Primitivity( [
\(tocid\)][:TryToExtendData] )
- +
checks the stored primitivity information for the permutation representations that belong to \(tocid\). That is, the number of orbits, in case of a transitive action the transitivity, the rank, the information about the point stabilizers are computed if possible, and compared with the stored information.
+ +- +
AGR.Test.Characters( [
\(tocid\)][:TryToExtendData] )
- +
checks the character information (that belongs to \(tocid\)) for the matrix and permutation representations.
+ +- +
AGR.Test.StdCompatibility( [
\(tocid\)][:TryToExtendData] )
- +
checks whether the information about the compatibility of standard generators of a group and its factor groups that is stored in the
+ +GAPnames
component ofAtlasOfGroupRepresentationsInfo
(7.1-5) and belongs to \(tocid\) coincides with computed values.The following criterion is used for computing the value for a group \(G\). Use the GAP Character Table Library to determine factor groups \(F\) of \(G\) for which standard generators are defined and moreover a presentation in terms of these standard generators is known. Evaluate the relators of the presentation in the standard generators of \(G\), and let \(N\) be the normal closure of these elements in \(G\). Then mapping the standard generators of \(F\) to the \(N\)-cosets of the standard generators of \(G\) is an epimorphism. If \(|G/N| = |F|\) holds then \(G/N\) and \(F\) are isomorphic, and the standard generators of \(G\) and \(F\) are compatible in the sense that mapping the standard generators of \(G\) to their \(N\)-cosets yields standard generators of \(F\).
+ +- +
AGR.Test.KernelGenerators( [
\(tocid\)][:TryToExtendData] )
- +
checks whether the straight line programs (that belong to \(tocid\)) for computing generators of kernels of natural epimorphisms between ATLAS groups compute generators of normal subgroups of the right group orders. If it is known that the given standard generators of the given group are compatible with some standard generators of the factor group in question (see the section about
+ +AGR.Test.StdCompatibility
) then it is also checked whether evaluating the straight line program at these standard generators of the factor group yields only the identity.Note that the verification of normal subgroups of matrix groups may be very time and space consuming if the package recog [NSA+18] is not available.
+ +The function also tries to find words for computing kernel generators of those epimorphisms for which no straight line programs are stored; the candidates are given by stored factor fusions between the character tables from the GAP Character Table Library.
+ +- +
AGR.Test.MaxesOrders( [
\(tocid\)] )
- +
checks whether the orders of maximal subgroups stored in the component
+ +GAPnames
ofAtlasOfGroupRepresentationsInfo
(7.1-5) coincide with the orders computed from the restriction of an ATLAS permutation representation of degree up toAGR.Test.MaxTestDegree
(using a straight line program that belongs to \(tocid\)), from the character table, or the table of marks with the given name, or from the information about maximal subgroups of the factor group modulo a normal subgroup that is contained in the Frattini subgroup.- +
AGR.Test.MaxesStructure()
- +
checks whether the names of maximal subgroups stored in the component
+ +GAPnames
ofAtlasOfGroupRepresentationsInfo
(7.1-5) coincide with the names computed from the GAP character table with the given name.- +
AGR.Test.MaxesStandardization( [
\(tocid\)] )
- +
checks whether the straight line programs (that belong to \(tocid\)) for standardizing the generators of maximal subgroups are correct: If a semi-presentation is available for the maximal subgroup and the standardization in question then it is used, otherwise an explicit isomorphism is tried.
+ +- +
AGR.Test.CompatibleMaxes( [
\(tocid\)][:TryToExtendData] )
- +
checks whether the information about deriving straight line programs for restricting to subgroups from straight line programs that belong to a factor group coincide with computed values.
+ +The following criterion is used for computing the value for a group \(G\). If \(F\) is a factor group of \(G\) such that the standard generators of \(G\) and \(F\) are compatible (see the test function
+ +AGR.Test.StdCompatibility
) and if there are a presentation for \(F\) and a permutation representation of \(G\) then it is checked whether the"maxes"
type straight line programs for \(F\) can be used to compute generators for the maximal subgroups of \(G\); if not then generators of the kernel of the natural epimorphism from \(G\) to \(F\), must be added.7.9-2 Other Sanity Checks
+ +The tests described in this section are intended for checking data that do not belong to a particular part of the AtlasRep database. Therefore all locally available data are used in these tests. Each of the tests is given by a function without arguments that returns
+ + +false
if a contradiction was found during the test, andtrue
otherwise. Additionally, certain messages are printed when contradictions between stored and computed data are found, when stored data cannot be verified computationally, or when the computations yield improvements of the stored data. Currently the following tests of this kind are available.+
+- +
AGR.Test.Standardization()
- +
checks whether all generating sets corresponding to the same set of standard generators have the same element orders; for the case that straight line programs for computing certain class representatives are available, also the orders of these representatives are checked w. r. t. all generating sets.
+ +- +
AGR.Test.StdTomLib()
- +
checks whether the standard generators are compatible with those that occur in the TomLib package.
+ +- +
AGR.Test.MinimalDegrees()
- +
checks that the (permutation and matrix) representations available in the database do not have smaller degree than the minimum claimed in Section 6.3.
+ +Finally, we reset the user preference and the info level which had been set at the beginning of Chapter 2.
+ + ++ + + + + + + ++gap> SetUserPreference( "AtlasRep", "DisplayFunction", origpref ); +gap> SetInfoLevel( InfoAtlasRep, globallevel ); +
+generated by GAPDoc2HTML
+ + diff -Nru gap-atlasrep-1.5.1/doc/chap7.txt gap-atlasrep-2.1.0/doc/chap7.txt --- gap-atlasrep-1.5.1/doc/chap7.txt 2016-04-06 12:18:13.000000000 +0000 +++ gap-atlasrep-2.1.0/doc/chap7.txt 2019-06-21 15:10:33.000000000 +0000 @@ -6,11 +6,11 @@ (cf. Chapter [14X3[114X).[133X [33X[0;0YBesides global variables used for administrational purposes (see - Section [14X7.1[114X) and several sanity checks (see Section [14X7.8[114X), they can be + Section [14X7.1[114X) and several sanity checks (see Section [14X7.9[114X), they can be regarded as the interface between the data actually contained in the files and the corresponding [5XGAP[105X objects (see Section [14X7.2[114X, [14X7.3[114X, [14X7.4[114X, and [14X7.5[114X), and the interface between the remote and the local version of the database (see - Section [14X7.6[114X and [14X7.7[114X). The former interface contains functions to read and + Section [14X7.6[114X and [14X7.8[114X). The former interface contains functions to read and write files in [5XMeatAxe[105X format, which may be interesting for users familiar with [5XMeatAxe[105X standalones (see for example [Rin]). Other low level functions may be undocumented in the sense that they are not described in this manual. @@ -21,150 +21,111 @@ [1X7.1 [33X[0;0YGlobal Variables Used by the [5XAtlasRep[105X[101X[1X Package[133X[101X - [33X[0;0YFor debugging purposes, the functions from the [5XGAP[105X interface to the [5XATLAS[105X of - Group Representations print information depending on the info level of the - info classes [2XInfoAtlasRep[102X ([14X7.1-1[114X), [2XInfoCMeatAxe[102X ([14X7.1-2[114X), and [2XInfoBBox[102X - ([14X7.1-3[114X) (cf. [14X'Reference: Info Functions'[114X).[133X + [33X[0;0YFor debugging purposes, [5XAtlasRep[105X functions print information depending on + the info level of the info classes [2XInfoAtlasRep[102X ([14X7.1-1[114X), [2XInfoCMeatAxe[102X + ([14X7.1-2[114X), and [2XInfoBBox[102X ([14X7.1-3[114X) (cf. [14X'Reference: Info Functions'[114X).[133X [33X[0;0YThe info level of an info class can be changed using [2XSetInfoLevel[102X - ([14XReference: SetInfoLevel[114X). For example, the info level of [2XInfoAtlasRep[102X - ([14X7.1-1[114X) can be set to the nonnegative integer [3Xn[103X using [10XSetInfoLevel( - InfoAtlasRep, [3Xn[103X[10X )[110X.[133X - - [33X[0;0YInformation about files being read can be obtained by setting the value of - the global variable [10XInfoRead1[110X to [2XPrint[102X ([14XReference: Print[114X).[133X + ([14XReference: InfoLevel[114X). For example, the info level of [2XInfoAtlasRep[102X ([14X7.1-1[114X) + can be set to the nonnegative integer [22Xn[122X using [10XSetInfoLevel( InfoAtlasRep, [110X[22Xn[122X[10X + )[110X.[133X [1X7.1-1 InfoAtlasRep[101X - [29X[2XInfoAtlasRep[102X[32X info class + [33X[1;0Y[29X[2XInfoAtlasRep[102X[32X info class[133X [33X[0;0YIf the info level of [2XInfoAtlasRep[102X is at least [22X1[122X then information about [9Xfail[109X - results of functions in the [5XAtlasRep[105X package is printed. If the info level - is at least [22X2[122X then information about calls to external programs is printed. - The default level is [22X0[122X, no information is printed on this level.[133X + results of [5XAtlasRep[105X functions is printed. If the info level is at least [22X2[122X + then also information about calls to external programs is printed. The + default level is [22X0[122X, no information is printed on this level.[133X [1X7.1-2 InfoCMeatAxe[101X - [29X[2XInfoCMeatAxe[102X[32X info class + [33X[1;0Y[29X[2XInfoCMeatAxe[102X[32X info class[133X [33X[0;0YIf the info level of [2XInfoCMeatAxe[102X is at least [22X1[122X then information about [9Xfail[109X - results of [10XC[110X-[5XMeatAxe[105X functions is printed. The default level is zero, no - information is printed on this level.[133X + results of [10XC[110X-[5XMeatAxe[105X functions (see Section [14X7.3[114X) is printed. The default + level is zero, no information is printed on this level.[133X [1X7.1-3 InfoBBox[101X - [29X[2XInfoBBox[102X[32X info class + [33X[1;0Y[29X[2XInfoBBox[102X[32X info class[133X [33X[0;0YIf the info level of [2XInfoBBox[102X is at least [22X1[122X then information about [9Xfail[109X results of functions dealing with black box programs (see Section [14X6.2[114X) is printed. The default level is [22X0[122X, no information is printed on this level.[133X - [1X7.1-4 CMeatAxe.FastRead[101X - - [29X[2XCMeatAxe.FastRead[102X[32X global variable - - [33X[0;0YIf this component is bound and has the value [9Xtrue[109X then [2XScanMeatAxeFile[102X - ([14X7.3-1[114X) reads text files via [2XStringFile[102X ([14XGAPDoc: StringFile[114X). Otherwise each - file containing a matrix over a finite field is read line by line via - [2XReadLine[102X ([14XReference: ReadLine[114X), and the [5XGAP[105X matrix is constructed line by - line, in a compressed representation (see [14X'Reference: Row Vectors over - Finite Fields'[114X and [14X'Reference: Matrices over Finite Fields'[114X), which makes it - possible to read large matrices in a reasonable amount of space. The - [2XStringFile[102X ([14XGAPDoc: StringFile[114X) approach is faster but needs more - intermediate space when text files containing matrices over finite fields - are read.[133X + [1X7.1-4 AGR[101X - [1X7.1-5 AGR[101X - - [29X[2XAGR[102X[32X global variable + [33X[1;0Y[29X[2XAGR[102X[32X global variable[133X [33X[0;0Yis a record whose components are functions and data that are used by the - higher level interface functions.[133X + high level interface functions. Some of the components are documented, see + for example the index of the package manual.[133X - [1X7.1-6 AtlasOfGroupRepresentationsInfo[101X + [1X7.1-5 AtlasOfGroupRepresentationsInfo[101X - [29X[2XAtlasOfGroupRepresentationsInfo[102X[32X global variable + [33X[1;0Y[29X[2XAtlasOfGroupRepresentationsInfo[102X[32X global variable[133X [33X[0;0YThis is a record that is defined in the file [11Xgap/types.g[111X of the package, with the following components.[133X - [33X[0;0YComponents corresponding to [13Xuser parameters[113X (see Section [14X4.3[114X) are[133X - - [8X[10Xremote[110X[108X - [33X[0;6Ya boolean that controls what files are available; if the value is [9Xtrue[109X - then [5XGAP[105X is allowed to try remotely accessing any [5XATLAS[105X file from the - servers (see below) and thus all files listed in the global table of - contents are available, if the value is [9Xfalse[109X then [5XGAP[105X may access only - those files that are stored in the database directories of the local - [5XGAP[105X installation (see Section [14X4.3-1[114X),[133X - - [8X[10Xservers[110X[108X - [33X[0;6Ya list of pairs [10X[ [110X[3Xserver[103X[10X, [110X[3Xpath[103X[10X ][110X, where [3Xserver[103X is a string denoting - the [11Xhttp[111X address of a server where files can be fetched that are not - stored in the local database, and [3Xpath[103X is a string describing the path - where the data directories on the server reside,[133X - - [8X[10Xwget[110X[108X - [33X[0;6Ycontrols whether the [5XGAP[105X package [5XIO[105X [Neu14] or the external program - [11Xwget[111X is used to fetch data files, see [14X4.3-3[114X,[133X - - [8X[10Xcompress[110X[108X - [33X[0;6Ya boolean that controls whether [5XMeatAxe[105X format text files are stored - in compressed form; if the value is [9Xtrue[109X then these files are - compressed with [11Xgzip[111X after they have been fetched from a server, see - Section [14X4.3-4[114X,[133X - - [8X[10XdisplayFunction[110X[108X - [33X[0;6Ythe function that is used by [2XDisplayAtlasInfo[102X ([14X3.5-1[114X) for printing the - formatted data, see Section [14X4.3-5[114X,[133X - - [8X[10XaccessFunctions[110X[108X - [33X[0;6Ya list of records, each describing how to access the data files, see - Sections [14X4.3-6[114X and [14X7.2[114X, and[133X - - [8X[10Xmarkprivate[110X[108X - [33X[0;6Ya string used in [2XDisplayAtlasInfo[102X ([14X3.5-1[114X) to mark private data, see - Section [14X5.2[114X.[133X - - [33X[0;0Y[13XSystem components[113X (which are computed automatically) are[133X - - [8X[10XGAPnames[110X[108X + [8X[10XGAPnames[110X[8X[108X [33X[0;6Ya list of pairs, each containing the [5XGAP[105X name and the [5XATLAS[105X-file name of a group, see Section [14X3.2[114X,[133X - [8X[10Xgroupnames[110X[108X - [33X[0;6Ya list of triples, each containing at the first position the name of - the directory on each server that contains data about the group [22XG[122X in - question, at the second position the name of the (usually simple) - group for which a subdirectory exists that contains the data about [22XG[122X, - and at the third position the [5XATLAS[105X-file name used for [22XG[122X, see - Section [14X7.6[114X,[133X - - [8X[10Xprivate[110X[108X - [33X[0;6Ya list of pairs of strings used for administrating private data (see + [8X[10Xnotified[110X[8X[108X + [33X[0;6Ya list used for administrating extensions of the database (see Chapter [14X5[114X); the value is changed by - [2XAtlasOfGroupRepresentationsNotifyPrivateDirectory[102X ([14X5.1-1[114X) and - [2XAtlasOfGroupRepresentationsForgetPrivateDirectory[102X ([14X5.1-2[114X),[133X + [2XAtlasOfGroupRepresentationsNotifyData[102X ([14X5.1-1[114X) and + [2XAtlasOfGroupRepresentationsForgetData[102X ([14X5.1-2[114X),[133X - [8X[10Xcharacterinfo[110X, [10Xpermrepinfo[110X, [10Xringinfo[110X[108X - [33X[0;6Yadditional information about representations, concerning the - characters afforded, the point stabilizers of permutation - representations, and the ring of definition of matrix representations; - this information is used by [2XDisplayAtlasInfo[102X ([14X3.5-1[114X),[133X - - [8X[10XTableOfContents[110X[108X - [33X[0;6Ya record with at most the components [10Xlocal[110X, [10Xremote[110X, [10Xtypes[110X, and the - names of private data directories. The values of the components [10Xlocal[110X - and [10Xremote[110X can be computed automatically by [2XReloadAtlasTableOfContents[102X - ([14X4.2-1[114X), the value of the component [10Xtypes[110X is set in - [2XAGR.DeclareDataType[102X ([14X7.5-1[114X), and the values of the components for - local data directories are created by - [2XAtlasOfGroupRepresentationsNotifyPrivateDirectory[102X ([14X5.1-1[114X).[133X + [8X[10Xcharacterinfo[110X[8X, [10Xpermrepinfo[110X[8X, [10Xringinfo[110X[8X[108X + [33X[0;6Yadditional information about representations, concerning the afforded + characters, the point stabilizers of permutation representations, and + the rings of definition of matrix representations; this information is + used by [2XDisplayAtlasInfo[102X ([14X3.5-1[114X),[133X + + [8X[10XTableOfContents[110X[8X[108X + [33X[0;6Ya record with at most the components [10Xcore[110X, [10Xinternal[110X, [10Xlocal[110X, [10Xmerged[110X, + [10Xtypes[110X, and the identifiers of database extensions. The value of the + component [10Xtypes[110X is set in [2XAGR.DeclareDataType[102X ([14X7.5-1[114X), and the values + of the other components are created by + [2XAtlasOfGroupRepresentationsNotifyData[102X ([14X5.1-1[114X).[133X + + [8X[10XaccessFunctions[110X[8X[108X + [33X[0;6Ya list of records, each describing how to access the data files, see + Sections [14X4.2-6[114X and [14X7.2[114X, and[133X [1X7.2 [33X[0;0YHow to Customize the Access to Data files[133X[101X - [33X[0;0YWe discuss the three steps listed in Section [14X4.3-6[114X.[133X + [33X[0;0YBy default, locally available data files are stored in prescribed + directories, and the files are exactly the text files that have been + downloaded from appropriate places in the internet. However, a more flexible + approach may be useful.[133X + + [33X[0;0YFirst, one may want to use [13Xdifferent file formats[113X, for example [5XMeatAxe[105X + binary files may be provided parallel to [5XMeatAxe[105X text files. Second, one may + want to use [13Xa different directory structure[113X, for example the same structure + as used on some server –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.[133X + + [33X[0;0YIn order to achieve this (and perhaps more), we admit to customize the + meaning of the following three access steps.[133X + + [8XAre the required data locally available?[108X + [33X[0;6YThere may be different file formats available, such as text or binary + files, and it may happen that the data are available in one file or + are distributed to several files.[133X + + [8XHow can a file be made locally available?[108X + [33X[0;6YA different remote file may be fetched, or some postprocessing may be + required.[133X + + [8XHow is the data of a file accessed by [5XGAP[105X?[108X + [33X[0;6YA different function may be needed to evaluate the file contents.[133X [33X[0;0YFor creating an overview of the locally available data, the first of these steps must be available independent of actually accessing the file in @@ -172,50 +133,43 @@ above steps must be available independent of the third one. Therefore, the package provides the possibility to extend the default behaviour by adding new records to the [10XaccessFunctions[110X component of - [2XAtlasOfGroupRepresentationsInfo[102X ([14X7.1-6[114X). Its components are as follows.[133X + [2XAtlasOfGroupRepresentationsInfo[102X ([14X7.1-5[114X). The relevant record components are + as follows.[133X + + [8X[10Xdescription[110X[8X[108X + [33X[0;6YThis must be a short string that describes for which kinds of files + the functions in the current record are intended, which file formats + are supported etc. The value is used as key in the user preference + [10XFileAccessFunctions[110X, see Section [14X4.2-6[114X.[133X - [8X - [10Xlocation( [3Xfilename[103X[10X, [3Xgroupname[103X[10X, [3Xdirname[103X[10X, - [3Xtype[103X[10X )[110X - [108X - [33X[0;6YLet [3Xfilename[103X be the default filename (without path) of the required - file, or a list of such filenames. Let [3Xgroupname[103X be the [5XATLAS[105X name of - the group to which the data in these files belong, [3Xdirname[103X be the - default directory name (one of [10X"datagens"[110X, [10X"dataword"[110X, or the [3Xdirid[103X - value of a private directory, see - [2XAtlasOfGroupRepresentationsNotifyPrivateDirectory[102X ([14X5.1-1[114X)), and [3Xtype[103X - be the data type (see [2XAGR.DeclareDataType[102X ([14X7.5-1[114X)). This function must - return either the absolute path(s) where the mechanism implemented by - the current record expects the local version of the given file(s), or - [9Xfail[109X if this function does not feel responsible for these file(s). In - the latter case, the [10Xlocation[110X function in another record will know a - path.[133X + [8X [10Xlocation( [110X[8X[22Xfiles, type[122X[10X )[110X[8X [108X + [33X[0;6YLet [22Xfiles[122X be a list of pairs [10X[ dirname, filename ][110X, and [22Xtype[122X be the + data type (see [2XAGR.DeclareDataType[102X ([14X7.5-1[114X)) to which the files belong. + This function must return either the absolute paths where the + mechanism implemented by the current record expects the local version + of the given files, or [9Xfail[109X if this function does not feel responsible + for these files.[133X - [33X[0;6YThe file(s) is/are regarded as not locally available if all installed + [33X[0;6YThe files are regarded as not locally available if all installed [10Xlocation[110X functions return either [9Xfail[109X or paths of nonexisting files, in the sense of [2XIsExistingFile[102X ([14XReference: IsExistingFile[114X).[133X - [8X - [10Xfetch( [3Xfilepath[103X[10X, [3Xfilename[103X[10X, [3Xgroupname[103X[10X, - [3Xdirname[103X[10X, [3Xtype[103X[10X )[110X - [108X - [33X[0;6YThis function is called when a file is not locally available and if - the [10Xlocation[110X function in the current record has returned a path or a - list of paths. The arguments [3Xdirname[103X and [3Xtype[103X must be the same as for - the [10Xlocation[110X function, and [3Xfilepath[103X and [3Xfilename[103X must be strings ([13Xnot[113X - lists of strings).[133X + [8X [10Xfetch( [110X[8X[22Xfilepath, filename, dirname, type[122X[10X )[110X[8X [108X + [33X[0;6YThis function is called if a file is not locally available and if the + [10Xlocation[110X function in the current record has returned a list of paths. + The argument [22Xtype[122X must be the same as for the [10Xlocation[110X function, and + [22Xfilepath[122X and [22Xfilename[122X must be strings ([13Xnot[113X lists of strings).[133X [33X[0;6YThe return value must be [9Xtrue[109X if the function succeeded with making the file locally available (including postprocessing if applicable), and [9Xfalse[109X otherwise.[133X - [8X[10Xcontents( [3Xfilepath[103X[10X, [3Xtype[103X[10X )[110X[108X + [8X[10Xcontents( [110X[8X[22Xfiles, type, filepaths[122X[10X )[110X[8X[108X [33X[0;6YThis function is called when the [10Xlocation[110X function in the current - record has returned the path(s) [3Xfilepath[103X, and if either these are + record has returned the path(s) [22Xfilepath[122X, and if either these are paths of existing files or the [10Xfetch[110X function in the current record has been called for these paths, and the return value was [9Xtrue[109X. The - argument [3Xtype[103X must be the same as for the [10Xlocation[110X and the [10Xfetch[110X - functions.[133X + first three arguments must be the same as for the [10Xlocation[110X function.[133X [33X[0;6YThe return value must be the contents of the file(s), in the sense that the [5XGAP[105X matrix, matrix list, permutation, permutation list, or @@ -223,34 +177,17 @@ reading the file(s) via the appropriate function, interpreting the contents may be necessary.[133X - [8X[10Xdescription[110X[108X - [33X[0;6YThis must be a short string that describes for which kinds of files - the functions in the current record are intended, which file formats - are supported etc. The value is used by - [2XAtlasOfGroupRepresentationsUserParameters[102X ([14X4.3-8[114X).[133X - - [8X[10Xactive[110X[108X - [33X[0;6YThe current [10XaccessFunctions[110X record is ignored by [2XAGR.FileContents[102X - ([14X7.6-2[114X) if the value is not [9Xtrue[109X.[133X - - [33X[0;0YIn [2XAGR.FileContents[102X ([14X7.6-2[114X), the records in the [10XaccessFunctions[110X component of - [2XAtlasOfGroupRepresentationsInfo[102X ([14X7.1-6[114X) are considered in reversed order.[133X - - [33X[0;0YBy default, the [10XaccessFunctions[110X list contains three records. Only for one of - them, the [10Xactive[110X component has the value [9Xtrue[109X. One of the other two records - can be used to change the access to permutation representations and to - matrix representations over finite fields such that [5XMeatAxe[105X binary files are - transferred and read instead of [5XMeatAxe[105X text files. The fourth record makes - sense only if a local server is accessible, i. e., if the server files can - be read directly, without being transferred into the data directories of the - package.[133X + [33X[0;0YIn [2XAGR.FileContents[102X ([14X7.6-2[114X), those records in the [10XaccessFunctions[110X component + of [2XAtlasOfGroupRepresentationsInfo[102X ([14X7.1-5[114X) are considered –in reversed + order– whose [10Xdescription[110X component occurs in the user preference + [10XFileAccessFunctions[110X, see Section [14X4.2-6[114X.[133X [1X7.3 [33X[0;0YReading and Writing MeatAxe Format Files[133X[101X [1X7.3-1 ScanMeatAxeFile[101X - [29X[2XScanMeatAxeFile[102X( [3Xfilename[103X[, [3Xq[103X][, [3X"string"[103X] ) [32X function + [33X[1;0Y[29X[2XScanMeatAxeFile[102X( [3Xfilename[103X[, [3Xq[103X][, [3X"string"[103X] ) [32X function[133X [6XReturns:[106X [33X[0;10Ythe matrix or list of permutations stored in the file or encoded by the string.[133X @@ -261,7 +198,8 @@ the corresponding [5XGAP[105X matrix or list of permutations, respectively.[133X [33X[0;0YIf the file contains a matrix then the way how it is read by [2XScanMeatAxeFile[102X - depends on the value of the global variable [2XCMeatAxe.FastRead[102X ([14X7.1-4[114X).[133X + depends on the value of the user preference [10XHowToReadMeatAxeTextFiles[110X, see + Section [14X4.2-8[114X.[133X [33X[0;0YIf the parameter [3Xq[103X is given then the result matrix is represented over the field with [3Xq[103X elements, the default for [3Xq[103X is the field size stored in the @@ -278,20 +216,20 @@ [1X7.3-2 MeatAxeString[101X - [29X[2XMeatAxeString[102X( [3Xmat[103X, [3Xq[103X ) [32X operation - [29X[2XMeatAxeString[102X( [3Xperms[103X, [3Xdegree[103X ) [32X operation - [29X[2XMeatAxeString[102X( [3Xperm[103X, [3Xq[103X, [3Xdims[103X ) [32X operation - [6XReturns:[106X [33X[0;10Ya string encoding the [5XGAP[105X objects given as input in [5XMeatAxe[105X - format.[133X + [33X[1;0Y[29X[2XMeatAxeString[102X( [3Xmat[103X, [3Xq[103X ) [32X operation[133X + [33X[1;0Y[29X[2XMeatAxeString[102X( [3Xperms[103X, [3Xdegree[103X ) [32X operation[133X + [33X[1;0Y[29X[2XMeatAxeString[102X( [3Xperm[103X, [3Xq[103X, [3Xdims[103X ) [32X operation[133X + [33X[1;0Y[29X[2XMeatAxeString[102X( [3Xintmat[103X ) [32X operation[133X + [6XReturns:[106X [33X[0;10Ya string encoding the [5XGAP[105X objects given as input in [10XC[110X-[5XMeatAxe[105X text + format, see [Rin].[133X [33X[0;0YIn the first form, for a matrix [3Xmat[103X whose entries lie in the finite field with [3Xq[103X elements, [2XMeatAxeString[102X returns a string that encodes [3Xmat[103X as a matrix - over [10XGF([3Xq[103X[10X)[110X, in [5XMeatAxe[105X text format.[133X + over [10XGF([3Xq[103X[10X)[110X.[133X [33X[0;0YIn the second form, for a nonempty list [3Xperms[103X of permutations that move only points up to the positive integer [3Xdegree[103X, [2XMeatAxeString[102X returns a string - that encodes [3Xperms[103X as permutations of degree [3Xdegree[103X, in [10XC[110X-[5XMeatAxe[105X text - format (see [Rin]).[133X + that encodes [3Xperms[103X as permutations of degree [3Xdegree[103X.[133X [33X[0;0YIn the third form, for a permutation [3Xperm[103X with largest moved point [22Xn[122X, say, a prime power [3Xq[103X, and a list [3Xdims[103X of length two containing two positive @@ -300,6 +238,9 @@ and columns describe the permutation matrix corresponding to [3Xperm[103X, and the remaining rows and columns are zero.[133X + [33X[0;0YIn the fourth form, for a matrix [3Xintmat[103X of integers, [2XMeatAxeString[102X returns a + string that encodes [3Xintmat[103X as an integer matrix.[133X + [33X[0;0YWhen strings are printed to files using [2XPrintTo[102X ([14XReference: PrintTo[114X) or [2XAppendTo[102X ([14XReference: AppendTo[114X) then line breaks are inserted whenever lines exceed the number of characters given by the second entry of the list @@ -355,10 +296,10 @@ [1X7.3-3 FFList[101X - [29X[2XFFList[102X( [3XF[103X ) [32X function + [33X[1;0Y[29X[2XFFList[102X( [3XF[103X ) [32X function[133X [6XReturns:[106X [33X[0;10Ya list of elements in the given finite field.[133X - [29X[2XFFLists[102X[32X global variable + [33X[1;0Y[29X[2XFFLists[102X[32X global variable[133X [33X[0;0Y[2XFFList[102X is a utility program for the conversion of vectors and matrices from [5XMeatAxe[105X format to [5XGAP[105X format and vice versa. It is used by [2XScanMeatAxeFile[102X @@ -380,9 +321,17 @@ [4X[28Xtrue[128X[104X [4X[32X[104X + [33X[0;0YThe [5XMeatAxe[105X defines the bijection between the elements in the field with [22Xq = + p^d[122X elements and the set [22X{ 0, 1, ..., q-1 }[122X of integers by assigning the + field element [22X∑_{i=0}^{d-1} c_i z^i[122X to the integer [22X∑_{i=0}^{d-1} c_i p^i[122X, + where the [22Xc_i[122X are in the set [22X{ 0, 1, ..., p-1 }[122X and [22Xz[122X is the primitive root + of the field with [22Xq[122X elements that corresponds to the residue class of the + indeterminate, modulo the ideal spanned by the Conway polynomial of degree [22Xd[122X + over the field with [22Xp[122X elements.[133X + [1X7.3-4 CMtxBinaryFFMatOrPerm[101X - [29X[2XCMtxBinaryFFMatOrPerm[102X( [3Xelm[103X, [3Xdef[103X, [3Xoutfile[103X[, [3Xbase[103X] ) [32X function + [33X[1;0Y[29X[2XCMtxBinaryFFMatOrPerm[102X( [3Xelm[103X, [3Xdef[103X, [3Xoutfile[103X[, [3Xbase[103X] ) [32X function[133X [33X[0;0YLet the pair [22X([3Xelm[103X, [3Xdef[103X)[122X be either of the form [22X(M, q)[122X where [22XM[122X is a matrix over a finite field [22XF[122X, say, with [22Xq ≤ 256[122X elements, or of the form [22X(π, n)[122X @@ -396,7 +345,7 @@ supported by version 2.4 of the [10XC[110X-[5XMeatAxe[105X) or the points from [22X1[122X to [3Xdeg[103X ([3Xbase[103X[22X= 1[122X, supported by older versions of the [10XC[110X-[5XMeatAxe[105X). The default for [3Xbase[103X is given by the value of the user preference [10XBaseOfMeatAxePermutation[110X, - see Section [14X4.3-11[114X.[133X + see Section [14X4.2-11[114X.[133X [33X[0;0Y(The binary format is described in the [10XC[110X-[5XMeatAxe[105X manual [Rin].)[133X @@ -418,7 +367,7 @@ [1X7.3-5 FFMatOrPermCMtxBinary[101X - [29X[2XFFMatOrPermCMtxBinary[102X( [3Xfname[103X ) [32X function + [33X[1;0Y[29X[2XFFMatOrPermCMtxBinary[102X( [3Xfname[103X ) [32X function[133X [6XReturns:[106X [33X[0;10Ythe matrix or permutation stored in the file.[133X [33X[0;0YLet [3Xfname[103X be the name of a file that contains the [10XC[110X-[5XMeatAxe[105X binary format of @@ -445,54 +394,54 @@ [1X7.4-1 ScanStraightLineProgram[101X - [29X[2XScanStraightLineProgram[102X( [3Xfilename[103X[, [3X"string"[103X] ) [32X function - [6XReturns:[106X [33X[0;10Ya record containing the straight line program.[133X + [33X[1;0Y[29X[2XScanStraightLineProgram[102X( [3Xfilename[103X[, [3X"string"[103X] ) [32X function[133X + [6XReturns:[106X [33X[0;10Ya record containing the straight line program, or [9Xfail[109X.[133X [33X[0;0YLet [3Xfilename[103X be the name of a file that contains a straight line program in the sense that it consists only of lines in the following form.[133X - [8X[10X#[110X[22Xanything[122X[108X + [8X[10X#[110X[8X[22Xanything[122X[108X [33X[0;6Ylines starting with a hash sign [10X#[110X are ignored,[133X - [8X[10Xecho [110X[22Xanything[122X[108X + [8X[10Xecho [110X[8X[22Xanything[122X[108X [33X[0;6Ylines starting with [10Xecho[110X are ignored for the [10Xprogram[110X component of the result record (see below), they are used to set up the bijection between the labels used in the program and conjugacy class names in the case that the program computes dedicated class representatives,[133X - [8X[10Xinp [110X[22Xn[122X[108X + [8X[10Xinp [110X[8X[22Xn[122X[108X [33X[0;6Ymeans that there are [22Xn[122X inputs, referred to via the labels [10X1[110X, [10X2[110X, [22X...[122X, [22Xn[122X,[133X - [8X[10Xinp [110X[22Xk[122X [22Xa1[122X [22Xa2[122X ... [22Xak[122X[108X + [8X[10Xinp [110X[8X[22Xk[122X [22Xa1[122X [22Xa2[122X ... [22Xak[122X[108X [33X[0;6Ymeans that the next [22Xk[122X inputs are referred to via the labels [22Xa1[122X, [22Xa2[122X, ..., [22Xak[122X,[133X - [8X[10Xcjr [110X[22Xa[122X [22Xb[122X[108X + [8X[10Xcjr [110X[8X[22Xa[122X [22Xb[122X[108X [33X[0;6Ymeans that [22Xa[122X is replaced by [22Xb[122X[10X^(-1) * [110X[22Xa[122X[10X * [110X[22Xb[122X,[133X - [8X[10Xcj [110X[22Xa[122X [22Xb[122X [22Xc[122X[108X + [8X[10Xcj [110X[8X[22Xa[122X [22Xb[122X [22Xc[122X[108X [33X[0;6Ymeans that [22Xc[122X is defined as [22Xb[122X[10X^(-1) * [110X[22Xa[122X[10X * [110X[22Xb[122X,[133X - [8X[10Xcom [110X[22Xa[122X [22Xb[122X [22Xc[122X[108X + [8X[10Xcom [110X[8X[22Xa[122X [22Xb[122X [22Xc[122X[108X [33X[0;6Ymeans that [22Xc[122X is defined as [22Xa[122X[10X^(-1) * [110X[22Xb[122X^(-1)[10X * [110X[22Xa[122X[10X * [110X[22Xb[122X,[133X - [8X[10Xiv [110X[22Xa[122X [22Xb[122X[108X + [8X[10Xiv [110X[8X[22Xa[122X [22Xb[122X[108X [33X[0;6Ymeans that [22Xb[122X is defined as [22Xa[122X[10X^(-1)[110X,[133X - [8X[10Xmu [110X[22Xa[122X [22Xb[122X [22Xc[122X[108X + [8X[10Xmu [110X[8X[22Xa[122X [22Xb[122X [22Xc[122X[108X [33X[0;6Ymeans that [22Xc[122X is defined as [22Xa[122X[10X * [110X[22Xb[122X,[133X - [8X[10Xpwr [110X[22Xa[122X [22Xb[122X [22Xc[122X[108X + [8X[10Xpwr [110X[8X[22Xa[122X [22Xb[122X [22Xc[122X[108X [33X[0;6Ymeans that [22Xc[122X is defined as [22Xb[122X[10X^[110X[22Xa[122X,[133X - [8X[10Xcp [110X[22Xa[122X [22Xb[122X[108X + [8X[10Xcp [110X[8X[22Xa[122X [22Xb[122X[108X [33X[0;6Ymeans that [22Xb[122X is defined as a copy of [22Xa[122X,[133X - [8X[10Xoup [110X[22Xl[122X[108X + [8X[10Xoup [110X[8X[22Xl[122X[108X [33X[0;6Ymeans that there are [22Xl[122X outputs, stored in the labels [10X1[110X, [10X2[110X, [22X...[122X, [22Xl[122X, and[133X - [8X[10Xoup [110X[22Xl[122X [22Xb1[122X [22Xb2[122X ... [22Xbl[122X[108X + [8X[10Xoup [110X[8X[22Xl[122X [22Xb1[122X [22Xb2[122X ... [22Xbl[122X[108X [33X[0;6Ymeans that the next [22Xl[122X outputs are stored in the labels [22Xb1[122X, [22Xb2[122X, ... [22Xbl[122X.[133X [33X[0;0YEach of the labels [22Xa[122X, [22Xb[122X, [22Xc[122X can be any nonempty sequence of digits and @@ -544,8 +493,8 @@ [1X7.4-2 AtlasStringOfProgram[101X - [29X[2XAtlasStringOfProgram[102X( [3Xprog[103X[, [3Xoutputnames[103X] ) [32X function - [29X[2XAtlasStringOfProgram[102X( [3Xprog[103X[, [3X"mtx"[103X] ) [32X function + [33X[1;0Y[29X[2XAtlasStringOfProgram[102X( [3Xprog[103X[, [3Xoutputnames[103X] ) [32X function[133X + [33X[1;0Y[29X[2XAtlasStringOfProgram[102X( [3Xprog[103X, [3X"mtx"[103X ) [32X function[133X [6XReturns:[106X [33X[0;10Ya string encoding the straight line program/decision in the format used in [5XATLAS[105X files.[133X @@ -553,8 +502,8 @@ (see [2XIsStraightLineProgram[102X ([14XReference: IsStraightLineProgram[114X) and [2XIsStraightLineDecision[102X ([14X6.1-1[114X)), this function returns a string describing the input format of an equivalent straight line program or straight line - decision as used in the [5XATLAS[105X of Group Representations, that is, the lines - are of the form described in [2XScanStraightLineProgram[102X ([14X7.4-1[114X).[133X + decision as used in the data files, that is, the lines are of the form + described in [2XScanStraightLineProgram[102X ([14X7.4-1[114X).[133X [33X[0;0YA list of strings that is given as the optional second argument [3Xoutputnames[103X is interpreted as the class names corresponding to the outputs; this @@ -562,10 +511,10 @@ result string.[133X [33X[0;0YIf the string [10X"mtx"[110X is given as the second argument then the result has the - format used in the [10XC[110X-[5XMeatAxe[105X (see [Rin]) rather than the format described in - Section [14X7.4[114X. (Note that the [10XC[110X-[5XMeatAxe[105X format does not make sense if the - argument [3Xoutputnames[103X is given, and that this format does not support [10Xinp[110X and - [10Xoup[110X statements.)[133X + format used in the [10XC[110X-[5XMeatAxe[105X (see [Rin]) rather than the format described + for [2XScanStraightLineProgram[102X ([14X7.4-1[114X). (Note that the [10XC[110X-[5XMeatAxe[105X format does + not make sense if the argument [3Xoutputnames[103X is given, and that this format + does not support [10Xinp[110X and [10Xoup[110X statements.)[133X [33X[0;0YThe argument [3Xprog[103X must not be a black box program (see [2XIsBBoxProgram[102X ([14X6.2-1[114X)).[133X @@ -622,7 +571,7 @@ [4X[32X[104X - [1X7.5 [33X[0;0YData Types Used in the [5XATLAS[105X[101X[1X of Group Representations[133X[101X + [1X7.5 [33X[0;0YData Types Used in the [5XAtlasRep[105X[101X[1X Package[133X[101X [33X[0;0YEach representation or program that is administrated by the [5XAtlasRep[105X package belongs to a unique [13Xdata type[113X. Informally, examples of data types are @@ -638,30 +587,31 @@ [30X [33X[0;6Ya line format of its own for the output produced by [2XDisplayAtlasInfo[102X ([14X3.5-1[114X) when called with first argument a group name,[133X - [30X [33X[0;6Yan input format of its own for [2XAtlasProgram[102X ([14X3.5-3[114X),[133X + [30X [33X[0;6Yan input format of its own for [2XAtlasProgram[102X ([14X3.5-4[114X),[133X - [30X [33X[0;6Yan input format of its own for [2XOneAtlasGeneratingSetInfo[102X ([14X3.5-5[114X), and[133X + [30X [33X[0;6Yan input format of its own for [2XOneAtlasGeneratingSetInfo[102X ([14X3.5-6[114X), and[133X [30X [33X[0;6Yspecific tests for the data of this data type; these functions are - used by the global tests described in Section [14X7.8[114X.[133X + used by the global tests described in Section [14X7.9[114X.[133X [33X[0;0YFormally, a data type is defined by a record whose components are used by the interface functions. The details are described in the following.[133X [1X7.5-1 AGR.DeclareDataType[101X - [29X[2XAGR.DeclareDataType[102X( [3Xkind[103X, [3Xname[103X, [3Xrecord[103X ) [32X function + [33X[1;0Y[29X[2XAGR.DeclareDataType[102X( [3Xkind[103X, [3Xname[103X, [3Xrecord[103X ) [32X function[133X - [33X[0;0YLet [3Xkind[103X be one of the strings [10X"rep"[110X or [10X"prg"[110X, and [3Xrecord[103X be a record. - [2XAGR.DeclareDataType[102X declares a new data type of representations (if [3Xkind[103X is - [10X"rep"[110X) or of programs (if [3Xkind[103X is [10X"prg"[110X). For each group used in the - [5XAtlasRep[105X package, the record that contains the information about the data - will have a component [3Xname[103X whose value is a list containing the data about - the new type. Examples of [3Xname[103X are [10X"perm"[110X, [10X"matff"[110X, and [10X"classes"[110X.[133X + [33X[0;0YLet [3Xkind[103X be one of the strings [10X"rep"[110X or [10X"prg"[110X, and [3Xrecord[103X be a record. If + [3Xkind[103X is [10X"rep"[110X then [2XAGR.DeclareDataType[102X declares a new data type of + representations, if [3Xkind[103X is [10X"prg"[110X then it declares a new data type of + programs. The string [3Xname[103X is the name of the type, for example [10X"perm"[110X, + [10X"matff"[110X, or [10X"classes"[110X. [5XAtlasRep[105X stores the data for each group internally in + a record whose component [3Xname[103X holds the list of the data about the type with + this name.[133X [33X[0;0Y[13XMandatory components[113X of [3Xrecord[103X are[133X - [8X[10XFilenameFormat[110X[108X + [8X[10XFilenameFormat[110X[8X[108X [33X[0;6YThis defines the format of the filenames containing data of the type in question. The value must be a list that can be used as the second argument of [2XAGR.ParseFilenameFormat[102X ([14X7.6-1[114X), such that only filenames @@ -669,7 +619,7 @@ [21Xdetection function[121X matches exactly one type, so declaring a new type needs care.)[133X - [8X[10XAddFileInfo[110X[108X + [8X[10XAddFileInfo[110X[8X[108X [33X[0;6YThis defines the information stored in the table of contents for the data of the type. The value must be a function that takes three arguments (the current list of data for the type and the given group, @@ -681,20 +631,20 @@ the parts of the name are not satisfied (for example integer parts may be required to be positive or prime powers).[133X - [8X[10XReadAndInterpretDefault[110X[108X + [8X[10XReadAndInterpretDefault[110X[8X[108X [33X[0;6YThis is the function that does the work for the default [10Xcontents[110X value of the [10XaccessFunctions[110X component of [2XAtlasOfGroupRepresentationsInfo[102X - ([14X7.1-6[114X), see Section [14X7.2[114X. This function must take a path and return + ([14X7.1-5[114X), see Section [14X7.2[114X. This function must take a path and return the [5XGAP[105X object given by this file.[133X - [8X[10XAddDescribingComponents[110X (for [10Xrep[110X only)[108X + [8X[10XAddDescribingComponents[110X[8X (for [10Xrep[110X[8X only)[108X [33X[0;6YThis function takes two arguments, a record (that will be returned by - [2XAtlasGenerators[102X ([14X3.5-2[114X), [2XOneAtlasGeneratingSetInfo[102X ([14X3.5-5[114X), or - [2XAllAtlasGeneratingSetInfos[102X ([14X3.5-6[114X)) and the type record [3Xrecord[103X. It + [2XAtlasGenerators[102X ([14X3.5-3[114X), [2XOneAtlasGeneratingSetInfo[102X ([14X3.5-6[114X), or + [2XAllAtlasGeneratingSetInfos[102X ([14X3.5-7[114X)) and the type record [3Xrecord[103X. It sets the components [10Xp[110X, [10Xdim[110X, [10Xid[110X, and [10Xring[110X that are promised for return values of the abovementioned three functions.[133X - [8X[10XDisplayGroup[110X (for [10Xrep[110X only)[108X + [8X[10XDisplayGroup[110X[8X (for [10Xrep[110X[8X only)[108X [33X[0;6YThis defines the format of the lines printed by [2XDisplayAtlasInfo[102X ([14X3.5-1[114X) for a given group. The value must be a function that takes a list as returned by the function given in the component [10XAddFileInfo[110X, @@ -703,7 +653,7 @@ [33X[0;0Y[13XOptional components[113X of [3Xrecord[103X are[133X - [8X[10XDisplayOverviewInfo[110X[108X + [8X[10XDisplayOverviewInfo[110X[8X[108X [33X[0;6YThis is used to introduce a new column in the output of [2XDisplayAtlasInfo[102X ([14X3.5-1[114X) when this is called without arguments or with a list of group names as its only argument. The value must be a list @@ -717,20 +667,20 @@ not. (The default is [9Xfail[109X, indicating that no new column shall be printed.)[133X - [8X[10XDisplayPRG[110X (for [10Xprg[110X only)[108X + [8X[10XDisplayPRG[110X[8X (for [10Xprg[110X[8X only)[108X [33X[0;6YThis is used in [2XDisplayAtlasInfo[102X ([14X3.5-1[114X) for [5XATLAS[105X programs. The value must be a function that takes four arguments (a list of tables of - contents to examine, the name of the given group, a list of integers - or [9Xtrue[109X for the required standardization, and a list of all available - standardizations), and returns the list of lines (strings) to be - printed as the information about the available programs of the current - type and for the given group. (The default is to return an empty - list.)[133X + contents to examine, a list containing the [5XGAP[105X name and the [5XATLAS[105X name + of the given group, a list of integers or [9Xtrue[109X for the required + standardization, and a list of all available standardizations), and + returns the list of lines (strings) to be printed as the information + about the available programs of the current type and for the given + group. (The default is to return an empty list.)[133X - [8X[10XAccessGroupCondition[110X (for [10Xrep[110X only)[108X + [8X[10XAccessGroupCondition[110X[8X (for [10Xrep[110X[8X only)[108X [33X[0;6YThis is used in [2XDisplayAtlasInfo[102X ([14X3.5-1[114X) and [2XOneAtlasGeneratingSetInfo[102X - ([14X3.5-5[114X). The value must be a function that takes two arguments (a list - as returned by [2XOneAtlasGeneratingSetInfo[102X ([14X3.5-5[114X), and a list of + ([14X3.5-6[114X). The value must be a function that takes two arguments (a list + as returned by [2XOneAtlasGeneratingSetInfo[102X ([14X3.5-6[114X), and a list of conditions), and returns [9Xtrue[109X or [9Xfalse[109X, depending on whether the first argument satisfies the conditions. (The default value is [2XReturnFalse[102X ([14XReference: ReturnFalse[114X).)[133X @@ -741,222 +691,213 @@ function, or the string [10X"minimal"[110X. For an overview of the interesting functions, see [2XDisplayAtlasInfo[102X ([14X3.5-1[114X).[133X - [8X[10XAccessPRG[110X (for [10Xprg[110X only)[108X - [33X[0;6YThis is used in [2XAtlasProgram[102X ([14X3.5-3[114X). The value must be a function - that takes three arguments (the record with the information about the - given group in the current table of contents, an integer or a list of - integers or [9Xtrue[109X for the required standardization, and a list of - conditions given by the optional arguments of [2XAtlasProgram[102X ([14X3.5-3[114X)), - and returns either [9Xfail[109X or a list that together with the group name - forms the identifier of a program that matches the conditions. (The - default value is [2XReturnFail[102X ([14XReference: ReturnFail[114X).)[133X + [8X[10XAccessPRG[110X[8X (for [10Xprg[110X[8X only)[108X + [33X[0;6YThis is used in [2XAtlasProgram[102X ([14X3.5-4[114X). The value must be a function + that takes four arguments (the current table of contents, the group + name, an integer or a list of integers or [9Xtrue[109X for the required + standardization, and a list of conditions given by the optional + arguments of [2XAtlasProgram[102X ([14X3.5-4[114X)), and returns either [9Xfail[109X or a list + that together with the group name forms the identifier of a program + that matches the conditions. (The default value is [2XReturnFail[102X + ([14XReference: ReturnFail[114X).)[133X - [8X[10XAtlasProgram[110X (for [10Xprg[110X only)[108X - [33X[0;6YThis is used in [2XAtlasProgram[102X ([14X3.5-3[114X) to create the result value from + [8X[10XAtlasProgram[110X[8X (for [10Xprg[110X[8X only)[108X + [33X[0;6YThis is used in [2XAtlasProgram[102X ([14X3.5-4[114X) to create the result value from the identifier. (The default value is [10XAtlasProgramDefault[110X, which works whenever the second entry of the identifier is the filename; this is not the case for example if the program is the composition of several programs.)[133X - [8X[10XAtlasProgramInfo[110X (for [10Xprg[110X only)[108X - [33X[0;6YThis is used in [2XAtlasProgramInfo[102X ([14X3.5-4[114X) to create the result value + [8X[10XAtlasProgramInfo[110X[8X (for [10Xprg[110X[8X only)[108X + [33X[0;6YThis is used in [2XAtlasProgramInfo[102X ([14X3.5-5[114X) to create the result value from the identifier. (The default value is [10XAtlasProgramDefault[110X.)[133X - [8X[10XTOCEntryString[110X[108X - [33X[0;6YThis is used in [2XStoreAtlasTableOfContents[102X ([14X4.2-2[114X). The value must be a - function that takes two arguments (the name [3Xname[103X of the type and a - list as returned by [2XAGR.ParseFilenameFormat[102X ([14X7.6-1[114X) and returns a - string that describes the appropriate function call. (The default - value is [10XTOCEntryStringDefault[110X.)[133X - - [8X[10XPostprocessFileInfo[110X[108X - [33X[0;6YThis is used in the construction of a table of contents via - [2XReloadAtlasTableOfContents[102X ([14X4.2-1[114X), for testing or rearranging the - data of the current table of contents. The value must be a function - that takes two arguments, the table of contents record and the record - in it that belongs to one fixed group. (The default function does - nothing.)[133X - - [8X[10XSortTOCEntries[110X[108X - [33X[0;6YThis is used in the construction of a table of contents (see - [2XReloadAtlasTableOfContents[102X ([14X4.2-1[114X)), for sorting the entries after - they have been added and after the value of the component - [10XPostprocessFileInfo[110X has been called. The value must be a function that - takes a list as returned by [2XAGR.ParseFilenameFormat[102X ([14X7.6-1[114X), and - returns the sorting key. (There is no default value, which means that - no sorting is needed.)[133X + [8X[10XTOCEntryString[110X[8X[108X + [33X[0;6YThis is used in [2XStringOfAtlasTableOfContents[102X ([14X5.1-3[114X). The value must + be a function that takes two or three arguments (the name [3Xname[103X of the + type, a list as returned by [2XAGR.ParseFilenameFormat[102X ([14X7.6-1[114X), and + optionally a string that indicates the [21Xremote[121X format) and returns a + string that describes the appropriate data format. (The default value + is [10XTOCEntryStringDefault[110X.)[133X + + [8X[10XPostprocessFileInfo[110X[8X[108X + [33X[0;6YThis is used in the construction of a table of contents for testing or + rearranging the data of the current table of contents. The value must + be a function that takes two arguments, the table of contents record + and the record in it that belongs to one fixed group. (The default + function does nothing.)[133X + + [8X[10XSortTOCEntries[110X[8X[108X + [33X[0;6YThis is used in the construction of a table of contents for sorting + the entries after they have been added and after the value of the + component [10XPostprocessFileInfo[110X has been called. The value must be a + function that takes a list as returned by [2XAGR.ParseFilenameFormat[102X + ([14X7.6-1[114X), and returns the sorting key. (There is no default value, + which means that no sorting is needed.)[133X - [8X[10XTestFileHeaders[110X (for [10Xrep[110X only)[108X + [8X[10XTestFileHeaders[110X[8X (for [10Xrep[110X[8X only)[108X [33X[0;6YThis is used in the function [10XAGR.Test.FileHeaders[110X. The value must be a function that takes the same four arguments as [2XAGR.FileContents[102X - ([14X7.6-2[114X), except that the first argument [10X"datagens"[110X can be replaced by - [10X"local"[110X and that the third argument is a list as returned by + ([14X7.6-2[114X), except that the third argument is a list as returned by [2XAGR.ParseFilenameFormat[102X ([14X7.6-1[114X). (The default value is [2XReturnTrue[102X ([14XReference: ReturnTrue[114X).)[133X - [8X[10XTestFiles[110X (for [10Xrep[110X only)[108X + [8X[10XTestFiles[110X[8X (for [10Xrep[110X[8X only)[108X [33X[0;6YThis is used in the function [10XAGR.Test.Files[110X. The format of the value - and the default are the same as for the value of the component - [10XTestFileHeaders[110X.[133X + and the default are the same as for the component [10XTestFileHeaders[110X.[133X - [8X[10XTestWords[110X (for [10Xprg[110X only)[108X + [8X[10XTestWords[110X[8X (for [10Xprg[110X[8X only)[108X [33X[0;6YThis is used in the function [10XAGR.Test.Words[110X. The value must be a function that takes five arguments where the first four are the same - arguments as for [2XAGR.FileContents[102X ([14X7.6-2[114X), except that the first - argument [10X"dataword"[110X can be replaced by [10X"local"[110X, and the fifth argument - is [9Xtrue[109X or [9Xfalse[109X, indicating verbose mode or not.[133X - - - [1X7.6 [33X[0;0YFilenames Used in the [5XATLAS[105X[101X[1X of Group Representations[133X[101X - - [33X[0;0YThe data of each local [5XGAP[105X version of the [5XATLAS[105X of Group Representations are - either private (see Chapter [14X5[114X) or are stored in the two directories [11Xdatagens[111X - and [11Xdataword[111X. In the following, we describe the format of filenames in the - latter two directories, as a reference of the [21Xofficial[121X part of the [5XATLAS[105X.[133X - - [33X[0;0YIn the directory [11Xdatagens[111X, the generators for the [13Xrepresentations[113X available - are stored, the directory [11Xdataword[111X contains the [13Xprograms[113X to compute - conjugacy class representatives, generators of maximal subgroups, images of - generators under automorphisms of a given group [22XG[122X from standard generators - of [22XG[122X, and to check and compute standard generators (see Section [14X3.3[114X).[133X - - [33X[0;0YThe name of each data file in the [5XATLAS[105X of Group Representations describes - the contents of the file. This section lists the definitions of the - filenames used.[133X + arguments as for [2XAGR.FileContents[102X ([14X7.6-2[114X), except that the fifth + argument is [9Xtrue[109X or [9Xfalse[109X, indicating verbose mode or not.[133X + + + [1X7.6 [33X[0;0YFilenames Used in the [5XAtlasRep[105X[101X[1X Package[133X[101X + + [33X[0;0Y[5XAtlasRep[105X expects that the filename of each data file describes the contents + of the file. This section lists the definitions of the supported structures + of filenames.[133X [33X[0;0YEach filename consists of two parts, separated by a minus sign [10X-[110X. The first - part is always of the form [3Xgroupname[103X[10XG[110X[3Xi[103X, where the integer [3Xi[103X denotes the [3Xi[103X-th + part is always of the form [22Xgroupname[122X[10XG[110X[22Xi[122X, where the integer [22Xi[122X denotes the [22Xi[122X-th set of standard generators for the group [22XG[122X, say, with [5XATLAS[105X-file name - [3Xgroupname[103X (see [14X3.2[114X). The translations of the name [3Xgroupname[103X to the name(s) + [22Xgroupname[122X (see [14X3.2[114X). The translations of the name [22Xgroupname[122X to the name(s) used within [5XGAP[105X is given by the component [10XGAPnames[110X of - [2XAtlasOfGroupRepresentationsInfo[102X ([14X7.1-6[114X).[133X + [2XAtlasOfGroupRepresentationsInfo[102X ([14X7.1-5[114X).[133X - [33X[0;0YThe filenames in the directory [11Xdataword[111X have one of the following forms. In - each of these cases, the suffix [10XW[110X[3Xn[103X means that [3Xn[103X is the version number of the - program.[133X + [33X[0;0YThe names of files that contain straight line programs or straight line + decisions have one of the following forms. In each of these cases, the + suffix [10XW[110X[22Xn[122X means that [22Xn[122X is the version number of the program.[133X - [8X[10X[3Xgroupname[103X[10XG[3Xi[103X[10X-cycW[3Xn[103X[10X[110X[108X + [8X[22Xgroupname[122X[10XG[110X[8X[22Xi[122X[10X-cycW[110X[8X[22Xn[122X[108X [33X[0;6YIn this case, the file contains a straight line program that returns a list of representatives of generators of maximally cyclic subgroups of [22XG[122X. An example is [10XCo1G1-cycW1[110X.[133X - [8X[10X[3Xgroupname[103X[10XG[3Xi[103X[10X-cclsW[3Xn[103X[10X[110X[108X + [8X[22Xgroupname[122X[10XG[110X[8X[22Xi[122X[10X-cclsW[110X[8X[22Xn[122X[108X [33X[0;6YIn this case, the file contains a straight line program that returns a list of conjugacy class representatives of [22XG[122X. An example is [10XRuG1-cclsW1[110X.[133X - [8X[10X[3Xgroupname[103X[10XG[3Xi[103X[10XcycW[3Xn[103X[10X-cclsW[3Xm[103X[10X[110X[108X + [8X[22Xgroupname[122X[10XG[110X[8X[22Xi[122X[10XcycW[110X[8X[22Xn[122X[10X-cclsW[110X[8X[22Xm[122X[108X [33X[0;6YIn this case, the file contains a straight line program that takes the - return value of the program in the file [3Xgroupname[103X[10XG[110X[3Xi[103X[10X-cycW[110X[3Xn[103X (see above), + return value of the program in the file [22Xgroupname[122X[10XG[110X[22Xi[122X[10X-cycW[110X[22Xn[122X (see above), and returns a list of conjugacy class representatives of [22XG[122X. An example is [10XM11G1cycW1-cclsW1[110X.[133X - [8X[10X[3Xgroupname[103X[10XG[3Xi[103X[10X-max[3Xk[103X[10XW[3Xn[103X[10X[110X[108X + [8X[22Xgroupname[122X[10XG[110X[8X[22Xi[122X[10X-max[110X[8X[22Xk[122X[10XW[110X[8X[22Xn[122X[108X [33X[0;6YIn this case, the file contains a straight line program that takes - generators of [22XG[122X w.r.t. the [3Xi[103X-th set of standard generators, and + generators of [22XG[122X w. r. t. the [22Xi[122X-th set of standard generators, and returns a list of generators (in general [13Xnot[113X standard generators) for - a subgroup [22XU[122X in the [3Xk[103X-th class of maximal subgroups of [22XG[122X. An example + a subgroup [22XU[122X in the [22Xk[122X-th class of maximal subgroups of [22XG[122X. An example is [10XJ1G1-max7W1[110X.[133X - [8X[10X[3Xgroupname[103X[10XG[3Xi[103X[10Xmax[3Xk[103X[10XW[3Xn[103X[10X-[3Xsubgroupname[103X[10XG[3Xj[103X[10XW[3Xm[103X[10X[110X[108X + [8X[22Xgroupname[122X[10XG[110X[8X[22Xi[122X[10Xmax[110X[8X[22Xk[122X[10XW[110X[8X[22Xn[122X[10X-[110X[8X[22Xsubgroupname[122X[10XG[110X[8X[22Xj[122X[10XW[110X[8X[22Xm[122X[108X [33X[0;6YIn this case, the file contains a straight line program that takes the - return value of the program in the file [3Xgroupname[103X[10XG[110X[3Xi[103X[10X-max[110X[3Xk[103X[10XW[110X[3Xn[103X (see - above), which are generators for a group [22XU[122X, say; [3Xsubgroupname[103X is a + return value of the program in the file [22Xgroupname[122X[10XG[110X[22Xi[122X[10X-max[110X[22Xk[122X[10XW[110X[22Xn[122X (see + above), which are generators for a group [22XU[122X, say; [22Xsubgroupname[122X is a name for [22XU[122X, and the return value is a list of standard generators for - [22XU[122X, w.r.t. the [3Xj[103X-th set of standard generators. (Of course this implies - that the groups in the [3Xk[103X-th class of maximal subgroups of [22XG[122X are - isomorphic to the group with name [3Xsubgroupname[103X.) An example is + [22XU[122X, w. r. t. the [22Xj[122X-th set of standard generators. (Of course this + implies that the groups in the [22Xk[122X-th class of maximal subgroups of [22XG[122X + are isomorphic to the group with name [22Xsubgroupname[122X.) An example is [10XJ1G1max1W1-L211G1W1[110X; the first class of maximal subgroups of the Janko group [22XJ_1[122X consists of groups isomorphic to the linear group [22XL_2(11)[122X, for which standard generators are defined.[133X - [8X[10X[3Xgroupname[103X[10XG[3Xi[103X[10X-a[3Xoutname[103X[10XW[3Xn[103X[10X[110X[108X + [8X[22Xgroupname[122X[10XG[110X[8X[22Xi[122X[10X-a[110X[8X[22Xoutname[122X[10XW[110X[8X[22Xn[122X[108X [33X[0;6YIn this case, the file contains a straight line program that takes - generators of [22XG[122X w.r.t. the [3Xi[103X-th set of standard generators, and + generators of [22XG[122X w. r. t. the [22Xi[122X-th set of standard generators, and returns the list of their images under the outer automorphism [22Xα[122X of [22XG[122X - given by the name [3Xoutname[103X; if this name is empty then [22Xα[122X is the unique + given by the name [22Xoutname[122X; if this name is empty then [22Xα[122X is the unique nontrivial outer automorphism of [22XG[122X; if it is a positive integer [22Xk[122X then [22Xα[122X is a generator of the unique cyclic order [22Xk[122X subgroup of the outer automorphism group of [22XG[122X; if it is of the form [10X2_1[110X or [10X2a[110X, [10X4_2[110X or [10X4b[110X, [10X3_3[110X or [10X3c[110X [22X...[122X then [22Xα[122X generates the cyclic group of automorphisms induced on [22XG[122X by [22XG.2_1[122X, [22XG.4_2[122X, [22XG.3_3[122X [22X...[122X; finally, if it is of the form - [3Xk[103X[10Xp[110X[3Xd[103X, with [3Xk[103X one of the above forms and [3Xd[103X an integer then [3Xd[103X denotes the - number of dashes appended to the automorphism described by [3Xk[103X; if [22X[3Xd[103X = 1[122X - then [3Xd[103X can be omitted. Examples are [10XA5G1-aW1[110X, [10XL34G1-a2_1W1[110X, + [22Xk[122X[10Xp[110X[22Xd[122X, with [22Xk[122X one of the above forms and [22Xd[122X an integer then [22Xd[122X denotes the + number of dashes appended to the automorphism described by [22Xk[122X; if [22Xd = 1[122X + then [22Xd[122X can be omitted. Examples are [10XA5G1-aW1[110X, [10XL34G1-a2_1W1[110X, [10XU43G1-a2_3pW1[110X, and [10XO8p3G1-a2_2p5W1[110X; these file names describe the outer order [22X2[122X automorphism of [22XA_5[122X (induced by the action of [22XS_5[122X) and the order [22X2[122X automorphisms of [22XL_3(4)[122X, [22XU_4(3)[122X, and [22XO_8^+(3)[122X induced by the actions of [22XL_3(4).2_1[122X, [22XU_4(3).2_2^'[122X, and [22XO_8^+(3).2_2^{'''''}[122X, respectively.[133X - [8X[10X[3Xgroupname[103X[10XG[3Xi[103X[10X-G[3Xj[103X[10XW[3Xn[103X[10X[110X[108X + [8X[22Xgroupname[122X[10XG[110X[8X[22Xi[122X[10X-ker[110X[8X[22Xfactgroupname[122X[10XW[110X[8X[22Xn[122X[108X [33X[0;6YIn this case, the file contains a straight line program that takes - generators of [22XG[122X w.r.t. the [3Xi[103X-th set of standard generators, and - returns standard generators of [22XG[122X w.r.t. the [3Xj[103X-th set of standard + generators of [22XG[122X w. r. t. the [22Xi[122X-th set of standard generators, and + returns generators of the kernel of an epimorphism that maps [22XG[122X to a + group with [5XATLAS[105X-file name [22Xfactgroupname[122X. An example is [10X2A5G1-kerA5W1[110X.[133X + + [8X[22Xgroupname[122X[10XG[110X[8X[22Xi[122X[10X-G[110X[8X[22Xj[122X[10XW[110X[8X[22Xn[122X[108X + [33X[0;6YIn this case, the file contains a straight line program that takes + generators of [22XG[122X w. r. t. the [22Xi[122X-th set of standard generators, and + returns standard generators of [22XG[122X w. r. t. the [22Xj[122X-th set of standard generators. An example is [10XL35G1-G2W1[110X.[133X - [8X[10X[3Xgroupname[103X[10XG[3Xi[103X[10X-check[3Xn[103X[10X[110X[108X + [8X[22Xgroupname[122X[10XG[110X[8X[22Xi[122X[10X-check[110X[8X[22Xn[122X[108X [33X[0;6YIn this case, the file contains a straight line decision that takes generators of [22XG[122X, and returns [9Xtrue[109X if these generators are standard - generators w.r.t. the [3Xi[103X-th standardization, and [9Xfalse[109X otherwise.[133X + generators w. r. t. the [22Xi[122X-th standardization, and [9Xfalse[109X otherwise.[133X - [8X[10X[3Xgroupname[103X[10XG[3Xi[103X[10X-P[3Xn[103X[10X[110X[108X + [8X[22Xgroupname[122X[10XG[110X[8X[22Xi[122X[10X-P[110X[8X[22Xn[122X[108X [33X[0;6YIn this case, the file contains a straight line decision that takes some group elements, and returns [9Xtrue[109X if these elements are standard - generators for [3XG[103X, w.r.t. the [3Xi[103X-th standardization, and [9Xfalse[109X + generators for [22XG[122X, w. r. t. the [22Xi[122X-th standardization, and [9Xfalse[109X otherwise.[133X - [8X[10X[3Xgroupname[103X[10XG[3Xi[103X[10X-find[3Xn[103X[10X[110X[108X + [8X[22Xgroupname[122X[10XG[110X[8X[22Xi[122X[10X-find[110X[8X[22Xn[122X[108X [33X[0;6YIn this case, the file contains a black box program that takes a group, and returns (if it is successful) a set of standard generators - for [3XG[103X, w.r.t. the [3Xi[103X-th standardization.[133X + for [22XG[122X, w. r. t. the [22Xi[122X-th standardization.[133X - [8X[10X[3Xgroupname[103X[10XG[3Xi[103X[10X-X[3Xdescr[103X[10XW[3Xn[103X[10X[110X[108X + [8X[22Xgroupname[122X[10XG[110X[8X[22Xi[122X[10X-X[110X[8X[22Xdescr[122X[10XW[110X[8X[22Xn[122X[108X [33X[0;6YIn this case, the file contains a straight line program that takes - generators of [22XG[122X w.r.t. the [3Xi[103X-th set of standard generators, and whose - return value corresponds to [3Xdescr[103X. This format is used only in private - extensions (see Chapter [14X5[114X), such a script can be accessed with [3Xdescr[103X - as the third argument of [2XAtlasProgram[102X ([14X3.5-3[114X).[133X - - [33X[0;0YThe filenames in the directory [11Xdatagens[111X have one of the following forms. In - each of these cases, [3Xid[103X is a (possibly empty) string that starts with a - lowercase alphabet letter (see [2XIsLowerAlphaChar[102X ([14XReference: - IsLowerAlphaChar[114X)), and [3Xm[103X is a nonnegative integer, meaning that the - generators are written w.r.t. the [3Xm[103X-th basis (the meaning is defined by the - [5XATLAS[105X developers).[133X - - [8X[10X[3Xgroupname[103X[10XG[3Xi[103X[10X-f[3Xq[103X[10Xr[3Xdim[103X[10X[3Xid[103X[10XB[3Xm[103X[10X.m[3Xnr[103X[10X[110X[108X - [33X[0;6Ya file in [5XMeatAxe[105X text file format containing the [3Xnr[103X-th generator of a - matrix representation over the field with [3Xq[103X elements, of dimension - [3Xdim[103X. An example is [10XS5G1-f2r4aB0.m1[110X.[133X - - [8X[10X[3Xgroupname[103X[10XG[3Xi[103X[10X-p[3Xn[103X[10X[3Xid[103X[10XB[3Xm[103X[10X.m[3Xnr[103X[10X[110X[108X - [33X[0;6Ya file in [5XMeatAxe[105X text file format containing the [3Xnr[103X-th generator of a - permutation representation on [3Xn[103X points. An example is [10XM11G1-p11B0.m1[110X.[133X + generators of [22XG[122X w. r. t. the [22Xi[122X-th set of standard generators, and + whose return value corresponds to [22Xdescr[122X. This format is used only in + private extensions (see Chapter [14X5[114X), such a script can be accessed with + [22Xdescr[122X as the third argument of [2XAtlasProgram[102X ([14X3.5-4[114X).[133X + + [33X[0;0YThe names of files that contain group generators have one of the following + forms. In each of these cases, [22Xid[122X is a (possibly empty) string that starts + with a lowercase alphabet letter (see [2XIsLowerAlphaChar[102X ([14XReference: + IsLowerAlphaChar[114X)), and [22Xm[122X is a nonnegative integer, meaning that the + generators are written w. r. t. the [22Xm[122X-th basis (the meaning is defined by + the [5XATLAS[105X developers).[133X + + [8X[22Xgroupname[122X[10XG[110X[8X[22Xi[122X[10X-f[110X[8X[22Xq[122X[10Xr[110X[8X[22Xdim[122X[22Xid[122X[10XB[110X[8X[22Xm[122X[10X.m[110X[8X[22Xnr[122X[108X + [33X[0;6Ya file in [5XMeatAxe[105X text file format containing the [22Xnr[122X-th generator of a + matrix representation over the field with [22Xq[122X elements, of dimension + [22Xdim[122X. An example is [10XS5G1-f2r4aB0.m1[110X.[133X + + [8X[22Xgroupname[122X[10XG[110X[8X[22Xi[122X[10X-p[110X[8X[22Xn[122X[22Xid[122X[10XB[110X[8X[22Xm[122X[10X.m[110X[8X[22Xnr[122X[108X + [33X[0;6Ya file in [5XMeatAxe[105X text file format containing the [22Xnr[122X-th generator of a + permutation representation on [22Xn[122X points. An example is [10XM11G1-p11B0.m1[110X.[133X - [8X[10X[3Xgroupname[103X[10XG[3Xi[103X[10X-Ar[3Xdim[103X[10X[3Xid[103X[10XB[3Xm[103X[10X.g[110X[108X + [8X[22Xgroupname[122X[10XG[110X[8X[22Xi[122X[10X-Ar[110X[8X[22Xdim[122X[22Xid[122X[10XB[110X[8X[22Xm[122X[10X.g[110X[8X[108X [33X[0;6Ya [5XGAP[105X readable file containing all generators of a matrix - representation of dimension [3Xdim[103X over an algebraic number field not + representation of dimension [22Xdim[122X over an algebraic number field not specified further. An example is [10XA5G1-Ar3aB0.g[110X.[133X - [8X[10X[3Xgroupname[103X[10XG[3Xi[103X[10X-Zr[3Xdim[103X[10X[3Xid[103X[10XB[3Xm[103X[10X.g[110X[108X + [8X[22Xgroupname[122X[10XG[110X[8X[22Xi[122X[10X-Zr[110X[8X[22Xdim[122X[22Xid[122X[10XB[110X[8X[22Xm[122X.g[108X [33X[0;6Ya [5XGAP[105X readable file containing all generators of a matrix - representation over the integers, of dimension [3Xdim[103X. An example is + representation over the integers, of dimension [22Xdim[122X. An example is [10XA5G1-Zr4B0.g[110X.[133X - [8X[10X[3Xgroupname[103X[10XG[3Xi[103X[10X-Hr[3Xdim[103X[10X[3Xid[103X[10XB[3Xm[103X[10X.g[110X[108X + [8X[22Xgroupname[122X[10XG[110X[8X[22Xi[122X[10X-Hr[110X[8X[22Xdim[122X[22Xid[122X[10XB[110X[8X[22Xm[122X[10X.g[110X[8X[108X [33X[0;6Ya [5XGAP[105X readable file containing all generators of a matrix representation over a quaternion algebra over an algebraic number - field, of dimension [3Xdim[103X. An example is [10X2A6G1-Hr2aB0.g[110X.[133X + field, of dimension [22Xdim[122X. An example is [10X2A6G1-Hr2aB0.g[110X.[133X - [8X[10X[3Xgroupname[103X[10XG[3Xi[103X[10X-Z[3Xn[103X[10Xr[3Xdim[103X[10X[3Xid[103X[10XB[3Xm[103X[10X.g[110X[108X + [8X[22Xgroupname[122X[10XG[110X[8X[22Xi[122X[10X-Z[110X[8X[22Xn[122X[10Xr[110X[8X[22Xdim[122X[22Xid[122X[10XB[110X[8X[22Xm[122X[10X.g[110X[8X[108X [33X[0;6Ya [5XGAP[105X readable file containing all generators of a matrix - representation of dimension [3Xdim[103X over the ring of integers mod [3Xn[103X. An + representation of dimension [22Xdim[122X over the ring of integers mod [22Xn[122X. An example is [10X2A8G1-Z4r4aB0.g[110X.[133X [1X7.6-1 AGR.ParseFilenameFormat[101X - [29X[2XAGR.ParseFilenameFormat[102X( [3Xstring[103X, [3Xformat[103X ) [32X function + [33X[1;0Y[29X[2XAGR.ParseFilenameFormat[102X( [3Xstring[103X, [3Xformat[103X ) [32X function[133X [6XReturns:[106X [33X[0;10Ya list of strings and integers if [3Xstring[103X matches [3Xformat[103X, and [9Xfail[109X otherwise.[133X @@ -989,140 +930,215 @@ [1X7.6-2 AGR.FileContents[101X - [29X[2XAGR.FileContents[102X( [3Xdirname[103X, [3Xgroupname[103X, [3Xfilename[103X, [3Xtype[103X ) [32X function + [33X[1;0Y[29X[2XAGR.FileContents[102X( [3Xfiles[103X, [3Xtype[103X ) [32X function[133X [6XReturns:[106X [33X[0;10Ythe [5XGAP[105X object obtained from reading and interpreting the file(s) - with name(s) [3Xfilename[103X.[133X + given by [3Xfiles[103X.[133X - [33X[0;0YLet [3Xdirname[103X and [3Xgroupname[103X be strings, [3Xfilename[103X be a string or a list of - strings, and [3Xtype[103X be a data type (see [2XAGR.DeclareDataType[102X ([14X7.5-1[114X)). [3Xdirname[103X - must be one of [10X"datagens"[110X, [10X"dataword"[110X, or the [3Xdirid[103X value of a private - directory, see [2XAtlasOfGroupRepresentationsNotifyPrivateDirectory[102X ([14X5.1-1[114X). If - [3Xgroupname[103X is the [5XATLAS[105X-file name of a group [22XG[122X (see Section [14X3.2[114X), and if - [3Xfilename[103X is either the name of an accessible file in the [3Xdirname[103X directory - of the [5XATLAS[105X, or a list of such filenames, with data concerning [22XG[122X and for - the data type [10Xtype[110X, then [2XAGR.FileContents[102X returns the contents of the - corresponding file(s), in the sense that the file(s) (or equivalent ones, - see Section [14X4.3-6[114X) is/are read, and the result is interpreted if necessary; - otherwise [9Xfail[109X is returned.[133X - - [33X[0;0YNote that if [3Xfilename[103X refers to file(s) already stored in the [3Xdirname[103X - directory then [2XAGR.FileContents[102X does [13Xnot[113X check whether the table of contents - of the [5XATLAS[105X of Group Representations actually contains [3Xfilename[103X.[133X - - - [1X7.7 [33X[0;0YThe Tables of Contents of the [5XATLAS[105X[101X[1X of Group Representations[133X[101X - - [33X[0;0YThe list of data currently available is stored in several [13Xtables of - contents[113X, one for the local [5XGAP[105X data, one for the data on remote servers, - and one for each private data directory. These tables of contents are - created by [2XReloadAtlasTableOfContents[102X ([14X4.2-1[114X).[133X - - [33X[0;0YIt is assumed that the local data directories contain only files that are - also available on servers. Private extensions to the database (cf. - Section [14X4.5[114X and Chapter [14X5[114X) cannot be handled by putting the data files into - the local directories.[133X - - [33X[0;0YEach table of contents is represented by a record whose components are the - [5XATLAS[105X-file names of the groups (see Section [14X3.2[114X) and [10Xlastupdated[110X, a string - describing the date of the last update of this table of contents. The value - for each group name is a record whose components are the names of those data - types (see Section [14X7.5[114X) for which data are available.[133X - - [33X[0;0YHere are the administrational functions that are used to build the tables of - contents. Some of them may be useful also for private extensions of the - package (see Chapter [14X5[114X).[133X + [33X[0;0YLet [3Xfiles[103X be a list of pairs of the form [10X[ dirname, filename ][110X, where + [10Xdirname[110X and [10Xfilename[110X are strings, and let [3Xtype[103X be a data type (see + [2XAGR.DeclareDataType[102X ([14X7.5-1[114X)). Each [10Xdirname[110X must be one of [10X"datagens"[110X, + [10X"dataword"[110X, or the [10Xdirid[110X value of a data extension (see + [2XAtlasOfGroupRepresentationsNotifyData[102X ([14X5.1-1[114X)). If the contents of each of + the files in question is accessible and their data belong to the data type + [10Xtype[110X then [2XAGR.FileContents[102X returns the contents of the files; otherwise [9Xfail[109X + is returned.[133X + + [33X[0;0YNote that if some file is already stored in the [3Xdirname[103X directory then + [2XAGR.FileContents[102X does [13Xnot[113X check whether the relevant table of contents + actually contains [3Xfilename[103X.[133X + + + [1X7.7 [33X[0;0YThe record component [10Xidentifier[110X[101X[1X used by the [5XAtlasRep[105X[101X[1X Package[133X[101X + + [33X[0;0YThe functions [2XAtlasGenerators[102X ([14X3.5-3[114X), [2XAtlasProgram[102X ([14X3.5-4[114X), + [2XAtlasProgramInfo[102X ([14X3.5-5[114X), [2XOneAtlasGeneratingSetInfo[102X ([14X3.5-6[114X), and + [2XAllAtlasGeneratingSetInfos[102X ([14X3.5-7[114X) return records which have a component + [10Xidentifier[110X. The value of this component describes the record in the sense + that one can reconstruct the whole record from it, and the [10Xidentifier[110X value + can be used as an input for [2XAtlasGenerators[102X ([14X3.5-3[114X), [2XAtlasProgram[102X ([14X3.5-4[114X), + [2XAtlasProgramInfo[102X ([14X3.5-5[114X), [2XAtlasGroup[102X ([14X3.5-8[114X), and [2XAtlasSubgroup[102X ([14X3.5-9[114X).[133X + + [33X[0;0YThe [10Xidentifier[110X component has the following format.[133X + + [30X [33X[0;6YFor records describing representations, it is a list of the form [10X[ + gapname, files, std, info ][110X.[133X + + [30X [33X[0;6YFor records describing straight line programs and straight line + decisions, it is a list of the form [10X[ gapname, files, std ][110X.[133X + + [33X[0;0YHere [10Xgapname[110X is the [5XGAP[105X name of the group in question, [10Xfiles[110X defines the + data files, [10Xstd[110X is the standardization of its generators, and [10Xinfo[110X is some + information that depends on the type of the representation, for example the + number of moved points in the case of a permutation representation.[133X + + [33X[0;0YThe [10Xfiles[110X entry has one of the following formats:[133X + + [30X [33X[0;6Ya string, in the case that exactly one file is needed that does not + belong to a private extension; an example of such an [10Xidentifier[110X value + is [10X[ "J1", "J1G1-cycW1", 1 ][110X[133X + + [30X [33X[0;6Ya list whose entries are strings (which refer to files from the core + part of the database) and pairs of the form [10X[ tocid, file ][110X (which + refer to files from the extension given by [10Xtocid[110X); examples of + [10Xidentifier[110X values are [10X[ "A5", [ "A5G1-p5B0.m1", "A5G1-p5B0.m2" ], 1, 5 + ][110X, [10X[ "2.M12", [ [ "mfer", "2M12G1-cclsW1" ] ], 1 ][110X, [10X[ "2.M12", [ + "M12G1-max1W1", [ "internal", "2M12G1-kerM12W1" ] ], 1 ][110X, [10X[ "2.M12", [ + [ "mfer", "2M12G1-p24bB0.m1" ], [ "mfer", "2M12G1-p24bB0.m2" ] ], 1, + 24 ][110X.[133X + + [33X[0;0YUp to version 1.5 of the [5XAtlasRep[105X package, a different [10Xidentifier[110X format was + used for files from extensions of the database. Namely, the first entry of + the list was a pair [10X[ tocid, groupname ][110X, and the second entry was either a + string or a list of strings. Note that with that old format, it was not + possible to describe a combination of several files from different sources + (core part and extension, or different extensions). The function + [2XAtlasRepIdentifier[102X ([14X7.7-1[114X) can be used to convert between the two formats.[133X + + + [1X7.7-1 [33X[0;0YAtlasRepIdentifier[133X[101X + + [33X[1;0Y[29X[2XAtlasRepIdentifier[102X( [3Xoldid[103X ) [32X function[133X + [33X[1;0Y[29X[2XAtlasRepIdentifier[102X( [3Xid[103X, [3X"old"[103X ) [32X function[133X + + [33X[0;0YThis function converts between the [21Xold format[121X (the one used up to version + 1.5.1 of the package) and the [21Xnew format[121X (the one used since version 2.0) of + the [10Xidentifier[110X component of the records returned by [5XAtlasRep[105X functions. Note + that the two formats differ only for [10Xidentifier[110X components that describe + data from non-core parts of the database.[133X + + [33X[0;0YIf the only argument is a list [3Xoldid[103X that is an [10Xidentifier[110X in old format + then the function returns the corresponding [10Xidentifier[110X in new format. If + there are two arguments, a list [3Xid[103X that is an [10Xidentifier[110X in new format and + the string [3X"old"[103X, then the function returns the corresponding [10Xidentifier[110X in + old format if this is possible, and [9Xfail[109X otherwise.[133X + + [4X[32X Example [32X[104X + [4X[25Xgap>[125X [27Xid:= [ "A5", [ "A5G1-p5B0.m1", "A5G1-p5B0.m2" ], 1, 5 ];;[127X[104X + [4X[25Xgap>[125X [27XAtlasRepIdentifier( id ) = id;[127X[104X + [4X[28Xtrue[128X[104X + [4X[25Xgap>[125X [27Xid:= [ "L2(8)", "L28G1-check1", 1, 1 ];;[127X[104X + [4X[25Xgap>[125X [27XAtlasRepIdentifier( id ) = id;[127X[104X + [4X[28Xtrue[128X[104X + [4X[25Xgap>[125X [27Xoldid:= [ [ "priv", "C4" ], [ "C4G1-p4B0.m1" ], 1, 4 ];;[127X[104X + [4X[25Xgap>[125X [27Xnewid:= AtlasRepIdentifier( oldid );[127X[104X + [4X[28X[ "C4", [ [ "priv", "C4G1-p4B0.m1" ] ], 1, 4 ][128X[104X + [4X[25Xgap>[125X [27Xoldid = AtlasRepIdentifier( newid, "old" );[127X[104X + [4X[28Xtrue[128X[104X + [4X[25Xgap>[125X [27Xoldid:= [ [ "priv", "C4" ], "C4G1-max1W1", 1 ];;[127X[104X + [4X[25Xgap>[125X [27Xnewid:= AtlasRepIdentifier( oldid );[127X[104X + [4X[28X[ "C4", [ [ "priv", "C4G1-max1W1" ] ], 1 ][128X[104X + [4X[25Xgap>[125X [27Xoldid = AtlasRepIdentifier( newid, "old" );[127X[104X + [4X[28Xtrue[128X[104X + [4X[25Xgap>[125X [27Xoldid:= [ [ "priv", "C4" ], "C4G1-Ar1aB0.g", 1, 1 ];;[127X[104X + [4X[25Xgap>[125X [27Xnewid:= AtlasRepIdentifier( oldid );[127X[104X + [4X[28X[ "C4", [ [ "priv", "C4G1-Ar1aB0.g" ] ], 1, 1 ][128X[104X + [4X[25Xgap>[125X [27Xoldid = AtlasRepIdentifier( newid, "old" );[127X[104X + [4X[28Xtrue[128X[104X + [4X[25Xgap>[125X [27Xoldid:= [ [ "priv", "C4" ], "C4G1-XtestW1", 1 ];;[127X[104X + [4X[25Xgap>[125X [27Xnewid:= AtlasRepIdentifier( oldid );[127X[104X + [4X[28X[ "C4", [ [ "priv", "C4G1-XtestW1" ] ], 1 ][128X[104X + [4X[25Xgap>[125X [27Xoldid = AtlasRepIdentifier( newid, "old" );[127X[104X + [4X[28Xtrue[128X[104X + [4X[25Xgap>[125X [27Xoldid:= [ [ "mfer", "2.M12" ],[127X[104X + [4X[25X>[125X [27X [ "2M12G1-p264aB0.m1", "2M12G1-p264aB0.m2" ], 1, 264 ];;[127X[104X + [4X[25Xgap>[125X [27Xnewid:= AtlasRepIdentifier( oldid );[127X[104X + [4X[28X[ "2.M12", [128X[104X + [4X[28X [ [ "mfer", "2M12G1-p264aB0.m1" ], [ "mfer", "2M12G1-p264aB0.m2" ] ][128X[104X + [4X[28X , 1, 264 ][128X[104X + [4X[25Xgap>[125X [27Xoldid = AtlasRepIdentifier( newid, "old" );[127X[104X + [4X[28Xtrue[128X[104X + [4X[32X[104X + + + [1X7.8 [33X[0;0YThe Tables of Contents of the [5XAtlasRep[105X[101X[1X Package[133X[101X + + [33X[0;0YThe list of [5XAtlasRep[105X data is stored in several [13Xtables of contents[113X, which are + given essentially by JSON documents, one for the core data and one for each + data extension in the sense of Chapter [14X5[114X. The only exception are data + extensions by locally available files in a given directory, where the + contents of this directory itself describes the data in question. One can + create such a JSON document for the contents of a given local data directory + with the function [2XStringOfAtlasTableOfContents[102X ([14X5.1-3[114X).[133X + + [33X[0;0YHere are the administrational functions that are called when a data + extension gets notified with [2XAtlasOfGroupRepresentationsNotifyData[102X ([14X5.1-1[114X). + In each case, [22Xgapname[122X and [22Xatlasname[122X denote the [5XGAP[105X and [5XATLAS[105X name of the + group in question (see Section [14X3.2[114X), and [22Xdirid[122X denotes the identifier of the + data extension.[133X [33X[0;0YThe following functions define group names, available representations, and straight line programs.[133X - [8X[10XAGR.GNAN( [3Xgapname[103X[10X, [3Xatlasname[103X[10X )[110X[108X - [33X[0;6YCalled with two strings [3Xgapname[103X (the [5XGAP[105X name of the group) and - [3Xatlasname[103X (the [5XATLAS[105X name of the group), [10XAGR.GNAN[110X stores the + [8X[10XAGR.GNAN( [110X[8X[22Xgapname, atlasname[, dirid][122X[10X )[110X[8X[108X + [33X[0;6YCalled with two strings [22Xgapname[122X (the [5XGAP[105X name of the group) and + [22Xatlasname[122X (the [5XATLAS[105X name of the group), [10XAGR.GNAN[110X stores the information in the list [10XAtlasOfGroupRepresentationsInfo.GAPnames[110X, which defines the name mapping between the [5XATLAS[105X names and [5XGAP[105X names of the groups.[133X - [33X[0;6YThis function may be used also for private extensions of the database.[133X - [33X[0;6YAn example of a valid call is [10XAGR.GNAN("A5.2","S5")[110X.[133X - [8X[10XAGR.GRP( [3Xdirname[103X[10X, [3Xsimpname[103X[10X, [3Xgroupname[103X[10X)[110X[108X - [33X[0;6YCalled with three strings, [10XAGR.GRP[110X stores in the [10Xgroupname[110X component - of [2XAtlasOfGroupRepresentationsInfo[102X ([14X7.1-6[114X) in which path on the - servers the data about the group with [5XATLAS[105X name [3Xgroupname[103X can be - found.[133X - - [33X[0;6YThis function is [13Xnot[113X intended for private extensions of the database.[133X - - [33X[0;6YAn example of a valid call is [10XAGR.GRP("alt","A5","S5")[110X.[133X - - [8X[10XAGR.TOC( [3Xtypename[103X[10X, [3Xfilename[103X[10X, [3Xcrcfile[103X[10X )[110X[108X - [33X[0;6YCalled with two strings [3Xtypename[103X and [3Xfilename[103X, and a list [3Xcrc[103X of - integers, [10XAGR.TOC[110X notifies an entry to the [10XTableOfContents.remote[110X - component of [2XAtlasOfGroupRepresentationsInfo[102X ([14X7.1-6[114X), where [3Xtypename[103X - must be the name of the data type to which the entry belongs, [3Xfilename[103X - must be the prefix of the data file(s), and [3Xcrc[103X must be the list of - [2XCrcFile[102X ([14XReference: CrcFile[114X) values of the file(s).[133X + [8X[10XAGR.TOC( [110X[8X[22Xtypename, filename, crc[, dirid][122X[10X )[110X[8X[108X + [33X[0;6Y[10XAGR.TOC[110X notifies an entry to the [10XTableOfContents.( [110X[22Xdirid[122X[10X )[110X component + of [2XAtlasOfGroupRepresentationsInfo[102X ([14X7.1-5[114X). The string [22Xtypename[122X must + be the name of the data type to which the entry belongs, the string + [22Xfilename[122X must be the prefix of the data file(s), and [22Xcrc[122X must be a + list of integers that are the CRC values of the data files (see + [2XCrcFile[102X ([14XReference: CrcFile[114X); in particular, the number of files that + are described by the entry equals the length of [22Xcrc[122X.[133X + + [33X[0;6YThe optional argument [22Xdirid[122X is equal to the argument with the same + name in the corresponding call of + [2XAtlasOfGroupRepresentationsNotifyData[102X ([14X5.1-1[114X). If no [22Xdirid[122X argument is + given then the current value of [10XAGR.DIRID[110X is taken as the default; + this value is set automatically before a [11Xtoc.json[111X file gets evaluated + by [2XAtlasOfGroupRepresentationsNotifyData[102X ([14X5.1-1[114X), and is reset + afterwards. If [10XAGR.DIRID[110X is not bound and [22Xdirid[122X is not given then this + function has no effect.[133X - [33X[0;6YThis function is [13Xnot[113X intended for private extensions of the database.[133X - - [33X[0;6YAn example of a valid call is - [10XAGR.TOC("perm","S5G1-p5B0.m",[-3581724,115937465])[110X.[133X + [33X[0;6YAn example of a valid call is [10XAGR.TOC("perm","alt/A5/mtx/S5G1-p5B0.m", + [-3581724,115937465])[110X.[133X [33X[0;0YThe following functions add data about the groups and their standard generators. The function calls must be executed after the corresponding [10XAGR.GNAN[110X calls.[133X - [8X[10XAGR.GRS( [3Xgapname[103X[10X, [3Xsize[103X[10X )[110X[108X - [33X[0;6YCalled with the string [3Xgapname[103X (the [5XGAP[105X name of the group) and the - integer [3Xsize[103X (the order of the group), [10XAGR.GRS[110X stores this information - in [10XAtlasOfGroupRepresentationsInfo.GAPnames[110X.[133X + [8X[10XAGR.GRS( [110X[8X[22Xgapname, size[, dirid][122X[10X )[110X[8X[108X + [33X[0;6YThe integer [22Xsize[122X is stored as the order of the group with [5XGAP[105X name + [22Xgapname[122X, in [10XAtlasOfGroupRepresentationsInfo.GAPnames[110X.[133X [33X[0;6YAn example of a valid call is [10XAGR.GRS("A5.2",120)[110X.[133X - [8X[10XAGR.MXN( [3Xgapname[103X[10X, [3XnrMaxes[103X[10X )[110X[108X - [33X[0;6YCalled with the string [3Xgapname[103X (the [5XGAP[105X name of the group) and the - integer [3XnrMaxes[103X (the number of classes of maximal subgroups of the - group), [10XAGR.MXN[110X stores the information in + [8X[10XAGR.MXN( [110X[8X[22Xgapname, nrMaxes[, dirid][122X[10X )[110X[8X[108X + [33X[0;6YThe integer [22XnrMaxes[122X is stored as the number of classes of maximal + subgroups of the group with [5XGAP[105X name [22Xgapname[122X, in [10XAtlasOfGroupRepresentationsInfo.GAPnames[110X.[133X [33X[0;6YAn example of a valid call is [10XAGR.MXN("A5.2",4)[110X.[133X - [8X[10XAGR.MXO( [3Xgapname[103X[10X, [3XsizesMaxes[103X[10X )[110X[108X - [33X[0;6YCalled with the string [3Xgapname[103X (the [5XGAP[105X name of the group) and the - list [3XsizesMaxes[103X (of subgroup orders of the classes of maximal - subgroups of the group, not necessarily dense, in non-increasing - order), [10XAGR.MXO[110X stores the information in + [8X[10XAGR.MXO( [110X[8X[22Xgapname, sizesMaxes[, dirid][122X[10X )[110X[8X[108X + [33X[0;6YThe list [22XsizesMaxes[122X of subgroup orders of the classes of maximal + subgroups of the group with [5XGAP[105X name [22Xgapname[122X (not necessarily dense, + in non-increasing order) is stored in [10XAtlasOfGroupRepresentationsInfo.GAPnames[110X.[133X [33X[0;6YAn example of a valid call is [10XAGR.MXO("A5.2",[60,24,20,12])[110X.[133X - [8X[10XAGR.MXS( [3Xgapname[103X[10X, [3XstructureMaxes[103X[10X )[110X[108X - [33X[0;6YCalled with the string [3Xgapname[103X (the [5XGAP[105X name of the group) and the - list [3XstructureMaxes[103X (of strings describing the structures of the - maximal subgroups of the group, not necessarily dense), [10XAGR.MXS[110X stores - the information in [10XAtlasOfGroupRepresentationsInfo.GAPnames[110X.[133X + [8X[10XAGR.MXS( [110X[8X[22Xgapname, structureMaxes[, dirid][122X[10X )[110X[8X[108X + [33X[0;6YCalled with the string The list [22XstructureMaxes[122X of strings describing + the structures of the maximal subgroups of the group with [5XGAP[105X name + [22Xgapname[122X (not necessarily dense), is stored in + [10XAtlasOfGroupRepresentationsInfo.GAPnames[110X.[133X [33X[0;6YAn example of a valid call is [10XAGR.MXS("A5.2",["A5","S4","5:4","S3x2"])[110X.[133X - [8X[10XAGR.KERPRG( [3Xgapname[103X[10X, [3XkernelProgram[103X[10X )[110X[108X - [33X[0;6YCalled with the string [3Xgapname[103X (the [5XGAP[105X name of the group) and the - list [3XkernelProgram[103X (with entries the standardization of the group, the - [5XGAP[105X name of a factor group, and the list of lines of a straight line - program that computes generators of the kernel of the epimorphism from - the group to the factor group), [10XAGR.KERPRG[110X stores the information in - [10XAtlasOfGroupRepresentationsInfo.GAPnames[110X.[133X - - [33X[0;6YAn example of a valid call is [10XAGR.KERPRG("2.J2",[1,"J2",[[[1,2]]]])[110X.[133X - - [8X[10XAGR.STDCOMP[110X[108X - [33X[0;6YCalled with the string [3Xgapname[103X (the [5XGAP[105X name of the group) and the - list [3XfactorCompatibility[103X (with entries the standardization of the - group, the [5XGAP[105X name of a factor group, the standardization of this - factor group, and [9Xtrue[109X or [9Xfalse[109X, indicating whether mapping the - standard generators for [3Xgapname[103X to those of [3Xfactgapname[103X defines an - epimorphism), [10XAGR.STDCOMP[110X stores the information in + [8X[10XAGR.STDCOMP( [110X[8X[22Xgapname, factorCompatibility[, dirid][122X[10X )[110X[8X[108X + [33X[0;6YThe list [22XfactorCompatibility[122X (with entries the standardization of the + group with [5XGAP[105X name [22Xgapname[122X , the [5XGAP[105X name of a factor group, the + standardization of this factor group, and [9Xtrue[109X or [9Xfalse[109X, indicating + whether mapping the standard generators for [22Xgapname[122X to those of + [22Xfactgapname[122X defines an epimorphism) is stored in [10XAtlasOfGroupRepresentationsInfo.GAPnames[110X.[133X [33X[0;6YAn example of a valid call is [10XAGR.STDCOMP("2.A5.2",[1,"A5.2",1,true])[110X.[133X @@ -1131,198 +1147,182 @@ programs that are already known. The function calls must be executed after the corresponding [10XAGR.TOC[110X calls.[133X - [8X[10XAGR.RNG( [3Xrepname[103X[10X, [3Xdescr[103X[10X )[110X[108X - [33X[0;6YCalled with two strings [3Xrepname[103X (denoting the name of a file + [8X[10XAGR.RNG( [110X[8X[22Xrepname, descr[, dirid][122X[10X )[110X[8X[108X + [33X[0;6YCalled with two strings [22Xrepname[122X (denoting the name of a file containing the generators of a matrix representation over a ring that - is not determined by the filename) and [3Xdescr[103X (describing this ring [22XR[122X, - say), [10XAGR.RNG[110X adds the triple [22X[ [3Xrepname[103X, [3Xdescr[103X, R ][122X to the list stored - in the [10Xringinfo[110X component of [2XAtlasOfGroupRepresentationsInfo[102X ([14X7.1-6[114X).[133X + is not determined by the filename) and [22Xdescr[122X (describing this ring [22XR[122X, + say), [10XAGR.RNG[110X adds the triple [22X[ repname, descr, R ][122X to the list stored + in the [10Xringinfo[110X component of [2XAtlasOfGroupRepresentationsInfo[102X ([14X7.1-5[114X).[133X [33X[0;6YAn example of a valid call is [10XAGR.RNG("A5G1-Ar3aB0","Field([Sqrt(5)])")[110X.[133X - [8X[10XAGR.TOCEXT( [3Xatlasname[103X[10X, [3Xstd[103X[10X, [3Xmaxnr[103X[10X, [3Xfiles[103X[10X )[110X[108X - [33X[0;6YCalled with the string [3Xatlasname[103X (the [5XATLAS[105X name of the group), the - positive integers [3Xstd[103X (the standardization) and [3Xmaxnr[103X (the number of - the class of maximal subgroups), and the list [3Xfiles[103X (of filenames of - straight line programs for computing generators of the [3Xmaxnr[103X-th - maximal subgroup, using a straight line program for a factor group - plus perhaps some straight line program for computing kernel - generators), [10XAGR.TOCEXT[110X stores the information in the [10Xmaxext[110X component - of the [3Xatlasname[103X component of the [10X"remote"[110X table of contents.[133X + [8X[10XAGR.TOCEXT( [110X[8X[22Xatlasname, std, maxnr, files[, dirid][122X[10X )[110X[8X[108X + [33X[0;6YCalled with [22Xatlasname[122X, the positive integers [22Xstd[122X (the standardization) + and [22Xmaxnr[122X (the number of the class of maximal subgroups), and the list + [22Xfiles[122X (of filenames of straight line programs for computing generators + of the [22Xmaxnr[122X-th maximal subgroup, using a straight line program for a + factor group plus perhaps some straight line program for computing + kernel generators), [10XAGR.TOCEXT[110X stores the information in + [10XAtlasOfGroupRepresentationsInfo.GAPnames[110X.[133X [33X[0;6YAn example of a valid call is [10XAGR.TOCEXT("2A5",1,3,["A5G1-max3W1"])[110X.[133X - [8X[10XAGR.API( [3Xrepname[103X[10X, [3Xinfo[103X[10X )[110X[108X - [33X[0;6YCalled with the string [3Xrepname[103X (denoting the name of a permutation - representation) and the list [3Xinfo[103X (describing the point stabilizer of - this representation), [10XAGR.API[110X binds the component [3Xrepname[103X of the - record [10XAtlasOfGroupRepresentationsInfo.permrepinfo[110X to [3Xinfo[103X.[133X + [8X[10XAGR.API( [110X[8X[22Xrepname, info[, dirid][122X[10X )[110X[8X[108X + [33X[0;6YCalled with the string [22Xrepname[122X (denoting the name of a permutation + representation) and the list [22Xinfo[122X (describing the point stabilizer of + this representation), [10XAGR.API[110X binds the component [22Xrepname[122X of the + record [10XAtlasOfGroupRepresentationsInfo.permrepinfo[110X to a record that + describes the contents of [22Xinfo[122X.[133X - [33X[0;6Y[3Xinfo[103X has the following entries.[133X + [33X[0;6Y[22Xinfo[122X has the following entries.[133X [30X [33X[0;12YAt position [22X1[122X, the transitivity is stored.[133X - [30X [33X[0;12YIf the transitivity is zero then the second entry is the list of - orbit lengths.[133X + [30X [33X[0;12YIf the transitivity is zero then [22Xinfo[122X has length two, and the + second entry is the list of orbit lengths.[133X - [30X [33X[0;12YIf the transitivity is positive then the second entry is the - rank of the action.[133X + [30X [33X[0;12YIf the transitivity is positive then [22Xinfo[122X has length four or + five, and the second entry is the rank of the action.[133X [30X [33X[0;12YIf the transitivity is positive then the third entry is one of the strings [10X"prim"[110X, [10X"imprim"[110X, denoting primitivity or not.[133X - [30X [33X[0;12YIf the transitivity is positive then the fourth entry is a - string describing the structure of the point stabilizer. If the - third entry is [10X"imprim"[110X then this description consists of a - subgroup part and a maximal subgroup part, separated by [10X" < "[110X.[133X + [30X [33X[0;12YIf the transitivity is positive then the fourth entry is either + the string [10X"???"[110X or a string that describes the structure of the + point stabilizer. If the third entry is [10X"imprim"[110X then this + description consists of a subgroup part and a maximal subgroup + part, separated by [10X" < "[110X.[133X - [30X [33X[0;12YIf the third entry is [10X"prim"[110X then the fifth entry is either - [10X"???"[110X or it denotes the number of the class of maximal subgroups + [30X [33X[0;12YIf the third entry is [10X"prim"[110X then the fifth entry is either the + string [10X"???"[110X or the number of the class of maximal subgroups that are the point stabilizers.[133X [33X[0;6YAn example of a valid call is [10XAGR.API("A5G1-p5B0",[3,2,"prim","A4",1])[110X.[133X - [8X[10XAGR.CHAR( [3Xgroupname[103X[10X, [3Xrepname[103X[10X, [3Xchar[103X[10X, [3Xpos[103X[10X[, [3Xcharname[103X[10X] )[110X[108X - [33X[0;6YCalled with the strings [3Xgroupname[103X (the [5XGAP[105X name of the group) and - [3Xrepname[103X (denoting the name of the representation), the integer [3Xchar[103X - (the characteristic of the representation), and [3Xpos[103X (the position or - list of positions of the irreducible constituent(s)), [10XAGR.CHAR[110X stores - the information in [10XAtlasOfGroupRepresentationsInfo.characterinfo[110X. A - string describing the character can be entered as [3Xcharname[103X.[133X + [8X[10XAGR.CHAR( [110X[8X[22Xgapname, repname, char, pos[, charname[, dirid]][122X[10X )[110X[8X[108X + [33X[0;6YCalled with the strings [22Xgapname[122X and [22Xrepname[122X (denoting the name of the + representation), the integer [22Xchar[122X (the characteristic of the + representation), and [22Xpos[122X (the position or list of positions of the + irreducible constituent(s)), [10XAGR.CHAR[110X stores the information in + [10XAtlasOfGroupRepresentationsInfo.characterinfo[110X.[133X + + [33X[0;6YA string describing the character can be entered as [22Xcharname[122X.[133X + + [33X[0;6YIf [22Xdirid[122X is given but no [22Xcharname[122X is known then one can enter [9Xfail[109X as + the fifth argument.[133X [33X[0;6YAn example of a valid call is [10XAGR.CHAR("M11","M11G1-p11B0",0,[1,2],"1a+10a")[110X.[133X - [33X[0;0YThese functions are used to create the initial table of contents for the - server data of the [5XAtlasRep[105X package when the file [11Xgap/atlasprm.g[111X of the - package is read.[133X - - - [1X7.8 [33X[0;0YSanity Checks for the [5XATLAS[105X[101X[1X of Group Representations[133X[101X - - [33X[0;0YThe fact that the [5XATLAS[105X of Group Representations is designed as an open - database (see Section [14X4.3-1[114X) makes it especially desirable to have - consistency checks available which can be run automatically whenever new - data are added by the developers of the [5XATLAS[105X. The tests described in - Section [14X7.8-1[114X can be used also for data from private extensions of the - package (see Chapter [14X5[114X), Section [14X7.8-2[114X lists tests which do not have this - property.[133X - - [33X[0;0YAll these tests apply only to the [13Xlocal[113X table of contents (see Section [14X7.7[114X) - or to private extensions. So only those data files are checked that are - actually available in the local [5XGAP[105X installation. No files are fetched from - servers during these tests. The required space and time for running these - tests depend on the amount of locally available data.[133X + + [1X7.9 [33X[0;0YSanity Checks for the [5XAtlasRep[105X[101X[1X Package[133X[101X [33X[0;0YThe file [11Xtst/testall.g[111X of the package contains [2XTest[102X ([14XReference: Test[114X) - statements for executing a collection of such sanity checks; one can run - them by calling [10XReadPackage( "AtlasRep", "tst/testall.g" )[110X. If no problem - occurs then [5XGAP[105X prints only lines starting with one of the following.[133X + statements for checking whether the [5XAtlasRep[105X functions behave as documented. + One can run these tests by calling [10XReadPackage( "AtlasRep", "tst/testall.g" + )[110X. The examples in the package manual form a part of the tests, they are + collected in the file [11Xtst/docxpl.tst[111X of the package.[133X - [4X[32X Example [32X[104X - [4X[28X+ Input file:[128X[104X - [4X[28X+ GAP4stones:[128X[104X - [4X[32X[104X + [33X[0;0YThe remainder of this section deals with consistency checks of the data. The + tests described in Section [14X7.9-1[114X can be used for data from any extension of + the database (see Chapter [14X5[114X), Section [14X7.9-2[114X lists tests which apply only to + the core part of the database.[133X + + [33X[0;0YAll these tests apply only to [13Xlocally[113X available files (see Section [14X7.8[114X), no + files are downloaded during the tests. Thus the required space and time for + running these tests depend on the amount of locally available data.[133X - [33X[0;0YSome of the checks compute and verify additional data, such as information + [33X[0;0YSome of the tests compute and verify additional data, such as information about point stabilizers of permutation representations. In these cases, output lines starting with [10X#E[110X are error messages that point to inconsistencies, whereas output lines starting with [10X#I[110X inform about data that have been computed and were not yet stored, or about stored data that - were not verified.[133X - - [33X[0;0YThe examples in the package manual form a part of the tests, they are - collected in the file [11Xtst/docxpl.tst[111X of the package.[133X + were not verified. These tests are experimental in the sense that they + involve several heuristics. Depending on the data to which they are applied, + it may happen that the tests run out of space or do not finish in acceptable + time. Please inform the package maintainer if you run into such problems.[133X - [1X7.8-1 [33X[0;0YSanity Checks for a Table of Contents[133X[101X + [1X7.9-1 [33X[0;0YSanity Checks for a Table of Contents[133X[101X [33X[0;0YThe following tests can be used to check the data that belong to a given - table of contents. Each of these tests is given by a function with optional - argument [3Xtocid[103X, the identifying string that had been entered as the second - argument of [2XAtlasOfGroupRepresentationsNotifyPrivateDirectory[102X ([14X5.1-1[114X). The - contents of the local [11Xdataword[111X directory can be checked by entering [10X"local"[110X, - which is also the default for [3Xtocid[103X. The function returns [9Xfalse[109X if an error + part of the database (core data or extension). Each of these tests is given + by a function with optional argument [22Xtocid[122X, the identifying string that had + been entered as the second argument of [2XAtlasOfGroupRepresentationsNotifyData[102X + ([14X5.1-1[114X). The contents of the core part can be checked by entering [10X"core"[110X, + which is also the default for [22Xtocid[122X. The function returns [9Xfalse[109X if an error occurs, otherwise [9Xtrue[109X. Currently the following tests of this kind are - available.[133X - - [8X[10XAGR.Test.Words( [[3Xtocid[103X[10X] )[110X[108X - [33X[0;6Yprocesses all straight line programs that are stored in the directory - with identifier [3Xtocid[103X, using the function stored in the [10XTestWords[110X - component of the data type in question.[133X - - [8X[10XAGR.Test.FileHeaders( [[3Xtocid[103X[10X] )[110X[108X - [33X[0;6Ychecks whether all [5XMeatAxe[105X text format data files in the directory - with identifier [3Xtocid[103X have a header line that is consistent with the - filename, and whether the contents of all [5XGAP[105X format data files in - this directory is consistent with the contents of the file.[133X - - [8X[10XAGR.Test.Files( [[3Xtocid[103X[10X] )[110X[108X - [33X[0;6Ychecks whether the [5XMeatAxe[105X text files that are stored in the directory - with identifier [3Xtocid[103X can be read with [2XScanMeatAxeFile[102X ([14X7.3-1[114X) such - that the result is not [9Xfail[109X. The function does not check whether the - first line of a [5XMeatAxe[105X text file is consistent with the filename, - since this can be tested with [10XAGR.Test.FileHeaders[110X.[133X - - [8X[10XAGR.Test.BinaryFormat( [[3Xtocid[103X[10X] )[110X[108X - [33X[0;6Ychecks whether all [5XMeatAxe[105X text format data files in the directory - with identifier [3Xtocid[103X satisfy that applying first - [2XCMtxBinaryFFMatOrPerm[102X ([14X7.3-4[114X) and then [2XFFMatOrPermCMtxBinary[102X ([14X7.3-5[114X) - yields the same object.[133X - - [8X[10XAGR.Test.Primitivity( [[3Xtocid[103X[10X] )[110X[108X - [33X[0;6Ychecks the stored primitivity information for the permutation - representations that are stored in the directory with identifier - [3Xtocid[103X.[133X + available. (For some of them, the global option [10XTryToExtendData[110X can be + entered in order to try the computation of not yet stored data.)[133X - [8X[10XAGR.Test.Characters( [[3Xtocid[103X[10X] )[110X[108X - [33X[0;6Ychecks the stored character information for the matrix and permutation - representations that are stored in the directory with identifier - [3Xtocid[103X.[133X - - - [1X7.8-2 [33X[0;0YOther Sanity Checks[133X[101X - - [33X[0;0YThe tests described in this section are not intended for checking data from - private extensions of the [5XAtlasRep[105X package. Each of the tests is given by a - function without arguments that returns [9Xfalse[109X if a contradiction was found - during the test, and [9Xtrue[109X otherwise. Additionally, certain messages are - printed when contradictions between stored and computed data are found, when - stored data cannot be verified computationally, or when the computations - yield improvements of the stored data. Currently the following tests of this - kind are available.[133X - - [8X[10XAGR.Test.GroupOrders()[110X[108X + [8X[10XAGR.Test.GroupOrders()[110X[8X[108X [33X[0;6Ychecks whether the group orders stored in the [10XGAPnames[110X component of - [2XAtlasOfGroupRepresentationsInfo[102X ([14X7.1-6[114X) coincide with the group orders + [2XAtlasOfGroupRepresentationsInfo[102X ([14X7.1-5[114X) coincide with the group orders computed from an [5XATLAS[105X permutation representation of degree up to - [10XAGR.Test.MaxTestDegree[110X, from the character table or the table of marks - with the given name, or from the structure of the name. Supported is a - splitting of the name at the first dot ([10X.[110X), where the two parts of the - name are examined with the same criteria in order to derive the group - order.[133X + [10XAGR.Test.MaxTestDegree[110X, from the available character table or table of + marks with the given name, or from the structure of the name, in the + sense that splitting the name at the first dot ([10X.[110X) or colon ([10X:[110X) and + applying the same criteria to derive the group order from the two + parts may yield enough information.[133X + + [8X[10XAGR.Test.Words( [[110X[8X[22Xtocid[122X[10X] )[110X[8X[108X + [33X[0;6Yprocesses the straight line programs that belong to [22Xtocid[122X, using the + function stored in the [10XTestWords[110X component of the data type in + question.[133X - [8X[10XAGR.Test.MaxesOrders()[110X[108X - [33X[0;6Ychecks whether the orders of maximal subgroups stored in the component - [10XGAPnames[110X of [2XAtlasOfGroupRepresentationsInfo[102X ([14X7.1-6[114X) coincide with the - orders computed from the restriction of an [5XATLAS[105X permutation - representation of degree up to [10XAGR.Test.MaxTestDegree[110X, from the - character table, or the table of marks with the given name, or from - the information about maximal subgroups of a factor group modulo a - normal subgroup that is contained in the Frattini subgroup.[133X + [33X[0;6YThe straight line programs for the cases listed in + [10XAGR.Test.HardCases.TestWords[110X are omitted.[133X - [8X[10XAGR.Test.MaxesStructure()[110X[108X - [33X[0;6Ychecks whether the names of maximal subgroups stored in the component - [10XGAPnames[110X of [2XAtlasOfGroupRepresentationsInfo[102X ([14X7.1-6[114X) coincide with the - names computed from the [5XGAP[105X character table with the given name.[133X + [8X[10XAGR.Test.ClassScripts( [[110X[8X[22Xtocid[122X[10X] )[110X[8X[108X + [33X[0;6Ychecks whether the straight line programs that belong to [22Xtocid[122X and + that compute representatives of certain conjugacy classes are + consistent with information stored on the [5XGAP[105X character table of the + group in question, in the sense that the given class names really + occur in the character table and that the element orders and + centralizer orders for the classes are correct.[133X + + [8X[10XAGR.Test.CycToCcls( [[110X[8X[22Xtocid[122X[10X][:TryToExtendData] )[110X[8X[108X + [33X[0;6Ychecks whether all straight line programs that belong to [22Xtocid[122X and + that compute class representatives from representatives of cyclic + subgroups possess a corresponding straight line program ([13Xanywhere[113X in + the database) for computing representatives of cyclic subgroups.[133X + + [8X[10XAGR.Test.FileHeaders( [[110X[8X[22Xtocid[122X[10X] )[110X[8X[108X + [33X[0;6Ychecks whether the [5XMeatAxe[105X text files that belong to [22Xtocid[122X have a + header line that is consistent with the filename, and whether the + contents of all [5XGAP[105X format data files that belong to [22Xtocid[122X is + consistent with the filename.[133X + + [8X[10XAGR.Test.Files( [[110X[8X[22Xtocid[122X[10X] )[110X[8X[108X + [33X[0;6Ychecks whether the [5XMeatAxe[105X text files that belong to [22Xtocid[122X can be read + with [2XScanMeatAxeFile[102X ([14X7.3-1[114X) such that the result is not [9Xfail[109X. The + function does not check whether the first line of a [5XMeatAxe[105X text file + is consistent with the filename, since this can be tested with + [10XAGR.Test.FileHeaders[110X.[133X + + [8X[10XAGR.Test.BinaryFormat( [[110X[8X[22Xtocid[122X[10X] )[110X[8X[108X + [33X[0;6Ychecks whether all [5XMeatAxe[105X text files that belong to [22Xtocid[122X satisfy + that applying first [2XCMtxBinaryFFMatOrPerm[102X ([14X7.3-4[114X) and then + [2XFFMatOrPermCMtxBinary[102X ([14X7.3-5[114X) yields the same object.[133X + + [8X[10XAGR.Test.Primitivity( [[110X[8X[22Xtocid[122X[10X][:TryToExtendData] )[110X[8X[108X + [33X[0;6Ychecks the stored primitivity information for the permutation + representations that belong to [22Xtocid[122X. That is, the number of orbits, + in case of a transitive action the transitivity, the rank, the + information about the point stabilizers are computed if possible, and + compared with the stored information.[133X + + [8X[10XAGR.Test.Characters( [[110X[8X[22Xtocid[122X[10X][:TryToExtendData] )[110X[8X[108X + [33X[0;6Ychecks the character information (that belongs to [22Xtocid[122X) for the + matrix and permutation representations.[133X - [8X[10XAGR.Test.StdCompatibility()[110X[108X + [8X[10XAGR.Test.StdCompatibility( [[110X[8X[22Xtocid[122X[10X][:TryToExtendData] )[110X[8X[108X [33X[0;6Ychecks whether the information about the compatibility of standard generators of a group and its factor groups that is stored in the - [10XGAPnames[110X component of [2XAtlasOfGroupRepresentationsInfo[102X ([14X7.1-6[114X) - coincides with computed values.[133X + [10XGAPnames[110X component of [2XAtlasOfGroupRepresentationsInfo[102X ([14X7.1-5[114X) and + belongs to [22Xtocid[122X coincides with computed values.[133X [33X[0;6YThe following criterion is used for computing the value for a group [22XG[122X. Use the [5XGAP[105X Character Table Library to determine factor groups [22XF[122X of [22XG[122X @@ -1336,7 +1336,48 @@ mapping the standard generators of [22XG[122X to their [22XN[122X-cosets yields standard generators of [22XF[122X.[133X - [8X[10XAGR.Test.CompatibleMaxes()[110X[108X + [8X[10XAGR.Test.KernelGenerators( [[110X[8X[22Xtocid[122X[10X][:TryToExtendData] )[110X[8X[108X + [33X[0;6Ychecks whether the straight line programs (that belong to [22Xtocid[122X) for + computing generators of kernels of natural epimorphisms between [5XATLAS[105X + groups compute generators of normal subgroups of the right group + orders. If it is known that the given standard generators of the given + group are compatible with some standard generators of the factor group + in question (see the section about [10XAGR.Test.StdCompatibility[110X) then it + is also checked whether evaluating the straight line program at these + standard generators of the factor group yields only the identity.[133X + + [33X[0;6YNote that the verification of normal subgroups of matrix groups may be + [13Xvery[113X time and space consuming if the package [5Xrecog[105X [NSA+18] is not + available.[133X + + [33X[0;6YThe function also tries to [13Xfind[113X words for computing kernel generators + of those epimorphisms for which no straight line programs are stored; + the candidates are given by stored factor fusions between the + character tables from the [5XGAP[105X Character Table Library.[133X + + [8X[10XAGR.Test.MaxesOrders( [[110X[8X[22Xtocid[122X[10X] )[110X[8X[108X + [33X[0;6Ychecks whether the orders of maximal subgroups stored in the component + [10XGAPnames[110X of [2XAtlasOfGroupRepresentationsInfo[102X ([14X7.1-5[114X) coincide with the + orders computed from the restriction of an [5XATLAS[105X permutation + representation of degree up to [10XAGR.Test.MaxTestDegree[110X (using a + straight line program that belongs to [22Xtocid[122X), from the character + table, or the table of marks with the given name, or from the + information about maximal subgroups of the factor group modulo a + normal subgroup that is contained in the Frattini subgroup.[133X + + [8X[10XAGR.Test.MaxesStructure()[110X[8X[108X + [33X[0;6Ychecks whether the names of maximal subgroups stored in the component + [10XGAPnames[110X of [2XAtlasOfGroupRepresentationsInfo[102X ([14X7.1-5[114X) coincide with the + names computed from the [5XGAP[105X character table with the given name.[133X + + [8X[10XAGR.Test.MaxesStandardization( [[110X[8X[22Xtocid[122X[10X] )[110X[8X[108X + [33X[0;6Ychecks whether the straight line programs (that belong to [22Xtocid[122X) for + standardizing the generators of maximal subgroups are correct: If a + semi-presentation is available for the maximal subgroup and the + standardization in question then it is used, otherwise an explicit + isomorphism is tried.[133X + + [8X[10XAGR.Test.CompatibleMaxes( [[110X[8X[22Xtocid[122X[10X][:TryToExtendData] )[110X[8X[108X [33X[0;6Ychecks whether the information about deriving straight line programs for restricting to subgroups from straight line programs that belong to a factor group coincide with computed values.[133X @@ -1350,52 +1391,40 @@ [22XG[122X; if not then generators of the kernel of the natural epimorphism from [22XG[122X to [22XF[122X, must be added.[133X - [8X[10XAGR.Test.ClassScripts()[110X[108X - [33X[0;6Ychecks whether the straight line programs that compute representatives - of certain conjugacy classes are consistent with information stored on - the [5XGAP[105X character table of the group in question, in the sense that - the given class names really occur in the character table and that the - element orders and centralizer orders for the classes are correct.[133X - - [8X[10XAGR.Test.CycToCcls()[110X[108X - [33X[0;6Ychecks whether some straight line program that computes - representatives of conjugacy classes of a group can be computed from - the ordinary [5XGAP[105X character table of that group and a straight line - program that computes representatives of cyclic subgroups. In this - case the missing scripts are printed if the level of [2XInfoAtlasRep[102X - ([14X7.1-1[114X) is at least [22X1[122X.[133X - [8X[10XAGR.Test.Standardization()[110X[108X + [1X7.9-2 [33X[0;0YOther Sanity Checks[133X[101X + + [33X[0;0YThe tests described in this section are intended for checking data that do + not belong to a particular part of the [5XAtlasRep[105X database. Therefore [13Xall[113X + locally available data are used in these tests. Each of the tests is given + by a function without arguments that returns [9Xfalse[109X if a contradiction was + found during the test, and [9Xtrue[109X otherwise. Additionally, certain messages + are printed when contradictions between stored and computed data are found, + when stored data cannot be verified computationally, or when the + computations yield improvements of the stored data. Currently the following + tests of this kind are available.[133X + + [8X[10XAGR.Test.Standardization()[110X[8X[108X [33X[0;6Ychecks whether all generating sets corresponding to the same set of standard generators have the same element orders; for the case that straight line programs for computing certain class representatives are available, also the orders of these representatives are checked w. r. t. all generating sets.[133X - [8X[10XAGR.Test.StdTomLib()[110X[108X + [8X[10XAGR.Test.StdTomLib()[110X[8X[108X [33X[0;6Ychecks whether the standard generators are compatible with those that occur in the [5XTomLib[105X package.[133X - [8X[10XAGR.Test.KernelGenerators()[110X[108X - [33X[0;6Ychecks whether the information stored in the [10XGAPnames[110X component of - [2XAtlasOfGroupRepresentationsInfo[102X ([14X7.1-6[114X) about straight line programs - for computing generators of the kernels of natural epimorphisms - between [5XATLAS[105X groups coincides with computed values.[133X + [8X[10XAGR.Test.MinimalDegrees()[110X[8X[108X + [33X[0;6Ychecks that the (permutation and matrix) representations available in + the database do not have smaller degree than the minimum claimed in + Section [14X6.3[114X.[133X - [33X[0;6YThe following criterion is used for computing the value for a group [22XG[122X. - Use the [5XGAP[105X Character Table Library to determine factor groups [22XF[122X of [22XG[122X - for which standard generators are defined such that mapping standard - generators of [22XG[122X to those of [22XF[122X defines a homomorphism, and such that a - presentation of [22XF[122X in terms of its standard generators is known. - Evaluating the relators of the presentation in the standard generators - of [22XG[122X yields normal subgroup generators for the kernel.[133X - - [33X[0;6YA message is printed for each group name for which some straight line - program for computing kernel generators was not stored but now was - computed, or for which the stored info cannot be verified,[133X + [33X[0;0YFinally, we reset the user preference and the info level which had been set + at the beginning of Chapter [14X2[114X.[133X - [8X[10XAGR.Test.MinimalDegrees()[110X[108X - [33X[0;6Ychecks that the (permutation and matrix) representations available in - the [5XATLAS[105X of Group Representations do not have smaller degree than the - claimed minimum.[133X + [4X[32X Example [32X[104X + [4X[25Xgap>[125X [27XSetUserPreference( "AtlasRep", "DisplayFunction", origpref );[127X[104X + [4X[25Xgap>[125X [27XSetInfoLevel( InfoAtlasRep, globallevel );[127X[104X + [4X[32X[104X diff -Nru gap-atlasrep-1.5.1/doc/chapBib.html gap-atlasrep-2.1.0/doc/chapBib.html --- gap-atlasrep-1.5.1/doc/chapBib.html 2016-04-06 12:18:27.000000000 +0000 +++ gap-atlasrep-2.1.0/doc/chapBib.html 2019-06-21 15:10:33.000000000 +0000 @@ -19,31 +19,48 @@ +References
- +-[GAP] - GAP – - Groups, Algorithms, and Programming, - Version 4.5.0, - The GAP Group - (2012), -http://www.gap-system.org. +[BHM09] Breuer, T., Höhler, I. and Müller, J., + MFER, multiplicity-free endomorphism rings of + permutation modules of the sporadic simple groups + and their cyclic and bicyclic extensions, + Version 1.0.0 + (2009)
- +
+(GAP package), +http://www.math.rwth-aachen.de/~MFER.-[BSWW01] Bray, J. N., Suleiman, I. A. I., Walsh, P. G. and Wilson, R. A., - Generating maximal subgroups of sporadic simple groups, - Comm. Algebra, - 29 (3) - (2001), - 1325–1337. +[BL18] Breuer, T. and Lübeck, F., + Browse, ncurses interface and browsing applications, + Version 1.8.9 + (2018)
+ + + +
+(GAP package), +http://www.math.rwth-aachen.de/~Browse. ++[BN95] Breuer, T. and Norton, S. P., + Improvements to the Atlas, + The Clarendon Press Oxford University Press, + London Mathematical Society Monographs. New Series, + 11, + New York + (1995), + 297–327
@@ -58,29 +75,39 @@ - +
+(Appendix 2 by T. Breuer and S. Norton, + Oxford Science Publications).-[BL14] Breuer, T. and Lübeck, F., - Browse, ncurses interface and browsing applications, - Version 1.8.6 +[Bre14] Breuer, T., + CTBlocks, + Blocks of Character Tables, + Version 0.9.3 (2014)
- +
(GAP package), -http://www.math.rwth-aachen.de/~Browse. +http://www.math.rwth-aachen.de/~Thomas.Breuer/ctblocks.-[BN95] Breuer, T. and Norton, S. P., - Improvements to the Atlas, - The Clarendon Press Oxford University Press, - London Mathematical Society Monographs. New Series, - 11, - New York - (1995), - 297–327
+ + + +
-(Appendix 2 by T. Breuer and S. Norton, - Oxford Science Publications). +[BSWW01] Bray, J. N., Suleiman, I. A. I., Walsh, P. G. and Wilson, R. A., + Generating maximal subgroups of sporadic simple groups, + Comm. Algebra, + 29 (3) + (2001), + 1325–1337. ++[CCN+85] Conway, J. H., Curtis, R. T., Norton, S. P., Parker, R. A. and Wilson, R. A., + Atlas of finite groups, + Oxford University Press, + Eynsham + (1985), + xxxiv+252 pages
@@ -96,16 +123,15 @@ - +
+(Maximal subgroups and ordinary characters for simple groups, + With computational assistance from J. G. Thackray).-[CCNPW85] Conway, J. H., Curtis, R. T., Norton, S. P., Parker, R. A. and Wilson, R. A., - Atlas of finite groups, - Oxford University Press, - Eynsham - (1985), - xxxiv+252 pages
@@ -160,31 +186,28 @@ + +
-(Maximal subgroups and ordinary characters for simple groups, - With computational assistance from J. G. Thackray). +[GAP18] + GAP – + Groups, Algorithms, and Programming, + Version 4.9.3, + The GAP Group + (2018), +http://www.gap-system.org.+[JSO14] (Bray, T., Ed.), + The JavaScript Object Notation (JSON) Data Interchange Format + (2014), +http://www.rfc-editor.org/info/rfc7159. +
+ +-[LN12] Lübeck, F. and Neunhöffer, M., +[LN18] Lübeck, F. and Neunhöffer, M., GAPDoc, A Meta Package for GAP Documentation, - Version 1.5.1 - (2012)
- -
+ Version 1.6.2 + (2018)
(GAP package), http://www.math.rwth-aachen.de/~Frank.Luebeck/GAPDoc.-[NMP13] Naughton, L., Merkwitz, T. and Pfeiffer, G., - TomLib, - The GAP Library of Tables of Marks, - Version 1.2.4 - (2013)
- -
-(GAP package), -http://schmidt.nuigalway.ie/tomlib/tomlib. -[Neu14] Neunhöffer, M., @@ -207,6 +230,29 @@
+ ++[NMP18] Naughton, L., Merkwitz, T. and Pfeiffer, G., + TomLib, + The GAP Library of Tables of Marks, + Version 1.2.7 + (2018)
+ + + +
+(GAP package), +http://schmidt.nuigalway.ie/tomlib. ++[NSA+18] Neunhöffer, M., Seress, Á., Ankaralioglu, N., Brooksbank, P., Celler, F., Howe, S., Law, M., Linton, S., Malle, G., Niemeyer, A., O'Brien, E., Roney-Dougal, C. M. and Horn, M., + recog, A collection of group recognition methods, + Version 1.3.1 + (2018)
+ +
+(GAP package), +https://gap-packages.github.io/recog. +[NW05] Nickerson, S. J. and Wilson, R. A., @@ -251,7 +297,7 @@
-[ATLAS] Wilson, R. A., Walsh, P., Tripp, J., Suleiman, I., Parker, R. A., Norton, S. P., Nickerson, S., Linton, S., Bray, J. and Abbott, R., +[WWT+] Wilson, R. A., Walsh, P., Tripp, J., Suleiman, I., Parker, R. A., Norton, S. P., Nickerson, S., Linton, S., Bray, J. and Abbott, R., ATLAS of Finite Group Representations, http://brauer.maths.qmul.ac.uk/Atlas/v3.
diff -Nru gap-atlasrep-1.5.1/doc/chapBib_mj.html gap-atlasrep-2.1.0/doc/chapBib_mj.html --- gap-atlasrep-1.5.1/doc/chapBib_mj.html 1970-01-01 00:00:00.000000000 +0000 +++ gap-atlasrep-2.1.0/doc/chapBib_mj.html 2019-06-21 15:10:33.000000000 +0000 @@ -0,0 +1,319 @@ + + + + + + + +GAP (AtlasRep) - References + + + + + + + + + + + + + + + + +References
+ + + ++[BHM09] Breuer, T., Höhler, I. and Müller, J., + MFER, multiplicity-free endomorphism rings of + permutation modules of the sporadic simple groups + and their cyclic and bicyclic extensions, + Version 1.0.0 + (2009)
+ + + +
+(GAP package), +http://www.math.rwth-aachen.de/~MFER. ++[BL18] Breuer, T. and Lübeck, F., + Browse, ncurses interface and browsing applications, + Version 1.8.9 + (2018)
+ + + +
+(GAP package), +http://www.math.rwth-aachen.de/~Browse. ++[BN95] Breuer, T. and Norton, S. P., + Improvements to the Atlas, + The Clarendon Press Oxford University Press, + London Mathematical Society Monographs. New Series, + 11, + New York + (1995), + 297–327
+ + + +
+(Appendix 2 by T. Breuer and S. Norton, + Oxford Science Publications). ++[Bre13] Breuer, T., + The GAP Character Table + Library, Version 1.2.2 + (2013)
+ + + +
+(GAP package), +http://www.math.rwth-aachen.de/~Thomas.Breuer/ctbllib. ++[Bre14] Breuer, T., + CTBlocks, + Blocks of Character Tables, + Version 0.9.3 + (2014)
+ + + +
+(GAP package), +http://www.math.rwth-aachen.de/~Thomas.Breuer/ctblocks. ++[BSWW01] Bray, J. N., Suleiman, I. A. I., Walsh, P. G. and Wilson, R. A., + Generating maximal subgroups of sporadic simple groups, + Comm. Algebra, + 29 (3) + (2001), + 1325–1337. +
+ + + ++[CCN+85] Conway, J. H., Curtis, R. T., Norton, S. P., Parker, R. A. and Wilson, R. A., + Atlas of finite groups, + Oxford University Press, + Eynsham + (1985), + xxxiv+252 pages
+ + + +
+(Maximal subgroups and ordinary characters for simple groups, + With computational assistance from J. G. Thackray). ++[CP96] Cannon, J. J. and Playoust, C., + An introduction to algebraic programming in Magma, + School of Mathematics and Statistics, + University of Sydney, + Sydney, Australia + (1996), +http://www.math.usyd.edu.au:8000/u/magma. +
+ + + ++[GAP18] + GAP – + Groups, Algorithms, and Programming, + Version 4.9.3, + The GAP Group + (2018), +http://www.gap-system.org. +
+ + + ++[HL89] Hiss, G. and Lux, K., + Brauer trees of sporadic groups, + The Clarendon Press, Oxford University Press, + Oxford Science Publications, + New York + (1989), + x+526 pages. +
+ + + ++[Hup67] Huppert, B., + Endliche Gruppen. I, + Springer-Verlag, + Die Grundlehren der Mathematischen Wissenschaften, Band 134, + Berlin + (1967), + xii+793 pages. +
+ + + ++[Jan05] Jansen, C., + The minimal degrees of faithful representations of the + sporadic simple groups and their covering groups, + LMS J. Comput. Math., + 8 + (2005), + 122–144 (electronic). +
+ + + ++[JLPW95] Jansen, C., Lux, K., Parker, R. and Wilson, R., + An atlas of Brauer characters, + The Clarendon Press Oxford University Press, + London Mathematical Society Monographs. New Series, + 11, + New York + (1995), + xviii+327 pages
+ + + +
+(Appendix 2 by T. Breuer and S. Norton, + Oxford Science Publications). ++[JSO14] (Bray, T., Ed.), + The JavaScript Object Notation (JSON) Data Interchange Format + (2014), +http://www.rfc-editor.org/info/rfc7159. +
+ + + ++[LN18] Lübeck, F. and Neunhöffer, M., + GAPDoc, + A Meta Package for GAP + Documentation, + Version 1.6.2 + (2018)
+ + + +
+(GAP package), +http://www.math.rwth-aachen.de/~Frank.Luebeck/GAPDoc. ++[Neu14] Neunhöffer, M., + IO, Bindings for low level C library IO, + Version 4.3.1 + (2014)
+ + + +
+(GAP package), +http://www-groups.mcs.st-and.ac.uk/~neunhoef/Computer/Software/Gap/io.html. ++[Nic06] Nickerson, S. J., + An Atlas of Characteristic Zero + Representations, + Phd thesis, + School of Mathematics, University of Birmingham + (2006). +
+ + + ++[NMP18] Naughton, L., Merkwitz, T. and Pfeiffer, G., + TomLib, + The GAP Library of Tables of Marks, + Version 1.2.7 + (2018)
+ + + +
+(GAP package), +http://schmidt.nuigalway.ie/tomlib. ++[NSA+18] Neunhöffer, M., Seress, Á., Ankaralioglu, N., Brooksbank, P., Celler, F., Howe, S., Law, M., Linton, S., Malle, G., Niemeyer, A., O'Brien, E., Roney-Dougal, C. M. and Horn, M., + recog, A collection of group recognition methods, + Version 1.3.1 + (2018)
+ + + +
+(GAP package), +https://gap-packages.github.io/recog. ++[NW05] Nickerson, S. J. and Wilson, R. A., + Semi-presentations for the sporadic simple groups, + Experiment. Math., + 14 (3) + (2005), + 359–371. +
+ + + ++[Rin] Ringe, M., + The C MeatAxe, + Version 2.4, +http://www.math.rwth-aachen.de/~MTX. +
+ + + ++[SWW00] Suleiman, I. A. I., Walsh, P. G. and Wilson, R. A., + Conjugacy classes in sporadic simple groups, + Comm. Algebra, + 28 (7) + (2000), + 3209–3222. +
+ + + ++[Wil96] Wilson, R. A., + Standard generators for sporadic simple groups, + J. Algebra, + 184 (2) + (1996), + 505–515. +
+ + + ++[WWT+] Wilson, R. A., Walsh, P., Tripp, J., Suleiman, I., Parker, R. A., Norton, S. P., Nickerson, S., Linton, S., Bray, J. and Abbott, R., + ATLAS of Finite Group Representations, +http://brauer.maths.qmul.ac.uk/Atlas/v3. +
+ ++ + + + + + + +
+generated by GAPDoc2HTML
+ + diff -Nru gap-atlasrep-1.5.1/doc/chapBib.txt gap-atlasrep-2.1.0/doc/chapBib.txt --- gap-atlasrep-1.5.1/doc/chapBib.txt 2016-04-06 12:18:13.000000000 +0000 +++ gap-atlasrep-2.1.0/doc/chapBib.txt 2019-06-21 15:10:33.000000000 +0000 @@ -2,18 +2,13 @@ [1XReferences[101X - [[20XGAP[120X] [17XGAP – Groups, Algorithms, and Programming, Version 4.5.0[117X, The - GAP Group (2012), http://www.gap-system.org. + [[20XBHM09[120X] [16XBreuer, T., Höhler, I. and Müller, J.[116X, [17XMFER, multiplicity-free + endomorphism rings of permutation modules of the sporadic simple groups and + their cyclic and bicyclic extensions, Version 1.0.0[117X (2009), ((GAP package)), + http://www.math.rwth-aachen.de/~MFER. - [[20XBSWW01[120X] [16XBray, J. N., Suleiman, I. A. I., Walsh, P. G. and Wilson, R. A.[116X, - [17XGenerating maximal subgroups of sporadic simple groups[117X, [18XComm. Algebra[118X, [19X29[119X, 3 - (2001), 1325–1337. - - [[20XBre13[120X] [16XBreuer, T.[116X, [17XThe GAP Character Table Library, Version 1.2.2[117X (2013), - ((GAP package)), http://www.math.rwth-aachen.de/~Thomas.Breuer/ctbllib. - - [[20XBL14[120X] [16XBreuer, T. and Lübeck, F.[116X, [17XBrowse, ncurses interface and browsing - applications, Version 1.8.6[117X (2014), ((GAP package)), + [[20XBL18[120X] [16XBreuer, T. and Lübeck, F.[116X, [17XBrowse, ncurses interface and browsing + applications, Version 1.8.9[117X (2018), ((GAP package)), http://www.math.rwth-aachen.de/~Browse. [[20XBN95[120X] [16XBreuer, T. and Norton, S. P.[116X, [17XImprovements to the Atlas[117X, The @@ -21,15 +16,29 @@ Monographs. New Series, [19X11[119X, New York (1995), 297–327, ((Appendix 2 by T. Breuer and S. Norton, Oxford Science Publications)). - [[20XCP96[120X] [16XCannon, J. J. and Playoust, C.[116X, [17XAn introduction to algebraic - programming in Magma[117X, School of Mathematics and Statistics, University of - Sydney, Sydney, Australia (1996), http://www.math.usyd.edu.au:8000/u/magma. + [[20XBre13[120X] [16XBreuer, T.[116X, [17XThe GAP Character Table Library, Version 1.2.2[117X (2013), + ((GAP package)), http://www.math.rwth-aachen.de/~Thomas.Breuer/ctbllib. + + [[20XBre14[120X] [16XBreuer, T.[116X, [17XCTBlocks, Blocks of Character Tables, Version 0.9.3[117X + (2014), ((GAP package)), + http://www.math.rwth-aachen.de/~Thomas.Breuer/ctblocks. - [[20XCCNPW85[120X] [16XConway, J. H., Curtis, R. T., Norton, S. P., Parker, R. A. and + [[20XBSWW01[120X] [16XBray, J. N., Suleiman, I. A. I., Walsh, P. G. and Wilson, R. A.[116X, + [17XGenerating maximal subgroups of sporadic simple groups[117X, [18XComm. Algebra[118X, [19X29[119X, 3 + (2001), 1325–1337. + + [[20XCCN+85[120X] [16XConway, J. H., Curtis, R. T., Norton, S. P., Parker, R. A. and Wilson, R. A.[116X, [17XAtlas of finite groups[117X, Oxford University Press, Eynsham (1985), xxxiv+252 pages, ((Maximal subgroups and ordinary characters for simple groups, With computational assistance from J. G. Thackray)). + [[20XCP96[120X] [16XCannon, J. J. and Playoust, C.[116X, [17XAn introduction to algebraic + programming in Magma[117X, School of Mathematics and Statistics, University of + Sydney, Sydney, Australia (1996), http://www.math.usyd.edu.au:8000/u/magma. + + [[20XGAP18[120X] [17XGAP – Groups, Algorithms, and Programming, Version 4.9.3[117X, The + GAP Group (2018), http://www.gap-system.org. + [[20XHL89[120X] [16XHiss, G. and Lux, K.[116X, [17XBrauer trees of sporadic groups[117X, The Clarendon Press, Oxford University Press, Oxford Science Publications, New York (1989), x+526 pages. @@ -46,13 +55,12 @@ Society Monographs. New Series, [19X11[119X, New York (1995), xviii+327 pages, ((Appendix 2 by T. Breuer and S. Norton, Oxford Science Publications)). - [[20XLN12[120X] [16XLübeck, F. and Neunhöffer, M.[116X, [17XGAPDoc, A Meta Package for GAP - Documentation, Version 1.5.1[117X (2012), ((GAP package)), - http://www.math.rwth-aachen.de/~Frank.Luebeck/GAPDoc. + [[20XJSO14[120X] ([1m[31mBray, T.[15X, Ed.), [17XThe JavaScript Object Notation (JSON) Data + Interchange Format[117X (2014), http://www.rfc-editor.org/info/rfc7159. - [[20XNMP13[120X] [16XNaughton, L., Merkwitz, T. and Pfeiffer, G.[116X, [17XTomLib, The GAP Library - of Tables of Marks, Version 1.2.4[117X (2013), ((GAP package)), - http://schmidt.nuigalway.ie/tomlib/tomlib. + [[20XLN18[120X] [16XLübeck, F. and Neunhöffer, M.[116X, [17XGAPDoc, A Meta Package for GAP + Documentation, Version 1.6.2[117X (2018), ((GAP package)), + http://www.math.rwth-aachen.de/~Frank.Luebeck/GAPDoc. [[20XNeu14[120X] [16XNeunhöffer, M.[116X, [17XIO, Bindings for low level C library IO, Version 4.3.1[117X (2014), ((GAP package)), @@ -61,6 +69,16 @@ [[20XNic06[120X] [16XNickerson, S. J.[116X, [17XAn Atlas of Characteristic Zero Representations[117X, Phd thesis, School of Mathematics, University of Birmingham (2006). + [[20XNMP18[120X] [16XNaughton, L., Merkwitz, T. and Pfeiffer, G.[116X, [17XTomLib, The GAP Library + of Tables of Marks, Version 1.2.7[117X (2018), ((GAP package)), + http://schmidt.nuigalway.ie/tomlib. + + [[20XNSA+18[120X] [16XNeunhöffer, M., Seress, Á., Ankaralioglu, N., Brooksbank, P., + Celler, F., Howe, S., Law, M., Linton, S., Malle, G., Niemeyer, A., O'Brien, + E., Roney-Dougal, C. M. and Horn, M.[116X, [17Xrecog, A collection of group + recognition methods, Version 1.3.1[117X (2018), ((GAP package)), + https://gap-packages.github.io/recog. + [[20XNW05[120X] [16XNickerson, S. J. and Wilson, R. A.[116X, [17XSemi-presentations for the sporadic simple groups[117X, [18XExperiment. Math.[118X, [19X14[119X, 3 (2005), 359–371. @@ -73,7 +91,7 @@ [[20XWil96[120X] [16XWilson, R. A.[116X, [17XStandard generators for sporadic simple groups[117X, [18XJ. Algebra[118X, [19X184[119X, 2 (1996), 505–515. - [[20XATLAS[120X] [16XWilson, R. A., Walsh, P., Tripp, J., Suleiman, I., Parker, R. A., + [[20XWWT+[120X] [16XWilson, R. A., Walsh, P., Tripp, J., Suleiman, I., Parker, R. A., Norton, S. P., Nickerson, S., Linton, S., Bray, J. and Abbott, R.[116X, [17XATLAS of Finite Group Representations[117X, http://brauer.maths.qmul.ac.uk/Atlas/v3. diff -Nru gap-atlasrep-1.5.1/doc/chapInd.html gap-atlasrep-2.1.0/doc/chapInd.html --- gap-atlasrep-1.5.1/doc/chapInd.html 2016-04-06 12:18:27.000000000 +0000 +++ gap-atlasrep-2.1.0/doc/chapInd.html 2019-06-21 15:10:33.000000000 +0000 @@ -19,129 +19,128 @@ +diff -Nru gap-atlasrep-1.5.1/doc/chapInd_mj.html gap-atlasrep-2.1.0/doc/chapInd_mj.html --- gap-atlasrep-1.5.1/doc/chapInd_mj.html 1970-01-01 00:00:00.000000000 +0000 +++ gap-atlasrep-2.1.0/doc/chapInd_mj.html 2019-06-21 15:10:33.000000000 +0000 @@ -0,0 +1,158 @@ + + + + + + + +Index
-AGR
7.1-5
-AGR.DeclareDataType
7.5-1
-AGR.FileContents
7.6-2
-AGR.ParseFilenameFormat
7.6-1
-AllAtlasGeneratingSetInfos
3.5-6
-AsBBoxProgram
6.2-5
-AsStraightLineDecision
6.1-8
-AsStraightLineProgram
6.2-6
-AtlasCharacterNames
3.4-3
-AtlasClassNames
3.4-2
-AtlasGenerators
3.5-2
-AtlasGenerators
, for an identifier 3.5-2
-AtlasGroup
, for an identifier record 3.5-7
-AtlasGroup
, for various arguments 3.5-7
-AtlasOfGroupRepresentationsForgetPrivateDirectory
5.1-2
-AtlasOfGroupRepresentationsInfo
7.1-6
-AtlasOfGroupRepresentationsNotifyPrivateDirectory
5.1-1
-AtlasOfGroupRepresentationsTestTableOfContentsRemoteUpdates
4.2-4
-AtlasOfGroupRepresentationsUserParameters
4.3-8
-AtlasProgram
3.5-3
-AtlasProgram
, for an identifier 3.5-3
-AtlasProgramInfo
3.5-4
-AtlasRep .
-ATLASREP_TOCFILE
4.2
-AtlasRepInfoRecord
3.5-9
-AtlasStringOfProgram
7.4-2
-AtlasStringOfProgram
, for MeatAxe format output 7.4-2
-AtlasSubgroup
, for a group and a number 3.5-8
-AtlasSubgroup
, for a group name (and various arguments) and a number 3.5-8
-AtlasSubgroup
, for an identifier record and a number 3.5-8
-automorphisms 3.5-3
-automorphisms 7.6
-black box program 1.1
-black box program, for finding standard generators 3.5-3
-black box program, for finding standard generators 7.6
-BrowseBibliographySporadicSimple
3.6-2
-BrowseMinimalDegrees
3.6-1
-C
-MeatAxe 1.2
-class representatives 3.5-3
-class representatives 7.6
-CMeatAxe.FastRead
7.1-4
-CMtxBinaryFFMatOrPerm
7.3-4
-compress
4.3-4
-cyclic subgroups 3.5-3
-DisplayAtlasInfo
3.5-1
-DisplayAtlasInfo
, for a group name, and optionally further restrictions 3.5-1
-FFList
7.3-3
-FFLists
7.3-3
-FFMatOrPermCMtxBinary
7.3-5
-ftp
1.3-5
-gzip
1.3-7
-gzip
4.3-4
-gzip
7.1-6
-InfoAtlasRep
7.1-1
-InfoBBox
7.1-3
-InfoCMeatAxe
7.1-2
-IO package 4.1
-IO package 4.2-4
-IO package 4.3-3
-IO package 4.3-3
-IO package 7.1-6
-IsBBoxProgram
6.2-1
-IsStraightLineDecision
6.1-1
-LinesOfStraightLineDecision
6.1-2
-local access 4.3-1
-Magma 1.1
-matrix, MeatAxe format 7.3
-maximal subgroups 3.5-3
-maximal subgroups 7.6
-maximally cyclic subgroups 3.5-3
-MeatAxe 1.1
-MeatAxeString
7.3-2
-MeatAxeString
, for a permutation, q, and dims 7.3-2
-MeatAxeString
, for permutations and a degree 7.3-2
-MinimalRepresentationInfo
6.3-1
-MinimalRepresentationInfoData
6.3-2
-NrInputsOfStraightLineDecision
6.1-3
-OneAtlasGeneratingSetInfo
3.5-5
-perl
1.3-5
-perl
1.4
-permutation, MeatAxe format 7.3
-presentation 6.1-7
-presentation 7.6
-ReloadAtlasTableOfContents
4.2-1
-remote access 4.3-1
-ReplaceAtlasTableOfContents
4.2-3
-ResultOfBBoxProgram
6.2-4
-ResultOfStraightLineDecision
6.1-6
-RunBBoxProgram
6.2-3
-ScanBBoxProgram
6.2-2
-ScanMeatAxeFile
7.3-1
-ScanStraightLineDecision
6.1-4
-ScanStraightLineProgram
7.4-1
-semi-presentation 6.1-7
-semi-presentation 7.6
-servers 4.3-1
-SetMinimalRepresentationInfo
6.3-3
-StoreAtlasTableOfContents
4.2-2
-straight line decision, encoding a presentation 3.5-3
-straight line decision, for checking standard generators 3.5-3
-straight line program 1.1
-straight line program 3.5-1
-straight line program, for class representatives 3.5-3
-straight line program, for maximal subgroups 3.5-3
-straight line program, for outer automorphisms 3.5-3
-straight line program, for representatives of cyclic subgroups 3.5-3
-straight line program, for restandardizing 3.5-3
-straight line program, free format 3.5-3
-StraightLineDecision
6.1-5
-StraightLineDecisionNC
6.1-5
-StraightLineProgramFromStraightLineDecision
6.1-9
-touch
4.2-4
-wget
1.3-5
-wget
1.3-7
-wget
4.3-3
-wget
4.3-3
-wget
7.1-6
-zcv
7.3-1
+AGR
7.1-4
+AGR.DeclareDataType
7.5-1
+AGR.FileContents
7.6-2
+AGR.GapObjectOfJsonText
6.4-3
+AGR.JsonText
6.4-2
+AGR.ParseFilenameFormat
7.6-1
+AllAtlasGeneratingSetInfos
3.5-7
+AsBBoxProgram
6.2-5
+AsStraightLineDecision
6.1-8
+AsStraightLineProgram
6.2-6
+AtlasCharacterNames
3.4-3
+AtlasClassNames
3.4-2
+AtlasGenerators
3.5-3
+ for an identifier 3.5-3
+AtlasGroup
, for an identifier record 3.5-8
+ for various arguments 3.5-8
+AtlasOfGroupRepresentationsForgetData
5.1-2
+AtlasOfGroupRepresentationsInfo
7.1-5
+AtlasOfGroupRepresentationsNotifyData
, for a local directory of private data 5.1-1
+ for a local file describing private data 5.1-1
+ for a remote file describing private data 5.1-1
+AtlasProgram
3.5-4
+ for an identifier 3.5-4
+AtlasProgramInfo
3.5-5
+AtlasRep .
+AtlasRepAccessRemoteFiles
4.2-1
+AtlasRepDataDirectory
4.2-2
+AtlasRepIdentifier
, convert a new type identifier to an old type one 7.7-1
+ convert an old type identifier to a new type one 7.7-1
+AtlasRepInfoRecord
, for a group 3.5-10
+ for a string 3.5-10
+AtlasRepLocalServerPath
4.2-7
+AtlasRepMarkNonCoreData
4.2-13
+AtlasRepTOCData
4.2-3
+AtlasStringOfProgram
7.4-2
+ for MeatAxe format output 7.4-2
+AtlasSubgroup
, for a group and a number 3.5-9
+ for a group name (and various arguments) and a number 3.5-9
+ for an identifier record and a number 3.5-9
+automorphisms 3.5-4
+BaseOfMeatAxePermutation
4.2-11
+black box program 1.1
+ for finding standard generators 3.5-4 7.6
+BrowseBibliographySporadicSimple
3.6-2
+BrowseMinimalDegrees
3.6-1
+C
-MeatAxe 1.2
+class representatives 3.5-4
+CMtxBinaryFFMatOrPerm
7.3-4
+compress
4.2-5
+CompressDownloadedMeatAxeFiles
4.2-5
+cyclic subgroups 3.5-4
+DebugFileLoading
4.2-14
+DisplayAtlasInfo
3.5-1
+ for a group name, and optionally further restrictions 3.5-1
+DisplayFunction
4.2-12
+FFList
7.3-3
+FFLists
7.3-3
+FFMatOrPermCMtxBinary
7.3-5
+FileAccessFunctions
4.2-6
+FileTransferTool
4.2-4
+ftp
1.3-6
+gzip
1.3-8 4.2-5
+HowToReadMeatAxeTextFiles
4.2-8
+InfoAtlasRep
7.1-1
+InfoBBox
7.1-3
+InfoCMeatAxe
7.1-2
+IO package 4.1 4.2-4 4.2-4
+IsBBoxProgram
6.2-1
+IsStraightLineDecision
6.1-1
+LinesOfStraightLineDecision
6.1-2
+local access 4.2-1
+Magma 1.1
+matrix, MeatAxe format 7.3
+maximal subgroups 3.5-4
+maximally cyclic subgroups 3.5-4
+MeatAxe 1.1
+MeatAxeString
7.3-2
+ for a matrix of integers 7.3-2
+ for a permutation, q, and dims 7.3-2
+ for permutations and a degree 7.3-2
+MinimalRepresentationInfo
6.3-1
+MinimalRepresentationInfoData
6.3-2
+NrInputsOfStraightLineDecision
6.1-3
+OneAtlasGeneratingSetInfo
3.5-6
+perl
1.3-6 1.4
+permutation, MeatAxe format 7.3
+presentation 6.1-7 7.6
+remote access 4.2-1
+ResultOfBBoxProgram
6.2-4
+ResultOfStraightLineDecision
6.1-6
+RunBBoxProgram
6.2-3
+ScanBBoxProgram
6.2-2
+ScanMeatAxeFile
7.3-1
+ScanStraightLineDecision
6.1-4
+ScanStraightLineProgram
7.4-1
+semi-presentation 6.1-7 7.6
+SetMinimalRepresentationInfo
6.3-3
+straight line decision, encoding a presentation 3.5-4
+ for checking standard generators 3.5-4
+straight line program 1.1 3.5-1
+ for class representatives 3.5-4
+ for kernels of epimorphisms 3.5-4
+ for maximal subgroups 3.5-4
+ for normal subgroups 3.5-4
+ for outer automorphisms 3.5-4
+ for representatives of cyclic subgroups 3.5-4
+ for restandardizing 3.5-4
+ free format 3.5-4
+StraightLineDecision
6.1-5
+StraightLineDecisionNC
6.1-5
+StraightLineProgramFromStraightLineDecision
6.1-9
+StringOfAtlasTableOfContents
5.1-3
+wget
1.3-6 1.3-8 4.2-4
+WriteHeaderFormatOfMeatAxeFiles
4.2-9
+WriteMeatAxeFilesOfMode2
4.2-10
+zcv
7.3-1
GAP (AtlasRep) - Index + + + + + + + + + + + + + + + + +++ + + + + + +Index
+ +AGR
7.1-4
+AGR.DeclareDataType
7.5-1
+AGR.FileContents
7.6-2
+AGR.GapObjectOfJsonText
6.4-3
+AGR.JsonText
6.4-2
+AGR.ParseFilenameFormat
7.6-1
+AllAtlasGeneratingSetInfos
3.5-7
+AsBBoxProgram
6.2-5
+AsStraightLineDecision
6.1-8
+AsStraightLineProgram
6.2-6
+AtlasCharacterNames
3.4-3
+AtlasClassNames
3.4-2
+AtlasGenerators
3.5-3
+ for an identifier 3.5-3
+AtlasGroup
, for an identifier record 3.5-8
+ for various arguments 3.5-8
+AtlasOfGroupRepresentationsForgetData
5.1-2
+AtlasOfGroupRepresentationsInfo
7.1-5
+AtlasOfGroupRepresentationsNotifyData
, for a local directory of private data 5.1-1
+ for a local file describing private data 5.1-1
+ for a remote file describing private data 5.1-1
+AtlasProgram
3.5-4
+ for an identifier 3.5-4
+AtlasProgramInfo
3.5-5
+AtlasRep .
+AtlasRepAccessRemoteFiles
4.2-1
+AtlasRepDataDirectory
4.2-2
+AtlasRepIdentifier
, convert a new type identifier to an old type one 7.7-1
+ convert an old type identifier to a new type one 7.7-1
+AtlasRepInfoRecord
, for a group 3.5-10
+ for a string 3.5-10
+AtlasRepLocalServerPath
4.2-7
+AtlasRepMarkNonCoreData
4.2-13
+AtlasRepTOCData
4.2-3
+AtlasStringOfProgram
7.4-2
+ for MeatAxe format output 7.4-2
+AtlasSubgroup
, for a group and a number 3.5-9
+ for a group name (and various arguments) and a number 3.5-9
+ for an identifier record and a number 3.5-9
+automorphisms 3.5-4
+BaseOfMeatAxePermutation
4.2-11
+black box program 1.1
+ for finding standard generators 3.5-4 7.6
+BrowseBibliographySporadicSimple
3.6-2
+BrowseMinimalDegrees
3.6-1
+C
-MeatAxe 1.2
+class representatives 3.5-4
+CMtxBinaryFFMatOrPerm
7.3-4
+compress
4.2-5
+CompressDownloadedMeatAxeFiles
4.2-5
+cyclic subgroups 3.5-4
+DebugFileLoading
4.2-14
+DisplayAtlasInfo
3.5-1
+ for a group name, and optionally further restrictions 3.5-1
+DisplayFunction
4.2-12
+FFList
7.3-3
+FFLists
7.3-3
+FFMatOrPermCMtxBinary
7.3-5
+FileAccessFunctions
4.2-6
+FileTransferTool
4.2-4
+ftp
1.3-6
+gzip
1.3-8 4.2-5
+HowToReadMeatAxeTextFiles
4.2-8
+InfoAtlasRep
7.1-1
+InfoBBox
7.1-3
+InfoCMeatAxe
7.1-2
+IO package 4.1 4.2-4 4.2-4
+IsBBoxProgram
6.2-1
+IsStraightLineDecision
6.1-1
+LinesOfStraightLineDecision
6.1-2
+local access 4.2-1
+Magma 1.1
+matrix, MeatAxe format 7.3
+maximal subgroups 3.5-4
+maximally cyclic subgroups 3.5-4
+MeatAxe 1.1
+MeatAxeString
7.3-2
+ for a matrix of integers 7.3-2
+ for a permutation, q, and dims 7.3-2
+ for permutations and a degree 7.3-2
+MinimalRepresentationInfo
6.3-1
+MinimalRepresentationInfoData
6.3-2
+NrInputsOfStraightLineDecision
6.1-3
+OneAtlasGeneratingSetInfo
3.5-6
+perl
1.3-6 1.4
+permutation, MeatAxe format 7.3
+presentation 6.1-7 7.6
+remote access 4.2-1
+ResultOfBBoxProgram
6.2-4
+ResultOfStraightLineDecision
6.1-6
+RunBBoxProgram
6.2-3
+ScanBBoxProgram
6.2-2
+ScanMeatAxeFile
7.3-1
+ScanStraightLineDecision
6.1-4
+ScanStraightLineProgram
7.4-1
+semi-presentation 6.1-7 7.6
+SetMinimalRepresentationInfo
6.3-3
+straight line decision, encoding a presentation 3.5-4
+ for checking standard generators 3.5-4
+straight line program 1.1 3.5-1
+ for class representatives 3.5-4
+ for kernels of epimorphisms 3.5-4
+ for maximal subgroups 3.5-4
+ for normal subgroups 3.5-4
+ for outer automorphisms 3.5-4
+ for representatives of cyclic subgroups 3.5-4
+ for restandardizing 3.5-4
+ free format 3.5-4
+StraightLineDecision
6.1-5
+StraightLineDecisionNC
6.1-5
+StraightLineProgramFromStraightLineDecision
6.1-9
+StringOfAtlasTableOfContents
5.1-3
+wget
1.3-6 1.3-8 4.2-4
+WriteHeaderFormatOfMeatAxeFiles
4.2-9
+WriteMeatAxeFilesOfMode2
4.2-10
+zcv
7.3-1
++
+generated by GAPDoc2HTML
+ + diff -Nru gap-atlasrep-1.5.1/doc/chapInd.txt gap-atlasrep-2.1.0/doc/chapInd.txt --- gap-atlasrep-1.5.1/doc/chapInd.txt 2016-04-06 12:18:13.000000000 +0000 +++ gap-atlasrep-2.1.0/doc/chapInd.txt 2019-06-21 15:10:33.000000000 +0000 @@ -2,124 +2,122 @@ [1XIndex[101X - [2XAGR[102X 7.1-5 - [2XAGR.DeclareDataType[102X 7.5-1 - [2XAGR.FileContents[102X 7.6-2 - [2XAGR.ParseFilenameFormat[102X 7.6-1 - [2XAllAtlasGeneratingSetInfos[102X 3.5-6 - [2XAsBBoxProgram[102X 6.2-5 - [2XAsStraightLineDecision[102X 6.1-8 - [2XAsStraightLineProgram[102X 6.2-6 - [2XAtlasCharacterNames[102X 3.4-3 - [2XAtlasClassNames[102X 3.4-2 - [2XAtlasGenerators[102X 3.5-2 - [2XAtlasGenerators[102X (for an identifier) 3.5-2 - [2XAtlasGroup[102X (for an identifier record) 3.5-7 - [2XAtlasGroup[102X (for various arguments) 3.5-7 - [2XAtlasOfGroupRepresentationsForgetPrivateDirectory[102X 5.1-2 - [2XAtlasOfGroupRepresentationsInfo[102X 7.1-6 - [2XAtlasOfGroupRepresentationsNotifyPrivateDirectory[102X 5.1-1 - [2XAtlasOfGroupRepresentationsTestTableOfContentsRemoteUpdates[102X 4.2-4 - [2XAtlasOfGroupRepresentationsUserParameters[102X 4.3-8 - [2XAtlasProgram[102X 3.5-3 - [2XAtlasProgram[102X (for an identifier) 3.5-3 - [2XAtlasProgramInfo[102X 3.5-4 - AtlasRep . - [10XATLASREP_TOCFILE[110X 4.2 - [2XAtlasRepInfoRecord[102X 3.5-9 - [2XAtlasStringOfProgram[102X 7.4-2 - [2XAtlasStringOfProgram[102X (for MeatAxe format output) 7.4-2 - [2XAtlasSubgroup[102X (for a group and a number) 3.5-8 - [2XAtlasSubgroup[102X (for a group name (and various arguments) and a number) 3.5-8 - [2XAtlasSubgroup[102X (for an identifier record and a number) 3.5-8 - automorphisms 3.5-3 - automorphisms 7.6 - black box program 1.1 - black box program, for finding standard generators 3.5-3 - black box program, for finding standard generators 7.6 - [2XBrowseBibliographySporadicSimple[102X 3.6-2 - [2XBrowseMinimalDegrees[102X 3.6-1 - [10XC[110X-[5XMeatAxe[105X 1.2 - class representatives 3.5-3 - class representatives 7.6 - [2XCMeatAxe.FastRead[102X 7.1-4 - [2XCMtxBinaryFFMatOrPerm[102X 7.3-4 - [10Xcompress[110X 4.3-4 - cyclic subgroups 3.5-3 - [2XDisplayAtlasInfo[102X 3.5-1 - [2XDisplayAtlasInfo[102X (for a group name, and optionally further restrictions) 3.5-1 - [2XFFList[102X 7.3-3 - [2XFFLists[102X 7.3-3 - [2XFFMatOrPermCMtxBinary[102X 7.3-5 - [11Xftp[111X 1.3-5 - [11Xgzip[111X 1.3-7 - [11Xgzip[111X 4.3-4 - [11Xgzip[111X 7.1-6 - [2XInfoAtlasRep[102X 7.1-1 - [2XInfoBBox[102X 7.1-3 - [2XInfoCMeatAxe[102X 7.1-2 - IO package 4.1 - IO package 4.2-4 - IO package 4.3-3 - IO package 4.3-3 - IO package 7.1-6 - [2XIsBBoxProgram[102X 6.2-1 - [2XIsStraightLineDecision[102X 6.1-1 - [2XLinesOfStraightLineDecision[102X 6.1-2 - local access 4.3-1 - [5XMagma[105X 1.1 - matrix, MeatAxe format 7.3 - maximal subgroups 3.5-3 - maximal subgroups 7.6 - maximally cyclic subgroups 3.5-3 - [5XMeatAxe[105X 1.1 - [2XMeatAxeString[102X 7.3-2 - [2XMeatAxeString[102X (for a permutation, q, and dims) 7.3-2 - [2XMeatAxeString[102X (for permutations and a degree) 7.3-2 - [2XMinimalRepresentationInfo[102X 6.3-1 - [2XMinimalRepresentationInfoData[102X 6.3-2 - [2XNrInputsOfStraightLineDecision[102X 6.1-3 - [2XOneAtlasGeneratingSetInfo[102X 3.5-5 - [11Xperl[111X 1.3-5 - [11Xperl[111X 1.4 - permutation, MeatAxe format 7.3 - presentation 6.1-7 - presentation 7.6 - [2XReloadAtlasTableOfContents[102X 4.2-1 - remote access 4.3-1 - [2XReplaceAtlasTableOfContents[102X 4.2-3 - [2XResultOfBBoxProgram[102X 6.2-4 - [2XResultOfStraightLineDecision[102X 6.1-6 - [2XRunBBoxProgram[102X 6.2-3 - [2XScanBBoxProgram[102X 6.2-2 - [2XScanMeatAxeFile[102X 7.3-1 - [2XScanStraightLineDecision[102X 6.1-4 - [2XScanStraightLineProgram[102X 7.4-1 - semi-presentation 6.1-7 - semi-presentation 7.6 - servers 4.3-1 - [2XSetMinimalRepresentationInfo[102X 6.3-3 - [2XStoreAtlasTableOfContents[102X 4.2-2 - straight line decision, encoding a presentation 3.5-3 - straight line decision, for checking standard generators 3.5-3 - straight line program 1.1 - straight line program 3.5-1 - straight line program, for class representatives 3.5-3 - straight line program, for maximal subgroups 3.5-3 - straight line program, for outer automorphisms 3.5-3 - straight line program, for representatives of cyclic subgroups 3.5-3 - straight line program, for restandardizing 3.5-3 - straight line program, free format 3.5-3 - [2XStraightLineDecision[102X 6.1-5 - [2XStraightLineDecisionNC[102X 6.1-5 - [2XStraightLineProgramFromStraightLineDecision[102X 6.1-9 - [10Xtouch[110X 4.2-4 - [11Xwget[111X 1.3-5 - [11Xwget[111X 1.3-7 - [11Xwget[111X 4.3-3 - [11Xwget[111X 4.3-3 - [11Xwget[111X 7.1-6 - [11Xzcv[111X 7.3-1 + [2XAGR[102X 7.1-4 + [2XAGR.DeclareDataType[102X 7.5-1 + [2XAGR.FileContents[102X 7.6-2 + [2XAGR.GapObjectOfJsonText[102X 6.4-3 + [2XAGR.JsonText[102X 6.4-2 + [2XAGR.ParseFilenameFormat[102X 7.6-1 + [2XAllAtlasGeneratingSetInfos[102X 3.5-7 + [2XAsBBoxProgram[102X 6.2-5 + [2XAsStraightLineDecision[102X 6.1-8 + [2XAsStraightLineProgram[102X 6.2-6 + [2XAtlasCharacterNames[102X 3.4-3 + [2XAtlasClassNames[102X 3.4-2 + [2XAtlasGenerators[102X 3.5-3 + for an identifier 3.5-3 + [2XAtlasGroup[102X, for an identifier record 3.5-8 + for various arguments 3.5-8 + [2XAtlasOfGroupRepresentationsForgetData[102X 5.1-2 + [2XAtlasOfGroupRepresentationsInfo[102X 7.1-5 + [2XAtlasOfGroupRepresentationsNotifyData[102X, for a local directory of private data 5.1-1 + for a local file describing private data 5.1-1 + for a remote file describing private data 5.1-1 + [2XAtlasProgram[102X 3.5-4 + for an identifier 3.5-4 + [2XAtlasProgramInfo[102X 3.5-5 + AtlasRep . + [10XAtlasRepAccessRemoteFiles[110X 4.2-1 + [10XAtlasRepDataDirectory[110X 4.2-2 + [2XAtlasRepIdentifier[102X, convert a new type identifier to an old type one 7.7-1 + convert an old type identifier to a new type one 7.7-1 + [2XAtlasRepInfoRecord[102X, for a group 3.5-10 + for a string 3.5-10 + [10XAtlasRepLocalServerPath[110X 4.2-7 + [10XAtlasRepMarkNonCoreData[110X 4.2-13 + [10XAtlasRepTOCData[110X 4.2-3 + [2XAtlasStringOfProgram[102X 7.4-2 + for MeatAxe format output 7.4-2 + [2XAtlasSubgroup[102X, for a group and a number 3.5-9 + for a group name (and various arguments) and a number 3.5-9 + for an identifier record and a number 3.5-9 + automorphisms 3.5-4 + [10XBaseOfMeatAxePermutation[110X 4.2-11 + black box program 1.1 + for finding standard generators 3.5-4 7.6 + [2XBrowseBibliographySporadicSimple[102X 3.6-2 + [2XBrowseMinimalDegrees[102X 3.6-1 + [10XC[110X-[5XMeatAxe[105X 1.2 + class representatives 3.5-4 + [2XCMtxBinaryFFMatOrPerm[102X 7.3-4 + [10Xcompress[110X 4.2-5 + [10XCompressDownloadedMeatAxeFiles[110X 4.2-5 + cyclic subgroups 3.5-4 + [10XDebugFileLoading[110X 4.2-14 + [2XDisplayAtlasInfo[102X 3.5-1 + for a group name, and optionally further restrictions 3.5-1 + [10XDisplayFunction[110X 4.2-12 + [2XFFList[102X 7.3-3 + [2XFFLists[102X 7.3-3 + [2XFFMatOrPermCMtxBinary[102X 7.3-5 + [10XFileAccessFunctions[110X 4.2-6 + [10XFileTransferTool[110X 4.2-4 + [11Xftp[111X 1.3-6 + [11Xgzip[111X 1.3-8 4.2-5 + [10XHowToReadMeatAxeTextFiles[110X 4.2-8 + [2XInfoAtlasRep[102X 7.1-1 + [2XInfoBBox[102X 7.1-3 + [2XInfoCMeatAxe[102X 7.1-2 + IO package 4.1 4.2-4 4.2-4 + [2XIsBBoxProgram[102X 6.2-1 + [2XIsStraightLineDecision[102X 6.1-1 + [2XLinesOfStraightLineDecision[102X 6.1-2 + local access 4.2-1 + [5XMagma[105X 1.1 + matrix, MeatAxe format 7.3 + maximal subgroups 3.5-4 + maximally cyclic subgroups 3.5-4 + [5XMeatAxe[105X 1.1 + [2XMeatAxeString[102X 7.3-2 + for a matrix of integers 7.3-2 + for a permutation, q, and dims 7.3-2 + for permutations and a degree 7.3-2 + [2XMinimalRepresentationInfo[102X 6.3-1 + [2XMinimalRepresentationInfoData[102X 6.3-2 + [2XNrInputsOfStraightLineDecision[102X 6.1-3 + [2XOneAtlasGeneratingSetInfo[102X 3.5-6 + [11Xperl[111X 1.3-6 1.4 + permutation, MeatAxe format 7.3 + presentation 6.1-7 7.6 + remote access 4.2-1 + [2XResultOfBBoxProgram[102X 6.2-4 + [2XResultOfStraightLineDecision[102X 6.1-6 + [2XRunBBoxProgram[102X 6.2-3 + [2XScanBBoxProgram[102X 6.2-2 + [2XScanMeatAxeFile[102X 7.3-1 + [2XScanStraightLineDecision[102X 6.1-4 + [2XScanStraightLineProgram[102X 7.4-1 + semi-presentation 6.1-7 7.6 + [2XSetMinimalRepresentationInfo[102X 6.3-3 + straight line decision, encoding a presentation 3.5-4 + for checking standard generators 3.5-4 + straight line program 1.1 3.5-1 + for class representatives 3.5-4 + for kernels of epimorphisms 3.5-4 + for maximal subgroups 3.5-4 + for normal subgroups 3.5-4 + for outer automorphisms 3.5-4 + for representatives of cyclic subgroups 3.5-4 + for restandardizing 3.5-4 + free format 3.5-4 + [2XStraightLineDecision[102X 6.1-5 + [2XStraightLineDecisionNC[102X 6.1-5 + [2XStraightLineProgramFromStraightLineDecision[102X 6.1-9 + [2XStringOfAtlasTableOfContents[102X 5.1-3 + [11Xwget[111X 1.3-6 1.3-8 4.2-4 + [10XWriteHeaderFormatOfMeatAxeFiles[110X 4.2-9 + [10XWriteMeatAxeFilesOfMode2[110X 4.2-10 + [11Xzcv[111X 7.3-1 ------------------------------------------------------- diff -Nru gap-atlasrep-1.5.1/doc/extend.xml gap-atlasrep-2.1.0/doc/extend.xml --- gap-atlasrep-1.5.1/doc/extend.xml 2016-03-31 19:18:02.000000000 +0000 +++ gap-atlasrep-2.1.0/doc/extend.xml 2019-06-21 15:10:33.000000000 +0000 @@ -1,12 +1,11 @@ - +- Private Extensions of the +AtlasRep Package -Extensions of the &AtlasRep; Package It may be interesting to use the functions of the &GAP; interface also for representations or programs that arenot part of the @@ -15,114 +14,124 @@ -The main idea is that users can notify directories containing the +The main idea is that users can notify collections ofprivatedata files, which may consist of-The first two issues are dealt with in -Section -and Section . -The last is described in -Section . +A test example of a local extension is given in +Section . +Another such example is the small collection of data that is distributed +together with the package, in its - new faithful representations and programs for groups - that are declared already in the
official- &ATLAS; of Group Representations, + that are declared already in the core part of the database that belongs + to theofficial&ATLAS; of Group Representations + (see Section ),- - the declaration of groups that are not declared in the
official+ the declaration of groups that are not declared in the &ATLAS; of Group Representations, - and representations and programs for them, and + and representations and programs for them + (see Section ), + and- - the definition of new kinds of representations and programs. + the definition of new kinds of representations and programs + (see Section ).
datapkg directory; +its contents can be listed by calling +DisplayAtlasInfo( "contents", "internal" ) . -Finally, an example of using private extensions is given in -Section . +Examples of extensions by files that can be downloaded from the internet +can be found in the &GAP; packages +MFER and +CTBlocks . +These extensions are automatically notified as soon as &AtlasRep; is +available, via the default value of the user preference +AtlasRepTOCData , see Section ; +their contents can be listed by calling +DisplayAtlasInfo( "contents", "mfer" ) and +DisplayAtlasInfo( "contents", "ctblocks" ) , respectively. -Several of the sanity checks for the official part of the -AtlasRep package make sense also for private extensions, +Several of the sanity checks for the core part of the +&AtlasRep; data make sense also for data extensions, see Section for more information.- Adding a Private Data Directory +Notify Additional Data -<#Include Label="[3]{access}"> -<#Include Label="AtlasOfGroupRepresentationsNotifyPrivateDirectory"> -<#Include Label="AtlasOfGroupRepresentationsForgetPrivateDirectory"> +<#Include Label="addprivate"> +<#Include Label="AtlasOfGroupRepresentationsNotifyData"> +<#Include Label="AtlasOfGroupRepresentationsForgetData"> +<#Include Label="StringOfAtlasTableOfContents">- The Effect of Private Extensions on the User Interface +The Effect of Extensions on the User Interface -First suppose that only new groups or new data for known groups are added. +First suppose that only new groups +or new data for known groups or for new groups are added. -In this case, lists the private -representations and programs in the same way as the -officialdata, except that private parts are marked with the string -stored in the componentmarkprivate of -; -by default, this is a star* . +In this case, lists the additional +representations and programs in the same way as other data known to &AtlasRep;, +except that parts outside the core database are marked with the string +that is the value of the user preferenceAtlasRepMarkNonCoreData , +see Section . The ordering of representations listed by (and referred to by ) will in general change -when private directories are notified. -If several private directories are used then the ordering of data may depend -on the ordering of notifications. +whenever extensions get notified. For the other interface functions described in Chapter , -the only difference is that also the private data can be accessed. -In particular thefree format-groupnameGi-XdescrWn -for straight line programs -(see Section ) -may be used in private directories; -the data can be accessed with , -where the last two arguments are the strings"other" and descr. +the only difference is that also the additional data can be accessed. -If also private data types are introduced +If also new data types are introduced in an extension (see Section ) then additional columns or rows can appear in the output of , and new inputs can become meaningful for all interface functions. -Examples for these changes can be found in -Section .- diff -Nru gap-atlasrep-1.5.1/doc/interfac.xml gap-atlasrep-2.1.0/doc/interfac.xml --- gap-atlasrep-1.5.1/doc/interfac.xml 2016-03-27 21:07:05.000000000 +0000 +++ gap-atlasrep-2.1.0/doc/interfac.xml 2019-06-21 15:10:33.000000000 +0000 @@ -1,43 +1,30 @@ - +An Example of Extending the +AtlasRep Package -An Example of Extending the &AtlasRep; Data + +This section shows an extension by a fewlocally available files. + + -In the beginning we set the info level of -to1 . +We set the info level of to1 +in this section. + +level:= InfoLevel( InfoAtlasRep );; +gap> locallevel:= InfoLevel( InfoAtlasRep );; gap> SetInfoLevel( InfoAtlasRep, 1 ); ]]> -Let us assume that the directoryprivdir contains + + +Let us assume that the local directoryprivdir contains data for the cyclic groupC_4 of order4 and for the alternating groupA_5 on5 points, respectively. Note that it is obvious what the termstandard generatorsmeans for @@ -152,7 +161,8 @@A5G1-p60B0.m1 andA5G1-p60B0.m2 - - the regular permutation representation of
@@ -186,50 +196,53 @@ (We could also introduce intermediate directoriesA_5 . + standard generators forA_5 + in its regular permutation representation.C4 andA5 , say, each with the data for one group only. Here we do not show this because creating directories programmatically -seems to be possible only with the &GAP; packageIO .) +seems to require the &GAP; packageIO .) -The official part of theAtlasRep package does not contain +The core part of the &AtlasRep; data does not contain information aboutC_4 , -so we first notify this group, in the fileprivdir/toc.g . +so we first notify this group, in the fileprivdir/toc.json . Besides the name of the group, we store the following information: the group order, the number of (classes of) maximal subgroups, -their orders, their structures, and describing data about the two -permutation representations. -(The groupA_5 is known with nameA5 in the official part -of theAtlasRep package, -so it cannot be notified again.) +their orders, their structures, +and describing data about the three representations. +The groupA_5 is already known with nameA5 +in the core part of the &AtlasRep; data, +so it need not and cannot be notified again.FileString( Filename( prv, "toc.g" ), Concatenation( [ -> "AGR.GNAN(\"C4\",\"C4\");\n", -> "AGR.GRS(\"C4\",4);\n", -> "AGR.MXN(\"C4\",1);\n", -> "AGR.MXO(\"C4\",[2]);\n", -> "AGR.MXS(\"C4\",[\"C2\"]);\n", -> "AGR.API(\"C4G1-p4B0\",[1,4,\"imprim\",\"1 < C2\"]);\n", -> "AGR.API(\"A5G1-p60B0\",[1,60,\"imprim\",\"1 < A4\"]);\n", -> ] ) );; +gap> FileString( Filename( prv, "toc.json" ), Concatenation( [ "{\n", +> "\"ID\":\"priv\",\n", +> "\"Data\":[\n", +> "[\"GNAN\",[\"C4\",\"C4\"]],\n", +> "[\"GRS\",[\"C4\",4]],\n", +> "[\"MXN\",[\"C4\",1]],\n", +> "[\"MXO\",[\"C4\",[2]]],\n", +> "[\"MXS\",[\"C4\",[\"C2\"]]],\n", +> "[\"RNG\",[\"C4G1-Ar1aB0\",\"CF(4)\"]],\n", +> "[\"API\",[\"C4G1-p4B0\",[1,4,\"imprim\",\"1 < C2\"]]],\n", +> "[\"API\",[\"A5G1-p60B0\",[1,60,\"imprim\",\"1 < S3\"]]]\n", +> "]\n", +> "}\n" ] ) );; ]]> -Then we notify the private directory. +Then we notify the extension.AtlasOfGroupRepresentationsNotifyPrivateDirectory( prv, "priv", true ); +gap> AtlasOfGroupRepresentationsNotifyData( prv, "priv", true ); true ]]> -Now we can use the interface functions for accessing the data in the -private directory. +Now we can use the interface functions for accessing the additional data. @@ -241,17 +254,17 @@ gap> DisplayAtlasInfo( "C4" ); Representations for G = C4: (all refer to std. generators 1) --------------------------- -1: G <= Sym(4)* rank 4, on cosets of 1 < C2 -2: G <= GL(1a,C)* +1: G <= Sym(4)* rank 4, on cosets of 1 < C2 +2: G <= GL(1a,CF(4))* Programs for G = C4: (all refer to std. generators 1) -------------------- -automorphisms: - 2* -maxes (all 1): - 1*: C2 -other scripts: - "test"* +- automorphisms*: + 2* +- maxes (all 1): + 1*: C2 +- other scripts*: + "test"* gap> DisplayAtlasInfo( "C4", IsPermGroup, true ); Representations for G = C4: (all refer to std. generators 1) --------------------------- @@ -259,85 +272,85 @@ gap> DisplayAtlasInfo( "C4", IsMatrixGroup ); Representations for G = C4: (all refer to std. generators 1) --------------------------- -2: G <= GL(1a,C)* +2: G <= GL(1a,CF(4))* gap> DisplayAtlasInfo( "C4", Dimension, 2 ); gap> DisplayAtlasInfo( "A5", NrMovedPoints, 60 ); Representations for G = A5: (all refer to std. generators 1) --------------------------- -4: G <= Sym(60)* rank 60, on cosets of 1 < A4 +4: G <= Sym(60)* rank 60, on cosets of 1 < S3 gap> info:= OneAtlasGeneratingSetInfo( "C4" ); -rec( groupname := "C4", id := "", - identifier := [ [ "priv", "C4" ], [ "C4G1-p4B0.m1" ], 1, 4 ], +rec( contents := "priv", groupname := "C4", id := "", + identifier := [ "C4", [ [ "priv", "C4G1-p4B0.m1" ] ], 1, 4 ], isPrimitive := false, p := 4, rankAction := 4, repname := "C4G1-p4B0", repnr := 1, size := 4, stabilizer := "1 < C2", standardization := 1, transitivity := 1, type := "perm" ) gap> AtlasGenerators( info.identifier ); -rec( generators := [ (1,2,3,4) ], groupname := "C4", id := "", - identifier := [ [ "priv", "C4" ], [ "C4G1-p4B0.m1" ], 1, 4 ], +rec( contents := "priv", generators := [ (1,2,3,4) ], + groupname := "C4", id := "", + identifier := [ "C4", [ [ "priv", "C4G1-p4B0.m1" ] ], 1, 4 ], isPrimitive := false, p := 4, rankAction := 4, repname := "C4G1-p4B0", repnr := 1, size := 4, stabilizer := "1 < C2", standardization := 1, transitivity := 1, type := "perm" ) gap> AtlasProgram( "C4", 1 ); rec( groupname := "C4", - identifier := [ [ "priv", "C4" ], "C4G1-max1W1", 1 ], + identifier := [ "C4", [ [ "priv", "C4G1-max1W1" ] ], 1 ], program :=, size := 2, standardization := 1, - subgroupname := "C2" ) + subgroupname := "C2", version := "1" ) gap> AtlasProgram( "C4", "maxes", 1 ); rec( groupname := "C4", - identifier := [ [ "priv", "C4" ], "C4G1-max1W1", 1 ], + identifier := [ "C4", [ [ "priv", "C4G1-max1W1" ] ], 1 ], program := , size := 2, standardization := 1, - subgroupname := "C2" ) + subgroupname := "C2", version := "1" ) gap> AtlasProgram( "C4", "maxes", 2 ); fail gap> AtlasGenerators( "C4", 1 ); -rec( generators := [ (1,2,3,4) ], groupname := "C4", id := "", - identifier := [ [ "priv", "C4" ], [ "C4G1-p4B0.m1" ], 1, 4 ], +rec( contents := "priv", generators := [ (1,2,3,4) ], + groupname := "C4", id := "", + identifier := [ "C4", [ [ "priv", "C4G1-p4B0.m1" ] ], 1, 4 ], isPrimitive := false, p := 4, rankAction := 4, repname := "C4G1-p4B0", repnr := 1, size := 4, stabilizer := "1 < C2", standardization := 1, transitivity := 1, type := "perm" ) gap> AtlasGenerators( "C4", 2 ); -rec( dim := 1, generators := [ [ [ E(4) ] ] ], groupname := "C4", - id := "a", identifier := [ [ "priv", "C4" ], "C4G1-Ar1aB0.g", 1, 1 ] - , repname := "C4G1-Ar1aB0", repnr := 2, size := 4, - standardization := 1, type := "matalg" ) +rec( contents := "priv", dim := 1, generators := [ [ [ E(4) ] ] ], + groupname := "C4", id := "a", + identifier := [ "C4", [ [ "priv", "C4G1-Ar1aB0.g" ] ], 1, 1 ], + repname := "C4G1-Ar1aB0", repnr := 2, ring := GaussianRationals, + size := 4, standardization := 1, type := "matalg" ) gap> AtlasGenerators( "C4", 3 ); fail gap> AtlasProgram( "C4", "other", "test" ); rec( groupname := "C4", - identifier := [ [ "priv", "C4" ], "C4G1-XtestW1", 1 ], - program := , standardization := 1 ) + identifier := [ "C4", [ [ "priv", "C4G1-XtestW1" ] ], 1 ], + program := , standardization := 1, + version := "1" ) ]]> -We can restrict the data shown by to the -private directory, as follows. +We can restrict the data shown by to our +extension, as follows. DisplayAtlasInfo( "contents", "priv" ); -group | # | maxes | cl | cyc | out | fnd | chk | p* --------------------------+---+-------+----+-----+-----+-----+-----+--* -A5* | 1 | | | | | | | * -C4* | 2 | 1 | | | 2 | | | * +group | # | maxes | cl | cyc | out | fnd | chk | prs +------+---+-------+----+-----+-----+-----+-----+---- +A5* | 1 | | | | | | | +C4* | 2 | 1 | | | 2 | | | ]]> -For checking the data in the private directory, -we apply the relevant sanity checks +For checking the data in the extension, we apply the relevant sanity checks (see Section ).if not IsBound( AGR.Test ) then -> ReadPackage( "atlasrep", "gap/test.g" ); -> fi; gap> AGR.Test.Words( "priv" ); true gap> AGR.Test.FileHeaders( "priv" ); @@ -346,28 +359,154 @@ true gap> AGR.Test.BinaryFormat( "priv" ); true -gap> AGR.Test.Primitivity( "priv" ); +gap> AGR.Test.Primitivity( "priv" : TryToExtendData ); true +gap> AGR.Test.Characters( "priv" : TryToExtendData ); +#I AGR.Test.Character: +#I add new info +["CHAR",["A5","A5G1-p60B0", +0,[1,[2,3],[3,3],[4,4],[5,5]],"1a+3a^3b^3+4a^4+5a^5"]], +#I AGR.Test.Character: +#I add new info +["CHAR",["C4","C4G1-p4B0",0,[1,2,3,4],"1abcd"]], +true +]]> + + + +We did not store the character information in the file +privdir/toc.json , +and &GAP; was able to identify the characters of the two permutation +representations. +(The identification of the character for the matrix representation +fails because we cannot distinguish between the two Galois conjugate +faithful characters.) + + + +If we store the character information as proposed by &GAP;, +this information will for example become part of the records returned by +. +(Note that we have to enter"priv" as the last argument of +AGR.CHAR when we call the function interactively, +in order to assign the information to the right context.) + + + +AGR.CHAR("A5","A5G1-p60B0", +> 0,[1,[2,3],[3,3],[4,4],[5,5]],"1a+3a^3b^3+4a^4+5a^5", "priv" ); +gap> AGR.CHAR("C4","C4G1-p4B0",0,[1,2,3,4],"1abcd", "priv" ); gap> AGR.Test.Characters( "priv" ); true +gap> OneAtlasGeneratingSetInfo( "C4" ); +rec( charactername := "1abcd", constituents := [ 1, 2, 3, 4 ], + contents := "priv", groupname := "C4", id := "", + identifier := [ "C4", [ [ "priv", "C4G1-p4B0.m1" ] ], 1, 4 ], + isPrimitive := false, p := 4, rankAction := 4, + repname := "C4G1-p4B0", repnr := 1, size := 4, + stabilizer := "1 < C2", standardization := 1, transitivity := 1, + type := "perm" ) ]]> + + +A string that describes the JSON format overview of the data extension +can be created with . -Finally, weuninstallthe private directory, +Print( StringOfAtlasTableOfContents( "priv" ) ); +{ +"ID":"priv", +"Data":[ +["GNAN",["C4","C4"]], + +["GRS",["C4",4]], + +["MXN",["C4",1]], + +["MXO",["C4",[2]]], + +["MXS",["C4",["C2"]]], + +["RNG",["C4G1-Ar1aB0","CF(4)"]], + +["API",["A5G1-p60B0",[1,60,"imprim","1 < S3"]]], +["API",["C4G1-p4B0",[1,4,"imprim","1 < C2"]]], + +["CHAR",["A5","A5G1-p60B0",0,[1,[2,3],[3,3],[4,4],[5,5]],"1a+3a^3b^3+4\ +a^4+5a^5"]], +["CHAR",["C4","C4G1-p4B0",0,[1,2,3,4],"1abcd"]] +] +} +]]> + + + +If we prescribe a"DataURL" component that starts with"http" +then also the"TOC" lines are listed, +in order to enable remote access to the data. + + + +Print( StringOfAtlasTableOfContents( +> rec( ID:= "priv", DataURL:= "http://someurl" ) ) ); +{ +"ID":"priv", +"DataURL":"http://someurl", +"Data":[ +["GNAN",["C4","C4"]], + +["GRS",["C4",4]], + +["MXN",["C4",1]], + +["MXO",["C4",[2]]], + +["MXS",["C4",["C2"]]], + +["TOC",["perm","A5G1-p60B0.m",[118815263,24584221]]], +["TOC",["matalg","C4G1-Ar1aB0.g",[49815028]]], +["TOC",["otherscripts","C4G1-XtestW1",[-27672877]]], +["TOC",["out","C4G1-a2W1",[126435524]]], +["TOC",["maxes","C4G1-max1W1",[-27672877]]], +["TOC",["perm","C4G1-p4B0.m",[102601978]]], + +["RNG",["C4G1-Ar1aB0","CF(4)"]], + +["API",["A5G1-p60B0",[1,60,"imprim","1 < S3"]]], +["API",["C4G1-p4B0",[1,4,"imprim","1 < C2"]]], + +["CHAR",["A5","A5G1-p60B0",0,[1,[2,3],[3,3],[4,4],[5,5]],"1a+3a^3b^3+4\ +a^4+5a^5"]], +["CHAR",["C4","C4G1-p4B0",0,[1,2,3,4],"1abcd"]] +] +} +]]> + + + +Finally, weuninstallour extension, and reset the info level that had been set to1 in the beginning. (Also the group nameC4 is removed this way, which is an advantage of -using atoc.g file over callingAGRGNAN directly.), -Note that we need not remove the data in the temporary directory, -&GAP; will do this automatically. +using atoc.json file over callingAGR.GNAN directly.),AtlasOfGroupRepresentationsForgetPrivateDirectory( "priv" ); -gap> SetInfoLevel( InfoAtlasRep, level ); +gap> AtlasOfGroupRepresentationsForgetData( "priv" ); +gap> SetInfoLevel( InfoAtlasRep, locallevel ); ]]> + + +We need not care about removing the temporary directory and the files in it. +&GAP; will try to remove directories created with + +at the end of the &GAP; session. +- The User Interface of the +AtlasRep Package -The User Interface of the &AtlasRep; Package Theuser interface is the part of the &GAP; interface that allows one to display information about the current contents of the database and to -access individual data (perhaps from a remote server, -see Section ). +access individual data (perhaps by downloading them, +see Section ). The corresponding functions are described in this chapter. See Section for some small examples how to use the functions of the interface. -Extensions of theAtlasRep package are regarded as another +Data extensions of the &AtlasRep; package are regarded as another part of the &GAP; interface, they are described in Chapter . -Finally, the low level part of the interface are described in +Finally, the low level part of the interface is described in Chapter . - - -For some of the examples in this chapter, -the &GAP; packagesCTblLib andTomLib -are needed, so we load them. - - - -LoadPackage( "ctbllib" ); -true -gap> LoadPackage( "tomlib" ); -true -]]> + @@ -61,12 +48,12 @@- Group Names Used in the +AtlasRep PackageGroup Names Used in the &AtlasRep; Package ]]> -When you access data via theAtlasRep package, +When you access data via the &AtlasRep; package, you specify the group in question by an admissiblename . Thus it is essential to know these names, which are calledthe &GAP; names of the group in the following. @@ -74,13 +61,13 @@ For a groupG , say, whose character table is available in -&GAP;'s Character Table Library, +&GAP;'s Character Table Library (see ), the admissible names ofG are the admissible names of this character table. -IfG is almost simple, one such name is the +One such name is the value of the character table, -see . +see . This name is usually very similar to the name used in the &ATLAS; of Finite Groups . For example, @@ -115,8 +102,7 @@- Standard Generators Used in the +AtlasRep Package -Standard Generators Used in the &AtlasRep; Package For the general definition ofstandard generators of a group, see . @@ -126,10 +112,11 @@ Severaldifferent standard generators may be defined for a group, -the definitions can be found at +the definitions for each group that occurs in the +&ATLAS; of Group Representations can be found at -&ATLASSERVER; +&ATLASSERVER; . When one specifies the standardization, @@ -142,8 +129,8 @@ That is, a straight line program for computing generators of a certain subgroup of a groupG is defined only for a specific set of standard generators ofG , and applying the program to matrix or permutation -generators ofG but w.r.t. a different standardization may yield -unpredictable results. +generators ofG but w. r. t. a different +standardization may yield unpredictable results. Therefore the results returned by the functions described in this chapter contain information about the standardizations they refer to. @@ -152,7 +139,7 @@- Class Names Used in the +AtlasRep PackageClass Names Used in the &AtlasRep; Package For each straight line program (see ) that is used to compute lists of class representatives, @@ -178,11 +165,12 @@- Accessing Data of the +AtlasRep PackageAccessing Data via &AtlasRep; -Note that the output of the examples in this section refers to a perhaps -outdated table of contents; -the current version of the database may contain more information +The examples shown in this section refer to the situation +that no extensions have been notified, +and to a perhaps outdated table of contents. +That is, the current version of the database may contain more information than is shown here. @@ -202,8 +190,7 @@- + Browse Applications Provided by -AtlasRep The functions , , diff -Nru gap-atlasrep-1.5.1/doc/introduc.xml gap-atlasrep-2.1.0/doc/introduc.xml --- gap-atlasrep-1.5.1/doc/introduc.xml 2016-04-06 12:16:31.000000000 +0000 +++ gap-atlasrep-2.1.0/doc/introduc.xml 2019-06-21 15:10:33.000000000 +0000 @@ -5,26 +5,26 @@ Browse Applications Provided by &AtlasRep;- Introduction to the +AtlasRep PackageIntroduction to the &AtlasRep; Package -The aim of the &GAP; 4 packageAtlasRep is to provide -a link between &GAP; and the&ATLAS; of Group Representations-, -a database that comprises generating permutations and matrices +The aim of the &GAP; 4 package &AtlasRep; is +to provide a link between &GAP; and databases such as the +&ATLAS; of Group Representations , +which comprises generating permutations and matrices for many almost simple groups, and information about their maximal subgroups. This database is available independent of &GAP; at -&ATLASSERVER; +&ATLASSERVER; . -TheAtlasRep package consists of this database +The &AtlasRep; package consists of this database (see Section ) and a &GAP; interface (see Section ); the latter is extended by further information available via the internet -(see Section ). +(see Section ). @@ -38,7 +38,7 @@ User interface functions- - are described in + are described in Chapter .
Customizations of the package @@ -63,7 +63,8 @@@@ -175,12 +163,9 @@ can be found at - The &ATLAS; of Group Representations -The &ATLAS; of Group Representations consists of matrices over various rings, +The &ATLAS; of Group Representations +consists of matrices over various rings, permutations, and shell scripts encoding so-called black box programsblack box program (see @@ -98,8 +99,10 @@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 -and . +see for example the bibliographies in +and +which are available online at + Magma http://www.math.rwth-aachen.de/~Thomas.Breuer/atlasrep/bibl . @@ -113,29 +116,14 @@ If your work made use of functions of the &GAP; interface (see Section ) then you should also reference this interface, -as follows. - --@misc{ AtlasRep&VERSIONNUMBER;, - 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 &VERSIONNUMBER;}, - month = {&RELEASEMONTH;}, - year = {&RELEASEYEAR;}, - note = {\textsf{GAP} package}, - howpublished = {http://www.math.rwth-aachen.de/\~{}Thomas.Breuer/atlasrep} -} - +using the information printed by the &GAP; function +. For referencing the &GAP; system in general, use the entry in the bibliography of this manual, -see also - -http://www.gap-system.org . +see alsohttp://www.gap-system.org .http://www.math.rwth-aachen.de/LDFM/homes/MTX +http://www.math.rwth-aachen.de/~MTX - - The interface and this manual have been provided by Thomas Breuer, except for the interpreter for black box programs (see Section ), @@ -195,16 +180,227 @@- What's New in +AtlasRep , -Compared to Older Versions?What's New in &AtlasRep;, Compared to Older Versions? ]]> -+