{
  "aliases": null,
  "backlinks": null,
  "body": "\n## Statement\n\nLet $f \\colon A \\to B$ be a [[function|0XHDTE5YMZ]].\nAssume the [[axiom of choice|0HTGB13FE2]].\nThen $f$ is [[surjective|0XKH881BZ7]] if and only if $f$ has a [[right inverse|0DDPZAG5ER]].\n\n## Remarks\n\nIf $f \\circ h = \\mathrm{id}_B$, then each $b$ equals $f(h(b))$, so $f$ is surjective. This direction does not use choice.\nFor the other direction, choose for each $b \\in B$ an element $h(b)$ of the nonempty set $f^{-1}(\\{b\\})$.\nThe statement \"each surjection has a right inverse\" is equivalent to the axiom of choice.\n\n## Explanations\n\n### L1 human\n\nFor a surjection, each $b$ has at least one input that maps to it.\nA right inverse picks one such input for each $b$.\nFor infinitely many $b$ with no rule to pick, you need the axiom of choice.\n",
  "commit": "f591989ed15704e9d8755a7a5a6426d73de7a3ae",
  "front": {
    "kind": "statement",
    "msc": [
      "03E20"
    ],
    "name": "Surjective iff it has a right inverse",
    "role": "proposition",
    "sources": [
      {
        "locator": "Right inverses",
        "url": "https://en.wikipedia.org/wiki/Inverse_function"
      }
    ],
    "tag": "0TYQNHVB4C",
    "uses": [
      "0XKH881BZ7",
      "0DDPZAG5ER",
      "0HTGB13FE2"
    ]
  },
  "kind": "statement",
  "link": "https://math2.tamnd.com/node/0TYQNHVB4C/",
  "links": [
    {
      "field": "uses",
      "target": "0XKH881BZ7"
    },
    {
      "field": "uses",
      "target": "0DDPZAG5ER"
    },
    {
      "field": "uses",
      "target": "0HTGB13FE2"
    }
  ],
  "markdown": "https://math2.tamnd.com/node/0TYQNHVB4C.md",
  "msc": [
    "03E20"
  ],
  "name": "Surjective iff it has a right inverse",
  "prov": null,
  "role": "proposition",
  "source": "https://github.com/tamnd/math2/blob/main/nodes/0TY/0TYQNHVB4C.md",
  "status": null,
  "tag": "0TYQNHVB4C",
  "uri": "m2://0TYQNHVB4C",
  "url": "https://math2.tamnd.com/wiki/surjective-iff-it-has-a-right-inverse/",
  "writing": {
    "tag": "0TYQNHVB4C",
    "kind": "statement",
    "level": "W0",
    "next": [
      {
        "what": "an inventory row",
        "note": "the row of the inventory that the node accounts for",
        "have": 0,
        "want": 1
      }
    ]
  }
}
