Dom::AlgebraicExtension -- simple
algebraic field extensions
IntroductionFor 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.
DomainDom::AlgebraicExtension(F, f)
Dom::AlgebraicExtension(F, f, x)
Dom::AlgebraicExtension(F, f1=f2)
Dom::AlgebraicExtension(F, f1=f2, x)
ParametersF |
- | the ground field: a domain of category Cat::Field |
f, f1, f2 |
- | polynomials or polynomial expressions |
x |
- | identifier |
DetailsDom::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.
IntroductionDom::AlgebraicExtension(F, f)(g) creates
the residue class of g modulo f.
Creating
ElementsDom::AlgebraicExtension(F,f)(g)
Dom::AlgebraicExtension(F, f)(rat)
Parametersg |
- | 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. |
Detailsrat 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
Related
Domainsthe 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.
Example
1We 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
Example
2The 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)
Example
3We 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
Super-DomainF::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.