{
  "aliases": null,
  "backlinks": [
    {
      "field": "uses",
      "target": "RJBDSA2ETP"
    }
  ],
  "body": "\n## Statement\n\nLet $\\varphi$ and $\\psi$ be first-order [[sentences|DKFGQTRYZE]] in a language with equality.\nAssume that $\\varphi \\models \\psi$, in the sense of [[logical consequence|1HK0VYWTV7]].\nThen there is a first-order sentence $\\theta$ with $\\varphi \\models \\theta$ and $\\theta \\models \\psi$.\nMoreover, every relation, function and constant symbol of $\\theta$ occurs in both $\\varphi$ and $\\psi$.\n\n## Remarks\n\nThe sentence $\\theta$ is called an interpolant.\nOne proof uses a cut-free [[sequent calculus|W72CA3R9MP]] and builds $\\theta$ by induction on a cut-free proof of $\\varphi \\to \\psi$.\nAnother proof is model-theoretic and uses the [[compactness theorem|1NR3HAWG9D]].\nExample: $P(c) \\land Q(c) \\models P(c) \\lor R(c)$, and $\\theta = P(c)$ is an interpolant in the common symbols $P$ and $c$.\nWhen $\\varphi$ and $\\psi$ share no symbols, $\\theta$ is a sentence of pure equality, such as $\\forall x \\, (x = x)$ or its negation.\nThe propositional version holds too, with $\\theta$ built from the common variables and the constants $\\top$ and $\\bot$.\nWilliam Craig proved the theorem in 1957.\n\n## Explanations\n\n### L1 human\n\nSuppose one statement implies another.\nThe theorem says that there is a middle statement, using only the vocabulary the two have in common, that carries the implication.\nSo the reason for the implication can always be expressed in the shared language.\n\n### L2 human\n\nCraig interpolation is a basic structural property of first-order logic.\nIt implies the [[Beth definability theorem|RJBDSA2ETP]]: an implicitly definable relation is explicitly definable.\nIt is closely related to Robinson's joint consistency theorem.\nMany other logics fail to have it, so it is also used to compare logics.\n",
  "commit": "5fc425f97f1f6b11da5892c2948ef8c5d8805665",
  "front": {
    "about": [
      "1HK0VYWTV7"
    ],
    "kind": "statement",
    "msc": [
      "03C40",
      "03B10"
    ],
    "name": "Craig interpolation theorem",
    "role": "theorem",
    "same_as": {
      "wikidata": "Q1052021",
      "wikipedia": "Craig interpolation"
    },
    "sources": [
      {
        "url": "https://en.wikipedia.org/wiki/Craig_interpolation"
      }
    ],
    "tag": "E2CBFNAVZY",
    "uses": [
      "DKFGQTRYZE",
      "1HK0VYWTV7",
      "WDVVEYD6AT"
    ]
  },
  "kind": "statement",
  "link": "https://math2.tamnd.com/node/E2CBFNAVZY/",
  "links": [
    {
      "field": "about",
      "target": "1HK0VYWTV7"
    },
    {
      "field": "uses",
      "target": "DKFGQTRYZE"
    },
    {
      "field": "uses",
      "target": "1HK0VYWTV7"
    },
    {
      "field": "uses",
      "target": "WDVVEYD6AT"
    }
  ],
  "markdown": "https://math2.tamnd.com/node/E2CBFNAVZY.md",
  "msc": [
    "03C40",
    "03B10"
  ],
  "name": "Craig interpolation theorem",
  "prov": null,
  "role": "theorem",
  "source": "https://github.com/tamnd/math2/blob/main/nodes/E2C/E2CBFNAVZY.md",
  "status": null,
  "tag": "E2CBFNAVZY",
  "uri": "m2://E2CBFNAVZY",
  "url": "https://math2.tamnd.com/wiki/craig-interpolation-theorem/",
  "writing": {
    "tag": "E2CBFNAVZY",
    "kind": "statement",
    "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
      }
    ]
  }
}
