Generic Element Functions#
Parent and Category#
- Parent(r): RngElt -> Rng#
The (default) parent ring of ring element \(r\). Usually the parent of \(r\) has been created explicitly before, but in certain cases, such as literal integers, rationals, reals, and values returned by certain functions a default parent is created in the background.
Creation of Elements#
- Zero(R): Rng -> RngElt#
The zero element of ring \(R\); this is equivalent to
R ! 0.
- One(R): Rng -> RngElt#
- Id(R): Rng -> RngElt#
The multiplicative identity \(1\) of ring \(R\); this is equivalent to
R ! 1.
- R ! a: Rng, RngElt -> RngElt#
Coerce the element \(a\) of some ring into the ring \(R\). (The rules on coercion are explained earlier in this Chapter.) If \(a\) is an integer, the coercion will always succeed: the element \(a\cdot 1_R\) will be returned, where \(1_R\) is the unit element of \(R\).
- Random(R): Rng -> RngElt#
A random element of the finite ring \(R\) (every element of \(R\) has the same probability of being returned).
Arithmetic Operations#
- + a: RngElt -> RngElt#
Element \(a\).
- - a: RngElt -> RngElt#
The negation (additive inverse) of element \(a\).
- a + b: RngElt, RngElt -> RngElt#
The sum of the ring elements \(a\) and \(b\); if \(a\) and \(b\) do not belong to the same ring \(R\), an attempt will be made to find a common overstructure in which the sum can be taken.
- a - b: RngElt, RngElt -> RngElt#
The difference of the ring elements \(a\) and \(b\); if \(a\) and \(b\) do not belong to the same ring \(R\), an attempt will be made to find a common overstructure in which the difference can be taken.
- a * b: RngElt, RngElt -> RngElt#
The product of the ring elements \(a\) and \(b\); if \(a\) and \(b\) do not belong to the same ring \(R\), an attempt will be made to find a common overstructure in which the product can be taken.
- a ^ k: RngElt, RngIntElt -> RngElt#
Form the \(k\)-th power of the ring element \(a\), for small \(k\). If \(k = 0\), then \(a^k\) returns \(1\), even when \(a = 0\). If \(k\) is negative, \(a\) must have a multiplicative inverse and the result is \((a^{-1})^{-k}\).
- a / b: RngElt, RngElt -> RngElt#
Given an element \(a\) of \(R\) and a unit \(b\) of \(R\), form the quotient of the elements \(a\) and \(b\). If \(b\) is not invertible in \(R\), an error results, unless both \(a\) and \(b\) are integers, in which case
a / breturns the rational number \(a/b\). If \(a\) and \(b\) do not belong to the same ring \(R\), an attempt will be made to find a common overstructure in which the quotient can be taken.
- a +:= b: RngElt, RngElt -> RngElt#
Mutation assignment: change \(a\) into the sum of \(a\) and \(b\).
- a -:= b: RngElt, RngElt -> RngElt#
Mutation assignment: change \(a\) into the difference of \(a\) and \(b\).
- a *:= b: RngElt, RngElt -> RngElt#
Mutation assignment: change \(a\) into the product of \(a\) and \(b\).
- a /:= b: RngElt, RngElt -> RngElt#
Mutation assignment: change \(a\) into the quotient of \(a\) and \(b\).
- a ^:= k: RngElt, RngIntElt -> RngElt#
Mutation assignment: change \(a\) into the power \(a^k\).
Equality and Membership#
- a eq b: RngElt, RngElt -> BoolElt#
Returns
trueif the elements \(a\) and \(b\) of \(R\) are the same, otherwisefalse.
- a ne b: RngElt, RngElt -> BoolElt#
Returns
trueif the elements \(a\) and \(b\) of \(R\) are distinct, otherwisefalse.
- R eq S: Rng, Rng -> BoolElt#
Returns
trueif the rings \(R\) and \(S\) are the same, otherwisefalse.
- R ne S: Rng, Rng -> BoolElt#
Returns
trueif the rings \(R\) and \(S\) are distinct, otherwisefalse.
- a in R: RngElt, Rng -> BoolElt#
Returns
trueif and only if \(a\) is an element of \(R\).
- a notin R: RngElt, Rng -> BoolElt#
Returns
trueif and only if \(a\) is not an element of \(R\).
Predicates on Ring Elements#
- IsZero(a): RngElt -> BoolElt#
Returns
trueif and only if the element \(a\) of \(R\) equals \(0_R\).
- IsOne(a): RngElt -> BoolElt#
Returns
trueif and only if the element \(a\) of \(R\) equals \(1_R\).
- IsMinusOne(a): RngElt -> BoolElt#
Returns
trueif and only if the element \(a\) of \(R\) equals the element \(-1\) of \(R\).
- IsUnit(a): RngElt -> BoolElt#
Returns
trueif \(a\) is a unit in its parent \(R\),falseotherwise.
- IsIdempotent(x): RngElt -> BoolElt#
Returns
trueif and only if \(x^2\) equals \(x\).
- IsNilpotent(x): RngElt -> BoolElt#
Returns
trueif and only if some integer power \(x^i\) of \(x\) is zero.
- IsZeroDivisor(x): RngElt -> BoolElt#
Returns
trueif and only if \(x\) is a zero-divisor, that is, there exists an element \(y\) in the parent \(R\) of \(x\) such that \(xy=0\).
- IsIrreducible(x): RngElt -> BoolElt#
Returns
trueif and only if the parent \(R\) of the element \(x\) is a domain and \(x\) is irreducible in \(R\), that is, \(x\) is a non-unit of \(R\) and whenever a product \(ab\) of elements of \(R\) divides \(x\) then \(a\) or \(b\) is a unit of \(R\).
- IsPrime(x): RngElt -> BoolElt#
Returns
trueif and only if the parent \(R\) of the element \(x\) is a domain and \(x\) is a prime element of \(R\), that is, \(x\) is neither \(0\) nor a unit and whenever \(x\) divides the product \(ab\) of two elements of \(R\) it divides \(a\) or \(b\).
Comparison of Ring Elements#
The comparison operations are only defined on types of ring that are ordered.
- a gt b: RngElt, RngElt -> BoolElt#
Returns
trueif the ring element \(a\) is greater than the ring element \(b\), otherwisefalse.
- a ge b: RngElt, RngElt -> BoolElt#
Returns
trueif the ring element \(a\) is greater than or equal to the ring element \(b\), otherwisefalse.
- a lt b: RngElt, RngElt -> BoolElt#
Returns
trueif the ring element \(a\) is less than the ring element \(b\), otherwisefalse.
- a le b: RngElt, RngElt -> BoolElt#
Returns
trueif the ring element \(a\) is less than or equal to the ring element \(b\), otherwisefalse.
- Maximum(a, b): RngElt, RngElt -> RngElt#
The maximum of the ring elements \(a\) and \(b\); if \(a\) and \(b\) do not belong to the same ring \(R\), an attempt will be made to find a common overstructure in which the maximum can be taken.
- Maximum(Q): [RngIntElt] -> RngElt#
The maximum of the sequence \(Q\) of ring elements.
- Minimum(a, b): RngElt, RngElt -> RngElt#
The minimum of the ring elements \(a\) and \(b\); if \(a\) and \(b\) do not belong to the same ring \(R\), an attempt will be made to find a common overstructure in which the minimum can be taken.
- Minimum(Q): [RngIntElt] -> RngElt#
The minimum of the sequence \(Q\) of ring elements.