Element Operations

Contents

Arithmetic Operators

This section lists the basic arithmetic operations available for elements of an algebraically closed field. Elements are always kept in normal form with respect to the defining relations of the field. Computing the inverse of an element may cause a simplification of the field to be performed.

+ a : FldACElt -> FldACElt
- a : FldACElt -> FldACElt
a + b : FldACElt, FldACElt -> FldACElt
a - b : FldACElt, FldACElt -> FldACElt
a * b : FldACElt, FldACElt -> FldACElt
a / b : FldACElt, FldACElt -> FldACElt
a ^ k : FldACElt, RngIntElt -> FldACElt
a +:= b : FldACElt, FldACElt -> FldACElt
a -:= b : FldACElt, FldACElt -> FldACElt
a *:= b : FldACElt, FldACElt -> FldACElt

Equality and Membership

Parent and Category

Parent(a) : FldACElt -> AC
Category(a) : FldACElt -> Cat

Predicates on Ring Elements

a ne b : FldACElt, FldACElt -> BoolElt
a in A : FldACElt, Rng -> BoolElt
a notin A : FldACElt, Rng -> BoolElt
IsNilpotent(a) : FldACElt -> BoolElt
IsIdempotent(a) : FldACElt -> BoolElt
IsUnit(a) : FldACElt -> BoolElt
IsZeroDivisor(a) : FldACElt -> BoolElt
IsRegular(a) : FldAC -> BoolElt
IsIrreducible(a) : FldACElt -> BoolElt
IsPrime(a) : FldACElt -> BoolElt
IsZero(a) : FldACElt -> BoolElt
Return whether a is the zero element of its field. This is the most difficult of all arithmetic functions for algebraically closed fields! To determine whether a is zero, Magma computes the recursive GCD of a, considered as a polynomial in its highest variable, and the appropriate defining polynomial, to determine the result. If the GCD is non-trivial, then this forces a splitting of the defining polynomial, all elements of the field are reduced, and the original element may now be deemed to be zero (it may not be zero because the cofactor of the GCD may be used to perform the simplification). Despite the fact that simplifications may occur, the return value of this function is invariable, and this fact is the most important feature of the whole system, enabling the illusion of a true field to be achieved!
IsOne(a) : FldACElt -> BoolElt
Return whether a is one in its field, which is determined by testing whether (a - 1) is zero. Consequently, a simplification of the field may occur, but the return value is invariable.
IsMinusOne(a) : FldACElt -> BoolElt
Return whether a is minus one in its field, which is determined by testing whether (a + 1) is zero. Consequently, a simplification of the field may occur, but the return value is invariable.
a eq b : FldACElt, FldACElt -> BoolElt
Return whether a = b, which is determined by testing whether (a - b) is zero. Consequently, a simplification of the field may occur, but the return value is invariable.

Minimal Polynomial, Norm and Trace

MinimalPolynomial(a) : FldACElt -> RngUPolElt
Return the minimal polynomial of the element a of the field A, relative to the base field of A. This is the unique minimal-degree irreducible monic polynomial with coefficients in the base field, having a as a root.

This function works as follows. First the minimal polynomial M of a in the affine algebra corresponding to A is computed. M may be reducible in general, so M is factored, and for each irreducible factor F of M, F(a) is evaluated and it is tested whether this evaluation is zero (using the IsZero algorithm). If M is not irreducible, some of these evaluations will cause simplifications of the field, but exactly one of the evaluations will be zero and the corresponding irreducible F is the minimal polynomial of a. Consequently, after F is returned, F(a) will be identically zero so the return value of this function is invariable.

Thus the illusion of a true field is sustained by forcing the minimal polynomial of a to be irreducible, by first performing whatever simplifications of A are necessary for this. (In fact, computing minimal polynomials in this way is one method of achieving simplifications.)

Norm(a) : FldACElt -> FldACElt
Given an element a from an algebraically closed field A, return the absolute norm of a to the base field of A. This is simply computed as ( - 1)^(Degree(M)) times the constant coefficient of M, where M is the irreducible minimal polynomial of a returned by MinimalPolynomial(a). Consequently, a simplification of the field may occur, but the return value is invariable.
Trace(a) : FldACElt -> FldACElt
Given an element a from an algebraically closed field A, return the absolute trace of a to the base field of A. This is simply computed as the negation of the coefficient of xn - 1 in M, where M is the irreducible minimal polynomial of a returned by MinimalPolynomial(a) and n=Degree(M). Consequently, a simplification of the field may occur, but the return value is invariable.
Conjugates(a) : FldACElt -> [ FldACElt ]
Given an element a from an algebraically closed field A, return the conjugates of a as a sequence of elements. The conjugates of a are defined to be the roots in A of the minimal polynomial of a, and a is always included. This function is thus simply equivalent to: ([t[1] : t in Roots(MinimalPolynomial(a), A)]). (No multiplicities are returned as in the Roots function since the minimal polynomial is always squarefree, of course.) As this function first computes the minimal polynomials of a, a simplification of the field may occur, but the return value is invariable.

Example FldAC_Functions (H43E4)

We create two elements of an algebraically closed field and note that they are conjugate.

> A := AlgebraicClosure();
> x := Sqrt(A!2) + Sqrt(A!-3);
> y := Sqrt(A ! (-1 + 2*Sqrt(A!-6)));
> A;
Algebraically closed field with 4 variables
Defining relations:
[
    r4^2 - 2*r3 + 1,
    r3^2 + 6,
    r2^2 + 3,
    r1^2 - 2
]
> x;
r2 + r1
> y;
r4
> x eq y; // depends on choice of square roots
false
> Conjugates(x);
[
    r4,
    -r4,
    r5,
    r6
]
> y in Conjugates(x);
true
Of course, x and y are conjugate if and only if they have the same minimal polynomial, which is the case here:
> P<z> := PolynomialRing(RationalField());
> MinimalPolynomial(x);
z^4 + 2*z^2 + 25
> MinimalPolynomial(y);
z^4 + 2*z^2 + 25
V2.28, 13 July 2023