{VERSION 4 0 "SUN SPARC SOLARIS" "4.0" } {USTYLETAB {CSTYLE "Maple Input" -1 0 "Courier" 0 1 255 0 0 1 0 1 0 0 1 0 0 0 0 1 }{CSTYLE "2D Math" -1 2 "Times" 0 1 0 0 0 0 0 0 2 0 0 0 0 0 0 1 }{CSTYLE "2D Output" 2 20 "" 0 1 0 0 255 1 0 0 0 0 0 0 0 0 0 1 } {CSTYLE "" -1 256 "" 1 24 0 0 0 0 0 0 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 257 "" 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 258 "" 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 259 "" 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 260 "" 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 } {CSTYLE "" -1 261 "" 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 }{PSTYLE "Normal " -1 0 1 {CSTYLE "" -1 -1 "" 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 }0 0 0 -1 -1 -1 0 0 0 0 0 0 -1 0 }{PSTYLE "Heading 1" 0 3 1 {CSTYLE "" -1 -1 "" 1 18 0 0 0 0 0 1 0 0 0 0 0 0 0 0 }1 0 0 0 8 4 0 0 0 0 0 0 -1 0 } {PSTYLE "Maple Output" 0 11 1 {CSTYLE "" -1 -1 "" 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 }3 3 0 -1 -1 -1 0 0 0 0 0 0 -1 0 }{PSTYLE "" 11 12 1 {CSTYLE "" -1 -1 "" 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 }1 0 0 -1 -1 -1 0 0 0 0 0 0 -1 0 }} {SECT 0 {EXCHG {PARA 0 "" 0 "" {TEXT -1 0 "" }{TEXT 256 30 "Factoring \+ over a number field." }{TEXT -1 0 "" }}}{SECT 1 {PARA 3 "" 0 "" {TEXT -1 33 "The Norm over a field extension. " }}{PARA 0 "" 0 "" {TEXT -1 0 "" }}{PARA 0 "" 0 "" {TEXT -1 106 "Let K be a field and L be an exte nsion field of K. In other words: L is a field, and K is a subfield of L." }}{PARA 0 "" 0 "" {TEXT -1 0 "" }}{PARA 0 "" 0 "" {TEXT -1 41 "Th en L can be viewed as a K-vector space." }}{PARA 0 "" 0 "" {TEXT -1 0 "" }}{PARA 0 "" 0 "" {TEXT -1 115 "The index of K in L is denoted as [ L:K]. This number is defined as the dimension of L, viewed as a K-vec tor space." }}{PARA 0 "" 0 "" {TEXT -1 0 "" }}{PARA 0 "" 0 "" {TEXT -1 45 "If a is an element of L, then define the map:" }}{PARA 0 "" 0 " " {TEXT -1 23 " Psi_a := L ---> L" }}{PARA 0 "" 0 "" {TEXT -1 20 "as Psi_a( b ) = a*b." }}{PARA 0 "" 0 "" {TEXT -1 0 "" }}{PARA 0 "" 0 "" {TEXT -1 90 "If we view L as a vector space over the field K, then \+ Psi_a is a K-linear map from L to L." }}{PARA 0 "" 0 "" {TEXT -1 0 "" }}{PARA 0 "" 0 "" {TEXT 257 12 "Definitions:" }}{PARA 0 "" 0 "" {TEXT -1 8 "*) The " }{TEXT 258 5 "Norm " }{TEXT -1 70 "of a over L/K is de fined as the determinant of the K-linear map Psi_a." }}{PARA 0 "" 0 " " {TEXT -1 0 "" }}{PARA 0 "" 0 "" {TEXT -1 8 "*) The " }{TEXT 259 5 " Trace" }{TEXT -1 56 " of a over L/K is defined as the trace of the map Psi_a." }}{PARA 0 "" 0 "" {TEXT -1 0 "" }}{PARA 0 "" 0 "" {TEXT -1 8 "*) The " }{TEXT 260 26 "characteristic polynomial " }{TEXT -1 67 "of a over L/K is defined as the characteristic polynomial of Psi_a." }} {PARA 0 "" 0 "" {TEXT -1 0 "" }}{PARA 0 "" 0 "" {TEXT -1 11 "Some fact s:" }}{PARA 0 "" 0 "" {TEXT -1 94 " If M, N are linear maps, then d et(M*N)=det(M)*det(M) and trace(M+N) = trace(M) + trace(N)." }}{PARA 0 "" 0 "" {TEXT -1 0 "" }}{PARA 0 "" 0 "" {TEXT -1 6 "Hence:" }}{PARA 0 "" 0 "" {TEXT -1 23 " If a1, a2 in L, then:" }}{PARA 0 "" 0 "" {TEXT -1 39 " Norm(a1*a2) = Norm(a1)*Norm(a2)" }}{PARA 0 "" 0 " " {TEXT -1 3 "and" }}{PARA 0 "" 0 "" {TEXT -1 45 " Trace(a1+a2) = Trace(a1) + Trace(a2)." }}{PARA 0 "" 0 "" {TEXT -1 0 "" }}{PARA 0 " " 0 "" {TEXT -1 23 "So Norm commutes with *" }}{PARA 0 "" 0 "" {TEXT -1 25 "And Trace commutes with +" }}{PARA 0 "" 0 "" {TEXT -1 0 "" }} {PARA 0 "" 0 "" {TEXT -1 80 "If a in L, then we can consider the follo wing three fields: K, K(a), L. Now" }}{PARA 0 "" 0 "" {TEXT -1 0 "" }}{PARA 0 "" 0 "" {TEXT -1 58 " [K(a) : K] = degree minimal p olynomial of a over K." }}{PARA 0 "" 0 "" {TEXT -1 69 " [L : \+ K] = degree characteristic polynomial of a over L/K." }}{PARA 0 "" 0 "" {TEXT -1 62 " [L : K(a)] = the quotient of [L:K] divided by [K(a):K]." }}{PARA 0 "" 0 "" {TEXT -1 0 "" }}{PARA 0 "" 0 "" {TEXT -1 12 "Furthermore:" }}{PARA 0 "" 0 "" {TEXT -1 88 " characteristic \+ polynomial of a = minimal polynomial of a raised to power [L:K(a)]. " }}{PARA 0 "" 0 "" {TEXT -1 0 "" }}{PARA 0 "" 0 "" {TEXT -1 6 "Hence: " }}{PARA 0 "" 0 "" {TEXT -1 78 " charpoly(a) = minpoly(a) <== ==> [L:K(a)] = 1 <=====> L = K(a)." }}{PARA 0 "" 0 "" {TEXT -1 0 "" }}{PARA 0 "" 0 "" {TEXT -1 72 "But even if L is not equal to K(a) , computing the minpoly of a is easy:" }}{PARA 0 "" 0 "" {TEXT -1 17 " *) take charpoly" }}{PARA 0 "" 0 "" {TEXT -1 36 " *) apply square-f ree factorization" }}{PARA 0 "" 0 "" {TEXT -1 61 " --> there will \+ be only one factor and only one exponent." }}{PARA 0 "" 0 "" {TEXT -1 105 " --> that factor is automatically irreducible (so we don't n eed \"factor\", all we need is \"sqrfree\")." }}{PARA 0 "" 0 "" {TEXT -1 47 " --> that exponent is the number [L: K(a)]." }}{PARA 0 "" 0 "" {TEXT -1 0 "" }}{PARA 0 "" 0 "" {TEXT -1 45 "In Maple, we can com pute the Norm as follows:" }}{PARA 0 "" 0 "" {TEXT -1 25 " evala(N orm(a, L, K))" }}{PARA 0 "" 0 "" {TEXT -1 29 "compute the Trace as fol lows:" }}{PARA 0 "" 0 "" {TEXT -1 26 " evala(Trace(a, L, K))" }} {PARA 0 "" 0 "" {TEXT -1 53 "and compute the characteristic polynomial as follows:" }}{PARA 0 "" 0 "" {TEXT -1 28 " evala(Norm(x-a, L, K ))." }}{PARA 0 "" 0 "" {TEXT -1 0 "" }}{PARA 0 "" 0 "" {TEXT -1 123 "R emark: the above commands want the expressions to be in RootOf notati on. If a is in square-root notation, then first do:" }}{PARA 0 "" 0 " " {TEXT -1 26 " a := convert(a, RootOf)" }}{PARA 0 "" 0 "" {TEXT -1 0 "" }}{PARA 0 "" 0 "" {TEXT -1 112 "Remark: One can omit the argumen ts L, K. In that case Maple will guess what L, K are. The guess is as follows:" }}{PARA 0 "" 0 "" {TEXT -1 77 " L is guessed to be the f ield that contains all RootOf's that appear in a." }}{PARA 0 "" 0 "" {TEXT -1 53 " K is guessed to be the field of rational numbers." }} {PARA 0 "" 0 "" {TEXT -1 126 "Actually: it is slightly more complicate d: If a contains variables, then those will be assumed to be elements \+ of both K and L." }}{PARA 0 "" 0 "" {TEXT -1 0 "" }}{PARA 0 "" 0 "" {TEXT -1 162 "Remark: Having Maple guess both L and K is often very c onvenient. But keep in mind that Maple might make a guess that is diff erent from what you want. Therefore:" }}{PARA 0 "" 0 "" {TEXT -1 62 " \+ *) Only in interactive Maple use should you let Maple guess." }} {PARA 0 "" 0 "" {TEXT -1 160 " *) Never let Maple make guesses when y ou are writing a program, in that case you really should specify L and K. If not: then you have a bug waiting to happen." }}{PARA 0 "" 0 "" {TEXT -1 0 "" }}{PARA 0 "" 0 "" {TEXT -1 91 "In the examples below, K will be Q, and we'll let Maple guess L and K for our convenience." }} {PARA 0 "" 0 "" {TEXT -1 0 "" }}{PARA 0 "" 0 "" {TEXT 261 8 "Example: " }}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 8 "restart;" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 23 "a := sqrt(2) + sqrt(3);" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#>%\"aG,&*$-%%sqrtG6#\"\"#\"\"\"F+*$-F(6#\"\" $F+F+" }}}{EXCHG {PARA 0 "" 0 "" {TEXT -1 49 "If we don't specify L, K , then Maple will assume:" }}{PARA 0 "" 0 "" {TEXT -1 26 " L = Q(sqrt (2) , sqrt(3)." }}{PARA 0 "" 0 "" {TEXT -1 8 " K = Q." }}{PARA 0 "" 0 "" {TEXT -1 34 "And that's precisely what we want." }}{PARA 0 "" 0 " " {TEXT -1 0 "" }}{PARA 0 "" 0 "" {TEXT -1 50 "But it doesn't work unl ess we use RootOf notation:" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 23 "a := convert(a,RootOf);" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#>%\"aG, &-%'RootOfG6$,&*$)%#_ZG\"\"#\"\"\"F.F-!\"\"/%&indexGF.F.-F'6$,&F*F.\" \"$F/F0F." }}}{EXCHG {PARA 0 "" 0 "" {TEXT -1 23 "Here is the trace of a:" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 16 "evala(Trace(a));" }} {PARA 11 "" 1 "" {XPPMATH 20 "6#\"\"!" }}}{EXCHG {PARA 0 "" 0 "" {TEXT -1 17 "Here is the norm:" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 15 "evala(Norm(a));" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#\"\"\"" }}} {EXCHG {PARA 0 "" 0 "" {TEXT -1 98 "and here is the characteristic pol ynomial. Since [L:K(a)] = 1 this is also the minimal polynomial:" }}} {EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 22 "f := evala(Norm(x-a));" }} {PARA 11 "" 1 "" {XPPMATH 20 "6#>%\"fG,(*$)%\"xG\"\"#\"\"\"!#5F*F**$)F (\"\"%F*F*" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 17 "n := degree(f ,x);" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#>%\"nG\"\"%" }}}{EXCHG {PARA 0 "" 0 "" {TEXT -1 10 "Note that:" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 36 "evala(Trace(a)) = -coeff(f, x, n-1);" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#/\"\"!F$" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 39 "evala(Norm(a)) = (-1)^n * coeff(f,x,0);" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#/\"\"\"F$" }}}{EXCHG {PARA 0 "" 0 "" {TEXT -1 25 "Lets \+ try another example:" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 35 "a : = sqrt(2)*sqrt(3) + 5^(1/3) - 3;" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#>% \"aG,(*&-%%sqrtG6#\"\"#\"\"\"-F(6#\"\"$F+F+*$)\"\"&#F+F.F+F+F.!\"\"" } }}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 21 "a:=convert(a,RootOf);" }} {PARA 11 "" 1 "" {XPPMATH 20 "6#>%\"aG,(*&-%'RootOfG6$,&*$)%#_ZG\"\"# \"\"\"F/F.!\"\"/%&indexGF/F/-F(6$,&F+F/\"\"$F0F1F/F/-F(6$,&*$)F-F6F/F/ \"\"&F0F1F/F6F0" }}}{EXCHG {PARA 0 "" 0 "" {TEXT -1 116 "Now L = Q(s qrt(2), sqrt(3), 5^(1/3) ) is the field of the square-roots and cube-r oots that appear in expression a." }}{PARA 0 "" 0 "" {TEXT -1 167 "But K(a) = Q( sqrt(6), 5^(1/3) ) and that's a subfield of L of index 2. \+ And as we see, the characteristic polynomial is the minimal polynomia l raised to the power 2." }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 30 "f := factor(evala(Norm(x-a)));" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#>% \"fG*$),0!$e(\"\"\"*&\"$9$F))%\"xG\"\"$F)F)*&\"$h#F))F-\"\"#F)F)*&\"$) GF)F-F)!\"\"*$)F-\"\"'F)F)*&\"#=F))F-\"\"&F)F)*&\"$<\"F))F-\"\"%F)F)F2 F)" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 31 "f := expand(f); n:=de gree(f,x);" }}{PARA 12 "" 1 "" {XPPMATH 20 "6#>%\"fG,<\"'kXd\"\"\"*&\" %S[F')%\"xG\"\"*F'F'*&\"&:b#F')F+\"\")F'F'*$)F+\"#7F'F'*&\"#OF')F+\"#6 F'F'*&\"$e&F')F+\"#5F'F'*&\"&'H#)F')F+\"\"(F'F'*&\"'3mVF'F+F'F'*&\"&G# pF')F+\"\"&F'F'*&\"''yZ\"F')F+\"\"'F'F'*&\"'KFJF')F+\"\"#F'!\"\"*&\"': ,HF')F+\"\"%F'FN*&\"'gjiF')F+\"\"$F'FN" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#>%\"nG\"#7" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 36 "evala(T race(a)) = -coeff(f, x, n-1);" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#/!#OF $" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 39 "evala(Norm(a)) = (-1)^ n * coeff(f,x,0);" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#/\"'kXdF$" }}}} {SECT 1 {PARA 3 "" 0 "" {TEXT -1 30 "Trager's factorization method." } }{PARA 0 "" 0 "" {TEXT -1 0 "" }}{EXCHG {PARA 0 "" 0 "" {TEXT -1 68 "I n general, if L is an extension of K, and if f is in L[x], then:" } }{PARA 0 "" 0 "" {TEXT -1 28 " g := evala(Norm(f, L, K))" }}{PARA 0 "" 0 "" {TEXT -1 56 "is an element of K[x] with the following two prop erties:" }}{PARA 0 "" 0 "" {TEXT -1 0 "" }}{PARA 0 "" 0 "" {TEXT -1 19 " *) f divides g." }}{PARA 0 "" 0 "" {TEXT -1 41 " *) degree( g,x) = degree(f,x) * [L:K]." }}{PARA 0 "" 0 "" {TEXT -1 0 "" }}{PARA 0 "" 0 "" {TEXT -1 47 "Here is an example. Let L = Q(sqrt(2)) and K=Q. " }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 100 "f := collect(expand(ra ndpoly([x,sqrt(2)],degree=3,dense) * randpoly([x,sqrt(2)],degree=4,den se)),x);" }}{PARA 12 "" 1 "" {XPPMATH 20 "6#>%\"fG,4*$)%\"xG\"\"(\"\" \"!%X[*&,&!%MfF**&\"%!)=F*-%%sqrtG6#\"\"#F*F*F*)F(\"\"'F*F**&,&*$F1F* \"&UJ\"\"%vF!\"\"F*)F(\"\"&F*F**&,&\"%x**F**&\"%]FF*F1F*F*F*)F(\"\"%F* F**&,&F9\"&;9\"\"&PG)FF*F*)F(F4F*F**&,& F9\"&ZK&\"&yi$F*F*F(F*F*\"&1V$F**&\"&BH'F*F1F*F*" }}}{EXCHG {PARA 0 " " 0 "" {TEXT -1 127 "How can we factor this polynomial? We know how t o factor in K[x] where K=Q, but how do we factor in L[x] where L = Q(s qrt(2))?" }}{PARA 0 "" 0 "" {TEXT -1 0 "" }}{PARA 0 "" 0 "" {TEXT -1 22 "The idea is like this:" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 39 "g := evala(Norm( convert(f,RootOf) ));" }}{PARA 12 "" 1 "" {XPPMATH 20 "6#>%\"gG,@*$)%\"xG\"#9\"\"\"\")DSZB*&\")g/]dF*)F(\"#8F*F* \"+AiqTn!\"\"*&\"*mEqy'F*)F(\"\"*F*F**&\"*&3)fG#F*)F(\"\")F*F1*&\")1L. bF*)F(\"#7F*F**&\"*q7di\"F*)F(\"#6F*F1*&\"*\"zzeKF*)F(\"#5F*F**&\"+'e$ eU:F*)F(\"\"(F*F1*&\",)yPF\"4\"F*F(F*F1*&\"+sfe`CF*)F(\"\"&F*F1*&\"+\" GcR0$F*)F(\"\"'F*F**&\"+aBOGDF*)F(\"\"#F*F**&\"+S([X))*F*)F(\"\"%F*F1* &\"+[8r/FF*)F(\"\"$F*F1" }}}{EXCHG {PARA 0 "" 0 "" {TEXT -1 49 "Now in deed g is in Q[x], and f is a factor, see:" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 11 "rem(g,f,x);" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#\" \"!" }}}{EXCHG {PARA 0 "" 0 "" {TEXT -1 35 "The idea to factor f is as follows:" }}{PARA 0 "" 0 "" {TEXT -1 12 " factor g" }}{PARA 0 "" 0 "" {TEXT -1 19 " then use gcd's." }}{PARA 0 "" 0 "" {TEXT -1 0 " " }}{PARA 0 "" 0 "" {TEXT -1 70 "This method is called Trager's method . Let's do this on this example:" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 10 "factor(g);" }}{PARA 12 "" 1 "" {XPPMATH 20 "6#*&,0*$) %\"xG\"\"'\"\"\"\"%Ds*&\"%!H'F))F'\"\"&F)F)*&\"%\"G\"F))F'\"\"%F)!\"\" *&\"%IpF))F'\"\"$F)F3*&\"&sT\"F))F'\"\"#F)F)*&\"&;t)F)F'F)F3\"&t]&F3F) ,4*$)F'\"\")F)\"%\\K*&\"%I^F))F'\"\"(F)F)*&\"%FPF)F&F)F)*&\"&?<#F)F-F) F3*&\"&AK'F)F1F)F)*&\"&Cy'F)F6F)F)*&\"&e3#F)F:F)F3*&\"%oSF)F'F)F)\"'9C 7F)F)" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 16 "fact := \{op(%)\}; " }}{PARA 12 "" 1 "" {XPPMATH 20 "6#>%%factG<$,0*$)%\"xG\"\"'\"\"\"\"% Ds*&\"%!H'F+)F)\"\"&F+F+*&\"%\"G\"F+)F)\"\"%F+!\"\"*&\"%IpF+)F)\"\"$F+ F5*&\"&sT\"F+)F)\"\"#F+F+*&\"&;t)F+F)F+F5\"&t]&F5,4*$)F)\"\")F+\"%\\K* &\"%I^F+)F)\"\"(F+F+*&\"%FPF+F(F+F+*&\"&?<#F+F/F+F5*&\"&AK'F+F3F+F+*& \"&Cy'F+F8F+F+*&\"&e3#F+F " 0 "" {MPLTEXT 1 0 23 "\{seq(gcd(i,f),i=fact)\};" }}{PARA 12 "" 1 "" {XPPMATH 20 "6#<$,4*$)%\"xG\"\"%\"\"\"F)*&#\"#:\"#>F))F'\" \"$F)F)*&#\"#f\"#dF)*&F.F)-%%sqrtG6#\"\"#F)F)!\"\"*&#F(F/F))F'F8F)F)*& #\"#JF-F)*&F " 0 " " {MPLTEXT 1 0 25 "K := \{\}; # represents Q;" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#>%\"KG<\"" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 40 "L := \{sqrt(2)\}; # represents Q(sqrt(2))" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#>%\"LG<#*$-%%sqrtG6#\"\"#\"\"\"" }}}{EXCHG {PARA 0 "> \+ " 0 "" {MPLTEXT 1 0 23 "L := convert(L,RootOf);" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#>%\"LG<#-%'RootOfG6$,&*$)%#_ZG\"\"#\"\"\"F.F-!\"\"/%&in dexGF." }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 11 "f := x^4+1;" }} {PARA 11 "" 1 "" {XPPMATH 20 "6#>%\"fG,&*$)%\"xG\"\"%\"\"\"F*F*F*" }}} {EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 26 "g := evala(Norm(f, L, K));" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#>%\"gG*$),&*$)%\"xG\"\"%\"\"\"F,F,F, \"\"#F," }}}{EXCHG {PARA 0 "" 0 "" {TEXT -1 53 "Clearly not square-fre e. We can fix this as follows:" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 66 "R := evala(randpoly(L,coeffs=rand(-2..2))); # random element \+ of L" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#>%\"RG,&-%'RootOfG6$,&*$)%#_ZG \"\"#\"\"\"F.F-!\"\"/%&indexGF.!\"'\"\"*F." }}}{EXCHG {PARA 0 "> " 0 " " {MPLTEXT 1 0 20 "ff := subs(x=x+R,f);" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#>%#ffG,&*$),(%\"xG\"\"\"*&\"\"'F*-%'RootOfG6$,&*$)%#_ZG\"\"#F*F* F4!\"\"/%&indexGF*F*F5\"\"*F*\"\"%F*F*F*F*" }}}{EXCHG {PARA 0 "> " 0 " " {MPLTEXT 1 0 28 "gg := evala(Norm(ff, L, K));" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#>%#ggG,4\"'O+5\"\"\"*&\"&sQ(F'%\"xGF'F'*&\"'?vAF')F*\" \"$F'F'*&\"';A;F')F*\"\"#F'F'*&\"'c/9F')F*\"\"%F'F'*&\"%!)>F')F*\"\"'F 'F'*&\"&s_#F')F*\"\"&F'F'*$)F*\"\")F'F'*&\"#sF')F*\"\"(F'F'" }}} {EXCHG {PARA 0 "" 0 "" {TEXT -1 43 "If this is not square-free, take a nother R." }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 11 "factor(gg);" } }{PARA 11 "" 1 "" {XPPMATH 20 "6#*&,,*$)%\"xG\"\"%\"\"\"F)*&\"#OF))F' \"\"$F)F)*&\"$=$F))F'\"\"#F)F)*&\"$3\"F)F'F)!\"\"\"$y\"F)F),,F%F)*&F+F )F,F)F)*&\"$m$F)F0F)F)*&\"$c(F)F'F)F)\"$i&F)F)" }}}{EXCHG {PARA 0 "> \+ " 0 "" {MPLTEXT 1 0 16 "fact := \{op(%)\};" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#>%%factG<$,,*$)%\"xG\"\"%\"\"\"F+*&\"#OF+)F)\"\"$F+F+*& \"$=$F+)F)\"\"#F+F+*&\"$3\"F+F)F+!\"\"\"$y\"F+,,F'F+*&F-F+F.F+F+*&\"$m $F+F2F+F+*&\"$c(F+F)F+F+\"$i&F+" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 26 "\{seq(gcd(i, ff), i=fact)\};" }}{PARA 12 "" 1 "" {XPPMATH 20 " 6#<$,,*$)%\"xG\"\"#\"\"\"F)*&\"#=F)F'F)F)*(\"#8F)F'F)-%'RootOfG6$,&*$) %#_ZGF(F)F)F(!\"\"/%&indexGF)F)F5\"$m\"F)*&\"$<\"F)F.F)F5,,F%F)*&F+F)F 'F)F)*(\"#6F)F'F)F.F)F5\"$U\"F)*&\"#**F)F.F)F5" }}}{EXCHG {PARA 0 "> \+ " 0 "" {MPLTEXT 1 0 14 "subs(x=x-R,%);" }}{PARA 12 "" 1 "" {XPPMATH 20 "6#<$,,*$),(%\"xG\"\"\"*&\"\"'F)-%'RootOfG6$,&*$)%#_ZG\"\"#F)F)F3! \"\"/%&indexGF)F)F)\"\"*F4F3F)F)*&\"#=F)F(F)F)*&F7F)F,F)F)\"#?F4*(\"#6 F)F'F)F,F)F4,,F%F)*&F9F)F(F)F)*&F7F)F,F)F4\"\"%F)*(\"#8F)F'F)F,F)F4" } }}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 9 "evala(%);" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#<$,(*$)%\"xG\"\"#\"\"\"F)*&F'F)-%'RootOfG6$,&*$)%#_Z GF(F)F)F(!\"\"/%&indexGF)F)F2F)F),(F%F)F*F)F)F)" }}}{EXCHG {PARA 0 "" 0 "" {TEXT -1 34 "Lets get back to sqrt(2) notation:" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 19 "convert(%,radical);" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#<$,(*$)%\"xG\"\"#\"\"\"F)*&F'F)-%%sqrtG6#F(F)F)F)F),(F% F)F*!\"\"F)F)" }}}{EXCHG {PARA 0 "" 0 "" {TEXT -1 43 "and we have fact ored x^4+1 over Q(sqrt(2))." }}{PARA 0 "" 0 "" {TEXT -1 0 "" }}{PARA 0 "" 0 "" {TEXT -1 33 "Maple can do these steps for you:" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 23 "factor(x^4+1, sqrt(2));" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#*&,(*$)%\"xG\"\"#\"\"\"F)*&F'F)-%%sqrtG6#F(F )!\"\"F)F)F),(F%F)F*F)F)F)F)" }}}{EXCHG {PARA 0 "" 0 "" {TEXT -1 41 "a nd we can also have multiple extensions:" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 35 "factor(x^4+1, \{sqrt(2), sqrt(-1)\});" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#,$**,(%\"xG!\"#*$-%%sqrtG6#\"\"#\"\"\"F-*&^#F-F-F) F-F-F-,(F&F,F(!\"\"F.F-F-,(F&F,F(F-F.F-F-,(F&F'F(F1F.F-F-#F-\"#;" }}} {EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{PARA 0 "" 0 "" {TEXT -1 0 "" }}}}{MARK "1" 0 }{VIEWOPTS 1 1 0 1 1 1803 1 1 1 1 } {PAGENUMBERS 0 1 2 33 1 1 }