Dom::AlgebraicExtension
-- simple
algebraic field extensionsFor a given field F and a polynomial f
∈F[x], Dom::AlgebraicExtension
(F, f,
x)
creates the residue class field
F[x]/〈f〉.
Dom::AlgebraicExtension
(F, f1=f2, x)
does
the same for f=f1-f2.
Dom::AlgebraicExtension(F, f)
Dom::AlgebraicExtension(F, f, x)
Dom::AlgebraicExtension(F, f1=f2)
Dom::AlgebraicExtension(F, f1=f2, x)
F |
- | the ground field: a domain of category Cat::Field |
f, f1, f2 |
- | polynomials or polynomial expressions |
x |
- | identifier |
Dom::AlgebraicExtension
(F, f, x)
creates
the field F[x]/〈f〉 of residue classes of
polynomials modulo f. This field can also be written as
F(x)/〈f〉, the field of residue classes of rational
functions modulo f.x
may be omitted if f
is a
univariate polynomial or a polynomial expression that contains exactly
one indeterminate; it is then taken to be the indeterminate occurring
in f
.F
must have normal representation.f
must not be a constant polynomial.f
must be irreducible; this is not
checked.f
may be a polynomial over a coefficient ring
different from F
, or multivariate; however, it must be
possible to convert it to a univariate polynomial over F
.
See Example 2.Dom::AlgebraicExtension
(F, f)(g)
creates
the residue class of g
modulo f
.
Dom::AlgebraicExtension
(F,f)(g)
Dom::AlgebraicExtension
(F, f)(rat)
g |
- | element of the residue class to be defined: polynomial
over F in the variable x , or any object
convertible to such. |
rat |
- | rational function that belongs to the residue class to
be defined: expression whose numerator and denominator can be converted
to polynomials over F in the variable x . The
denominator must not be a multiple of f . |
rat
has numerator and denominator p
and q
, respectively, then
Dom::AlgebraicExtension
(F,f)(rat)
equals
Dom::AlgebraicExtension
(F,f)(p)
divided by
Dom::AlgebraicExtension
(F,f)(q)
.Cat::Field
, Cat::Algebra(F)
,
Cat::VectorSpace(F)
,
F::hasProp(Cat::DifferentialRing)
then
F::hasProp(Cat::PartialDifferentialRing)
then
the zero element of the field extension
the unit element of the field extension
the ground field of the extension
the minimal polynomial f
the degree of the extension, i.e., of f
the unknown of the minimal polynomial f
the characteristic, which always equals the characteristic of the ground field. This entry only exists if the characteristic of the ground field is known.
the dimension of the field when viewed as a vector space over the prime field. This entry only exists if the ground field is a prime field, or its degree over its prime field is known.
_plus(dom a...)
_plus
of the system kernel._mult(any a...)
_mult
of the system kernel._negate(dom a)
a
._negate
of the system kernel._subtract(dom a, dom
b)
_subtract
of the system
kernel.iszero(dom a)
TRUE
if a
is known to
be zero, and FALSE
otherwise. If equality to zero can be
decided for elements of the ground field, the answer FALSE
implies that a
cannot be zero.iszero
.intmult(dom a, integer b)
a*b
."_mult"
in this
special case._invert(dom a)
a
with respect to
multiplication. a
must be nonzero._invert
.gcd(dom a...)
gcd
.conjNorm(dom a)
a
, i.e., the product
of all conjugates of a
(images of a
under
Galois automorphisms).conjTrace(dom a)
a
, i.e., the sum of
all conjugates of a
(images of a
under Galois
automorphisms).minimalPolynomial(dom a)
a
is a root.D(dom a)
"D"
, too.D
.diff(dom a, identifier x1...)
"diff"
, too.diff
.random()
random
method of the ground field is used to
generate coefficients of a random polynomial of the ground field; the
residue class of that polynomial is the return value. Hence the
probability distribution of the elements returned depends on that of
the random
method of the ground field.convert(any x)
x
into a field
element.FAIL
is returned.convert_to(dom a, domain T)
a
into an element of
T
, or returns FAIL
if the conversion is
impossible.expr(dom a)
a
into an expression.expr
.We adjoin a cubic root alpha
of
2
to the rationals.
>> G := Dom::AlgebraicExtension(Dom::Rational, alpha^3 = 2)
3 Dom::AlgebraicExtension(Dom::Rational, alpha - 2 = 0, alpha)
The third power of a cubic root of 2
equals
2
, of course.
>> G(alpha)^3
2
The trace of α is zero:
>> G::conjTrace(G(alpha))
0
You can also create random elements:
>> G::random()
2 - 65 alpha - 814 alpha + 824
The ground field may be an algebraic extension itself.
In this way, it is possible to construct a tower of fields. In the
following example, an algebraic extension is defined using a primitive
element alpha
, and the primitive element beta
of a further extension is defined in terms of alpha
. In
such cases, when a minimal equation contains more than one identifier,
a third argument to Dom::AlgebraicExtension
must be
explicitly given.
>> F := Dom::AlgebraicExtension(Dom::Rational, alpha^2 = 2): G := Dom::AlgebraicExtension(F, bet^2 + bet = alpha, bet)
Dom::AlgebraicExtension(Dom::AlgebraicExtension(Dom::Rational, 2 2 alpha - 2 = 0, alpha), bet - alpha + bet = 0, bet)
We want to define an extension of the field of fractions of the ring of bivariate polynomials over the rationals.
>> P:= Dom::DistributedPolynomial([x, y], Dom::Rational): F:= Dom::Fraction(P): K:= Dom::AlgebraicExtension(F, alpha^2 = x, alpha)
Dom::AlgebraicExtension(Dom::Fraction( Dom::DistributedPolynomial([x, y], Dom::Rational, LexOrder)) 2 , alpha - x = 0, alpha)
Now K = Q[sqrt(x), y] . Of course, the square root function has the usual derivative; note that 1/sqrt(x) can be expressed as α/x:
>> diff(K(alpha), x)
alpha ----- 2 x
On the other hand, the derivative of sqrt(x) with respect to y is zero, of course:
>> diff(K(alpha), y)
0
We must not use D
here. This works only if we start our
construction with a ring of univariate polynomials:
>> P:= Dom::DistributedPolynomial([x], Dom::Rational): F:= Dom::Fraction(P): K:= Dom::AlgebraicExtension(F, alpha^2 = x, alpha): D(K(alpha))
alpha ----- 2 x
F::hasProp(Ax::canonicalRep)
then
minimalPolynomial
is now
available.diff
and D
are now available for
(partial) differential fields if such methods exist in the ground
field.