29.5 Domain Categories

As mentioned in Operational Structure of Domains, the operational structure of a domain is fixed when the domain is constructed. For example, if D was constructed by Monoid then D is in general not regarded as a group in GAP, even if D is in fact closed under taking inverses. In this case, IsGroup returns false for D. The operational structure determines which operations are applicable for a domain, so for example SylowSubgroup is not defined for D and therefore will signal an error.

  • IsStruct( D )

    The functions IsStruct implement the tests whether a domain D has the respective operational structure (upon construction). IsStruct is a filter (see Types of Objects) that involves certain categories (see Categories) and usually also certain properties (see Properties). For example, IsGroup is equivalent to IsMagmaWithInverses and IsAssociative, the first being a category and the second being a property.

    Implications between domain categories describe the hierarchy of operational structures available in GAP. Here are some typical examples.

    -
    IsDomain is implied by each domain category,
    -
    IsMagma is implied by each category that describes the closure under multiplication *,
    -
    IsAdditiveMagma is implied by each category that describes the closure under addition +,
    -
    IsMagmaWithOne implies IsMagma; a magma-with-one is a magma such that each element (and thus also the magma itself) can be asked for its zeroth power,
    -
    IsMagmaWithInverses implies IsMagmaWithOne; a magma-with-inverses is a magma such that each element can be asked for its inverse; important special cases are groups, which in addition are associative,
    -
    a ring is a magma that is also an additive group,
    -
    a ring-with-one is a ring that is also a magma-with-one,
    -
    a division ring is a ring-with-one that is also closed under taking inverses of nonzero elements,
    -
    a field is a commutative division ring.
    For each operational structure struct, there are the domain category IsStruct, the operations StructByGenerators for constructing a domain from generators, GeneratorsOfStruct for storing and accessing generators w.r.t. this structure, ClosureStruct for forming the closure, and AsStruct for getting a domain with the desired structure from one with weaker operational structure and for testing whether a given domain can be regarded as a domain with struct.

    The functions applicable to domains with the various structures are described in the corresponding chapters of the Reference Manual. For example, functions for rings, fields, groups, and vector spaces are described in Chapters Rings, Fields and Division Rings, Groups, and Vector Spaces, respectively. More general functions for arbitrary collections can be found in Chapter Collections.

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

    GAP 4 manual
    February 2000