Gröbner Bases
\(\newcommand{\footnotename}{footnote}\)
\(\def \LWRfootnote {1}\)
\(\newcommand {\footnote }[2][\LWRfootnote ]{{}^{\mathrm {#1}}}\)
\(\newcommand {\footnotemark }[1][\LWRfootnote ]{{}^{\mathrm {#1}}}\)
\(\let \LWRorighspace \hspace \)
\(\renewcommand {\hspace }{\ifstar \LWRorighspace \LWRorighspace }\)
\(\newcommand {\mathnormal }[1]{{#1}}\)
\(\newcommand \ensuremath [1]{#1}\)
\(\newcommand {\LWRframebox }[2][]{\fbox {#2}} \newcommand {\framebox }[1][]{\LWRframebox } \)
\(\newcommand {\setlength }[2]{}\)
\(\newcommand {\addtolength }[2]{}\)
\(\newcommand {\setcounter }[2]{}\)
\(\newcommand {\addtocounter }[2]{}\)
\(\newcommand {\arabic }[1]{}\)
\(\newcommand {\number }[1]{}\)
\(\newcommand {\noalign }[1]{\text {#1}\notag \\}\)
\(\newcommand {\cline }[1]{}\)
\(\newcommand {\directlua }[1]{\text {(directlua)}}\)
\(\newcommand {\luatexdirectlua }[1]{\text {(directlua)}}\)
\(\newcommand {\protect }{}\)
\(\def \LWRabsorbnumber #1 {}\)
\(\def \LWRabsorbquotenumber "#1 {}\)
\(\newcommand {\LWRabsorboption }[1][]{}\)
\(\newcommand {\LWRabsorbtwooptions }[1][]{\LWRabsorboption }\)
\(\def \mathchar {\ifnextchar "\LWRabsorbquotenumber \LWRabsorbnumber }\)
\(\def \mathcode #1={\mathchar }\)
\(\let \delcode \mathcode \)
\(\let \delimiter \mathchar \)
\(\def \oe {\unicode {x0153}}\)
\(\def \OE {\unicode {x0152}}\)
\(\def \ae {\unicode {x00E6}}\)
\(\def \AE {\unicode {x00C6}}\)
\(\def \aa {\unicode {x00E5}}\)
\(\def \AA {\unicode {x00C5}}\)
\(\def \o {\unicode {x00F8}}\)
\(\def \O {\unicode {x00D8}}\)
\(\def \l {\unicode {x0142}}\)
\(\def \L {\unicode {x0141}}\)
\(\def \ss {\unicode {x00DF}}\)
\(\def \SS {\unicode {x1E9E}}\)
\(\def \dag {\unicode {x2020}}\)
\(\def \ddag {\unicode {x2021}}\)
\(\def \P {\unicode {x00B6}}\)
\(\def \copyright {\unicode {x00A9}}\)
\(\def \pounds {\unicode {x00A3}}\)
\(\let \LWRref \ref \)
\(\renewcommand {\ref }{\ifstar \LWRref \LWRref }\)
\( \newcommand {\multicolumn }[3]{#3}\)
\(\require {textcomp}\)
\(\newcommand {\intertext }[1]{\text {#1}\notag \\}\)
\(\let \Hat \hat \)
\(\let \Check \check \)
\(\let \Tilde \tilde \)
\(\let \Acute \acute \)
\(\let \Grave \grave \)
\(\let \Dot \dot \)
\(\let \Ddot \ddot \)
\(\let \Breve \breve \)
\(\let \Bar \bar \)
\(\let \Vec \vec \)
\(\require {mathtools}\)
\(\newenvironment {crampedsubarray}[1]{}{}\)
\(\newcommand {\smashoperator }[2][]{#2\limits }\)
\(\newcommand {\SwapAboveDisplaySkip }{}\)
\(\newcommand {\LaTeXunderbrace }[1]{\underbrace {#1}}\)
\(\newcommand {\LaTeXoverbrace }[1]{\overbrace {#1}}\)
\(\newcommand {\LWRmultlined }[1][]{\begin {multline*}}\)
\(\newenvironment {multlined}[1][]{\LWRmultlined }{\end {multline*}}\)
\(\let \LWRorigshoveleft \shoveleft \)
\(\renewcommand {\shoveleft }[1][]{\LWRorigshoveleft }\)
\(\let \LWRorigshoveright \shoveright \)
\(\renewcommand {\shoveright }[1][]{\LWRorigshoveright }\)
\(\newcommand {\shortintertext }[1]{\text {#1}\notag \\}\)
\(\newcommand {\vcentcolon }{\mathrel {\unicode {x2236}}}\)
\(\def \LWRtensorindicesthreesub #1#2{{_{#2}}\LWRtensorindicesthree }\)
\(\def \LWRtensorindicesthreesup #1#2{{^{#2}}\LWRtensorindicesthree }\)
\(\newcommand {\LWRtensorindicesthreenotsup }{}\)
\(\newcommand {\LWRtensorindicesthreenotsub }{ \ifnextchar ^ \LWRtensorindicesthreesup \LWRtensorindicesthreenotsup }\)
\(\newcommand {\LWRtensorindicesthree }{ \ifnextchar _ \LWRtensorindicesthreesub \LWRtensorindicesthreenotsub }\)
\(\newcommand {\LWRtensorindicestwo }{ \ifstar \LWRtensorindicesthree \LWRtensorindicesthree }\)
\(\newcommand {\indices }[1]{\LWRtensorindicestwo #1}\)
\(\newcommand {\LWRtensortwo }[3][]{{}\indices {#1}{#2}\indices {#3}}\)
\(\newcommand {\tensor }{\ifstar \LWRtensortwo \LWRtensortwo }\)
\(\newcommand {\LWRnuclidetwo }[2][]{{\vphantom {\mathrm {#2}}{}^{\LWRtensornucleonnumber }_{#1}\mathrm {#2}}}\)
\(\newcommand {\nuclide }[1][]{\def \LWRtensornucleonnumber {#1}\LWRnuclidetwo }\)
\(\newcommand {\FF }{\mathbb {F}}\)
\(\newcommand {\cO }{\mathcal {O}}\)
\(\newcommand {\cC }{\mathcal {C}}\)
\(\newcommand {\cP }{\mathcal {P}}\)
\(\newcommand {\cF }{\mathcal {F}}\)
\(\newcommand {\cS }{\mathcal {S}}\)
\(\newcommand {\cK }{\mathcal {K}}\)
\(\newcommand {\cM }{\mathcal {M}}\)
\(\newcommand {\GG }{\mathbb {G}}\)
\(\newcommand {\ZZ }{\mathbb {Z}}\)
\(\newcommand {\NN }{\mathbb {N}}\)
\(\newcommand {\PP }{\mathbb {P}}\)
\(\newcommand {\QQ }{\mathbb {Q}}\)
\(\newcommand {\RR }{\mathbb {R}}\)
\(\newcommand {\LL }{\mathbb {L}}\)
\(\newcommand {\HH }{\mathbb {H}}\)
\(\newcommand {\EE }{\mathbb {E}}\)
\(\newcommand {\SP }{\mathbb {S}}\)
\(\newcommand {\CC }{\mathbb {C}}\)
\(\newcommand {\FF }{\mathbb {F}}\)
\(\renewcommand {\AA }{\mathbb {A}}\)
\(\newcommand {\sF }{\mathscr {F}}\)
\(\newcommand {\sC }{\mathscr {C}}\)
\(\newcommand {\ts }{\textsuperscript }\)
\(\newcommand {\mf }{\mathfrak }\)
\(\newcommand {\cc }{\mf {c}}\)
\(\newcommand {\mg }{\mf {g}}\)
\(\newcommand {\ma }{\mf {a}}\)
\(\newcommand {\mh }{\mf {h}}\)
\(\newcommand {\mn }{\mf {n}}\)
\(\newcommand {\mc }{\mf {c}}\)
\(\newcommand {\ul }{\underline }\)
\(\newcommand {\mz }{\mf {z}}\)
\(\newcommand {\me }{\mf {e}}\)
\(\newcommand {\mff }{\mf {f}}\)
\(\newcommand {\mm }{\mf {m}}\)
\(\newcommand {\mt }{\mf {t}}\)
\(\newcommand {\pp }{\mf {p}}\)
\(\newcommand {\qq }{\mf {q}}\)
\(\newcommand {\gl }{\mf {gl}}\)
\(\newcommand {\msl }{\mf {sl}}\)
\(\newcommand {\so }{\mf {so}}\)
\(\newcommand {\mfu }{\mf {u}}\)
\(\newcommand {\su }{\mf {su}}\)
\(\newcommand {\msp }{\mf {sp}}\)
\(\renewcommand {\aa }{\mf {a}}\)
\(\newcommand {\bb }{\mf {b}}\)
\(\newcommand {\sR }{\mathscr {R}}\)
\(\newcommand {\lb }{\langle }\)
\(\newcommand {\rb }{\rangle }\)
\(\newcommand {\ff }{\mf {f}}\)
\(\newcommand {\ee }{\epsilon }\)
\(\newcommand {\heart }{\heartsuit }\)
\(\newcommand {\Mloc }{\mathcal {M}_{\text {loc}}}\)
\(\newcommand {\Mnilpnil }{\mathcal {M}_{\text {nil}}^{\text {pnil}}}\)
\(\newcommand {\Uloc }{\mathcal {U}_{\text {loc}}}\)
\(\newcommand {\Mnil }{\mathcal {M}_{\text {nil}}}\)
\(\newcommand {\Unil }{\mathcal {U}_{\text {nil}}}\)
\(\newcommand {\floor }[1]{\lfloor #1 \rfloor }\)
\(\newcommand {\ceil }[1]{\lceil #1 \rceil }\)
\(\newcommand {\pushout }{\arrow [ul, phantom, "\ulcorner ", very near start]}\)
\(\newcommand {\pullback }{\arrow [dr, phantom, "\lrcorner ", very near start]}\)
\(\newcommand {\simp }[1]{#1^{\Delta ^{op}}}\)
\(\newcommand {\arrowtcupp }[2]{\arrow [bend left=50, ""{name=U, below,inner sep=1}]{#1}\arrow [Rightarrow,from=U,to=MU,"#2"]}\)
\(\newcommand {\arrowtclow }[2]{\arrow [bend right=50, ""{name=L,inner sep=1}]{#1}\arrow [Rightarrow,from=LM,to=L]{}[]{#2}}\)
\(\newcommand {\arrowtcmid }[2]{\arrow [""{name=MU,inner sep=1},""{name=LM,below,inner sep=1}]{#1}[pos=.1]{#2}}\)
\(\newcommand {\dummy }{\textcolor {white}{\bullet }}\)
\(\newcommand {\adjunction }[4]{ #1\hspace {2pt}\colon #2 \leftrightharpoons #3 \hspace {2pt}\colon #4 }\)
\(\newcommand {\aug }{\mathop {\rm aug}\nolimits }\)
\(\newcommand {\MC }{\mathop {\rm MC}\nolimits }\)
\(\newcommand {\art }{\mathop {\rm art}\nolimits }\)
\(\newcommand {\DiGrph }{\mathop {\rm DiGrph}\nolimits }\)
\(\newcommand {\FMP }{\mathop {\rm FMP}\nolimits }\)
\(\newcommand {\CAlg }{\mathop {\rm CAlg}\nolimits }\)
\(\newcommand {\perf }{\mathop {\rm perf}\nolimits }\)
\(\newcommand {\cof }{\mathop {\rm cof}\nolimits }\)
\(\newcommand {\fib }{\mathop {\rm fib}\nolimits }\)
\(\newcommand {\Thick }{\mathop {\rm Thick}\nolimits }\)
\(\newcommand {\Orb }{\mathop {\rm Orb}\nolimits }\)
\(\newcommand {\ko }{\mathop {\rm ko}\nolimits }\)
\(\newcommand {\Spf }{\mathop {\rm Spf}\nolimits }\)
\(\newcommand {\Spc }{\mathop {\rm Spc}\nolimits }\)
\(\newcommand {\sk }{\mathop {\rm sk}\nolimits }\)
\(\newcommand {\cosk }{\mathop {\rm cosk}\nolimits }\)
\(\newcommand {\holim }{\mathop {\rm holim}\nolimits }\)
\(\newcommand {\hocolim }{\mathop {\rm hocolim}\nolimits }\)
\(\newcommand {\Pre }{\mathop {\rm Pre}\nolimits }\)
\(\newcommand {\THR }{\mathop {\rm THR}\nolimits }\)
\(\newcommand {\THH }{\mathop {\rm THH}\nolimits }\)
\(\newcommand {\Fun }{\mathop {\rm Fun}\nolimits }\)
\(\newcommand {\Loc }{\mathop {\rm Loc}\nolimits }\)
\(\newcommand {\Bord }{\mathop {\rm Bord}\nolimits }\)
\(\newcommand {\Cob }{\mathop {\rm Cob}\nolimits }\)
\(\newcommand {\Set }{\mathop {\rm Set}\nolimits }\)
\(\newcommand {\Ind }{\mathop {\rm Ind}\nolimits }\)
\(\newcommand {\Sind }{\mathop {\rm Sind}\nolimits }\)
\(\newcommand {\Ext }{\mathop {\rm Ext}\nolimits }\)
\(\newcommand {\sd }{\mathop {\rm sd}\nolimits }\)
\(\newcommand {\Ex }{\mathop {\rm Ex}\nolimits }\)
\(\newcommand {\Out }{\mathop {\rm Out}\nolimits }\)
\(\newcommand {\Cyl }{\mathop {\rm Cyl}\nolimits }\)
\(\newcommand {\Path }{\mathop {\rm Path}\nolimits }\)
\(\newcommand {\Ch }{\mathop {\rm Ch}\nolimits }\)
\(\newcommand {\SSet }{\mathop {\rm \Set ^{\Delta ^{op}}}\nolimits }\)
\(\newcommand {\Sq }{\mathop {\rm Sq}\nolimits }\)
\(\newcommand {\Free }{\mathop {\rm Free}\nolimits }\)
\(\newcommand {\Map }{\mathop {\rm Map}\nolimits }\)
\(\newcommand {\Chain }{\mathop {\rm Ch}\nolimits }\)
\(\newcommand {\LMap }{\mathop {\rm LMap}\nolimits }\)
\(\newcommand {\RMap }{\mathop {\rm RMap}\nolimits }\)
\(\newcommand {\Tot }{\mathop {\rm Tot}\nolimits }\)
\(\newcommand {\MU }{\mathop {\rm MU}\nolimits }\)
\(\newcommand {\MSU }{\mathop {\rm MSU}\nolimits }\)
\(\newcommand {\MSp }{\mathop {\rm MSp}\nolimits }\)
\(\newcommand {\MSO }{\mathop {\rm MSO}\nolimits }\)
\(\newcommand {\MO }{\mathop {\rm MO}\nolimits }\)
\(\newcommand {\BU }{\mathop {\rm BU}\nolimits }\)
\(\newcommand {\KU }{\mathop {\rm KU}\nolimits }\)
\(\newcommand {\BSU }{\mathop {\rm BSU}\nolimits }\)
\(\newcommand {\BSp }{\mathop {\rm BSp}\nolimits }\)
\(\newcommand {\BGL }{\mathop {\rm BGL}\nolimits }\)
\(\newcommand {\BSO }{\mathop {\rm BSO}\nolimits }\)
\(\newcommand {\BO }{\mathop {\rm BO}\nolimits }\)
\(\newcommand {\KO }{\mathop {\rm KO}\nolimits }\)
\(\newcommand {\Tor }{\mathop {\rm Tor}\nolimits }\)
\(\newcommand {\Cotor }{\mathop {\rm Cotor}\nolimits }\)
\(\newcommand {\imag }{\mathop {\rm Im}\nolimits }\)
\(\newcommand {\real }{\mathop {\rm Re}\nolimits }\)
\(\newcommand {\Cat }{\mathop {\rm Cat}\nolimits }\)
\(\newcommand {\Fld }{\mathop {\rm Fld}\nolimits }\)
\(\newcommand {\Frac }{\mathop {\rm Frac}\nolimits }\)
\(\newcommand {\Dom }{\mathop {\rm Dom}\nolimits }\)
\(\newcommand {\Hotc }{\mathop {\rm Hotc}\nolimits }\)
\(\newcommand {\Top }{\mathop {\rm Top}\nolimits }\)
\(\newcommand {\Ring }{\mathop {\rm Ring}\nolimits }\)
\(\newcommand {\CRing }{\mathop {\rm CRing}\nolimits }\)
\(\newcommand {\CGHaus }{\mathop {\rm CGHaus}\nolimits }\)
\(\newcommand {\Alg }{\mathop {\rm Alg}\nolimits }\)
\(\newcommand {\Bool }{\mathop {\rm Bool}\nolimits }\)
\(\newcommand {\hTop }{\mathop {\rm hTop}\nolimits }\)
\(\newcommand {\Nat }{\mathop {\rm Nat}\nolimits }\)
\(\newcommand {\Rel }{\mathop {\rm Rel}\nolimits }\)
\(\newcommand {\Mod }{\mathop {\rm Mod}\nolimits }\)
\(\newcommand {\Space }{\mathop {\rm Space}\nolimits }\)
\(\newcommand {\Vect }{\mathop {\rm Vect}\nolimits }\)
\(\newcommand {\FinVect }{\mathop {\rm FinVect}\nolimits }\)
\(\newcommand {\Matr }{\mathop {\rm Matr}\nolimits }\)
\(\newcommand {\Ab }{\mathop {\rm Ab}\nolimits }\)
\(\newcommand {\Gr }{\mathop {\rm Gr}\nolimits }\)
\(\newcommand {\Grp }{\mathop {\rm Grp}\nolimits }\)
\(\newcommand {\Hol }{\mathop {\rm Hol}\nolimits }\)
\(\newcommand {\Gpd }{\mathop {\rm Gpd}\nolimits }\)
\(\newcommand {\Grpd }{\mathop {\rm Gpd}\nolimits }\)
\(\newcommand {\Mon }{\mathop {\rm Mon}\nolimits }\)
\(\newcommand {\FinSet }{\mathop {\rm FinSet}\nolimits }\)
\(\newcommand {\Sch }{\mathop {\rm Sch}\nolimits }\)
\(\newcommand {\AffSch }{\mathop {\rm AffSch}\nolimits }\)
\(\newcommand {\Idem }{\mathop {\rm Idem}\nolimits }\)
\(\newcommand {\SIdem }{\mathop {\rm SIdem}\nolimits }\)
\(\newcommand {\Aut }{\mathop {\rm Aut}\nolimits }\)
\(\newcommand {\Ord }{\mathop {\rm Ord}\nolimits }\)
\(\newcommand {\coker }{\mathop {\rm coker}\nolimits }\)
\(\newcommand {\ch }{\mathop {\rm char}\nolimits }\)
\(\newcommand {\Sym }{\mathop {\rm Sym}\nolimits }\)
\(\newcommand {\adj }{\mathop {\rm adj}\nolimits }\)
\(\newcommand {\dil }{\mathop {\rm dil}\nolimits }\)
\(\newcommand {\Cl }{\mathop {\rm Cl}\nolimits }\)
\(\newcommand {\Diff }{\mathop {\rm Diff}\nolimits }\)
\(\newcommand {\End }{\mathop {\rm End}\nolimits }\)
\(\newcommand {\Hom }{\mathop {\rm Hom}\nolimits }\)
\(\newcommand {\Gal }{\mathop {\rm Gal}\nolimits }\)
\(\newcommand {\Pos }{\mathop {\rm Pos}\nolimits }\)
\(\newcommand {\Ad }{\mathop {\rm Ad}\nolimits }\)
\(\newcommand {\GL }{\mathop {\rm GL}\nolimits }\)
\(\newcommand {\SL }{\mathop {\rm SL}\nolimits }\)
\(\newcommand {\vol }{\mathop {\rm vol}\nolimits }\)
\(\newcommand {\reg }{\mathop {\rm reg}\nolimits }\)
\(\newcommand {\Or }{\textnormal {O}}\)
\(\newcommand {\U }{\mathop {\rm U}\nolimits }\)
\(\newcommand {\SOr }{\mathop {\rm SO}\nolimits }\)
\(\newcommand {\SU }{\mathop {\rm SU}\nolimits }\)
\(\newcommand {\Spin }{\mathop {\rm Spin}\nolimits }\)
\(\newcommand {\Sp }{\mathop {\rm Sp}\nolimits }\)
\(\newcommand {\Int }{\mathop {\rm Int}\nolimits }\)
\(\newcommand {\im }{\mathop {\rm im}\nolimits }\)
\(\newcommand {\dom }{\mathop {\rm dom}\nolimits }\)
\(\newcommand {\di }{\mathop {\rm div}\nolimits }\)
\(\newcommand {\cod }{\mathop {\rm cod}\nolimits }\)
\(\newcommand {\colim }{\mathop {\rm colim}\nolimits }\)
\(\newcommand {\ad }{\mathop {\rm ad}\nolimits }\)
\(\newcommand {\PSL }{\mathop {\rm PSL}\nolimits }\)
\(\newcommand {\PGL }{\mathop {\rm PGL}\nolimits }\)
\(\newcommand {\sep }{\mathop {\rm sep}\nolimits }\)
\(\newcommand {\MCG }{\mathop {\rm MCG}\nolimits }\)
\(\newcommand {\oMCG }{\mathop {\rm MCG^+}\nolimits }\)
\(\newcommand {\Spec }{\mathop {\rm Spec}\nolimits }\)
\(\newcommand {\rank }{\mathop {\rm rank}\nolimits }\)
\(\newcommand {\diverg }{\mathop {\rm div}\nolimits }\)
\(\newcommand {\disc }{\mathop {\rm disc}\nolimits }\)
\(\newcommand {\sign }{\mathop {\rm sign}\nolimits }\)
\(\newcommand {\Arf }{\mathop {\rm Arf}\nolimits }\)
\(\newcommand {\Pic }{\mathop {\rm Pic}\nolimits }\)
\(\newcommand {\Tr }{\mathop {\rm Tr}\nolimits }\)
\(\newcommand {\res }{\mathop {\rm res}\nolimits }\)
\(\newcommand {\Proj }{\mathop {\rm Proj}\nolimits }\)
\(\newcommand {\mult }{\mathop {\rm mult}\nolimits }\)
\(\newcommand {\N }{\mathop {\rm N}\nolimits }\)
\(\newcommand {\lk }{\mathop {\rm lk}\nolimits }\)
\(\newcommand {\Pf }{\mathop {\rm Pf}\nolimits }\)
\(\newcommand {\sgn }{\mathop {\rm sgn}\nolimits }\)
\(\newcommand {\grad }{\mathop {\rm grad}\nolimits }\)
\(\newcommand {\lcm }{\mathop {\rm lcm}\nolimits }\)
\(\newcommand {\Ric }{\mathop {\rm Ric}\nolimits }\)
\(\newcommand {\Hess }{\mathop {\rm Hess}\nolimits }\)
\(\newcommand {\sn }{\mathop {\rm sn}\nolimits }\)
\(\newcommand {\cut }{\mathop {\rm cut}\nolimits }\)
\(\newcommand {\tr }{\mathop {\rm tr}\nolimits }\)
\(\newcommand {\codim }{\mathop {\rm codim}\nolimits }\)
\(\newcommand {\ind }{\mathop {\rm index}\nolimits }\)
\(\newcommand {\rad }{\mathop {\rm rad}\nolimits }\)
\(\newcommand {\Rep }{\mathop {\rm Rep}\nolimits }\)
\(\newcommand {\Lie }{\mathop {\rm Lie}\nolimits }\)
\(\newcommand {\Der }{\mathop {\rm Der}\nolimits }\)
\(\newcommand {\hgt }{\mathop {\rm ht}\nolimits }\)
\(\newcommand {\Ider }{\mathop {\rm Ider}\nolimits }\)
\(\newcommand {\id }{\mathop {\rm id}\nolimits }\)
2 Division Algorithms and Gröbner Bases
Whenever we have a monomial ordering, we have a notion of leading coefficient, namely the highest nonzero term according to the ordering. Given an ideal \((f_1,\dots f_n)\), we would like to run the following division
algorithm: Take a polynomial \(g\), and compare leading coefficients with each \(f_i\). If the leading coefficient of \(f_i\) divides one of \(g\)’s terms, subtract the corresponding multiple of \(f_i\) from \(g\). If you are not
capable of doing this with any of the \(f_i\), then set the leading term aside as a remainder, and continue with the rest of the polynomial. As the monomial ordering is well-ordered, this will stop eventually, ie. none of the leading
terms of the \(f_i\) will divide any of what is left of \(g\). We would like this process to yield a unique remainder for any two members of the same coset of the ideal so we can do computations in the quotient. Given arbitrary
generators of an ideal, this may not always work unfortunately.
For example, consider \((x+y,x^2+xy+y^2)\) with the lexicographical order \(x>y\). We can try to reduce the polynomial \(x^2 + xy\) in two ways. First we can subtract \(x(x+y)\) from it to get \(0\), after which we are
done. Or we can subtract \(1(x^2+xy+y^2)\) from it to get \(-y^2\), after which we are done. Note that we got different remainders, which is not what we’d like. To fix this, we should choose a different set of generators for the ideal
that also generate the ideal of leading coefficients, for example \((y^2,x+y)\). If we were to run the algorithm on this set of generators, we would get \(0\) both times. This is because \((y^2,x+y)\) is a Gröbner basis.
-
Proposition 2.2. If \(G\) is a Gröbner basis of \(I\), then the division
algorithm yields a unique representative for each coset of \(R[x_1,\dots ,x_n]/I\). In particular, it is \(0\) iff the element is in the ideal, so \(G\) generates \(I\).
-
Proof. Suppose we have two remainders of elements from the same coset, \(r_1, r_2\) and we subtract them. We’ll get something in \(I\) but if it is nonzero, we can apply the
algorithm to it as \(G\) is a Gröbner basis. But any term we remove must have come from either \(r_1\) or \(r_2\), which is a contradiction, as it means the division algorithm was not yet complete on \(r_1\) or
\(r_2\). If \(r_1\) is in the ideal, it must be \(0\) or else the algorithm again is not complete. □
By Proposition 2.2 and the proof of the Hilbert Basis Theorem (except now we are working with arbitrary monomial orderings) we get that every ideal
has a Gröbner basis. How can we actually compute it? The Buchberger Criterion gives a way to do this. From now on, we will work over a field \(K\).
To motivate this, consider the example before with \((x+y,x^2+xy+y^2)\). We can look at the leading terms, \(x\) and \(x^2\), and take the LCM, \(x^2\). We can then add in the extra term \(x(x+y)-1(x^2+xy+y^2) =
-y^2\). Adding this in to our list of generators, we do get a Gröbner basis. The Buchberger Criterion says this strategy will always work.
First we will set up some notation. Fix a set of generators of \(I\), \(G\). We say \(f \mapsto r\) to mean that applying the algorithm to \(f\) with \(G\) yields \(r\) as the remainder. If \(f,g\) are polynomials, then we let
\(LCM = LCM(LT(f),LT(g))\) denote the monic that is the \(LCM\) of the leading terms of \(f\) and \(g\). We define \(S(f,g)\) = \(\frac {LCM}{LT(f)}f-\frac {LCM}{LT(g)}g\). We would like to say that any missing
generators to make a Gröbner basis will be produced by repeatedly adding the \(S(f,g)\) until they are no longer needed.
Before we prove the Buchberger Criterion, a simple lemma:
-
Lemma 2.3. Suppose that \(f_1 \dots f_n\) are polynomials of the same leading
monomial. Then if \(h = \sum _1^n s_if_i, s_i \in K\) has leading term smaller than the \(f_i\), then \(h = \sum _1^{n-1}r_iS(f_i,f_{i+1}), r_i \in K\).
-
Proof. WLOG assume the \(f_i\) are monic. Note \(S(f_i,f_{i+1})\) is just \(f_i-f_{i+1}\). Then write \(\sum _1^n s_if_i\) as \(\sum _1^{n-1} \big (\sum _1^is_i\big
)(f_i-f_{i+1}) + \big (\sum _1^ns_i\big )f_n\). Each of the terms in the first sum has leading term smaller than the \(f_i\), so \(\big (\sum _1^ns_i\big )f_n = 0\), and we get that \(h = \sum _1^ns_if_i = \sum
_1^{n-1}\big (\sum _1^is_i\big )S(f_i,f_{i+1})\). □
-
Proof. The only if follows from Proposition 2.2. Now suppose each \(S(f_i,f_j) \mapsto 0\) and \(G\)
generates \(I\). Take any \(f \in I\), and apply the division algorithm to get a remainder \(f'\). Choose a representation \(f' = \sum _1^ng_if_i\) such that the maximal leading term of each summand is
minimal, say \(\alpha \). Suppose \(f' \neq 0\), so that \(\alpha > LT(f)\). We will try to find a smaller representation using the fact that \(S(f_i,f_j) \mapsto 0\).
We have:
\(\seteqnumber{0}{}{0}\)
\begin{align*}
f' &= \sum _1^ng_if_i\\ &= \sum _{LT(g_if_i)=\alpha }LT(g_i)f_i + \sum _{LT(g_if_i)=\alpha }(g_i-LT(g_i))f_i + \sum _{LT(g_if_i)<\alpha }g_if_i\\ &= \sum
s_iS(LT(g_i)f_i,LT(g_j)f_j) + \sum _{LT(g_if_i)=\alpha }(g_i-LT(g_i))f_i + \sum _{LT(g_if_i)<\alpha }g_if_i
\end{align*}
The second two sums have all their terms smaller than \(\alpha \) so Lemma 2.3 applies to the first sum, which is what has been done in the last step.
However now we have a contradiction as \(S(LT(g_i)f_i,LT(g_j)f_j)\) is a monomial multiplied with \(S(f_i,f_j)\) so we have \(S(LT(g_i)f_i,LT(g_j)f_j) \mapsto 0\) so it can be written as a linear combination of the
\(f_i\) with degrees of each term at most that of \(S(LT(g_i)f_i,LT(g_j)f_j)\), which in particular is smaller than \(\alpha \). This contradicts minimality of \(\alpha \). □
Buchberger’s Criterion allows us to produce Gröbner bases. In particular, given a set of generators \(\{f_1 \dots f_n\}\) we can compute the \(S(f_i,f_j)\), and reduce them. If they are all zero, we have a
Gröbner basis, otherwise we add the remainder to the list and repeat until the criterion is satisfied. Now that we can find Gröbner bases, we can compute in quotient rings, and make nontrivial statements about
the ideals that we are working with. In particular, this gives an effective Nullstellensatz, as an ideal is trivial iff \(1\) is in a Gröbner basis of it.