Skip to content

Write empty sets, singletons, and two-element sets explicitly - #439

Merged
ScriptRaccoon merged 1 commit into
mainfrom
notation-sets
Oct 27, 2026
Merged

ScriptRaccoon merged 1 commit into
mainfrom
notation-sets

Conversation

@ScriptRaccoon

@ScriptRaccoon ScriptRaccoon commented Oct 27, 2026 •

Copy link
Copy Markdown
Owner

This PR stops using $0$, $1$, $2$ for concrete sets. The empty set is now written as $\varnothing$, a singleton as $\{\ast\}$, and a two-element set as $\{0,1\}$. This also applies to the initial and terminal objects of specific categories, such as the singleton set in Set. The symbols $0$ and $1$ are still used for initial and terminal objects in statements about arbitrary categories (e.g. in definitions of properties and in implications), for monoidal units, for the zero and trivial objects of algebra (such as the zero module $0$ and the trivial group $1$), and as labels of objects in small categories such as the walking fork.

Motivation

  • Less confusion: some statements were hard to parse. For example:
    • the initial object of the free cocompletion of a discrete–pair join was described as the "constant presheaf with value $0$", now "with value $\varnothing$"
    • the binary product functor on Set had the proof "Both $(1,0)$ and $(0,1)$ are mapped to $0$", now "Both $(\{\ast\},\varnothing)$ and $(\varnothing,\{\ast\})$ are mapped to $\varnothing$"
    • the subobject classifier of ω-Set used a map $1 \to \nabla 2$ "whose underlying set function is $0 \mapsto 1$", now $\ast \mapsto 1$
  • Type error: $2$ looks like a number, not a set. That numbers can be encoded as sets is a detail of ZFC that is irrelevant for most of category theory. Ordinal numbers are an exception; they appear in some proofs and are not affected by this PR.
  • Easier to read: sets are easier to recognize as sets.
  • No explanations needed: the notation often had to be explained, and these explanations could now be removed. Examples: "where $1$ is the singleton set" (terminal map, Setff), "where $1$ is the singleton set as usual" (covariant power set functor), "If $1$ denotes the singleton space" (Meas), "where $2 = \{0,1\}$" (Meas), "where $2 = 1 \sqcup 1$ is the discrete space with two points" (product with Q), and "$L(A)=1$ (the singleton set)" (forked commutative square).

Changes

All digits in all formulas of the YAML files and content pages have been checked. The notation is updated in 64 YAML files and 3 content pages.

  • Concrete sets: for example $Hom(Y,\{0,1\})$ instead of $Hom(Y,2)$ in Set, $\nabla \{0,1\}$ instead of $\nabla 2$ in ω-Set, $\{0,1\}^{N}$ instead of $2^{N}$ for the sequences functor, $C(\{\ast\})$ instead of $C(1)$, and $F(\{\ast\})$ instead of $F(1)$ for the free algebra on one generator. Singletons written as \{*\} are now \{\ast\}.
  • Initial and terminal objects of specific categories: for example $a,b : \{\ast\} \rightrightarrows X$ in Set, $N \cong \{\ast\} \sqcup N$ in the proofs about natural numbers objects in FinSet, Met, and PMet, and the terminal object $\nabla \{\ast\}$ of ω-Set. In categories whose objects are not sets, such as connected sequences of sets, species, families of sets, and the free cocompletion of a discrete–pair join, the proofs now introduce "the terminal object $T$" explicitly. The objects of the category of families of sets that are mostly singletons are now defined via $card(X_i) \neq 1$ instead of $X_i \not\cong 1$.
  • Trivial category: it is now written with its notation from the database in Cat, in the functors into the trivial category, in the functor implications, in the content pages on functors on discrete categories and thin algebraic categories (instead of $1 = \{0\}$ and $1$), and in the notation of the trivial symmetric monoidal category.
  • Monoidal units: the cartesian structures on Set and Top now have the unit $\{\ast\}$ in their notation, the cartesian structure on Cat has the trivial category, and the cocartesian structure on Set has $\varnothing$. This matches the notation of the other symmetric monoidal categories, such as the one of Ab with unit Z.
  • Conventions: CONTRIBUTING.md and CLAUDE.md now contain the new rule.

@ScriptRaccoon ScriptRaccoon added the data additions and updates to the database label Oct 27, 2026
@ScriptRaccoon

Copy link
Copy Markdown
Owner Author

FYI @dschepler --- The empty set is now written as $\varnothing$ (not $0$), a singleton as $\{\ast\}$ (not $1$), and a two-element set as $\{0,1\}$ (not $2$).

@ScriptRaccoon
ScriptRaccoon merged commit b9276d8 into main Oct 27, 2026
4 checks passed
@ScriptRaccoon
ScriptRaccoon deleted the notation-sets branch October 27, 2026 11:35
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

data additions and updates to the database

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant