{
  "aliases": null,
  "backlinks": [
    {
      "field": "uses",
      "target": "QPT5H6MM99"
    },
    {
      "field": "defines",
      "target": "ZETPP2VJFJ"
    }
  ],
  "body": "\n## Summary\n\nA many-sorted algebra has several carrier sets, one for each sort, and operations whose arguments and values may lie in different carriers.\nIt is also called a heterogeneous algebra.\nMany-sorted algebras describe structures with several kinds of objects.\nExamples are a module with its ring of scalars, and an automaton with its states and its input letters.\nThey are the standard setting for the algebraic specification of [[abstract data types|86144NHH59]] in computer science.\n\n## Explanations\n\n### L1 human\n\nAn ordinary algebra has one set of elements, and every operation takes elements of this set to an element of the same set.\nMany real structures mix several kinds of things.\nA vector space has vectors and scalars, and scalar multiplication takes one scalar and one vector to a vector.\nA many-sorted algebra keeps one set for each kind, or sort, and records for each operation which sorts it takes and which sort it returns.\nThis avoids nonsense such as multiplying two vectors when only scalar times vector is meant.\n",
  "commit": "ff8a40749dc16545e3d2fc637f6b0196e81d0bfa",
  "front": {
    "kind": "concept",
    "msc": [
      "08A68",
      "68Q65"
    ],
    "name": "Many-sorted algebra",
    "sources": [
      {
        "url": "https://en.wikipedia.org/wiki/Many-sorted_logic"
      }
    ],
    "specializes": [
      "QJGPT2W0FT"
    ],
    "tag": "WAQJJ5GX68"
  },
  "kind": "concept",
  "link": "https://tamnd.github.io/math2/node/WAQJJ5GX68/",
  "links": [
    {
      "field": "specializes",
      "target": "QJGPT2W0FT"
    }
  ],
  "markdown": "https://tamnd.github.io/math2/node/WAQJJ5GX68.md",
  "msc": [
    "08A68",
    "68Q65"
  ],
  "name": "Many-sorted algebra",
  "prov": null,
  "role": "",
  "source": "https://github.com/tamnd/math2/blob/main/nodes/WAQ/WAQJJ5GX68.md",
  "status": null,
  "tag": "WAQJJ5GX68",
  "uri": "m2://WAQJJ5GX68",
  "url": "https://tamnd.github.io/math2/wiki/many-sorted-algebra/",
  "writing": {
    "tag": "WAQJJ5GX68",
    "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
      }
    ]
  }
}
