{
  "aliases": null,
  "backlinks": [
    {
      "field": "defines",
      "target": "HHNJT9CBEJ"
    }
  ],
  "body": "\n## Summary\n\nTerm rewriting replaces the symmetric equations of an equational theory by one-way rules $l \\to r$ that rewrite terms.\nTwo terms are equal in the theory exactly when they are connected by a chain of rule applications in either direction.\nWhen the rules are terminating and confluent, every term has a unique normal form.\nThen two terms are equal in the theory exactly when their normal forms coincide.\nThis turns many word problems for free algebras into a mechanical computation, and the Knuth–Bendix procedure tries to find such rules.\n\n## Explanations\n\n### L1 human\n\nAn equation like $0 + x = x$ can be read as an instruction: wherever $0 + t$ appears, replace it by $t$.\nApplying such instructions until none applies simplifies a term to a normal form.\nIf the instructions always stop and the final answer never depends on the order of the steps, then comparing normal forms decides equality.\nFor example, with the rules $0 + x \\to x$ and $s(x) + y \\to s(x + y)$, the term $s(0) + s(0)$ rewrites to $s(0 + s(0))$ and then to $s(s(0))$.\n",
  "commit": "ff8a40749dc16545e3d2fc637f6b0196e81d0bfa",
  "front": {
    "kind": "concept",
    "msc": [
      "68Q42",
      "08B05",
      "03B35"
    ],
    "name": "Term rewriting for equational theories",
    "sources": [
      {
        "locator": "Term rewriting systems",
        "url": "https://en.wikipedia.org/wiki/Rewriting"
      }
    ],
    "tag": "A6J731Y193"
  },
  "kind": "concept",
  "link": "https://tamnd.github.io/math2/node/A6J731Y193/",
  "links": null,
  "markdown": "https://tamnd.github.io/math2/node/A6J731Y193.md",
  "msc": [
    "68Q42",
    "08B05",
    "03B35"
  ],
  "name": "Term rewriting for equational theories",
  "prov": null,
  "role": "",
  "source": "https://github.com/tamnd/math2/blob/main/nodes/A6J/A6J731Y193.md",
  "status": null,
  "tag": "A6J731Y193",
  "uri": "m2://A6J731Y193",
  "url": "https://tamnd.github.io/math2/wiki/term-rewriting-for-equational-theories/",
  "writing": {
    "tag": "A6J731Y193",
    "kind": "concept",
    "level": "W0",
    "next": [
      {
        "what": "an inventory row",
        "note": "the row of the inventory that the node accounts for",
        "have": 0,
        "want": 1
      }
    ]
  }
}
