{
  "aliases": null,
  "backlinks": [
    {
      "field": "uses",
      "target": "BT7D4VQ6Y0"
    },
    {
      "field": "defines",
      "target": "TT0HJQ6QD7"
    }
  ],
  "body": "\n## Summary\n\nAn initial algebra of an endofunctor $F$ is an [[F-algebra|4RB8834SEJ]] from which there is exactly one homomorphism to every other $F$-algebra.\nIt is unique up to unique isomorphism, and by [[Lambek's lemma|S9FVESJ0CS]] its structure map is an isomorphism, so it is a fixed point of $F$.\nInitial algebras give a uniform account of inductive definitions and of definitions by recursion.\nThe unique homomorphism out of the initial algebra is the function defined by structural recursion.\nFor a signature, the initial algebra is the term algebra, which is the basis of [[initial algebra semantics|HVF403PQ4H]] for abstract data types.\n\n## Explanations\n\n### L1 human\n\nThe natural numbers are built from $0$ by repeatedly adding $1$, and nothing else.\nThat is why a function on them can be defined by giving its value at $0$ and a rule for passing from $n$ to $n + 1$.\nInitiality is the abstract form of this fact.\nLists, finite trees and terms are initial algebras of other functors, and the same recursion principle holds for them.\n",
  "commit": "ff8a40749dc16545e3d2fc637f6b0196e81d0bfa",
  "front": {
    "kind": "concept",
    "msc": [
      "18C15",
      "08C05",
      "68Q65"
    ],
    "name": "Initial algebra",
    "same_as": {
      "wikidata": "Q6034125",
      "wikipedia": "Initial algebra"
    },
    "sources": [
      {
        "url": "https://en.wikipedia.org/wiki/Initial_algebra"
      }
    ],
    "specializes": [
      "4RB8834SEJ"
    ],
    "tag": "R76EC56V9R"
  },
  "kind": "concept",
  "link": "https://tamnd.github.io/math2/node/R76EC56V9R/",
  "links": [
    {
      "field": "specializes",
      "target": "4RB8834SEJ"
    }
  ],
  "markdown": "https://tamnd.github.io/math2/node/R76EC56V9R.md",
  "msc": [
    "18C15",
    "08C05",
    "68Q65"
  ],
  "name": "Initial algebra",
  "prov": null,
  "role": "",
  "source": "https://github.com/tamnd/math2/blob/main/nodes/R76/R76EC56V9R.md",
  "status": null,
  "tag": "R76EC56V9R",
  "uri": "m2://R76EC56V9R",
  "url": "https://tamnd.github.io/math2/wiki/initial-algebra/",
  "writing": {
    "tag": "R76EC56V9R",
    "kind": "concept",
    "level": "W0",
    "next": [
      {
        "what": "an inventory row",
        "note": "the row of the inventory that the node accounts for",
        "have": 0,
        "want": 1
      },
      {
        "what": "a source with a locator",
        "have": 0,
        "want": 1
      }
    ]
  }
}
