29.14 Useful Categories for all Elements of a Family

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.

    [Top] [Previous] [Up] [Index]

    GAP 4 manual
    February 2000