Documentation

Mathlib.SetTheory.Cardinal.ToNat

Projection from cardinal numbers to natural numbers #

In this file we define Cardinal.toNat to be the natural projection Cardinal → ℕ, sending all infinite cardinals to zero. We also prove basic lemmas about this definition.

This function sends finite cardinals to the corresponding natural, and infinite cardinals to 0.

Equations
@[simp]
theorem Cardinal.toNat_ofENat (n : ℕ∞) :
toNat n = n.toNat
@[simp]
theorem Cardinal.toNat_natCast (n : ) :
toNat n = n
@[simp]
theorem Cardinal.toNat_inj_of_lt_aleph0 {c d : Cardinal.{u}} (hc : c < aleph0) (hd : d < aleph0) :
toNat c = toNat d c = d

Two finite cardinals are equal iff they are equal their Cardinal.toNat projections are equal.

@[deprecated Cardinal.toNat_inj_of_lt_aleph0 (since := "2024-12-29")]
theorem Cardinal.toNat_eq_iff_eq_of_lt_aleph0 {c d : Cardinal.{u}} (hc : c < aleph0) (hd : d < aleph0) :
toNat c = toNat d c = d

Alias of Cardinal.toNat_inj_of_lt_aleph0.


Two finite cardinals are equal iff they are equal their Cardinal.toNat projections are equal.

theorem Cardinal.toNat_le_toNat {c d : Cardinal.{u}} (hcd : c d) (hd : d < aleph0) :
theorem Cardinal.toNat_lt_toNat {c d : Cardinal.{u}} (hcd : c < d) (hd : d < aleph0) :
@[simp]
theorem Cardinal.mk_toNat_of_infinite {α : Type u} [h : Infinite α] :
toNat (mk α) = 0
@[simp]
theorem Cardinal.toNat_eq_iff {c : Cardinal.{u}} {n : } (hn : n 0) :
toNat c = n c = n

A version of toNat_eq_iff for literals

@[simp]
theorem Cardinal.toNat_congr {α : Type u} {β : Type v} (e : α β) :
toNat (mk α) = toNat (mk β)
@[simp]
theorem Cardinal.toNat_add {c d : Cardinal.{u}} (hc : c < aleph0) (hd : d < aleph0) :
toNat (c + d) = toNat c + toNat d