{
  "aliases": null,
  "backlinks": null,
  "body": "\n## Definition\n\nThe relational types are defined inductively.\n\n1. $\\iota$ is a type, the type of individuals.\n2. If $\\tau_1, \\dots, \\tau_n$ are types with $n \\ge 1$, then $(\\tau_1, \\dots, \\tau_n)$ is a type, the type of $n$-ary relations between objects of types $\\tau_1, \\dots, \\tau_n$.\n\nHigher-order logic over a signature $L$ has, for each type $\\tau$, variables of type $\\tau$ and quantifiers $\\forall$ and $\\exists$ over them.\nIts formulas are built as in [[first-order logic|086QKPF0A6]], with the atomic formula $X(t_1, \\dots, t_n)$ whenever $X$ has type $(\\tau_1, \\dots, \\tau_n)$ and each $t_i$ has type $\\tau_i$.\nIn the standard semantics over an $L$-[[structure|983GZBQYT4]] with domain $M$, the domains $D_\\tau$ are given by $D_\\iota = M$ and $D_{(\\tau_1, \\dots, \\tau_n)} = \\mathcal{P}(D_{\\tau_1} \\times \\dots \\times D_{\\tau_n})$.\nHere $\\mathcal{P}$ is the [[power set|00E0YZCERH]] and $\\times$ the [[Cartesian product|09CEDJYBKP]].\n\n## Remarks\n\nThe order of a type is $1$ for $\\iota$ and one more than the largest order of $\\tau_1, \\dots, \\tau_n$ for $(\\tau_1, \\dots, \\tau_n)$.\nLogic of order $k$ allows quantifiers only over variables whose type has order at most $k$.\nFirst-order logic is the case $k = 1$, and second-order logic is the case $k = 2$.\n\nExample: a variable $\\mathcal{X}$ of type $((\\iota))$ ranges over sets of subsets of $M$, and $\\forall \\mathcal{X} \\, \\exists Y \\, \\forall x \\, (Y(x) \\leftrightarrow \\exists Z \\, (\\mathcal{X}(Z) \\land Z(x)))$ is a third-order sentence.\nIt says that each family of subsets has a union, and it is true in every structure.\n\nNon-example: the expression $X(X)$ is not a formula, because no type $\\tau$ equals a type $(\\tau)$ of relations on objects of type $\\tau$.\n\nMany presentations instead use the simply typed lambda calculus, with function types and a type of truth values; this is Church's simple theory of types.\n\n## Explanations\n\n### L1 human\n\nHigher-order logic sorts all objects into levels: individuals, relations on individuals, relations on those relations, and so on.\nA variable can range over any one level, and a relation may only be applied to objects of the level below it.\nThis rule blocks paradoxes such as a set that contains itself.\n",
  "commit": "547b6eddb8f2feb8d579f2d633d22a27b7e132fc",
  "front": {
    "defines": "P1ABGYRQXH",
    "kind": "definition",
    "msc": [
      "03B16"
    ],
    "name": "Higher-order logic",
    "sources": [
      {
        "url": "https://en.wikipedia.org/wiki/Higher-order_logic"
      }
    ],
    "tag": "K40YJX8K1G",
    "uses": [
      "086QKPF0A6",
      "983GZBQYT4",
      "00E0YZCERH",
      "09CEDJYBKP"
    ]
  },
  "kind": "definition",
  "link": "https://math2.tamnd.com/node/K40YJX8K1G/",
  "links": [
    {
      "field": "defines",
      "target": "P1ABGYRQXH"
    },
    {
      "field": "uses",
      "target": "086QKPF0A6"
    },
    {
      "field": "uses",
      "target": "983GZBQYT4"
    },
    {
      "field": "uses",
      "target": "00E0YZCERH"
    },
    {
      "field": "uses",
      "target": "09CEDJYBKP"
    }
  ],
  "markdown": "https://math2.tamnd.com/node/K40YJX8K1G.md",
  "msc": [
    "03B16"
  ],
  "name": "Higher-order logic",
  "prov": null,
  "role": "",
  "source": "https://github.com/tamnd/math2/blob/main/nodes/K40/K40YJX8K1G.md",
  "status": null,
  "tag": "K40YJX8K1G",
  "uri": "m2://K40YJX8K1G",
  "url": "https://math2.tamnd.com/wiki/higher-order-logic-definition/",
  "writing": {
    "tag": "K40YJX8K1G",
    "kind": "definition",
    "level": "W0",
    "next": [
      {
        "what": "a source with a locator",
        "have": 0,
        "want": 1
      }
    ]
  }
}
