This package is about group recognition.
In computational group theory, group recognition is the task of identifying a given group. The main goal is to determine whether the given group is isomorphic to a well-understood group, such as a symmetric group or a classical matrix group, and to construct an explicit isomorphism between the two groups. The first task is called naming
or non-constructive
recognition, the latter task is called constructive
recognition.
The recog package is a generic framework that implements algorithms to recognise groups, regardless of what computational representation is used. This means, that the code in this package is useful at least for permutation groups, matrix groups and projective groups over finite fields. The setup is described in [NS06].
The framework allows to build composition trees and handles the built-up and usage of these trees in a generic way. It also contains a method selection (described in Chapter 5) that allows to install recognition methods in a convenient way and that automatically tries to try the different available methods in a sensible order.
Chapter 2 describes the installation of this package.
Chapter 3 presents a user-friendly introduction to this package. Furthermore, some instructive examples of the usage of this package are shown in section 3.3 and possible applications of a completed recognition tree are explained in section 3.4.
Chapter 4 describes the generic, recursive procedure used for group recognition throughout this package. At the heart of this procedure is the definition of FindHomomorphism
methods, which is also described in that chapter. For the choice of the right method for finding a homomorphism (or an isomorphism) we use another generic procedure, the method selection
which is not to be confused with the GAP method selection.
Our own method selection system is described in detail in Chapter 5, because it is interesting in its own right and might be useful in other circumstances.
Chapter 6 describes the available FindHomomorphism
methods.
If you have any bug reports, feature requests, or suggestions, then please tell us via the issue tracker on GitHub.
In addition, the recog package has a mailing list, at recog@gap-system.org, which can be used for holding discussions, sharing information, and asking questions about the package. You can find more information, and register to receive the mail sent to this list, at https://mail.gap-system.org/mailman/listinfo/recog.
There is a lot of relevant literature on the mathematics behind this package. We are working on enhancing this manual to cite it in appropriate places. In the meantime, here is a list of references not currently cited elsewhere: [BB99] [BBS09] [BK01] [BK06] [BLN+03] [BLN+05] [BLS97] [BNS06] [BS01] [Bro01] [Bro03] [Bro08] [CFL97] [CL01] [CL98] [CLM+95] [CLO06] [DLLO13] [DLO15] [GH97] [GLO06] [HLOR96a] [HLOR96b] [HLO+08] [HR94] [IL00] [KK15] [KM13] [KM15] [Lee01] [LO02] [LO09] [LO97a] [LO97b] [LMO07] [LO07] [LO16] [NP92] [Nie05] [O'B06] [O'B11] [Pak00] [Par84] [Ser03]
generated by GAPDoc2HTML