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 the following Chapters 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.
Numerical Invariants
Predicates and Boolean Operations
- IsCommutative(R): Rng -> BoolElt
Returns
trueif it is known that the ring \(R\) is commutative,falseif it is known that \(R\) is not commutative. An error results if the answer is not known.
- IsUnitary(R): Rng -> BoolElt
Returns
trueif the ring \(R\) is known to be unitary (that is, if \(R\) has a multiplicative identity),falseif \(R\) has no \(1\).
- IsFinite(R): Rng -> BoolElt
Returns
trueif the ring \(R\) is known to be a finite ring,falseif it is known to be infinite. An error results if the answer is not known.
- IsOrdered(R): Rng -> BoolElt
Returns
trueif the ring \(R\) has a total ordering defined on the set of its elements,falseotherwise.
- IsField(R): Rng -> BoolElt
Returns
trueif the ring \(R\) is known to be a field,falseif it is known to not be a field. An error results if the answer is not known.
- IsDivisionRing(R): Rng -> BoolElt
Returns
trueif the ring \(R\) is known to be a division ring (that is, every non-zero element is invertible),falseif it is known that \(R\) is not a division ring. An error results if the answer is not known.
- IsEuclideanDomain(R): Rng -> BoolElt
Returns
trueif the ring \(R\) is known to be a euclidean domain,falseif it is known that \(R\) is not a euclidean domain. An error results if the answer is not known.
- IsEuclideanRing(R): Rng -> BoolElt
Returns
trueif the ring \(R\) is known to be euclidean,falseif it is known that \(R\) is not euclidean. An error results if the answer is not known.
- IsMagmaEuclideanRing(R): Rng -> BoolElt
Returns
trueiff 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
trueif the ring \(R\) is known to be a principal ideal domain,falseif 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
trueif the ring \(R\) is known to be a principal ideal ring,falseif 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
trueif the ring \(R\) is known to be a unique factorization domain,falseif 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
trueif it is known that \(R\) is an integral domain (i.e., \(R\) has no zero divisors),falseif \(R\) is known to have zero divisors. An error results if the answer is not known.
- HasGCD(R): Rng -> BoolElt
Returns
trueiff there is a GCD algorithm for elements of ring \(R\) in Magma.