{VERSION 3 0 "SGI MIPS UNIX" "3.0" } {USTYLETAB {CSTYLE "Maple Input" -1 0 "Courier" 0 1 255 0 0 1 0 1 0 0 1 0 0 0 0 }{CSTYLE "2D Math" -1 2 "Times" 0 1 0 0 0 0 0 0 2 0 0 0 0 0 0 }{CSTYLE "2D Output" 2 20 "" 0 1 0 0 255 1 0 0 0 0 0 0 0 0 0 } {CSTYLE "" -1 256 "" 1 24 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 }{CSTYLE "" -1 258 "" 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 }{CSTYLE "" -1 259 "" 1 24 0 0 0 0 0 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 -1 -1 -1 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 }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 }1 0 0 -1 -1 -1 0 0 0 0 0 0 -1 0 }{PSTYLE "" 0 256 1 {CSTYLE "" -1 -1 "" 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 }0 0 0 -1 -1 -1 0 0 0 0 0 0 -1 0 }{PSTYLE "" 0 257 1 {CSTYLE "" -1 -1 "" 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 }0 0 0 -1 -1 -1 0 0 0 0 0 0 -1 0 }{PSTYLE "" 0 258 1 {CSTYLE "" -1 -1 "" 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 }0 0 0 -1 -1 -1 0 0 0 0 0 0 -1 0 }} {SECT 0 {EXCHG {PARA 0 "" 0 "" {TEXT -1 0 "" }{TEXT 256 23 "Buchberger 's criterium." }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 15 "with(Groeb ner):" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 28 "ord := tdeg(x1, x2 , x3, x4);" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#>%$ordG-%%tdegG6&%#x1G%# x2G%#x3G%#x4G" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 1089 "S_poly : = proc(f, g, ord)\n local lf, lg, t, s, vars;\n lf := leadmon(f, ord );\n #\n # lf is now a list [leading coefficient, leading monomial] \n #\n # \"leading coefficient\" = some number (doesn't contain the \+ variables)\n #\n # \"Leading monomial\" = \"leading power product\" \n # = a product of powers of the variables.\n #\n # \"leading t erm\" = \"leading coefficient\" * \"leading monomial\":\n #\n # So t his is the \"leading term\" of f:\n lf := lf[1] * lf[2]:\n #\n # An d this is the \"leading term\" of g:\n lg := leadmon(g,ord):\n lg := lg[1]*lg[2]:\n #\n # Note: to make matters more confusing, what we \+ call \"leading term\"\n # is in some texts called \"leading monomial \". So always be careful\n # if you see the terminology \"leading mon omial\" to make sure if it\n # is with our without the \"leading cons tant\".\n #\n # Anyways, now apply the formula for the spoly:\n #\n t := lcm(lf, lg):\n s := t/lf * f - t/lg * g; # s is in the idea l (f,g).\n #\n # Now apply \"primpart\" to simplify s a little:\n # Here are the variables (see help page of indets)\n vars := indets(or d);\n primpart(s)\nend;" }}{PARA 12 "" 1 "" {XPPMATH 20 "6#>%'S_polyG R6%%\"fG%\"gG%$ordG6'%#lfG%#lgG%\"tG%\"sG%%varsG6\"F0C*>8$-%(leadmonG6 $9$9&>F3*&&F36#\"\"\"F=&F36#\"\"#F=>8%-F56$9%F8>FB*&&FBF8&- %$lcmG6$F3FB>8',&*&*&FKF=F7F=\"\"\"F3!\"\"F=*&*&FKFTFEF=FTFBFU!\"\">8( -%'indetsG6#F8-%)primpartG6#FPF0F0F0" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 48 "F := \{x1*x2+x2*x3, x1*x3+x2*x4, x1^2+x3^2+x4^2\};" } }{PARA 11 "" 1 "" {XPPMATH 20 "6#>%\"FG<%,(*$)%#x1G\"\"#\"\"\"\"\"\"*$ )%#x3GF*F+F,*$)%#x4GF*F+F,,&*&F)F,%#x2GF,F,*&F5F+F/F,F,,&*&F)F+F/F+F,* &F5F+F2F,F," }}}{EXCHG {PARA 0 "" 0 "" {TEXT -1 53 "Is the set F a Gro ebner basis for the given ordering?" }}{PARA 0 "" 0 "" {TEXT -1 0 "" } }{PARA 0 "" 0 "" {TEXT -1 64 "According to Buchberger's criterium we c an test that as follows:" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 962 "test_GB := proc(F, ord, s)\nlocal i,j,sp,rs,n;\nn:=nops(F);\nfor \+ i to n-1 do for j from i+1 to n do\n # We take all pairs F[i],F[j] i n F\n # Then take the \"spoly\"\n sp := S_poly(F[i],F[j], ord);\n \+ # Buchberger's criterium says that F is a Groebner\n # basis if an d only if all of these spolys reduce\n # to 0. So lets reduce this s poly sp:\n rs := reduce(sp, F, ord);\n # and lets check if sp redu ced to 0:\n if rs <> 0 then\n if nargs > 2 then\n # na rgs = the number of arguments that the\n # user of the pro cedure gave.\n # nargs > 2 means that F,ord are not the\n \+ # only arguments (so s is given as well).\n s := rs\n \+ fi;\n # rs didn't reduce to 0, so F is not a Groebner basis: \n RETURN( false )\n fi\nod od;\n# We can only reach this point if all rs=0,\n# which means that all spoly's reduced to 0,\n# and acc ording to Buchberger's criterium, this\n# implies that F is a Groebner basis:\ntrue\nend;" }}{PARA 12 "" 1 "" {XPPMATH 20 "6#>%(test_GBGR6%% \"FG%$ordG%\"sG6'%\"iG%\"jG%#spG%#rsG%\"nG6\"F0C%>8(-%%nopsG6#9$?(8$\" \"\"F:,&F3F:!\"\"F:%%trueG?(8%,&F9F:F:F:F:F3F=C%>8&-%'S_polyG6%&F76#F9 &F76#F?9%>8'-%'reduceG6%FCF7FK@$0FM\"\"!C$@$2\"\"#9#>9&FM-%'RETURNG6#% &falseGF=F0F0F0" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 19 "G := gba sis(F,ord);" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#>%\"GG7(,&*&%#x1G\"\"\" %#x3GF)F)*&%#x2GF)%#x4GF)F),&*&F(\"\"\"F,F0F)*&F,F0F*F0F),(*$)F(\"\"#F 0F)*$)F*F5F0F)*$)F-F5F0F),&*&F,F0F9F0F)*&)F,F5F0F-F0F5,(*$)F*\"\"$F0F) *(F-F0F,F0F*F0F)*&F*F0F9F0F),&*&F,F0F7F0F5F;F)" }}}{EXCHG {PARA 0 "> \+ " 0 "" {MPLTEXT 1 0 21 "test_GB(F,ord, 'sp');" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#%&falseG" }}}{EXCHG {PARA 0 "" 0 "" {TEXT -1 68 "The th ird argument is used to give something that didn't reduce to 0" }}} {EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 3 "sp;" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#,&*&%#x2G\"\"\")%#x3G\"\"#\"\"\"F)*&F%F*)%#x4GF)F*F&" } }}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 21 "test_GB(G,ord, 'sp');" }} {PARA 11 "" 1 "" {XPPMATH 20 "6#%%trueG" }}}{EXCHG {PARA 0 "" 0 "" {TEXT -1 113 "In the latter command, the 'sp' argument was ignored bec ause we never reached that line \"s:=rs\" in the algorithm." }}{PARA 0 "" 0 "" {TEXT -1 0 "" }}{PARA 0 "" 0 "" {TEXT -1 47 "So lets apply B uchbergers criterium repeatedly:" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 2 "F;" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#<%,(*$)%#x1G\"\" #\"\"\"\"\"\"*$)%#x3GF(F)F**$)%#x4GF(F)F*,&*&F'F*%#x2GF*F**&F3F)F-F*F* ,&*&F'F)F-F)F**&F3F)F0F*F*" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 22 "test_GB(F, ord, 'sp');" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#%&falseG " }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 3 "sp;" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#,&*&%#x2G\"\"\")%#x3G\"\"#\"\"\"F)*&F%F*)%#x4GF)F*F&" } }}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 18 "F := F union \{sp\};" }} {PARA 11 "" 1 "" {XPPMATH 20 "6#>%\"FG<&,(*$)%#x1G\"\"#\"\"\"\"\"\"*$) %#x3GF*F+F,*$)%#x4GF*F+F,,&*&F)F,%#x2GF,F,*&F5F+F/F,F,,&*&F)F+F/F+F,*& F5F+F2F,F,,&*&F5F+F.F+F**&F5F+F1F+F," }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 22 "test_GB(F, ord, 'sp');" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#%&falseG" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 3 "sp;" }} {PARA 11 "" 1 "" {XPPMATH 20 "6#,(*$)%#x3G\"\"$\"\"\"\"\"\"*(%#x4GF)%# x2GF)F&F)F)*&F&F()F+\"\"#F(F)" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 18 "F := F union \{sp\};" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#>%\"FG<' ,(*$)%#x1G\"\"#\"\"\"\"\"\"*$)%#x3GF*F+F,*$)%#x4GF*F+F,,&*&F)F,%#x2GF, F,*&F5F+F/F,F,,&*&F)F+F/F+F,*&F5F+F2F,F,,&*&F5F+F.F+F**&F5F+F1F+F,,(*$ )F/\"\"$F+F,*(F2F+F5F+F/F+F,*&F/F+F1F+F," }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 22 "test_GB(F, ord, 'sp');" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#%&falseG" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 3 "sp;" }} {PARA 11 "" 1 "" {XPPMATH 20 "6#,&*&)%#x2G\"\"#\"\"\"%#x4G\"\"\"!\"#*& F&F*)F)F'F(!\"\"" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 18 "F := F \+ union \{sp\};" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#>%\"FG<(,(*$)%#x1G\" \"#\"\"\"\"\"\"*$)%#x3GF*F+F,*$)%#x4GF*F+F,,&*&F)F,%#x2GF,F,*&F5F+F/F, F,,&*&F)F+F/F+F,*&F5F+F2F,F,,&*&F5F+F.F+F**&F5F+F1F+F,,(*$)F/\"\"$F+F, *(F2F+F5F+F/F+F,*&F/F+F1F+F,,&*&)F5F*F+F2F+!\"#F " 0 "" {MPLTEXT 1 0 22 "test_GB(F, ord, 'sp');" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#%%trueG" }}}{EXCHG {PARA 0 "" 0 "" {TEXT -1 185 "If we want we can now try to simplify the set F using the \"reduc e_polynomials\" command from the previous worksheet. Sometimes this wi ll reduce the number of elements and make F smaller." }}{PARA 0 "" 0 " " {TEXT -1 0 "" }}{PARA 256 "" 0 "" {TEXT -1 85 "If F is a Groebner ba sis, then G:=reduce_polynomials(F,ord) is also a Groebner basis." }} {PARA 257 "" 0 "" {TEXT -1 46 "Furthermore: G never has more elements \+ than F." }}{PARA 258 "" 0 "" {TEXT -1 145 "And: G has fewer elements t han F if and only if there exist f,g in F, f not equal to g, and the \+ leading term of f divides the leading term of g." }}{PARA 0 "" 0 "" {TEXT -1 0 "" }}{PARA 0 "" 0 "" {TEXT -1 107 " The new (possibly small er) Groebner basis G, obtained by reducing F with the algorithm below, is called a " }{TEXT 257 22 "reduced Groebner basis" }{TEXT -1 71 ". \+ A reduced Groebner basis G has the following characteristic property: " }}{PARA 0 "" 0 "" {TEXT -1 4 " " }{TEXT 258 143 "If f,g are two d ifferent elements of G, and lf and lg are the leading monomials, then \+ lf is not divisible by lg, and lg is not divisible by lf." }}{PARA 0 " " 0 "" {TEXT -1 0 "" }}{PARA 0 "" 0 "" {TEXT -1 299 "Since in our exam ple, the Groebner basis F already had this property, we will see that \+ nops(G) = nops(F). But in many examples, reducing a Groebner basis wit h this procedure will make the number of elements smaller because som e will be reduced to 0, and when they do, they are removed from the se t." }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 217 "reduce_polynomials:= proc(F,ord)\n local i,G,k;\n G:=F minus \{0\};\n for i in G do\n \+ k:=reduce(i, G minus \{i\}, ord);\n if k<>i then\n RETUR N(procname((G minus \{i\}) union \{k\}, ord))\n fi\n od;\n G\nen d; " }}{PARA 12 "" 1 "" {XPPMATH 20 "6#>%3reduce_polynomialsGR6$%\"F G%$ordG6%%\"iG%\"GG%\"kG6\"F-C%>8%-%&minusG6$9$<#\"\"!?&8$F0%%trueGC$> 8&-%'reduceG6%F8-F26$F0<#F89%@$0F " 0 "" {MPLTEXT 1 0 31 "G := reduce_p olynomials(F,ord);" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#>%\"GG<(,(*$)%#x 1G\"\"#\"\"\"\"\"\"*$)%#x3GF*F+F,*$)%#x4GF*F+F,,&*&F)F,%#x2GF,F,*&F5F+ F/F,F,,&*&F)F+F/F+F,*&F5F+F2F,F,,&*&F5F+F.F+F**&F5F+F1F+F,,(*$)F/\"\"$ F+F,*(F2F+F5F+F/F+F,*&F/F+F1F+F,,&*&)F5F*F+F2F+!\"#F " 0 "" {MPLTEXT 1 0 17 "nops(F); nops(G);" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#\"\"'" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#\"\"'" }}} {EXCHG {PARA 0 "" 0 "" {TEXT -1 25 "Lets try another example:" }}} {EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 50 "F := \{2*x1+3*x2+5*x3, 3*x1- 2*x2+7*x4, 4*x1-x3-x4\};" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#>%\"FG<%,( %#x1G\"\"#%#x2G\"\"$%#x3G\"\"&,(F'F*F)!\"#%#x4G\"\"(,(F'\"\"%F+!\"\"F/ F3" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 21 "test_GB(F,ord, 'sp'); " }}{PARA 11 "" 1 "" {XPPMATH 20 "6#%&falseG" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 3 "sp;" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#,(%#x2G\"# 8%#x3G\"#:%#x4G!#9" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 18 "F := \+ F union \{sp\};" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#>%\"FG<&,(%#x2G\"#8 %#x3G\"#:%#x4G!#9,(%#x1G\"\"#F'\"\"$F)\"\"&,(F.F0F'!\"#F+\"\"(,(F.\"\" %F)!\"\"F+F7" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 21 "test_GB(F,o rd, 'sp');" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#%&falseG" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 3 "sp;" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#,(*$)%#x3G\"\"#\"\"\"!$&z*&%#x4G\"\"\"F&F,!$8(*$)F+F'F(\"%e8" }}} {EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 18 "F := F union \{sp\};" }} {PARA 11 "" 1 "" {XPPMATH 20 "6#>%\"FG<',(*$)%#x3G\"\"#\"\"\"!$&z*&%#x 4G\"\"\"F)F/!$8(*$)F.F*F+\"%e8,(%#x2G\"#8F)\"#:F.!#9,(%#x1GF*F5\"\"$F) \"\"&,(F:F;F5!\"#F.\"\"(,(F:\"\"%F)!\"\"F.FB" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 21 "test_GB(F,ord, 'sp');" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#%&falseG" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 2 "F ;" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#<',(*$)%#x3G\"\"#\"\"\"!$&z*&%#x4 G\"\"\"F'F-!$8(*$)F,F(F)\"%e8,(%#x2G\"#8F'\"#:F,!#9,(%#x1GF(F3\"\"$F' \"\"&,(F8F9F3!\"#F,\"\"(,(F8\"\"%F'!\"\"F,F@" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 31 "G := reduce_polynomials(F,ord);" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#>%\"GG<%,&%#x1G\"#`%#x4G\"#6,&%#x2GF(F)!$p\",&%#x3 GF(F)\"#(*" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 17 "nops(F); nops (G);" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#\"\"&" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#\"\"$" }}}{EXCHG {PARA 0 "" 0 "" {TEXT -1 7 "Remark:" } }{PARA 0 "" 0 "" {TEXT -1 0 "" }}{PARA 0 "" 0 "" {TEXT -1 43 "We saw i n the worksheet from last week that" }}{PARA 0 "" 0 "" {TEXT -1 2 "IF " }}{PARA 0 "" 0 "" {TEXT -1 24 " *) all degrees are 1," }}{PARA 0 " " 0 "" {TEXT -1 2 "OR" }}{PARA 0 "" 0 "" {TEXT -1 30 " *) there is o nly 1 variable" }}{PARA 0 "" 0 "" {TEXT -1 4 "THEN" }}{PARA 0 "" 0 "" {TEXT -1 58 " reduce_polynomials will always produce a Groebner basis ." }}{PARA 0 "" 0 "" {TEXT -1 0 "" }}{PARA 0 "" 0 "" {TEXT -1 149 "Sin ce our equations were linear, it would have been enough to just call r educe_polynomials (which would essentially have done Gaussian Elimina tion)." }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 50 "F := \{2*x1+3*x2+ 5*x3, 3*x1-2*x2+7*x4, 4*x1-x3-x4\};" }}{PARA 11 "" 1 "" {XPPMATH 20 "6 #>%\"FG<%,(%#x1G\"\"#%#x2G\"\"$%#x3G\"\"&,(F'F*F)!\"#%#x4G\"\"(,(F'\" \"%F+!\"\"F/F3" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 81 "G := redu ce_polynomials(F,ord); # = a Groebner basis because equations are line ar" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#>%\"GG<%,&%#x1G\"#`%#x4G\"#6,&%# x2GF(F)!$p\",&%#x3GF(F)\"#(*" }}}{EXCHG {PARA 0 "" 0 "" {TEXT -1 196 " Now lets go back to the original example, and we see that if we have m ore than one equation, and not all equations are linear, then reduce_p olynomials is not sufficient to obtain a Groebner basis:" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 48 "F := \{x1*x2+x2*x3, x1*x3+x2*x4, x1 ^2+x3^2+x4^2\};" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#>%\"FG<%,(*$)%#x1G \"\"#\"\"\"\"\"\"*$)%#x3GF*F+F,*$)%#x4GF*F+F,,&*&F)F,%#x2GF,F,*&F5F+F/ F,F,,&*&F)F+F/F+F,*&F5F+F2F,F," }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 31 "G := reduce_polynomials(F,ord);" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#>%\"GG<%,(*$)%#x1G\"\"#\"\"\"\"\"\"*$)%#x3GF*F+F,*$)%#x4GF*F+F,, &*&F)F,%#x2GF,F,*&F5F+F/F,F,,&*&F)F+F/F+F,*&F5F+F2F,F," }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 16 "test_GB(G, ord);" }}{PARA 11 "" 1 " " {XPPMATH 20 "6#%&falseG" }}}{EXCHG {PARA 0 "" 0 "" {TEXT 259 11 "Ass ignment:" }}{PARA 0 "" 0 "" {TEXT -1 0 "" }}{PARA 0 "" 0 "" {TEXT -1 118 "Implement the Groebner basis algorithm. Most of it you can find i n this worksheet. Turn this in before next Wednesday." }}}}{MARK "47 2 0" 118 }{VIEWOPTS 1 1 0 1 1 1803 }