{
  "aliases": null,
  "backlinks": null,
  "body": "\n## Statement\n\nLet $\\mathcal{E}$ be an elementary [[topos|6837RS7N82]].\nSuppose that every [[epimorphism|RVXDSY04KG]] in $\\mathcal{E}$ has a section, that is, $\\mathcal{E}$ satisfies the [[axiom of choice|0HTGB13FE2]].\nThen $\\mathcal{E}$ is Boolean: every [[subobject|FS1FKAE89H]] of every object of $\\mathcal{E}$ has a complement.\nEquivalently, the internal logic of $\\mathcal{E}$ satisfies the [[law of excluded middle|0RYYK8PG4S]].\n\n## Remarks\n\nThe same argument works in constructive set theory, where it is often given in the form of Goodman and Myhill.\nLet $P$ be a proposition, and let $U = \\set{x \\in \\set{0,1} : x = 0 \\lor P}$ and $V = \\set{x \\in \\set{0,1} : x = 1 \\lor P}$.\nBoth sets are inhabited, so a choice function on $\\set{U, V}$ gives $u \\in U$ and $v \\in V$.\nEquality on $\\set{0,1}$ is decidable, so either $u \\ne v$ or $u = v$.\nIf $u \\ne v$, then $P$ is false, because $P$ would give $U = V$ and hence $u = v$; if $u = v$, then either $u = 1 \\in U$ or $v = 0 \\in V$, and in both cases $P$ holds.\nSo $P \\lor \\lnot P$ holds.\n\nThe converse fails.\nFor a nontrivial group $G$, the topos of $G$-sets is Boolean.\nBut the epimorphism from $G$, acting on itself, to the one-point $G$-set has no section, since $G$ has no fixed point.\nIn the topos $\\mathbf{Set}$, both choice and excluded middle hold, in line with the theorem.\n\n## Explanations\n\n### L1 human\n\nThe theorem says that the axiom of choice is not a neutral addition to constructive mathematics.\nOnce one can always choose an element from each nonempty set in a family, every statement becomes either true or false.\nSo a constructive setting that wants to avoid excluded middle must also avoid full choice.\n\n### L2 human\n\nIn a [[topos|6837RS7N82]] the logic is intuitionistic in general: the [[subobject classifier|NKP5TPQ79X]] is an internal [[Heyting algebra|NG943XNQWH]], not a Boolean algebra.\nDiaconescu's theorem shows that choice forces this algebra to be Boolean.\nThis is why constructive set theories and type theories use weaker forms such as countable choice or dependent choice.\n",
  "commit": "ff8a40749dc16545e3d2fc637f6b0196e81d0bfa",
  "front": {
    "about": [
      "6837RS7N82",
      "0HTGB13FE2",
      "0RYYK8PG4S"
    ],
    "kind": "statement",
    "msc": [
      "03G30",
      "18B25",
      "03E25"
    ],
    "name": "Diaconescu's theorem",
    "role": "theorem",
    "same_as": {
      "wikidata": "Q3527059",
      "wikipedia": "Diaconescu's theorem"
    },
    "sources": [
      {
        "url": "https://en.wikipedia.org/wiki/Diaconescu%27s_theorem"
      }
    ],
    "tag": "6155D300EB",
    "uses": [
      "6837RS7N82",
      "RVXDSY04KG",
      "NKP5TPQ79X",
      "FS1FKAE89H",
      "0HTGB13FE2",
      "0RYYK8PG4S",
      "NG943XNQWH"
    ]
  },
  "kind": "statement",
  "link": "https://tamnd.github.io/math2/node/6155D300EB/",
  "links": [
    {
      "field": "about",
      "target": "6837RS7N82"
    },
    {
      "field": "about",
      "target": "0HTGB13FE2"
    },
    {
      "field": "about",
      "target": "0RYYK8PG4S"
    },
    {
      "field": "uses",
      "target": "6837RS7N82"
    },
    {
      "field": "uses",
      "target": "RVXDSY04KG"
    },
    {
      "field": "uses",
      "target": "NKP5TPQ79X"
    },
    {
      "field": "uses",
      "target": "FS1FKAE89H"
    },
    {
      "field": "uses",
      "target": "0HTGB13FE2"
    },
    {
      "field": "uses",
      "target": "0RYYK8PG4S"
    },
    {
      "field": "uses",
      "target": "NG943XNQWH"
    }
  ],
  "markdown": "https://tamnd.github.io/math2/node/6155D300EB.md",
  "msc": [
    "03G30",
    "18B25",
    "03E25"
  ],
  "name": "Diaconescu's theorem",
  "prov": null,
  "role": "theorem",
  "source": "https://github.com/tamnd/math2/blob/main/nodes/615/6155D300EB.md",
  "status": null,
  "tag": "6155D300EB",
  "uri": "m2://6155D300EB",
  "url": "https://tamnd.github.io/math2/wiki/diaconescus-theorem/",
  "writing": {
    "tag": "6155D300EB",
    "kind": "statement",
    "level": "W0",
    "next": [
      {
        "what": "a source with a locator",
        "have": 0,
        "want": 1
      }
    ]
  }
}
