{
  "aliases": null,
  "backlinks": null,
  "body": "\n## Statement\n\nLet $L$ be a countable signature, let $T$ be a satisfiable $L$-[[theory|92SWXST1ZM]], and let $p(x_1, \\dots, x_n)$ be an $n$-[[type|9V71Q3SD1G]] of $T$.\nCall $p$ isolated if there is an $L$-formula $\\varphi(x_1, \\dots, x_n)$ such that $T \\cup \\set{\\varphi}$ is satisfiable and $T \\models \\forall \\bar{x} \\, (\\varphi(\\bar{x}) \\to \\psi(\\bar{x}))$ for every $\\psi \\in p$.\nIf $p$ is not isolated, then $T$ has a [[countable|01TQB88H4C]] [[model|MVCH6N9SNW]] that omits $p$.\n\n## Remarks\n\nThe proof is a Henkin construction.\nOne adds countably many new constants, lists all tuples of constants, and builds a complete theory with witnesses step by step.\nAt the step for a tuple $\\bar{c}$, one adds the negation of some formula of $p$ at $\\bar{c}$.\nThis is possible because no formula consistent with what has been built so far implies all of $p$.\nThe canonical model of the final theory is countable and no tuple in it realizes $p$.\nThe same argument omits countably many non-isolated types at once.\n\nExample: let $T$ be the theory of $(\\N, 0, 1, +, \\cdot, \u003c)$ and $p(x) = \\set{x \\ne 0, x \\ne 1, x \\ne 1 + 1, \\dots}$.\nThe type $p$ is not isolated, and $\\N$ is a countable model of $T$ that omits it.\n\nIf $T$ is complete, an isolated type is realized in every model of $T$, so the hypothesis cannot be dropped.\nCountability of $L$ is also needed.\nTake constants $c_\\alpha$ for $\\alpha \u003c \\omega_1$ and $d_k$ for $k \\in \\N$, let $T$ say that the $c_\\alpha$ are pairwise distinct, and let $p(x) = \\set{x \\ne d_k : k \\in \\N}$.\nThen $p$ is not isolated, but every model of $T$ is uncountable and so has an element different from all $d_k$.\n\n## Explanations\n\n### L1 human\n\nA type is a wish list of properties for an element.\nSome wish lists are forced: a single property, consistent with the theory, already implies the whole list.\nFor a complete theory, every model then has an element that meets the whole list.\nThe theorem says that, in a countable language, every list that is not forced in this way can be avoided by some countable model.\n\n### L2 human\n\nThe omitting types theorem is the main tool for building countable models with prescribed properties.\nIt shows that a complete theory in a countable language has an atomic model, that is, a prime model, when the isolated types are dense.\nIt is used in the proof of the Ryll-Nardzewski theorem and in the study of the number of countable models, the subject of the Vaught conjecture.\nIt is a counterpart of the compactness theorem: compactness produces models that realize types, and this theorem produces models that omit them.\n",
  "commit": "547b6eddb8f2feb8d579f2d633d22a27b7e132fc",
  "front": {
    "about": [
      "9V71Q3SD1G"
    ],
    "kind": "statement",
    "msc": [
      "03C07",
      "03C15"
    ],
    "name": "Omitting types theorem",
    "role": "theorem",
    "sources": [
      {
        "url": "https://en.wikipedia.org/wiki/Type_(model_theory)"
      }
    ],
    "tag": "7MFGBVDVG9",
    "uses": [
      "9V71Q3SD1G",
      "92SWXST1ZM",
      "MVCH6N9SNW",
      "01TQB88H4C"
    ]
  },
  "kind": "statement",
  "link": "https://math2.tamnd.com/node/7MFGBVDVG9/",
  "links": [
    {
      "field": "about",
      "target": "9V71Q3SD1G"
    },
    {
      "field": "uses",
      "target": "9V71Q3SD1G"
    },
    {
      "field": "uses",
      "target": "92SWXST1ZM"
    },
    {
      "field": "uses",
      "target": "MVCH6N9SNW"
    },
    {
      "field": "uses",
      "target": "01TQB88H4C"
    }
  ],
  "markdown": "https://math2.tamnd.com/node/7MFGBVDVG9.md",
  "msc": [
    "03C07",
    "03C15"
  ],
  "name": "Omitting types theorem",
  "prov": null,
  "role": "theorem",
  "source": "https://github.com/tamnd/math2/blob/main/nodes/7MF/7MFGBVDVG9.md",
  "status": null,
  "tag": "7MFGBVDVG9",
  "uri": "m2://7MFGBVDVG9",
  "url": "https://math2.tamnd.com/wiki/omitting-types-theorem/",
  "writing": {
    "tag": "7MFGBVDVG9",
    "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
      }
    ]
  }
}
