{
  "aliases": null,
  "backlinks": null,
  "body": "\n## Definition\n\nLet $\\Sigma$ be a finite alphabet, and let $\\mathrm{TAUT} \\subseteq \\Sigma^*$ be the set of [[tautologies|0D1AHYPM8N]] of [[propositional logic|09K9MWD2QQ]], coded as strings.\nA *propositional proof system*, in the sense of Cook and Reckhow, is a [[function|0XHDTE5YMZ]] $P \\colon \\Sigma^* \\to \\Sigma^*$ such that:\n\n1. $P$ is computable in time polynomial in the length of its input;\n2. the image of $P$ is exactly $\\mathrm{TAUT}$.\n\nA string $w$ with $P(w) = \\varphi$ is a *$P$-proof* of $\\varphi$.\nThe system $P$ is *polynomially bounded* if there is a polynomial $p$ such that every $\\varphi \\in \\mathrm{TAUT}$ has a $P$-proof of length at most $p(\\abs{\\varphi})$.\n*Proof complexity* is the study of the lengths of proofs in such systems, and of the relations between systems.\n\n## Remarks\n\nExample: the truth table system is a proof system.\nLet $P$ send a string made of a formula $\\varphi$ and its full truth table, with all rows true, to $\\varphi$.\nLet $P$ send every other string to the fixed tautology $p \\vee \\neg p$.\nThe check takes time polynomial in the length of the input, and the image of $P$ is $\\mathrm{TAUT}$.\nThis system is not polynomially bounded, because the table of a formula with $n$ variables has $2^n$ rows.\nNon-example: the map that sends each string to itself is not a proof system, because its image is all of $\\Sigma^*$, not $\\mathrm{TAUT}$.\nCook and Reckhow proved that a polynomially bounded proof system exists if and only if $\\mathrm{NP} = \\mathrm{coNP}$.\nHaken proved in 1985 that resolution is not polynomially bounded, using the pigeonhole principle.\nFor stronger systems such as Frege systems, no superpolynomial lower bound is known.\n",
  "commit": "5fc425f97f1f6b11da5892c2948ef8c5d8805665",
  "front": {
    "defines": "1Q046J0AW2",
    "kind": "definition",
    "msc": [
      "03F20",
      "68Q17"
    ],
    "name": "Proof complexity",
    "sources": [
      {
        "url": "https://en.wikipedia.org/wiki/Proof_complexity"
      }
    ],
    "tag": "13JZKN6WKC",
    "uses": [
      "N4EDJNMTEF",
      "09K9MWD2QQ",
      "0D1AHYPM8N",
      "0XHDTE5YMZ"
    ]
  },
  "kind": "definition",
  "link": "https://math2.tamnd.com/node/13JZKN6WKC/",
  "links": [
    {
      "field": "defines",
      "target": "1Q046J0AW2"
    },
    {
      "field": "uses",
      "target": "N4EDJNMTEF"
    },
    {
      "field": "uses",
      "target": "09K9MWD2QQ"
    },
    {
      "field": "uses",
      "target": "0D1AHYPM8N"
    },
    {
      "field": "uses",
      "target": "0XHDTE5YMZ"
    }
  ],
  "markdown": "https://math2.tamnd.com/node/13JZKN6WKC.md",
  "msc": [
    "03F20",
    "68Q17"
  ],
  "name": "Proof complexity",
  "prov": null,
  "role": "",
  "source": "https://github.com/tamnd/math2/blob/main/nodes/13J/13JZKN6WKC.md",
  "status": null,
  "tag": "13JZKN6WKC",
  "uri": "m2://13JZKN6WKC",
  "url": "https://math2.tamnd.com/wiki/proof-complexity-definition/",
  "writing": {
    "tag": "13JZKN6WKC",
    "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
      }
    ]
  }
}
