{
  "aliases": null,
  "backlinks": null,
  "body": "\n## Definition\n\nLet $R$ be a [[binary relation|08EJC6Q25H]] on a set $A$.\nThe transitive closure of $R$ is the relation $R^{+}$ on $A$ such that $a \\mathrel{R^{+}} b$ when there are $n \\ge 1$ and $x_0, \\dots, x_n \\in A$ with\n$$a = x_0 \\mathrel{R} x_1 \\mathrel{R} x_2 \\cdots x_{n-1} \\mathrel{R} x_n = b.$$\n\n## Remarks\n\nThe relation $R^{+}$ is [[transitive|0CYRECG2YQ]], it contains $R$, and it is a subset of each transitive relation that contains $R$.\nIt is also the intersection of all transitive relations on $A$ that contain $R$.\nExample: the transitive closure of \"is a parent of\" is \"is an ancestor of\".\n\n## Explanations\n\n### L1 human\n\nThe transitive closure adds all the shortcuts.\nIn a graph, $a \\mathrel{R^{+}} b$ means that there is a path of one or more arrows from $a$ to $b$.\n",
  "commit": "6ac761d40018146541484a9e8b9eafd6ecc303dc",
  "front": {
    "defines": "05J9NWX07X",
    "kind": "definition",
    "msc": [
      "03E20"
    ],
    "name": "Transitive closure",
    "sources": [
      {
        "locator": "lead section",
        "url": "https://en.wikipedia.org/wiki/Transitive_closure"
      }
    ],
    "tag": "0PEJH7AC74",
    "uses": [
      "08EJC6Q25H",
      "0CYRECG2YQ"
    ]
  },
  "kind": "definition",
  "link": "https://math2.tamnd.com/node/0PEJH7AC74/",
  "links": [
    {
      "field": "defines",
      "target": "05J9NWX07X"
    },
    {
      "field": "uses",
      "target": "08EJC6Q25H"
    },
    {
      "field": "uses",
      "target": "0CYRECG2YQ"
    }
  ],
  "markdown": "https://math2.tamnd.com/node/0PEJH7AC74.md",
  "msc": [
    "03E20"
  ],
  "name": "Transitive closure",
  "prov": null,
  "role": "",
  "source": "https://github.com/tamnd/math2/blob/main/nodes/0PE/0PEJH7AC74.md",
  "status": null,
  "tag": "0PEJH7AC74",
  "uri": "m2://0PEJH7AC74",
  "url": "https://math2.tamnd.com/wiki/transitive-closure-definition/",
  "writing": {
    "tag": "0PEJH7AC74",
    "kind": "definition",
    "level": "W1",
    "next": [
      {
        "what": "edge instance_of in",
        "note": "one example",
        "have": 0,
        "want": 1
      },
      {
        "what": "edge not_instance_of in",
        "note": "one non-example that fails one clause",
        "have": 0,
        "want": 1
      }
    ]
  }
}
