{VERSION 6 0 "IBM INTEL LINUX" "6.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 } {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 "Text Output" -1 2 1 {CSTYLE "" -1 -1 "Courier" 1 10 0 0 255 1 0 0 0 0 0 1 3 0 3 0 }1 0 0 -1 -1 -1 0 0 0 0 0 0 -1 0 }{PSTYLE "" 2 6 1 {CSTYLE "" -1 -1 "" 0 1 0 0 0 0 0 0 0 0 0 0 2 0 0 0 }0 0 0 -1 -1 -1 0 0 0 0 0 0 -1 0 }{PSTYLE "M aple 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 "" {MPLTEXT 1 0 97 "# This is the way to work with Grobner Basis. First - ordering. For this we need those two lines." }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 59 "with(Ore_algebra );\nwith(Groebner);A:=poly_algebra(x,y,z,t);" }}{PARA 12 "" 1 "" {XPPMATH 20 "6#79%-OA_InternalsG%-Ore_to_DESolG%-Ore_to_RESolG%,Ore_to _diffG%-Ore_to_shiftG%-annihilatorsG%)applyoprG%-diff_algebraG%-dual_a lgebraG%0dual_polynomialG%-poly_algebraG%/qshift_algebraG%/rand_skew_p olyG%0reverse_algebraG%3reverse_polynomialG%.shift_algebraG%-skew_alge braG%*skew_elimG%+skew_gcdexG%*skew_pdivG%+skew_powerG%*skew_premG%-sk ew_productG" }}{PARA 12 "" 1 "" {XPPMATH 20 "6#78%*MulMatrixG%)SetBasi sG%0ToricIdealBasisG%*fglm_algoG%'gbasisG%'gsolveG%+hilbertdimG%,hilbe rtpolyG%.hilbertseriesG%-inter_reduceG%*is_finiteG%,is_solvableG%*lead coeffG%(leadmonG%)leadtermG%(normalfG%/pretend_gbasisG%'reduceG%&spoly G%*termorderG%*testorderG%)univpolyG" }}{PARA 11 "" 1 "" {XPPMATH 20 " 6#>%\"AG%,Ore_algebraG" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 33 "f :=x^3*y*z^2+x^4-2*x^2*y^2*z^2-3;" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#>% \"fG,**()%\"xG\"\"$\"\"\"%\"yGF*)%\"zG\"\"#F*F**$)F(\"\"%F*F***F.F*)F( F.F*)F+F.F*F,F*!\"\"F)F5" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 98 "# Now we see differnt leading terms depending of orderin. Note that l eadmonom gives both lc and lm" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 108 "leadterm(f,plex(x,y,z));leadterm(f,tdeg(x,y,z));leadterm(f,plex (y,x,z));l:=leadmon(f,plex(y,x,z));l[1];l[2];" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#*$)%\"xG\"\"%\"\"\"" }}{PARA 11 "" 1 "" {XPPMATH 20 "6# *()%\"xG\"\"$\"\"\"%\"yGF')%\"zG\"\"#F'" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#*()%\"xG\"\"#\"\"\")%\"yGF&F')%\"zGF&F'" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#>%\"lG6$!\"#*()%\"xG\"\"#\"\"\")%\"yGF*F+)%\"zGF*F+" }} {PARA 11 "" 1 "" {XPPMATH 20 "6#!\"#" }}{PARA 11 "" 1 "" {XPPMATH 20 " 6#*()%\"xG\"\"#\"\"\")%\"yGF&F')%\"zGF&F'" }}}{EXCHG {PARA 0 "> " 0 " " {MPLTEXT 1 0 73 "#Now let us calculate a small GB. Unfortunately the result is not sorted." }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 43 "S :=\{f, 3*x*y-2\}; G1:=gbasis(S,plex(x,y,z));" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#>%\"SG<$,**()%\"xG\"\"$\"\"\"%\"yGF+)%\"zG\"\"#F+F+*$)F )\"\"%F+F+**F/F+)F)F/F+)F,F/F+F-F+!\"\"F*F6,&*(F*F+F)F+F,F+F+F/F6" }} {PARA 11 "" 1 "" {XPPMATH 20 "6#>%#G1G7$,*\"#;!\"\"*(\"#s\"\"\")%\"yG \"\"%F+)%\"zG\"\"#F+F+*&\"$V#F+F,F+F+*(\"#CF+)F-F1F+F/F+F(,**&\"\")F+% \"xGF+F+*(F5F+)F-\"\"$F+F/F+F(*&\"#\")F+F " 0 "" {MPLTEXT 1 0 46 "#We can create a correspondi ng rewriting rules" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 91 "rule: = proc (f,T) printf (\"%+18a -> %a\",leadterm (f,T),leadterm(f,T)-f/le adcoeff(f,T)) end:" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 67 "ruleG B:=proc (L,T) local f;for f in L do rule(f,T);print(); od end;" }} {PARA 11 "" 1 "" {XPPMATH 20 "6#>%'ruleGBGj+6$%\"LG%\"TG6#%\"fG6\"F+?& 8$9$%%trueGC$-%%ruleG6$F-9%-%&printGF+F+F+F+6$\"\"!F8" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 23 "ruleGB(G1,plex(x,y,z));" }}{PARA 6 "" 1 "" {TEXT -1 46 " y^4*z^2 -> 2/9-27/8*y^4+1/3*y^2*z^2" } }{PARA 6 "" 1 "" {TEXT -1 46 " x -> 3*y^3*z^2+81/8*y^3 -y*z^2" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 80 "#But RHS is still not sorted. So we write a short procedure to print sorted GB. " }}} {EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 294 "printsorteds:=proc(f,T)loca l l;if f=0 then printf(\";\");print(); elif type(f,rational)then print f(\"%a\",f);printf(\";\");print(); else l:=leadmon(f,T): if abs(l[1]) \+ <> 1 then printf(\"%+a%a\",l[1],l[2]) elif l[1]=1 then printf(\"+%a\", l[2]) else printf(\"-%a\",l[2])fi;printsorteds(f-l[1]*l[2],T) fi;end: " }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 232 "printsorted:=proc(f,T) local l ; if f=0 then print(0);return; else l:=leadmon(f,T); if l[1]<0 then pr intsorteds(f,T); return; else if l[1]=1 then printf(%a,l[2]) else prin tf(\"%a%a\",l[1],l[2]) fi;fi;printsorteds(f-l[1]*l[2],T) fi;end:" }} {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 56 "f;printsorted(f,plex(x,z,y));printsorted(f,plex(y,z,x ));" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#,**()%\"xG\"\"$\"\"\"%\"yGF()% \"zG\"\"#F(F(*$)F&\"\"%F(F(**F,F()F&F,F()F)F,F(F*F(!\"\"F'F3" }}{PARA 6 "" 1 "" {TEXT -1 29 "x^4+x^3*y*z^2-2x^2*y^2*z^2-3;" }}{PARA 6 "" 1 " " {TEXT -1 30 "-2x^2*y^2*z^2+x^3*y*z^2+x^4-3;" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 36 "#Now we are ready to print sorted GB" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 69 "printGB:=proc(GB,T) local f; for f in GB do printsorted(f,T); od end:" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 25 "printGB (G1,plex(x,z,y));" }}{PARA 6 "" 1 "" {TEXT -1 30 "72y^4*z^ 2-24y^2*z^2+243y^4-16;" }}{PARA 6 "" 1 "" {TEXT -1 26 "8x-24y^3*z^2+8y *z^2-81y^3;" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 97 "#now we chec k normal forms: we see that f is in the ideal, x^5 is not. compare red uce and normalf" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 85 "normalf(f, G1,pl ex(x,y,z));normalf (x^5, G1,plex(x,y,z));reduce (x^5,G1,plex(x,y,z)); " }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#\"\"!" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#,0*&#\"\"%\"\" $\"\"\"*&)%\"yGF'F()%\"zG\"\"'F(F(F(*&#\"#VF.F(*&F*F()F-F&F(F(F(*&#F& \"\"*F(*&F,F(F+F(F(!\"\"*(\"#=F(F*F()F-\"\"#F(F(*&#\"#;F6F(*&F3F(F+F(F (F8*&#\"$V#\"\")F(*$F*F(F(F(*(F.F(F+F(F;F(F8" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#,0*(\"#'*\"\"\")%\"yG\"\"$F&)%\"zG\"\"'F&F&*(\"$;&F&F'F &)F+\"\"%F&F&*(\"#KF&F*F&F(F&!\"\"*(\"%'H\"F&F'F&)F+\"\"#F&F&*(\"$G\"F &F/F&F(F&F3*&\"%(=#F&F'F&F&*(\"$K%F&F(F&F6F&F3" }}}{EXCHG {PARA 0 "> \+ " 0 "" {MPLTEXT 1 0 68 "#Let us check intersection of two ideals: Elem ents are GB themselves" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 29 "I 1:=\{x^2-y^2\}; I2:=\{x^3-y^3\};" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#>% #I1G<#,&*$)%\"xG\"\"#\"\"\"F+*$)%\"yGF*F+!\"\"" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#>%#I2G<#,&*$)%\"xG\"\"$\"\"\"F+*$)%\"yGF*F+!\"\"" }}} {EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 42 "IJ:=\{expand(t*I1[1]),expand ((t-1)*I2[1])\};" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#>%#IJG<$,**&%\"tG \"\"\")%\"xG\"\"$F)F)*&F(F))%\"yGF,F)!\"\"*$F*F)F0*$F.F)F),&*&F(F))F+ \"\"#F)F)*&F(F))F/F6F)F0" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 30 "G2:=gbasis(IJ, plex(t,x,y,z));" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#>%# G2G7%,**$)%\"xG\"\"%\"\"\"F+*&F)F+)%\"yG\"\"$F+!\"\"*&)F)F/F+F.F+F+*$) F.F*F+F0,**&%\"tGF+F-F+F0*$F2F+F0*$F-F+F+*(F)F+F7F+)F.\"\"#F+F+,&*&F7F +)F)F " 0 "" {MPLTEXT 1 0 100 " #We see that the first element generates GB for the intersection. Chec k that it lies in both ideals." }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 60 "g:=G2[1]; reduce(g,I1,plex(x,y,z));reduce(g,I2,plex(x,y,z));" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#>%\"gG,**$)%\"xG\"\"%\"\"\"F**&F(F*) %\"yG\"\"$F*!\"\"*&)F(F.F*F-F*F**$)F-F)F*F/" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#\"\"!" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#\"\"!" }}} {EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 84 "#now check if we get a fin te set of solutions. Note that the ordering is not used." }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 40 "is_finite (G1);is_finite(\{x^2-y^2, x*y\});" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#%&falseG" }}{PARA 11 "" 1 " " {XPPMATH 20 "6#%%trueG" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 30 "#Analyzing the parametrization" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 54 "I3:=\{x-t^2,y-t^3,z-t^5\};G3:=gbasis(I3, plex(t,x,y,z));" }} {PARA 11 "" 1 "" {XPPMATH 20 "6#>%#I3G<%,&%\"xG\"\"\"*$)%\"tG\"\"#F(! \"\",&%\"yGF(*$)F+\"\"$F(F-,&%\"zGF(*$)F+\"\"&F(F-" }}{PARA 11 "" 1 " " {XPPMATH 20 "6#>%#G3G7+,&*$)%\"zG\"\"$\"\"\"!\"\"*$)%\"yG\"\"&F+F+,& *&%\"xGF+)F)\"\"#F+F+*$)F/\"\"%F+F,,&F)F,*&F3F+F/F+F+,&*$)F/F*F+F,*&)F 3F5F+F)F+F+,&*$)F/F5F+F,*$)F3F*F+F+,&*&%\"tGF+F)F+F+FAF,,&*$F?F+F,*&FG F+F/F+F+,&*&FGF+F3F+F+F/F,,&F3F,*$)FGF5F+F+" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 65 "#we see that z can be eliminated, so let us try an other ordering:" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 30 "G4:=gbas is(I3, plex(t,z,y,x));" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#>%#G4G7',&*$ )%\"yG\"\"#\"\"\"F+*$)%\"xG\"\"$F+!\"\",&%\"zGF+*&F.F+F)F+F0,&*&%\"tGF +F.F+F+F)F0,&*$)F.F*F+F0*&F6F+F)F+F+,&F.F0*$)F6F*F+F+" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 79 "#and the result looks much better n ow: the first two equations is what we need." }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 91 "#At last some computations with the radical. Let us chech if x, x+y belongs to radical of J" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 26 "J:=\{x^3+x^2*y,y^3+y^2*x\}; " }}{PARA 11 "" 1 "" {XPPMATH 20 "6#>%\"JG<$,&*$)%\"xG\"\"$\"\"\"F+*&)F)\"\"#F+%\"yGF+F+,&* $)F/F*F+F+*&)F/F.F+F)F+F+" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 105 "J1:= J union\{x*t-1\};G5:=gbasis (J1, tdeg(x,y,z,t));J2:=J union \{x*t+y*t-1\};G6:=gbasis (J2, tdeg(x,y,z,t));" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#>%#J1G<%,&*&%\"tG\"\"\"%\"xGF)F)F)!\"\",&*$)F*\"\"$F)F) *&)F*\"\"#F)%\"yGF)F),&*$)F3F/F)F)*&)F3F2F)F*F)F)" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#>%#G5G7$,&%\"xG\"\"\"%\"yGF(,&F(F(*&%\"tGF(F)F(F(" }} {PARA 11 "" 1 "" {XPPMATH 20 "6#>%#J2G<%,(*&%\"tG\"\"\"%\"xGF)F)*&F(F) %\"yGF)F)F)!\"\",&*$)F*\"\"$F)F)*&)F*\"\"#F)F,F)F),&*$)F,F1F)F)*&)F,F4 F)F*F)F)" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#>%#G6G7#\"\"\"" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 50 "# We see that x+y is in the radical , but x is not." }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}} {MARK "34 0 0" 0 }{VIEWOPTS 1 1 0 1 1 1803 1 1 1 1 }{PAGENUMBERS 0 1 2 33 1 1 }