Generic Ring Functions

The generic functions described in this Chapter apply in principle to every type of ring. For certain rings these are the only applicable functions. The qualification `in principle' in the first sentence is made because for some classes of rings an algorithm to compute certain of these functions does not exist, or has not been implemented. In that case an error will result.

This general list is provided primarily to avoid duplication of common descriptions. In other online help nodes the generic functions will be listed merely without further description, and the emphasis can be on the functions specific to a particular type of ring.

Contents

Related Structures

Parent(R) : Rng -> Pow
The parent of ring R. Currently this returns the power structure of the ring.
Category(R) : Rng -> Cat
Type(R) : Rng -> Cat
The `type' of R, that is, the Magma category to which the ring R belongs. The procedure call ListCategories() gives a list of all the categories.
PrimeField(F) : Fld -> Fld
For a field F, this returns either Fp, if the characteristic p of F is positive, or Q, if the characteristic of F is 0. If F is an extension field then it will return the field at the bottom of the extension tower.
PrimeRing(R) : Rng -> Rng
For a unitary ring R, this returns either Z/nZ, if the characteristic n of R is positive, or Z, if the characteristic of R is 0. If R is an extension ring then it will return the ring at the bottom of the extension tower.
Centre(R) : Rng -> Rng
Center(R) : Rng -> Rng
Given a ring R, return its centre, consisting of the subring of elements commuting with all other elements of R.

Numerical Invariants

Characteristic(R) : Rng -> RngIntElt
The characteristic of the ring R, which is the smallest positive integer m such that m.r=0 for every r∈R, or zero if such m does not exist.
# R : Rng -> RngIntElt
The cardinality of the ring R; here R must be finite.

Predicates and Boolean Operations

IsCommutative(R) : Rng -> BoolElt
Returns true if it is known that the ring R is commutative, false if it is known that R is not commutative. An error results if the answer is not known.
IsUnitary(R) : Rng -> BoolElt
Returns true if the ring R is known to be unitary (that is, if R has a multiplicative identity), false if R has no 1.
IsFinite(R) : Rng -> BoolElt
Returns true if the ring R is known to be a finite ring, false if it is known to be infinite. An error results if the answer is not known.
IsOrdered(R) : Rng -> BoolElt
Returns true if the ring R has a total ordering defined on the set of its elements, false otherwise.
IsField(R) : Rng -> BoolElt
Returns true if the ring R is known to be a field, false if it is known to not be a field. An error results if the answer is not known.
IsDivisionRing(R) : Rng -> BoolElt
Returns true if the ring R is known to be a division ring (that is, every non-zero element is invertible), false if it is known that R is not a division ring. An error results if the answer is not known.
IsEuclideanDomain(R) : Rng -> BoolElt
Returns true if the ring R is known to be a euclidean domain, false if it is known that R is not a euclidean domain. An error results if the answer is not known.
IsEuclideanRing(R) : Rng -> BoolElt
Returns true if the ring R is known to be euclidean, false if it is known that R is not euclidean. An error results if the answer is not known.
IsMagmaEuclideanRing(R) : Rng -> BoolElt
Returns true iff the ring R is a computable euclidean ring within Magma (i.e., iff the necessary euclidean operations are defined for R so algorithms requiring a euclidean ring will work).
IsPID(R) : Rng -> BoolElt
IsPrincipalIdealDomain(R) : Rng -> BoolElt
Returns true if the ring R is known to be a principal ideal domain, false if it is known that R is not a principal ideal domain. An error results if the answer is not known.
IsPIR(R) : Rng -> BoolElt
IsPrincipalIdealRing(R) : Rng -> BoolElt
Returns true if the ring R is known to be a principal ideal ring, false if it is known that R has non-principal ideals. An error results if the answer is not known.
IsUFD(R) : Rng -> BoolElt
IsUniqueFactorizationDomain(R) : Rng -> BoolElt
Returns true if the ring R is known to be a unique factorization domain, false if it is known that R is not a unique factorization domain. An error results if the answer is not known.
IsDomain(R) : Rng -> BoolElt
IsIntegralDomain(R): Rng -> BoolElt
Returns true if it is known that R is an integral domain (i. e., R has no zero divisors), false if R is known to have zero divisors. An error results if the answer is not known.
HasGCD(R) : Rng -> BoolElt
Returns true iff there is a GCD algorithm for elements of ring R in Magma.
R eq S : Rng, Rng -> Rng
For certain pairs R, S of rings, this returns true if R and S refer to the same ring, and false otherwise. However, if R and S belong to different categories an error may result.
R ne S : Rng, Rng -> Rng
For certain pairs R, S of rings, this returns true if R and S refer to different rings, and false otherwise. However, if R and S belong to different categories an error may result.
V2.28, 13 July 2023