this requires a long enough response that i'm gonna QT and do a separate thread. so it's tricky b/c there are two concepts here that should be given different names and we use "set" for both of them
Conversation
one is the intuitive "a set is a collection of distinct objects" like {dog, cat, cow}. this is where a lot of people trying to introduce sets to somebody will start. but if you start actually reading any set theory you run into a much more confusing concept of set
1
12
in ZFC set theory (which supposedly provides the foundation for modern mathematics) sets don't have "ur-elements" - there's no "dog" or "cat" or w/e. the only things a set in set theory can contain are *other sets*. so you start with the empty set and build up from there
1
15
this is what you could call an implementation detail in how mathematical objects are created in ZFC, roughly analogous to how everything on a digital computer is ultimately strings of 0's and 1's. most of the time this is deliberately hidden behind an abstraction layer
1
9
we want to be able to use sets to produce collections of mathematical objects, e.g. the set of natural numbers {1, 2, 3, ...}. but each of those numbers 1, 2, 3, as an object in ZFC, must *itself* be a set! which set is it???
1
9
in some sense it doesn't matter as long as you pick a convention and stick with it. the standard construction is actually very cute - 0 is the empty set ∅, 1 is the set {0} = {∅}, 2 is the set {0, 1} = {∅, {∅}}, 3 is the set {0, 1, 2} = {∅, {∅}, {∅, {∅}}}, etc.
1
12
stuff gets more confusing in an annoying way once you start asking about more complicated mathematical objects. e.g. we could talk about sets of real numbers like {0.7, e, pi}. which sets are those??? here you have to pick a convention about how to describe real numbers as sets
1
10
this can be done but imo it's tedious annoying stuff and people who are not set theorists do it at most once and forget about it as soon as possible b/c as long as the interface works properly you can ignore all the implementation details
1
16
the "interface" in this case being stuff like, you can add real numbers, you can multiply them, etc. etc. as long as that stuff is all working as it should be totally ignore the fact that real numbers are technically sets, in practice
1
14
this is something i wish people talked about more - in practice math runs on what you could call a "high-level programming language" and set theory dives into the "low-level programming language" underneath it that most mathematicians would rather ignore
Replying to
(you can tell whether you're a set theorist or not based on whether you want to end that tweet "...and that's good" (normal) or "...and that's bad" (set theorist))
1
1
21
Replying to
Thanks. But how do you determine if some mathematical object is a set or not? (proper class?)
1
2
ZFC provides a bunch of rules that let you construct sets out of other sets, so you follow those rules and see if they can produce the set you want. for example you *cannot* produce the "set of all sets" this way (ZFC is specifically designed to forbid this)
Replying to
wait this reminds me of the peano axioms... uh... is there some sort of super deep connection between set theory and formal logic? is this something i should know already?
1
3
yeah they're often taught together. the ZFC construction of the natural numbers produces a model of the peano axioms, and you can prove this fact in ZFC. it's cute stuff
3
Replying to
The people I have seen talk about this are typically working on theorem provers. I think they are the only ones who have practical reason to think about it. Andrej Bauer for example, in some of his presentations and online:
Replying to
this analogy, introduced to me by a maths nerd friend recently too, but this thread was great, has been very helpful in wrapping my head around things.
Replying to
Set theory is at least *a* low-level language, but I think the things mathematicians do in practice is rarely tethered to ZFC in particular unless they’re doing logic or set theory? The analogy feels to me like mathematicians write lots of pseudocode, and ZFC is a Turing Machine.
1
(ie simple enough as an object, but extremely tedious to actually establish the equivalence between it and what you want to talk about, and you could pick other ways of precisely specifying a base model to do your high-level things in, but they mostly have similar tedium.)





