Algfield
compute an irreducible representation for a field extension
Calling Sequence
Parameters
Description
Examples
evala(Algfield(S, G))
S
-
set of algebraic numbers in RootOf notation
G
(optional) set of algebraic numbers in RootOf notation (a ground field)
Given a set of RootOfs representing algebraic numbers (see algnum) or algebraic functions (see algfun), this function attempts to compute a set of irreducible RootOfs representing the same field. The set S may also contains algebraic numbers in radical notation (see radnum), which be will converted to the RootOf notation.
Algebraic functions in RootOf notation (algfun) or radical notation (radfun) are also valid inputs, but in this case, this routine will usually fail to find an irreducible representation if some factorizations are found (see below).
A set S of RootOfs is called irreducible (or independent) if the RootOfs satisfy no non-trivial algebraic relations. In other words, the polynomial defining a RootOf R in S must be irreducible over the field generated by the RootOfs in S which do not contain R. This function is similar to Indep and radfield.
Typically, this function may be used to preprocess an expression involving reducible algebraic numbers in RootOf notation before invoking a procedure which requires the RootOfs to be irreducible.
The output is a five element list of the following form (the first three elements are the most important ones):
[[r_1=f_1(R_1,...,R_s), r_2=f_2(R_1,....,R_s),...., r_t=f_t(R_1,...,R_s)],
[[R_1=g_1(r_1,...,r_t), R_2=g_2(r_1,....,r_t),...., R_s=g_s(r_1,...,r_t)],
{R_1,...,R_s},
return_code,
{V_1=W_1,...,V_u=W_u}]
where the r_i's are the input RootOfs, the R_i's are the output RootOfs, the f_i's are the expressions of the r_i's in terms of the R_i's and the g_i's are the expressions of the R_i's in terms of the r_i's.
The first sublist is a forward substitution list meant to be used in conjunction with the eval and subs commands. The purpose of this list is to transform an expression so that it involves only a set of irreducible RootOfs.
The second sublist is a backward substitution list meant to restore the original RootOfs.
The third element is the set of irreducible RootOfs.
The return code can be true, if the routine could find a set of irreducible RootOfs to express the input, false if such a set could not be found and some unresolved relations exist (see example below). The latter usually happens when the input contains reducible algebraic functions.
The fifth element is a set of unresolved relations.
Note that trivial substitutions of the form R=R are omitted so that the number of elements in the forward (resp. backward) substitution list may not be t (resp. s).
If a second argument G is given, then the RootOfs in the set G are considered as independent.
WARNINGS:
The running time of this algorithm is, in general, exponential in the number of input RootOfs, and so is the degree of the extension generated by the input.
Since the ordering of objects may vary from a session to another, the output may change accordingly. The ordering may also have an influence on the running time.
r1≔RootOf⁡_Z4−4,index=3
evala⁡Algfield⁡r1
RootOf⁡_Z4−4,index=3=RootOf⁡_Z2−2,index=2,RootOf⁡_Z2−2,index=2=RootOf⁡_Z4−4,index=3,RootOf⁡_Z2−2,index=2,true,∅
r2≔RootOf⁡_Z2−3,index=1
r3≔RootOf⁡_Z2−6,index=1
evala⁡Algfield⁡r1,r2,r3
RootOf⁡_Z4−4,index=3=−RootOf⁡_Z2−6,index=1⁢RootOf⁡_Z2−3,index=13,,RootOf⁡_Z2−6,index=1,RootOf⁡_Z2−3,index=1,true,∅
alias⁡s1=RootOf⁡_Z4−1+r12,index=1:
alias⁡s2=RootOf⁡_Z2−2,index=2:
evala⁡Algfield⁡s1
RootOf⁡_Z4−4,index=3=s2,s1=RootOf⁡_Z2+s2+1,index=1,s2=RootOf⁡_Z4−4,index=3,RootOf⁡_Z2+s2+1,index=1=s1,s2,RootOf⁡_Z2+s2+1,index=1,true,∅
Factorization algorithms for polynomials over algebraic extension fields usually require irreducible RootOfs. In the example below, the polynomial p is transformed and its coefficients are restored after the factorization step.
alias⁡ζ3=RootOf⁡_Z3−1,index=2:
p≔x3+x2⁢ζ3−x⁢ζ32−1+x−ζ3
p≔x3+x2⁢ζ3−x⁢ζ32+x−ζ3−1
A≔evala⁡Algfield⁡ζ3:
p1≔factor⁡eval⁡p,A1:
eval⁡p1,A2
−x2+2⁢ζ3⁢x−ζ3⁢−x+ζ3
Some examples of failure:
evala⁡Algfield⁡RootOf⁡_Z2−x2,index=1
,,∅,false,RootOf⁡_Z2−x2,index=1=x,RootOf⁡_Z2−x2,index=1=−x
Here, Algfield failed because none of the possible factors is equal, as a function of the complex variable x, to the input function.
r4≔RootOf⁡_Z4−4
evala⁡Algfield⁡r4
,,∅,false,RootOf⁡_Z4−4=RootOf⁡_Z2−2,RootOf⁡_Z4−4=RootOf⁡_Z2+2
Algfield fails because there are two possible choices for r4. The possible relations are given by the fifth element of the list.
r5≔RootOf⁡_Z2−3
evala⁡Algfield⁡r2,r5
,,RootOf⁡_Z2−3,index=1,false,RootOf⁡_Z2−3=−RootOf⁡_Z2−3,index=1,RootOf⁡_Z2−3=RootOf⁡_Z2−3,index=1
Algfield does not know whether r2=r5 or not.
See Also
evala
Indep
RootOf,indexed
Download Help Document