29.13 Useful Categories of Elements

This section and the following one are rather technical, and may be interesting only for those GAP users who want to implement new kinds of elements.

It deals with certain categories of elements that are useful mainly for the design of elements, from the viewpoint that one wants to form certain domains of these elements. For example, a domain closed under multiplication * (a so-called magma, see Chapter Magmas) makes sense only if its elements can be multiplied, and the latter is indicated by the category IsMultiplicativeElement for each element. Again note that the underlying idea is that a domain is regarded as generated by given elements, and that these elements carry information about the desired domain. For general information on categories and their hierarchies, see Categories.

  • IsExtAElement( obj ) C

    An external additive element is an object that can be added via + with other elements (not necessarily in the same family, see Families).

  • IsNearAdditiveElement( obj ) C

    A near-additive element is an object that can be added via + with elements in its family (see Families); this addition is not necessarily commutative.

  • IsAdditiveElement( obj ) C

    An additive element is an object that can be added via + with elements in its family (see Families); this addition is commutative.

  • IsNearAdditiveElementWithZero( obj ) C

    A near-additive element-with-zero is an object that can be added via + with elements in its family (see Families), and that is an admissible argument for the operation Zero (see Zero); this addition is not necessarily commutative.

  • IsAdditiveElementWithZero( obj ) C

    An additive element-with-zero is an object that can be added via + with elements in its family (see Families), and that is an admissible argument for the operation Zero (see Zero); this addition is commutative.

  • IsNearAdditiveElementWithInverse( obj ) C

    A near-additive element-with-inverse is an object that can be added via + with elements in its family (see Families), and that is an admissible argument for the operations Zero (see Zero) and AdditiveInverse (see AdditiveInverse); this addition is not necessarily commutative.

  • IsAdditiveElementWithInverse( obj ) C

    An additive element-with-inverse is an object that can be added via + with elements in its family (see Families), and that is an admissible argument for the operations Zero (see Zero) and AdditiveInverse (see AdditiveInverse); this addition is commutative.

  • IsExtLElement( obj ) C

    An external left element is an object that can be multiplied from the left, via *, with other elements (not necessarily in the same family, see Families).

  • IsExtRElement( obj ) C

    An external right element is an object that can be multiplied from the right, via *, with other elements (not necessarily in the same family, see Families).

  • IsMultiplicativeElement( obj ) C

    A multiplicative element is an object that can be multiplied via * with elements in its family (see Families).

  • IsMultiplicativeElementWithOne( obj ) C

    A multiplicative element-with-one is an object that can be multiplied via * with elements in its family (see Families), and that is an admissible argument for the operation One (see One).

  • IsMultiplicativeElementWithZero( elt ) C

    Elements in a family which can be the operands of the * and the operation MultiplicativeZero.

  • IsMultiplicativeElementWithInverse( obj ) C

    A multiplicative element-with-inverse is an object that can be multiplied via * with elements in its family (see Families), and that is an admissible argument for the operations One (see One) and Inverse (see Inverse). (Note the wording ``admissable'': an object in this category does not necessarily have an inverse, Inverse may return fail.)

  • IsVector( obj ) C

    A vector is an additive-element-with-inverse that can be multiplied from the left and right with other objects (not necessarily of the same type). Examples are cyclotomics, finite field elements, and of course row vectors (see below).

    Note that not all lists of ring elements are regarded as vectors, for example lists of matrices are not vectors. This is because although the category IsAdditiveElementWithInverse is implied by the join of its collections category and IsList, the family of a list entry may not imply IsAdditiveElementWithInverse for all its elements.

  • IsNearRingElement( obj ) C

    IsNearRingElement is just a synonym for the join of IsNearAdditiveElementWithInverse and IsMultiplicativeElement.

  • IsRingElement( obj ) C

    IsRingElement is just a synonym for the join of IsAdditiveElementWithInverse and IsMultiplicativeElement.

  • IsNearRingElementWithOne( obj ) C

    IsNearRingElementWithOne is just a synonym for the join of IsNearAdditiveElementWithInverse and IsMultiplicativeElementWithOne.

  • IsRingElementWithOne( obj ) C

    IsRingElementWithOne is just a synonym for the join of IsAdditiveElementWithInverse and IsMultiplicativeElementWithOne.

  • IsNearRingElementWithInverse( obj ) C

  • IsRingElementWithInverse( obj ) C
  • IsScalar( obj ) C

    IsRingElementWithInverse and IsScalar are just synonyms for the join of IsAdditiveElementWithInverse and IsMultiplicativeElementWithInverse.

    More special categories of this kind are described in the contexts where they arise, they are IsRowVector (see IsRowVector), IsMatrix (see IsMatrix), IsOrdinaryMatrix (see IsOrdinaryMatrix), and IsLieMatrix (see IsLieMatrix).

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

    GAP 4 manual
    February 2000