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#
- Characteristic(R): Rng -> RngIntElt#
The characteristic of the ring \(R\), which is the smallest positive integer \(m\) such that \(m\cdot r=0\) for every \(r\in 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
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.
- R eq S: Rng, Rng -> Rng#
For certain pairs \(R, S\) of rings, this returns
trueif \(R\) and \(S\) refer to the same ring, andfalseotherwise. 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
trueif \(R\) and \(S\) refer to different rings, andfalseotherwise. However, if \(R\) and \(S\) belong to different categories an error may result.