Domains are represented by records (see Records), which are called domain records in the following. Which components need to be present, which may, and what those components hold, differs from category to category, and, to a smaller extent, from domain to domain. It is generally possible though to distinguish four types of components.
Each domain record has the component isDomain
, which has the value
true
. Furthermore, most domains also have a component that specifies
which category this domain belongs to. For example, each group has the
component isGroup
, holding the value true
. Those components are
called the category components of the domain record. A domain that
only has the component isDomain
is a member only of the category
Domains and only the functions described in this chapter are applicable
to such a domain.
Every domain record also contains enough information to identify uniquely
the domain in the so called identification components. For example,
for a group the domain record, called group record in this case, has a
component called generators
containing a system of generators (and also
a component identity
holding the identity element of the group, needed
if the generator list is empty, as is the case for the trivial group).
Next the domain record holds all the knowledge GAP has about the domain, for example the size of the domain, in the so called knowledge components. Of course, the knowledge about a certain domain will usually increase as time goes by. For example, a group record may initially hold only the knowledge that the group is finite, but may end holding all kinds of knowledge, for example the derived series, the Sylow subgroups, etc.
Finally each domain record has a component, which is called its
operations record (because it is the component with the name
operations
and it holds a record), that tells functions like Size
how
to compute this information for this domain. The exact mechanism is
described later (see Dispatchers).
GAP 3.4.4