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.

Instances For
    @[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.

    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
    theorem Cardinal.toNat_eq_iff_of_lt_aleph0 {a : Cardinal.{u}} (n : ℕ) (lt : a < aleph0) :
    toNat a = n ↔ a = ↑n