{
  "aliases": null,
  "backlinks": null,
  "body": "\n## Statement\n\nLet $\\mathcal{C}$ be a category with all small [[colimits|BJS1CGTKQ5]], and let $I$ be a set of morphisms of $\\mathcal{C}$.\nLet $I\\text{-cell}$ be the class of transfinite composites of [[pushouts|Q699KKMVJD]] of [[coproducts|4FJ0S71P58]] of morphisms of $I$.\nLet $I\\text{-inj}$ be the class of morphisms with the right [[lifting property|AZK4RD8XV0]] with respect to every morphism of $I$.\nAssume that the domain of each morphism of $I$ is small relative to $I\\text{-cell}$.\nThen every morphism $f \\colon X \\to Y$ of $\\mathcal{C}$ factors as $f = p \\circ i$ with $i \\in I\\text{-cell}$ and $p \\in I\\text{-inj}$, and this factorization can be chosen functorial in $f$.\n\n## Remarks\n\nThe proof builds $X = X_0 \\to X_1 \\to X_2 \\to \\cdots$ over $Y$ by transfinite induction.\nAt each step one takes all commutative squares from a morphism of $I$ to $X_\\beta \\to Y$.\nOne pushout of a coproduct then glues in a solution for every square at once.\nAt limit stages one takes the colimit.\nOne stops at an ordinal $\\kappa$ so large that every map from a domain of $I$ into $X_\\kappa$ factors through some earlier $X_\\beta$.\nThe smallness hypothesis guarantees such a $\\kappa$; then any lifting problem against $X_\\kappa \\to Y$ is solved at stage $\\beta + 1$.\nWithout smallness the transfinite construction need not stop at any stage, and the argument does not apply.\n\nA consequence is that every morphism with the left lifting property with respect to $I\\text{-inj}$ is a retract of a morphism of $I\\text{-cell}$.\nIn a locally presentable category every object is small, so the hypothesis holds for every set $I$.\n\nExample: in topological spaces let $I$ be the set of boundary inclusions $S^{n-1} \\to D^n$ for $n \\ge 0$.\nThe theorem factors every map into a relative cell complex followed by a map with the right lifting property against these inclusions.\nThe second map is then a weak homotopy equivalence and a Serre fibration.\nThis is how the cofibration and trivial fibration factorization of the Quillen [[model structure|SDTZVZ6B4Q]] is obtained.\n\n## Explanations\n\n### L1 human\n\nModel categories need a way to break any map into a nice inclusion followed by a nice projection.\nThe small object argument does this by brute force: whenever some lifting problem has no solution, glue in a piece that solves it.\nGluing creates new problems, so one repeats, possibly transfinitely many times.\nSmallness of the pieces guarantees that the process stops, and at the end every problem has a solution.\n\n### L2 human\n\nThe theorem is the main tool to build cofibrantly generated model structures.\nOne gives a set $I$ of generating cofibrations and a set $J$ of generating trivial cofibrations, and applies the argument to both.\nThe [[cofibrations|HSV1J7BJXX]] are then the retracts of $I$-cell maps, and the fibrations are the $J$-injective maps.\nThis is how the standard model structures on topological spaces, simplicial sets and chain complexes are constructed.\nThe functoriality of the factorization comes from the fact that the gluing step uses all lifting problems, not a chosen one.\n",
  "commit": "ff8a40749dc16545e3d2fc637f6b0196e81d0bfa",
  "front": {
    "about": [
      "AZK4RD8XV0"
    ],
    "kind": "statement",
    "msc": [
      "18N40",
      "55U35"
    ],
    "name": "Small object argument",
    "role": "theorem",
    "same_as": {
      "wikidata": "Q133844248",
      "wikipedia": "Small object argument"
    },
    "sources": [
      {
        "url": "https://en.wikipedia.org/wiki/Small_object_argument"
      }
    ],
    "tag": "VDQAZDHFF7",
    "uses": [
      "AZK4RD8XV0",
      "BJS1CGTKQ5",
      "Q699KKMVJD",
      "4FJ0S71P58",
      "SDTZVZ6B4Q",
      "HSV1J7BJXX"
    ]
  },
  "kind": "statement",
  "link": "https://tamnd.github.io/math2/node/VDQAZDHFF7/",
  "links": [
    {
      "field": "about",
      "target": "AZK4RD8XV0"
    },
    {
      "field": "uses",
      "target": "AZK4RD8XV0"
    },
    {
      "field": "uses",
      "target": "BJS1CGTKQ5"
    },
    {
      "field": "uses",
      "target": "Q699KKMVJD"
    },
    {
      "field": "uses",
      "target": "4FJ0S71P58"
    },
    {
      "field": "uses",
      "target": "SDTZVZ6B4Q"
    },
    {
      "field": "uses",
      "target": "HSV1J7BJXX"
    }
  ],
  "markdown": "https://tamnd.github.io/math2/node/VDQAZDHFF7.md",
  "msc": [
    "18N40",
    "55U35"
  ],
  "name": "Small object argument",
  "prov": null,
  "role": "theorem",
  "source": "https://github.com/tamnd/math2/blob/main/nodes/VDQ/VDQAZDHFF7.md",
  "status": null,
  "tag": "VDQAZDHFF7",
  "uri": "m2://VDQAZDHFF7",
  "url": "https://tamnd.github.io/math2/wiki/small-object-argument/",
  "writing": {
    "tag": "VDQAZDHFF7",
    "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
      }
    ]
  }
}
