For an ag group G there exists three different types of generating
systems. The generating system in G.generators
is a list of ag words
generating the group G with the only condition that none of the ag
words is the identity of G. If an induced generating system for G is
known it is bound to G.igs
, while an canonical generating system is
bound to G.cgs
. But as every canonical generating system is also an
induced one, G.cgs
and G.igs
may contain the same system.
The functions Cgs
, Igs
, Normalize
, Normalized
and IsNormalized
change or manipulate these systems. The following overview shows when to
use this functions. For details see Cgs, Igs, Normalize,
Normalized and IsNormalized.
Igs
returns an induced generating system for G. If neither G.igs
nor G.cgs
are present, it uses MergedIgs
(see MergedIgs) in order
to construct an induced generating system from G.generators
. In that
case the induced generating system is bound to G.igs
. If G.cgs
but not G.igs
is present, this is returned, as every canonical
generating system is also an induced one. If G.igs
is present this
is returned.
Cgs
returns a canonical generating system for G. If neither
G.igs
nor G.cgs
are present, it uses MergedCgs
(see
MergedCgs) in order to construct a canonical generating system from
G.generators
. In that case the canonical generating system is bound
to G.cgs
. If G.igs
but not G.cgs
is present, this is
normalized and bound to G.cgs
, but G.igs
is left unchanged. If
G.cgs
is present this is returned.
Normalize
computes a canonical generating system, binds it to G.cgs
and unbinds an induced generating bound to G.igs
. Normalized
normalizes a copy without changing the original ag group. This function
should be preferred.
IsNormalized
checks if an induced generating system is a canonical one
and, if being canonical, binds it to G.cgs
and unbinds G.igs
. If
G.igs
is unbound IsNormalized
computes a canonical generating
system, binds it to G.cgs
and returns true
.
Most functions need an induced or canonical generating system, all function descriptions state clearly what is used, if this is relevant, see Exponents for example.
GAP 3.4.4