{
  "aliases": null,
  "backlinks": [
    {
      "field": "defines",
      "target": "42A2M9S2C1"
    },
    {
      "field": "uses",
      "target": "A77FER1Q5H"
    },
    {
      "field": "uses",
      "target": "EPAAKD80H9"
    },
    {
      "field": "uses",
      "target": "ESVYD9CZ8C"
    },
    {
      "field": "specializes",
      "target": "ESVYD9CZ8C"
    }
  ],
  "body": "\n## Summary\n\nA type theory is a formal system in which every term has a type.\nIts rules say which terms can be formed in which types.\nRussell introduced a theory of types to avoid [[Russell's paradox|0HESMMSYEG]], by forbidding a collection to contain objects of its own level.\nChurch's simple type theory of 1940 and Martin-Löf's intuitionistic type theory are the main later systems.\nType theories serve as foundations of mathematics alternative to set theory, and as the basis of programming languages and proof assistants.\n\n## Explanations\n\n### L1 human\n\nIn a type theory, everything comes with a label, its type, such as \"natural number\" or \"function from numbers to numbers\".\nYou may only apply a function to an argument of the right type.\nSo the expression $f(f)$, which feeds a function to itself, is not allowed for a function $f \\colon \\N \\to \\N$.\nThis simple discipline blocks the paradoxes of naive [[set|0BSJ7RQ9BW]] theory.\nIt also catches many errors in computer programs before they run.\n",
  "commit": "547b6eddb8f2feb8d579f2d633d22a27b7e132fc",
  "front": {
    "kind": "concept",
    "msc": [
      "03B38",
      "03B16"
    ],
    "name": "Type theory",
    "same_as": {
      "wikidata": "Q1056428",
      "wikipedia": "Type theory"
    },
    "sources": [
      {
        "url": "https://en.wikipedia.org/wiki/Type_theory"
      }
    ],
    "tag": "Q48KGV33AH",
    "uses": [
      "0HESMMSYEG",
      "0BSJ7RQ9BW"
    ]
  },
  "kind": "concept",
  "link": "https://math2.tamnd.com/node/Q48KGV33AH/",
  "links": [
    {
      "field": "uses",
      "target": "0HESMMSYEG"
    },
    {
      "field": "uses",
      "target": "0BSJ7RQ9BW"
    }
  ],
  "markdown": "https://math2.tamnd.com/node/Q48KGV33AH.md",
  "msc": [
    "03B38",
    "03B16"
  ],
  "name": "Type theory",
  "prov": null,
  "role": "",
  "source": "https://github.com/tamnd/math2/blob/main/nodes/Q48/Q48KGV33AH.md",
  "status": null,
  "tag": "Q48KGV33AH",
  "uri": "m2://Q48KGV33AH",
  "url": "https://math2.tamnd.com/wiki/type-theory/",
  "writing": {
    "tag": "Q48KGV33AH",
    "kind": "concept",
    "level": "W0",
    "next": [
      {
        "what": "a source with a locator",
        "have": 0,
        "want": 1
      }
    ]
  }
}
