GAP Manual: 5.29. Ring Records

A ring R is represented by a record with the following entries.

isDomain:
is of course always the value true.

isRing:
is of course always the value true.

isCommutativeRing:
is true if the multiplication is known to be commutative, false if the multiplication is known to be noncommutative, and unbound otherwise.

isIntegralRing:
is true if R is known to be a commutative domain with 1 without zero divisor, false if R is known to lack one of these properties, and unbound otherwise.

isUniqueFactorizationRing:
is true if R is known to be a domain with unique factorization into primes, false if R is known to have a nonunique factorization, and unbound otherwise.

isEuclideanRing:
is true if R is known to be a Euclidean domain, false if it is known not to be a Euclidean domain, and unbound otherwise.

zero:
is the additive neutral element.

units:
is the list of units of the ring if it is known.

size:
is the size of the ring if it is known. If the ring is not finite this is the string "infinity".

one:
is the multiplicative neutral element, if the ring has one.

integralBase:
if the ring is, as additive group, isomorphic to the direct product of a finite number of copies of Z this contains a base.

As an example of a ring record, here is the definition of the ring record Integers.

    rec(

        # category components
        isDomain                    := true,
        isRing                      := true,

        # identity components
        generators                  := [ 1 ],
        zero                        := 0,
        one                         := 1,
        name                        := "Integers",

        # knowledge components
        size                        := "infinity",
        isFinite                    := false,
        isCommutativeRing           := true,
        isIntegralRing              := true,
        isUniqueFactorizationRing   := true,
        isEuclideanRing             := true,
        units                       := [ -1, 1 ],

        # operations record
        operations                  := rec(
            ...
            IsPrime                 := function ( Integers, n )
                return IsPrimeInt( n );
            end,
            ...
            'mod'                   := function ( Integers, n, m )
                return n mod m;
            end,
            ... ) ) 

~~~ [prev] [up]