Generic Element Functions

Contents

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.
Category(r) : RngElt -> Cat
Type(r) : RngElt -> Cat
The `type' of r, that is, the Magma category to which the ring element r belongs. The procedure call ListCategories() gives a list of all the categories.

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. If a is an integer, the coercion will always succeed: the element a.1R will be returned, where 1R 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).
Representative(R) : Rng -> RngElt
Rep(R) : Rng -> RngElt
A representative element of the finite ring R.

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 ak 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 / b returns 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 ak.

Equality and Membership

a eq b : RngElt, RngElt -> BoolElt
Returns true if the elements a and b of R are the same, otherwise false.
a ne b : RngElt, RngElt -> BoolElt
Returns true if the elements a and b of R are distinct, otherwise false.
R eq S : Rng, Rng -> BoolElt
Returns true if the rings R and S are the same, otherwise false.
R ne S : Rng, Rng -> BoolElt
Returns true if the rings R and S are distinct, otherwise false.
a in R : RngElt, Rng -> BoolElt
Returns true if and only if a is an element of R.
a notin R : RngElt, Rng -> BoolElt
Returns true if and only if a is not an element of R.

Predicates on Ring Elements

IsZero(a) : RngElt -> BoolElt
Returns true if and only if the element a of R equals 0R.
IsOne(a) : RngElt -> BoolElt
Returns true if and only if the element a of R equals 1R.
IsMinusOne(a) : RngElt -> BoolElt
Returns true if and only if the element a of R equals the element -1 of R.
IsUnit(a) : RngElt -> BoolElt
Returns true if a is a unit in its parent R, false otherwise.
IsIdempotent(x) : RngElt -> BoolElt
Returns true if and only if x2 equals x.
IsNilpotent(x) : RngElt -> BoolElt
Returns true if and only if some integer power xi of x is zero.
IsZeroDivisor(x) : RngElt -> BoolElt
Returns true if 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 true if 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 true if 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 true if the ring element a is greater than the ring element b, otherwise false.
a ge b : RngElt, RngElt -> BoolElt
Returns true if the ring element a is greater than or equal to the ring element b, otherwise false.
a lt b : RngElt, RngElt -> BoolElt
Returns true if the ring element a is less than the ring element b, otherwise false.
a le b : RngElt, RngElt -> BoolElt
Returns true if the ring element a is less than or equal to the ring element b, otherwise false.
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.
V2.28, 13 July 2023