Algorithm Search⌘K

Proofs: Buchberger's algorithm

These are the human proofs of Buchberger's algorithm, at full length.

Buchberger's algorithm stops and returns a Gröbner basis full

This proof shows: correctness, termination.

We use the notation of the page. KK is a field, >> is a monomial order on K[x1,…,xn]K[x_1, \ldots, x_n], F=(f1,…,fs)F = (f_1, \ldots, f_s) and I=⟨f1,…,fs⟩I = \langle f_1, \ldots, f_s \rangle. For i≠ji \ne j, xγijx^{\gamma_{ij}} is the lcm of LM⁡(gi)\operatorname{LM}(g_i) and LM⁡(gj)\operatorname{LM}(g_j). An lcm-representation of S(gi,gj)S(g_i, g_j) by G=(g1,…,gt)G = (g_1, \ldots, g_t) is an equation S(gi,gj)=∑l=1tAlglS(g_i, g_j) = \sum_{l=1}^t A_l g_l with LM⁡(Algl)<xγij\operatorname{LM}(A_l g_l) < x^{\gamma_{ij}} whenever Algl≠0A_l g_l \ne 0. We use two facts.

  • Division (D). Division of pp by a list GG stops and gives p=∑lAlgl+hp = \sum_l A_l g_l + h, where no term of hh is divisible by any LM⁡(gl)\operatorname{LM}(g_l), and LM⁡(Algl)≤LM⁡(p)\operatorname{LM}(A_l g_l) \le \operatorname{LM}(p) and LM⁡(h)≤LM⁡(p)\operatorname{LM}(h) \le \operatorname{LM}(p) whenever these are nonzero. (See multivariate division.)
  • Buchberger's criterion (BC). A finite set of nonzero generators of II is a Gröbner basis of II if each of its S-polynomials has an lcm-representation. The product criterion: if LM⁡(gi)\operatorname{LM}(g_i) and LM⁡(gj)\operatorname{LM}(g_j) are coprime, S(gi,gj)S(g_i, g_j) has an lcm-representation by {gi,gj}\{g_i, g_j\}. (Both are proved on the page Buchberger's criteria.)

Invariants. At each test of line L3:

(I1) Each gug_u is a nonzero element of II, and {g1,…,gt}\{g_1, \ldots, g_t\} generates II.

(I2) For each pair 1≤i<j≤t1 \le i < j \le t that is not in BB, S(gi,gj)S(g_i, g_j) has an lcm-representation by (g1,…,gt)(g_1, \ldots, g_t).

Initialization. After lines L1 and L2, GG holds the nonzero fif_i, which are in II and generate II (a zero generator adds nothing). Every pair i<j≤ti < j \le t is in BB, so (I2) holds with nothing to check.

Maintenance. Consider one round, with the pair (i,j)(i, j) removed at line L4. An lcm-representation by a list stays one when the list grows, since we may take Al=0A_l = 0 for new elements. So (I2) for old pairs not in BB stays true, and we only check the pair (i,j)(i, j) and the new pairs.

  • If line L5 skips the pair, the product criterion gives an lcm-representation of S(gi,gj)S(g_i, g_j) by {gi,gj}⊆G\{g_i, g_j\} \subseteq G.
  • Otherwise line L6 gives, by (D), S(gi,gj)=∑lAlgl+hS(g_i, g_j) = \sum_l A_l g_l + h with LM⁡(Algl)≤LM⁡(S(gi,gj))\operatorname{LM}(A_l g_l) \le \operatorname{LM}(S(g_i, g_j)). The leading terms of the two parts of S(gi,gj)S(g_i, g_j) cancel, so S(gi,gj)=0S(g_i, g_j) = 0 or LM⁡(S(gi,gj))<xγij\operatorname{LM}(S(g_i, g_j)) < x^{\gamma_{ij}}. If h=0h = 0, the sum is an lcm-representation (if S(gi,gj)=0S(g_i, g_j) = 0 all AlA_l are 00 and the empty sum is one). If h≠0h \ne 0, line L8 appends hh as gtg_t, and S(gi,gj)=∑lAlgl+1⋅gtS(g_i, g_j) = \sum_l A_l g_l + 1 \cdot g_t is an lcm-representation, because LM⁡(h)≤LM⁡(S(gi,gj))<xγij\operatorname{LM}(h) \le \operatorname{LM}(S(g_i, g_j)) < x^{\gamma_{ij}}.
  • For (I1): h=S(gi,gj)−∑lAlglh = S(g_i, g_j) - \sum_l A_l g_l is a combination of elements of II, so h∈Ih \in I, and h≠0h \ne 0 when it is appended. Adding an element of II to a generating set of II keeps it a generating set.
  • Line L9 puts each new pair (u,t)(u, t) into BB, so (I2) does not speak about them.

Exit. When line L3 finds B=∅B = \emptyset, (I2) covers all pairs i<j≤ti < j \le t, and (I1) says that GG is a finite set of nonzero generators of II. By (BC), GG is a Gröbner basis of II. It contains the nonzero elements of FF by line L1, and line L10 returns it. If FF has no nonzero element, GG is empty, which is the Gröbner basis of I={0}I = \{0\} by convention.

Termination. Let Jt=⟨LM⁡(g1),…,LM⁡(gt)⟩J_t = \langle \operatorname{LM}(g_1), \ldots, \operatorname{LM}(g_t) \rangle, a monomial ideal.

Step 1: each run of line L8 makes JJ strictly larger. The new hh is a nonzero remainder, so by (D) no LM⁡(gu)\operatorname{LM}(g_u) with u<tu < t divides any term of hh, in particular LM⁡(h)\operatorname{LM}(h). A monomial lies in a monomial ideal exactly when one of the generating monomials divides it. So LM⁡(h)∉Jt−1\operatorname{LM}(h) \notin J_{t-1}, and Jt−1⊊JtJ_{t-1} \subsetneq J_t.

Step 2: line L8 runs finitely often. Suppose it ran infinitely often. Then Jt0⊊Jt0+1⊊⋯J_{t_0} \subsetneq J_{t_0 + 1} \subsetneq \cdots is an infinite strictly increasing chain of ideals of K[x1,…,xn]K[x_1, \ldots, x_n]. Its union JJ is an ideal, and by the Hilbert basis theorem (or by Dickson's lemma for monomial ideals) it is generated by finitely many elements. Each of them lies in some JtJ_t, so all of them lie in one JTJ_T, and then J=JT=JT+1J = J_T = J_{T+1}, a contradiction.

Step 3: the loop stops. Let t∗t^\ast be the final length of GG, which exists by Step 2. Each round removes exactly one pair from BB at line L4, and pairs enter BB only at lines L2 and L9, with j≤t∗j \le t^\ast each time and each pair at most once. So BB receives at most (t∗2)\binom{t^\ast}{2} pairs in total, and the number of rounds is at most (t∗2)\binom{t^\ast}{2}. Each round stops, because division stops by (D). ■\blacksquare

Remark. The proof gives no bound on t∗t^\ast, because the chain argument of Step 2 is not quantitative. This is why the complexity section gives only bounds for the problem.

Back to Buchberger's algorithm