The following categories of elements are to be understood mainly as
categories for all objects in a family,
they are usually used as third argument of NewFamily
(see Creating Families in ``Programming in GAP'').
The purpose of each of the following categories is then to guarantee that
each collection of its elements automatically lies in its collections
category (see CategoryCollections).
For example, the multiplication of permutations is associative,
and it is stored in the family of permutations that each permutation lies
in IsAssociativeElement.
As a consequence, each magma consisting of permutations
(more precisely: each collection that lies in the family
CollectionsFamily( PermutationsFamily ), see CollectionsFamily)
automatically lies in CategoryCollections( IsAssociativeElement ).
A magma in this category is always known to be associative, via a logical
implication (see Logical Implications in ``Programming in GAP'').
Similarly, if a family knows that all its elements are in the categories
IsJacobianElement and IsZeroSquaredElement,
then each algebra of these elements is automatically known to be a
Lie algebra (see Algebras).
IsAssociativeElement( obj ) C
IsAssociativeElementCollection( obj ) C
IsAssociativeElementCollColl( obj ) C
An element obj in the category IsAssociativeElement knows
that the multiplication of any elements in the family of obj
is associative.
For example, all permutations lie in this category, as well as those
ordinary matrices (see IsOrdinaryMatrix) whose entries are also in
IsAssociativeElement.
IsAdditivelyCommutativeElement( obj ) C
IsAdditivelyCommutativeElementCollection( obj ) C
IsAdditivelyCommutativeElementCollColl( obj ) C
IsAdditivelyCommutativeElementFamily( obj ) C
An element obj in the category IsAdditivelyCommutativeElement knows
that the addition of any elements in the family of obj
is commutative.
For example, each finite field element and each rational number lies in
this category.
IsCommutativeElement( obj ) C
IsCommutativeElementCollection( obj ) C
IsCommutativeElementCollColl( obj ) C
An element obj in the category IsCommutativeElement knows
that the multiplication of any elements in the family of obj
is commutative.
For example, each finite field element and each rational number lies in
this category.
IsFiniteOrderElement( obj ) C
IsFiniteOrderElementCollection( obj ) C
IsFiniteOrderElementCollColl( obj ) C
An element obj in the category IsFiniteOrderElement knows
that it has finite multiplicative order.
For example, each finite field element and each permutation lies in
this category.
However the value may be false even if obj has finite order,
but if this was not known when obj was constructed.
Although it is legal to set this filter for any object with finite order, this is really useful only in the case that all elements of a family are known to have finite order.
IsJacobianElement( obj ) C
IsJacobianElementCollection( obj ) C
IsJacobianElementCollColl( obj ) C
An element obj in the category IsJacobianElement knows
that the multiplication of any elements in the family F of obj
satisfies the Jacobi identity, that is,
x \* y \* z + z \* x \* y + y \* z \* x is zero
for all x, y, z in F.
For example, each Lie matrix (see IsLieMatrix) lies in this category.
IsZeroSquaredElement( obj ) C
IsZeroSquaredElementCollection( obj ) C
IsZeroSquaredElementCollColl( obj ) C
An element obj in the category IsZeroSquaredElement knows
that obj^2 = Zero( obj ).
For example, each Lie matrix (see IsLieMatrix) lies in this category.
Although it is legal to set this filter for any zero squared object, this is really useful only in the case that all elements of a family are known to have square zero.
GAP 4 manual