Zulip Chat Archive

Stream: general

Topic: Rename `cardinal.omega`


Violeta Hernández (May 29 2022 at 23:15):

I want to rename cardinal.omega to either cardinal.aleph_zero or cardinal.aleph₀, for two reasons

  • Pretty much every single reference on set theory (as far as I'm aware) uses ω exclusively for the first infinite ordinal, while using ℵ₀ for the first infinite cardinal.
  • Since the notation ω is registered on cardinals, which are almost always used alongside ordinals, it can't be used on ordinals.

Violeta Hernández (May 29 2022 at 23:19):

Apart from asking whether this is a welcome change (particularly to the ordinal coauthors, @Floris van Doorn and @Mario Carneiro), I wanted to ask what cardinal.omega should be renamed to. As mentioned, I see cardinal.aleph_zero and cardinal.aleph₀ as options. I personally prefer the latter for two reasons

  • ℵ₀ would not be def-eq to aleph 0, which might cause confusion when spelled out in full.
  • It's just shorter.

Mario Carneiro (May 29 2022 at 23:25):

cardinal.aleph_0 is also an option, makes it look less like a subscript

Violeta Hernández (May 29 2022 at 23:36):

How do you make polls in Zulip?

Violeta Hernández (May 29 2022 at 23:42):

/poll Rename cardinal.omega to
cardinal.aleph_zero
cardinal.aleph₀
cardinal.aleph_0
Don't rename it

Violeta Hernández (May 30 2022 at 18:27):

I've opened PR #14467.

Violeta Hernández (May 30 2022 at 18:33):

I'd like to apologize for the huge diff... I swear it's mostly uncontroversial

Reid Barton (May 30 2022 at 19:54):

FWIW, in the category theory/logic literature, it is normal to use ω\omega for the first infinite cardinal and ω1\omega_1 for the first uncountable cardinal

Reid Barton (May 30 2022 at 19:54):

which I found odd at first, but have gotten used to

Reid Barton (May 30 2022 at 20:03):

e.g. an indication of this can be found already at the start of the PR:

/-- A language is countable when it has countably many symbols. -/
class countable : Prop := (card_le_omega' : L.card  ℵ₀)

Reid Barton (May 30 2022 at 20:08):

Maybe we can keep cardinal.omega as an alias or something? I'm less concerned about notation, people can just define whatever local notation they like

Gabriel Ebner (May 30 2022 at 20:12):

I don't think the countable class is a convincing argument for using omega. The card_le_omega' field was just following the naming convention. (It should obviously be renamed to card_le_aleph_0' now.)

Reid Barton (May 30 2022 at 20:13):

Perhaps, but in any case the normal notation for this in model theory is in fact ω\omega

Violeta Hernández (May 31 2022 at 03:29):

Note that model theory and set theory more broadly adopt the convention that cardinals are just a special case of ordinals (which arise from the von Neumann construction), which isn't the case in type theory!

Violeta Hernández (May 31 2022 at 03:32):

And I very strongly oppose having the alias cardinal.omega, since it would make all of the theorems on ℵ₀ unfit for rewriting – unless you were to rewrite that to cardinal.aleph_0, defeating the purpose

Violeta Hernández (May 31 2022 at 03:48):

If the notation ω is used in model theory (and you don't need to talk about ordinals ever), then you can just introduce that as a local notation

Anne Baanen (May 31 2022 at 09:22):

I can't find a coercion ordinal → cardinal, would introducing that help the situation at all?

Yaël Dillies (May 31 2022 at 09:25):

Shouldn't the coercion go the other way around, rather?

Anne Baanen (May 31 2022 at 09:27):

This way you can write ω : cardinal without opening locales. But the other way would make more mathematical sense indeed!

Eric Wieser (May 31 2022 at 09:31):

Violeta Hernández said:

  • Since the notation ω is registered on cardinals, which are almost always used alongside ordinals, it can't be used on ordinals.

If this is the motivation, another option would be a has_omega notation class

Reid Barton (May 31 2022 at 10:41):

Violeta Hernández said:

And I very strongly oppose having the alias cardinal.omega, since it would make all of the theorems on ℵ₀ unfit for rewriting – unless you were to rewrite that to cardinal.aleph_0, defeating the purpose

I don't follow--aren't aliases sufficiently transparent to avoid problems?

Reid Barton (May 31 2022 at 10:44):

Violeta Hernández said:

If the notation ω is used in model theory (and you don't need to talk about ordinals ever), then you can just introduce that as a local notation

Yes, this seems like a reasonable approach.

Violeta Hernández (May 31 2022 at 15:29):

We have cardinal.ord and ordinal.card to convert ordinals to cardinals and viceversa. I think making them into coercions might be a bit dangerous, since operations on ordinals and cardinals are quite different!

Violeta Hernández (May 31 2022 at 15:29):

And my understanding is that aliases aren't syntactically equal (unlike notations), which leads to the rewriting problems I'm talking about


Last updated: Dec 20 2023 at 11:08 UTC