{
  "aliases": null,
  "backlinks": null,
  "body": "\n## Proof\n\nWe present here a [[constructive proof|01XM7JEKHY]] of the Craig interpolation theorem for [[propositional logic|09K9MWD2QQ]].\n\nSince the above proof is constructive, one may extract an algorithm for computing interpolants. Using this algorithm, if *n* = |*atoms*(φ') − *atoms*(ψ)|, then the interpolant ρ has *O*(exp(*n*)) more logical connectives than φ (see Big O Notation for details regarding this assertion). Similar constructive proofs may be provided for the basic modal logic K, intuitionistic logic and μ-calculus, with similar complexity measures.\n\nCraig interpolation can be proved by other methods as well. However, these proofs are generally non-constructive:\n\n- model-theoretically, via Robinson's joint consistency theorem: in the presence of compactness, negation and conjunction, Robinson's joint consistency theorem and Craig interpolation are equivalent.\n- proof-theoretically, via a sequent calculus. If cut elimination is possible and as a result the subformula property holds, then Craig interpolation is provable via induction over the derivations.\n- algebraically, using amalgamation theorems for the variety of algebras representing the logic.\n- via translation to other logics enjoying Craig interpolation.\n",
  "commit": "4a3290d299c8b2cd6493fce2296920ba7f82d942",
  "front": {
    "kind": "proof",
    "name": "Proof of Lyndon's interpolation theorem",
    "proves": "BRDT1BT7WW",
    "sources": [
      {
        "locator": "Craig interpolation, section Proof of Craig's interpolation theorem",
        "mention": "wikipedia://en/2056790#6M9Y",
        "note": "adopted",
        "sections": [
          "Proof"
        ],
        "wikipedia": "en:2056790@r1321826961"
      }
    ],
    "tag": "FAG05D5RT9"
  },
  "kind": "proof",
  "link": "https://math2.tamnd.com/node/FAG05D5RT9/",
  "links": [
    {
      "field": "proves",
      "target": "BRDT1BT7WW"
    }
  ],
  "markdown": "https://math2.tamnd.com/node/FAG05D5RT9.md",
  "msc": null,
  "name": "Proof of Lyndon's interpolation theorem",
  "prov": null,
  "role": "",
  "source": "https://github.com/tamnd/math2/blob/main/nodes/FAG/FAG05D5RT9.md",
  "status": null,
  "tag": "FAG05D5RT9",
  "uri": "m2://FAG05D5RT9",
  "url": "https://math2.tamnd.com/wiki/proof-of-lyndons-interpolation-theorem/",
  "writing": {
    "tag": "FAG05D5RT9",
    "kind": "proof",
    "level": "W0",
    "next": [
      {
        "what": "an inventory row",
        "note": "the row of the inventory that the node accounts for",
        "have": 0,
        "want": 1
      },
      {
        "what": "edge uses out",
        "note": "each node that the argument needs",
        "have": 0,
        "want": 1
      }
    ]
  }
}
