{
  "aliases": null,
  "backlinks": null,
  "body": "\n## Definition\n\nLet $k$ be a [[field|04C5ZBG1WT]], let $S = k[x_1, \\ldots, x_n]$ be the [[polynomial ring|0SDC934R52]], and fix a [[monomial order|E874NARWPV]].\nFor nonzero $f \\in S$, let $\\operatorname{LT}(f)$ be its leading term and $\\operatorname{LM}(f)$ its leading monomial.\nFor nonzero $f, g \\in S$, let $x^\\gamma$ be the [[least common multiple|007NPQX34K]] of $\\operatorname{LM}(f)$ and $\\operatorname{LM}(g)$; the *S-polynomial* of $f$ and $g$ is\n$$S(f, g) = \\frac{x^\\gamma}{\\operatorname{LT}(f)} \\, f - \\frac{x^\\gamma}{\\operatorname{LT}(g)} \\, g.$$\n*Buchberger's algorithm* takes a finite set $F$ of nonzero elements of $S$ and proceeds as follows.\n\n1. Set $G = F$.\n2. For each pair $f \\ne g$ in $G$, compute the remainder $r$ of $S(f, g)$ under the [[multivariate division algorithm|T8EN3CAEQF]] by $G$, listed in a fixed order.\n3. If some such $r$ is nonzero, add all the nonzero remainders to $G$ and go back to step 2.\n4. If all such remainders are zero, return $G$.\n\n## Remarks\n\nThe algorithm rests on Buchberger's criterion.\nLet $G$ be a finite set of generators of an ideal $I$.\nThen $G$ is a [[Gröbner basis|C83KPT47R0]] of $I$ if and only if each $S(f, g)$ with $f, g \\in G$ has remainder zero on division by $G$.\nThe algorithm stops for the following reason.\nEach pass with a nonzero remainder makes the [[monomial ideal|4G25S7PJ22]] generated by the leading terms of $G$ strictly larger.\nAn ascending chain of ideals of $S$ is stationary by [[Hilbert's basis theorem|0YKA9J3XEE]].\nThe output is a Gröbner basis of the ideal generated by $F$.\n\nExample: in $k[x, y]$ with the lexicographic order $x \u003e y$, let $F = \\set{x + y, \\; x}$.\nThen $S(x + y, x) = (x + y) - x = y$, which has remainder $y \\ne 0$ on division by $F$, so $y$ is added.\nFor $G = \\set{x + y, x, y}$, one finds $S(x + y, y) = y(x + y) - x y = y^2$, with remainder $0$, and $S(x, y) = 0$, and $S(x + y, x) = y$ now has remainder $0$.\nSo $G$ is a Gröbner basis of $(x, y)$.\n\nNon-example: the set $F$ above fails the test in step 4, since $S(x + y, x)$ has nonzero remainder; this is why $F$ is not a Gröbner basis.\n",
  "commit": "547b6eddb8f2feb8d579f2d633d22a27b7e132fc",
  "front": {
    "defines": "4RH1D40WG1",
    "kind": "definition",
    "msc": [
      "13P10",
      "68W30"
    ],
    "name": "Buchberger's algorithm",
    "sources": [
      {
        "url": "https://en.wikipedia.org/wiki/Buchberger's_algorithm"
      }
    ],
    "tag": "YC90FXM4SA",
    "uses": [
      "04C5ZBG1WT",
      "0SDC934R52",
      "E874NARWPV",
      "007NPQX34K",
      "T8EN3CAEQF",
      "C83KPT47R0",
      "4G25S7PJ22",
      "0YKA9J3XEE"
    ]
  },
  "kind": "definition",
  "link": "https://math2.tamnd.com/node/YC90FXM4SA/",
  "links": [
    {
      "field": "defines",
      "target": "4RH1D40WG1"
    },
    {
      "field": "uses",
      "target": "04C5ZBG1WT"
    },
    {
      "field": "uses",
      "target": "0SDC934R52"
    },
    {
      "field": "uses",
      "target": "E874NARWPV"
    },
    {
      "field": "uses",
      "target": "007NPQX34K"
    },
    {
      "field": "uses",
      "target": "T8EN3CAEQF"
    },
    {
      "field": "uses",
      "target": "C83KPT47R0"
    },
    {
      "field": "uses",
      "target": "4G25S7PJ22"
    },
    {
      "field": "uses",
      "target": "0YKA9J3XEE"
    }
  ],
  "markdown": "https://math2.tamnd.com/node/YC90FXM4SA.md",
  "msc": [
    "13P10",
    "68W30"
  ],
  "name": "Buchberger's algorithm",
  "prov": null,
  "role": "",
  "source": "https://github.com/tamnd/math2/blob/main/nodes/YC9/YC90FXM4SA.md",
  "status": null,
  "tag": "YC90FXM4SA",
  "uri": "m2://YC90FXM4SA",
  "url": "https://math2.tamnd.com/wiki/buchbergers-algorithm-definition/",
  "writing": {
    "tag": "YC90FXM4SA",
    "kind": "definition",
    "level": "W0",
    "next": [
      {
        "what": "a source with a locator",
        "have": 0,
        "want": 1
      }
    ]
  }
}
