Primfield
primitive element of an algebraic extension
Calling Sequence
Parameters
Description
Examples
Primfield(L, K)
L
-
set of RootOfs
K
(optional) set of RootOfs
The Primfield function is a placeholder for representing a primitive description of an algebraic extension. It is used in conjunction with either evala or mod.
The call evala(Primfield(L, K)) computes a primitive element of the field L over the field K, that is an element a such that L=K⁡a. In case K is not specified, the smallest possible transcendental extension of the rational numbers is chosen.
A list of the form [[q0],[q1,q2,...,qn]], where the qi's denote equations, is returned: the left-hand side of q0 is a RootOf representing the primitive element and the right-hand side of this equation is the expression of the primitive element in terms of the RootOfs in L. The left-hand side of the other equations are the RootOfs in L and the right-hand side are their expressions in terms of the powers of the primitive element.
The RootOfs in K must form a subset of the RootOfs occurring in L. In other words, K must be a 'syntactic' subfield of the field L.
In case Primfield is used in conjunction with mod then the field K equals Fp, the finite field with p elements and K cannot be specified. If L contains transcendental elements (if L contains variables) then random values in Fp will be substituted for these variables and q0 will not be calculated.
Most Maple procedures used in conjunction with mod do not allow multiple or nested or reducible RootOfs as input. To handle such RootOfs, use Primfield to find a reduction to a single irreducible RootOf modulo p. If the input contains dependent or reducible RootOfs then Primfield in conjunction with evala will generate an error message, but Primfield in conjunction with mod will chose a random factor. This is useful for reducing expressions in characteristic zero to a finite field, a process in which irreducible and independent RootOfs often become reducible or dependent. For this application q0 is often not needed; to avoid its computation include a variable in the set L.
K≔evala⁡Primfield⁡RootOf⁡_Z2−2,RootOf⁡_Z2−3
K≔RootOf⁡_Z4−10⁢_Z2+1=RootOf⁡_Z2−2+RootOf⁡_Z2−3,RootOf⁡_Z2−2=RootOf⁡_Z4−10⁢_Z2+132−9⁢RootOf⁡_Z4−10⁢_Z2+12,RootOf⁡_Z2−3=11⁢RootOf⁡_Z4−10⁢_Z2+12−RootOf⁡_Z4−10⁢_Z2+132
f≔x2⁢RootOf⁡_Z2−3+x⁢RootOf⁡_Z2−2+1
primf≔eval⁡f,K2
primf≔x2⁢11⁢RootOf⁡_Z4−10⁢_Z2+12−RootOf⁡_Z4−10⁢_Z2+132+x⁢RootOf⁡_Z4−10⁢_Z2+132−9⁢RootOf⁡_Z4−10⁢_Z2+12+1
f1≔eval⁡primf,K1
f1≔x2⁢11⁢RootOf⁡_Z2−22+11⁢RootOf⁡_Z2−32−RootOf⁡_Z2−2+RootOf⁡_Z2−332+x⁢RootOf⁡_Z2−2+RootOf⁡_Z2−332−9⁢RootOf⁡_Z2−22−9⁢RootOf⁡_Z2−32+1
evala⁡Normal⁡f−f1
0
alias⁡α=RootOf⁡_Z2−1−RootOf⁡_Z2−2:
alias⁡sqrt3=RootOf⁡_Z2−3:
alias⁡sqrt2=RootOf⁡_Z2−2:
L≔evala⁡Primfield⁡α,sqrt3,sqrt2
L≔RootOf⁡_Z4+−2⁢sqrt2−8⁢_Z2−4⁢sqrt2+6=sqrt3+α,sqrt3=−RootOf⁡_Z4+−2⁢sqrt2−8⁢_Z2−4⁢sqrt2+63⁢sqrt24−RootOf⁡_Z4+−2⁢sqrt2−8⁢_Z2−4⁢sqrt2+632+3⁢RootOf⁡_Z4+−2⁢sqrt2−8⁢_Z2−4⁢sqrt2+6⁢sqrt2+11⁢RootOf⁡_Z4+−2⁢sqrt2−8⁢_Z2−4⁢sqrt2+62,α=−9⁢RootOf⁡_Z4+−2⁢sqrt2−8⁢_Z2−4⁢sqrt2+62+RootOf⁡_Z4+−2⁢sqrt2−8⁢_Z2−4⁢sqrt2+63⁢sqrt24+RootOf⁡_Z4+−2⁢sqrt2−8⁢_Z2−4⁢sqrt2+632−3⁢RootOf⁡_Z4+−2⁢sqrt2−8⁢_Z2−4⁢sqrt2+6⁢sqrt2
p≔17
Primfield⁡α,dummy,sqrt2,sqrt3modp
,dummy=8,α=15⁢RootOf⁡_Z2+14,sqrt3=RootOf⁡_Z2+14,sqrt2=11
Primfield⁡α,sqrt2,sqrt3modp
RootOf⁡_Z2+14=sqrt3,α=15⁢RootOf⁡_Z2+14,sqrt3=RootOf⁡_Z2+14,sqrt2=11
See Also
evala
mod
RootOf
Download Help Document