{
  "aliases": null,
  "backlinks": [
    {
      "field": "uses",
      "target": "KCV8RKBATN"
    }
  ],
  "body": "\n## Definition\n\nConsider intuitionistic propositional logic in [[natural deduction|6KT3BJZ7D1]], with [[implication|0ZNX6DQ3EJ]], [[conjunction|0M28ASWG8T]] and [[disjunction|0H5GKDTB01]].\nConsider the simply typed [[lambda calculus|BD756KR8FM]] with function types $A \\to B$, product types $A \\times B$ and sum types $A + B$.\nThe *Curry–Howard correspondence* is the map between the two systems given by these clauses.\n\n1. A formula is read as a type: $A \\to B$ as the function type, $A \\wedge B$ as $A \\times B$, and $A \\vee B$ as $A + B$.\n2. An assumption $A$ with label $x$ is read as a variable $x : A$.\n3. Each introduction rule is read as a term constructor: $\\to$-introduction as $\\lambda$-abstraction, $\\wedge$-introduction as pairing, and $\\vee$-introduction as an injection.\n4. Each elimination rule is read as a destructor: $\\to$-elimination as application, $\\wedge$-elimination as a projection, and $\\vee$-elimination as case analysis.\n\nUnder this map, a derivation of $B$ from assumptions $A_1, \\dots, A_n$ corresponds to a term $M$ with $x_1 : A_1, \\dots, x_n : A_n \\vdash M : B$, and conversely.\nA detour in a derivation is an introduction followed at once by an elimination.\nIt corresponds to a redex, and removing the detour corresponds to one reduction step, such as $(\\lambda x.\\, M) N \\to M[N/x]$.\n\n## Remarks\n\nExample: the term $\\lambda f.\\, \\lambda x.\\, f\\, (f\\, x)$ has type $(A \\to A) \\to (A \\to A)$.\nRead as a derivation, it uses $\\to$-elimination twice and $\\to$-introduction twice, and it proves the formula $(A \\to A) \\to (A \\to A)$.\nNon-example: Peirce's law $((A \\to B) \\to A) \\to A$ is a classical tautology but has no closed term of its type in the simply typed lambda calculus.\nThis matches the fact that it is not provable in [[intuitionistic logic|Q11N8X99FK]].\nThe correspondence extends to quantifiers with dependent types, and to classical logic with control operators.\n",
  "commit": "efe85cee8dbc57d85bedbacfb97b99d1b7bee843",
  "front": {
    "defines": "A77FER1Q5H",
    "kind": "definition",
    "msc": [
      "03B40",
      "03F03",
      "68N18"
    ],
    "name": "Curry–Howard correspondence",
    "sources": [
      {
        "url": "https://en.wikipedia.org/wiki/Curry–Howard_correspondence"
      }
    ],
    "tag": "HTF9E5W7EZ",
    "uses": [
      "BD756KR8FM",
      "Q11N8X99FK",
      "6KT3BJZ7D1",
      "0ZNX6DQ3EJ",
      "0M28ASWG8T",
      "0H5GKDTB01"
    ]
  },
  "kind": "definition",
  "link": "https://math2.tamnd.com/node/HTF9E5W7EZ/",
  "links": [
    {
      "field": "defines",
      "target": "A77FER1Q5H"
    },
    {
      "field": "uses",
      "target": "BD756KR8FM"
    },
    {
      "field": "uses",
      "target": "Q11N8X99FK"
    },
    {
      "field": "uses",
      "target": "6KT3BJZ7D1"
    },
    {
      "field": "uses",
      "target": "0ZNX6DQ3EJ"
    },
    {
      "field": "uses",
      "target": "0M28ASWG8T"
    },
    {
      "field": "uses",
      "target": "0H5GKDTB01"
    }
  ],
  "markdown": "https://math2.tamnd.com/node/HTF9E5W7EZ.md",
  "msc": [
    "03B40",
    "03F03",
    "68N18"
  ],
  "name": "Curry–Howard correspondence",
  "prov": null,
  "role": "",
  "source": "https://github.com/tamnd/math2/blob/main/nodes/HTF/HTF9E5W7EZ.md",
  "status": null,
  "tag": "HTF9E5W7EZ",
  "uri": "m2://HTF9E5W7EZ",
  "url": "https://math2.tamnd.com/wiki/curry-howard-correspondence-definition/",
  "writing": {
    "tag": "HTF9E5W7EZ",
    "kind": "definition",
    "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
      }
    ]
  }
}
