As for all domains (see Domains and Domain Records)
groups and their subgroups are represented by records that contain important
information about groups. Most of the following functions return such records.
Of course it is possible to create a group record by hand but generally
Group (see Group) and Subgroup (see
Subgroup) should be used for such tasks.
Once a group record is created you may add record components to it but you
must not alter informations already present, especially not generators
and identity.
Group records must always contain the components generators,
identity, isDomain and isGroup.
Subgroups contain an additional component parent. The contents
of all components of a group G are described below.
The following two components are the so-called category components used to identify the category this domain belongs to.
isDomain:
is always true as a group is a
domain.
isGroup:
is of course true as G is a
group.
The following three components determine a group domain. These are the so-called identification components.
generators:
is a list group generators. Duplicate
generators are allowed but none of the generators may be the group identity.
The group G is the trivial group if and only if generators
is the empty list. Note that once created this entry must never be changed,
as most of the other entries depend on generators.
identity:
is the group identity of G.
parent:
if present this contains the group record of the
parent group of a subgroup G, otherwise G itself is a
parent group.
The following components are optional and contain knowledge about the group G.
abelianInvariants:
a list of integers containing the
abelian invariants of an abelian group G.
centralizer:
contains the centralizer of G in its
parent group.
centre:
contains the centre of G. See
Centre.
commutatorFactorGroup:
contains the commutator factor group
of G. See CommutatorFactorGroup for details.
conjugacyClasses:
contains a list of the conjugacy classes
of G. See ConjugacyClasses for details.
core:
contains the core of G under the action of
its parent group. See Core for details.
derivedSubgroup:
contains the derived subgroup of G.
See DerivedSubgroup.
elements:
is the set of all elements of G. See
Elements.
fittingSubgroup:
contains the Fitting subgroup of G.
See FittingSubgroup.
frattiniSubgroup:
contains the Frattini subgroup of G.
See FrattiniSubgroup.
index:
contains the index of G in its parent group.
See Index.
lowerCentralSeries:
contains the lower central series of
G as list of subgroups. See LowerCentralSeries.
normalizer:
contains the normalizer of G in its
parent group. See Normalizer for details.
normalClosure:
contains the normal closure of G in
its parent group. See NormalClosure for details.
upperCentralSeries:
contains the upper central series of
G as list of subgroups. See UpperCentralSeries.
subnormalSeries:
contains a subnormal series from the
parent of G down to G. See SubnormalSeries for details.
sylowSubgroups:
contains a list of Sylow subgroups of G.
See SylowSubgroup for details.
size:
is either an integer containing the size of a finite
group or the string ``infinity'' if the group is infinite. See
Size.
perfectSubgroups:
contains the a list of subgroups which
includes at least one representative of each class of conjugate proper
perfect subgroups of G. See Lattice.
lattice:
contains the subgroup lattice of G. See
Lattice.
conjugacyClassesSubgroups:
identical to the list G.lattice.classes,
contains the conjugacy classes of subgroups of G. See
ConjugacyClassesSubgroups.
tableOfMarks:
contains the table of narks of G.
See TableOfMarks.
The following components are true if the group G has
the property, false if not, and are not present if it is unknown
whether the group has the property or not.
isAbelian:
is true if the group G is
abelian. See IsAbelian.
isCentral:
is true if the group G is
central in its parent group. See IsCentral.
isCyclic:
is true if the group G is
cyclic. See IsCyclic.
isElementaryAbelian:
is true if the group G
is elementary abelian. See IsElementaryAbelian.
isFinite:
is true if the group G is
finite. If you know that a group for which you want to use the generic low
level group functions is infinite, you should set this component to false.
This will avoid attempts to compute the set of elements.
isNilpotent:
is true if the group G
is nilpotent. See IsNilpotent.
isNormal:
is true if the group G is
normal in its parent group. See IsNormal.
isPerfect:
is true if the group G is
perfect. See IsPerfect.
isSimple:
is true if the group G is
simple. See IsSimple.
isSolvable:
is true if the group G is
solvable. See IsSolvable.
isSubnormal:
is true if the group G
is subnormal in its parent group. See IsSubnormal.
The component operations contains the operations record
(see Domain Records and Dispatchers).