{
  "aliases": null,
  "backlinks": [
    {
      "field": "defines",
      "target": "BT7D4VQ6Y0"
    },
    {
      "field": "uses",
      "target": "QPT5H6MM99"
    }
  ],
  "body": "\n## Summary\n\nInitial algebra semantics gives meaning to syntax through the universal property of an initial algebra.\nThe terms of a signature form the [[term algebra|3YYKGWJJND]], which is an [[initial algebra|R76EC56V9R]]: it has exactly one [[homomorphism|KBXSZC6BV1]] to every algebra of the signature.\nChoosing a semantic algebra then fixes the meaning of every term, and the meaning is compositional because the map is a homomorphism.\nThe same idea, with equations added, gives the standard meaning of an algebraic specification and of an [[abstract data type|86144NHH59]].\n\n## Explanations\n\n### L1 human\n\nA program or a formula is built from small pieces by fixed rules.\nTo give it a meaning, it is enough to say what each basic symbol means and how each rule combines meanings.\nThe meaning of the whole then follows by working up from the pieces, and there is only one way to do it.\nFor example, the term $s(s(0)) + s(0)$ in the symbols $0$, $s$, $+$ gets the value $3$ once $0$ means zero, $s$ means \"add one\" and $+$ means addition.\nInitial algebra semantics is the precise form of this recipe.\n",
  "commit": "ff8a40749dc16545e3d2fc637f6b0196e81d0bfa",
  "front": {
    "kind": "concept",
    "msc": [
      "08A70",
      "68Q55",
      "08B20"
    ],
    "name": "Initial algebra semantics",
    "sources": [
      {
        "url": "https://en.wikipedia.org/wiki/Initial_algebra"
      }
    ],
    "tag": "HVF403PQ4H"
  },
  "kind": "concept",
  "link": "https://tamnd.github.io/math2/node/HVF403PQ4H/",
  "links": null,
  "markdown": "https://tamnd.github.io/math2/node/HVF403PQ4H.md",
  "msc": [
    "08A70",
    "68Q55",
    "08B20"
  ],
  "name": "Initial algebra semantics",
  "prov": null,
  "role": "",
  "source": "https://github.com/tamnd/math2/blob/main/nodes/HVF/HVF403PQ4H.md",
  "status": null,
  "tag": "HVF403PQ4H",
  "uri": "m2://HVF403PQ4H",
  "url": "https://tamnd.github.io/math2/wiki/initial-algebra-semantics/",
  "writing": {
    "tag": "HVF403PQ4H",
    "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
      }
    ]
  }
}
