{
  "aliases": null,
  "backlinks": null,
  "body": "\n## Statement\n\nLet $Y$ be an [[integral scheme|17NVR4XBHK]] that is [[Noetherian|ND6XEY68P4]].\nLet $f \\colon X \\to Y$ be a [[morphism|JXRKH6P1Z4]] [[of finite type|AHTE5DVX61]].\nThen there is a nonempty open subset $U \\subseteq Y$ such that the restriction $f^{-1}(U) \\to U$ is [[flat|5M6KS8F47R]].\n\n## Remarks\n\nThe statement reduces to the affine case and to the generic freeness lemma.\nThat lemma says the following: let $A$ be a Noetherian domain, $B$ a finitely generated $A$-algebra, and $M$ a finitely generated $B$-module.\nThen there is a nonzero $a \\in A$ such that $M_a$ is a free $A_a$-module.\nIts proof uses Noether normalization over the fraction field of $A$ and induction on dimension.\nFor example, the blow-up of $\\mathbb{A}^2_k$ at the origin is flat over $U = \\mathbb{A}^2_k \\setminus \\set{0}$, where it is an isomorphism.\nThe integrality of $Y$ cannot be dropped.\nFor $Y = \\operatorname{Spec} k[\\varepsilon]/(\\varepsilon^2)$ and the closed immersion $\\operatorname{Spec} k \\to Y$, the only nonempty open subset of $Y$ is $Y$, and $k$ is not flat over $k[\\varepsilon]/(\\varepsilon^2)$.\nThe same proof gives a sheaf version: a coherent sheaf on $X$ is flat over $Y$ above some nonempty open subset of $Y$.\n\n## Explanations\n\n### L1 human\n\nA family of spaces can behave badly over some special points of the base.\nGeneric flatness says that this bad behaviour is confined to a proper closed subset.\nOver a dense open part of the base, the family is flat, so its fibres vary in a controlled way.\n\n### L2 human\n\nGeneric flatness is the starting point of many stratification arguments.\nOne applies it on $Y$, then again on the closed complement with its reduced structure, and so on; Noetherian induction ends the process.\nThe result is a finite partition of $Y$ into locally closed pieces over each of which $f$ is flat.\nThis is how one builds flattening stratifications and proves that Hilbert polynomials of fibres take finitely many values.\nThe theorem also gives a quick proof of Chevalley's theorem on constructible sets.\n",
  "commit": "ff8a40749dc16545e3d2fc637f6b0196e81d0bfa",
  "front": {
    "about": [
      "5M6KS8F47R"
    ],
    "kind": "statement",
    "msc": [
      "14A15",
      "14B25"
    ],
    "name": "Generic flatness",
    "role": "theorem",
    "same_as": {
      "wikidata": "Q5532671",
      "wikipedia": "Generic flatness"
    },
    "sources": [
      {
        "url": "https://en.wikipedia.org/wiki/Generic_flatness"
      }
    ],
    "tag": "Y60D7BN1BN",
    "uses": [
      "JXRKH6P1Z4",
      "17NVR4XBHK",
      "ND6XEY68P4",
      "AHTE5DVX61",
      "5M6KS8F47R"
    ]
  },
  "kind": "statement",
  "link": "https://tamnd.github.io/math2/node/Y60D7BN1BN/",
  "links": [
    {
      "field": "about",
      "target": "5M6KS8F47R"
    },
    {
      "field": "uses",
      "target": "JXRKH6P1Z4"
    },
    {
      "field": "uses",
      "target": "17NVR4XBHK"
    },
    {
      "field": "uses",
      "target": "ND6XEY68P4"
    },
    {
      "field": "uses",
      "target": "AHTE5DVX61"
    },
    {
      "field": "uses",
      "target": "5M6KS8F47R"
    }
  ],
  "markdown": "https://tamnd.github.io/math2/node/Y60D7BN1BN.md",
  "msc": [
    "14A15",
    "14B25"
  ],
  "name": "Generic flatness",
  "prov": null,
  "role": "theorem",
  "source": "https://github.com/tamnd/math2/blob/main/nodes/Y60/Y60D7BN1BN.md",
  "status": null,
  "tag": "Y60D7BN1BN",
  "uri": "m2://Y60D7BN1BN",
  "url": "https://tamnd.github.io/math2/wiki/generic-flatness/",
  "writing": {
    "tag": "Y60D7BN1BN",
    "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
      }
    ]
  }
}
