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]
@[simp]
@[simp]
theorem
Cardinal.toNat_apply_of_lt_aleph0
{c : Cardinal.{u}}
(h : c < aleph0)
:
toNat c = Classical.choose ⋯
Two finite cardinals are equal
iff they are equal their Cardinal.toNat projections are equal.
theorem
Cardinal.toNat_le_iff_le_of_lt_aleph0
{c d : Cardinal.{u}}
(hc : c < aleph0)
(hd : d < aleph0)
:
theorem
Cardinal.toNat_lt_iff_lt_of_lt_aleph0
{c d : Cardinal.{u}}
(hc : c < aleph0)
(hd : d < aleph0)
:
@[simp]
toNat has a right-inverse: coercion.
@[simp]
theorem
Cardinal.toNat_eq_ofNat
{c : Cardinal.{u}}
{n : ℕ}
[n.AtLeastTwo]
:
toNat c = OfNat.ofNat n ↔ c = OfNat.ofNat n
A version of toNat_eq_iff for literals
@[simp]
@[simp]
theorem
Cardinal.toNat_lift_add_lift
{a : Cardinal.{u}}
{b : Cardinal.{v}}
(ha : a < aleph0)
(hb : b < aleph0)
:
toNat (lift.{v, u} a + lift.{u, v} b) = toNat a + toNat b
theorem
Cardinal.toNat_eq_iff_of_lt_aleph0
{a : Cardinal.{u}}
(n : ℕ)
(lt : a < aleph0)
:
toNat a = n ↔ a = ↑n