Documentation

Mathlib.SetTheory.Cardinal.Aleph

Omega, aleph, and beth functions #

Notation #

The following notations are scoped to the Ordinal namespace.

The following notations are scoped to the Cardinal namespace.

Omega ordinals #

An ordinal is initial when it is the first ordinal with a given cardinality.

This is written as o.card.ord = o, i.e. o is the smallest ordinal with cardinality o.card.

Equations
  • o.IsInitial = (o.card.ord = o)
theorem Ordinal.IsInitial.ord_card {o : Ordinal.{u_1}} (h : o.IsInitial) :
o.card.ord = o
theorem Ordinal.IsInitial.card_le_card {a : Ordinal.{u_1}} {b : Ordinal.{u_1}} (ha : a.IsInitial) :
a.card b.card a b
theorem Ordinal.IsInitial.card_lt_card {a : Ordinal.{u_1}} {b : Ordinal.{u_1}} (hb : b.IsInitial) :
a.card < b.card a < b
theorem Ordinal.isInitial_ord (c : Cardinal.{u_1}) :
c.ord.IsInitial
theorem Ordinal.isInitial_natCast (n : ) :
(↑n).IsInitial
@[simp]
theorem Ordinal.isInitialIso_apply (x : { x : Ordinal.{u_1} // x.IsInitial }) :
Ordinal.isInitialIso x = (↑x).card

Initial ordinals are order-isomorphic to the cardinals.

Equations
  • One or more equations did not get rendered due to their size.

The "pre-omega" function gives the initial ordinals listed by their ordinal index. preOmega n = n, preOmega ω = ω, preOmega (ω + 1) = ω₁, etc.

For the more common omega function skipping over finite ordinals, see Ordinal.omega.

Equations
theorem Ordinal.preOmega_lt_preOmega {o₁ : Ordinal.{u_1}} {o₂ : Ordinal.{u_1}} :
Ordinal.preOmega o₁ < Ordinal.preOmega o₂ o₁ < o₂
theorem Ordinal.preOmega_le_preOmega {o₁ : Ordinal.{u_1}} {o₂ : Ordinal.{u_1}} :
Ordinal.preOmega o₁ Ordinal.preOmega o₂ o₁ o₂
theorem Ordinal.preOmega_max (o₁ : Ordinal.{u_1}) (o₂ : Ordinal.{u_1}) :
Ordinal.preOmega (max o₁ o₂) = max (Ordinal.preOmega o₁) (Ordinal.preOmega o₂)
theorem Ordinal.isInitial_preOmega (o : Ordinal.{u_1}) :
(Ordinal.preOmega o).IsInitial
theorem Ordinal.le_preOmega_self (o : Ordinal.{u_1}) :
o Ordinal.preOmega o
@[simp]
theorem Ordinal.preOmega_zero :
Ordinal.preOmega 0 = 0
@[simp]
theorem Ordinal.preOmega_natCast (n : ) :
Ordinal.preOmega n = n
@[simp]
theorem Ordinal.preOmega_ofNat (n : ) [n.AtLeastTwo] :
Ordinal.preOmega (OfNat.ofNat n) = n
theorem Ordinal.preOmega_le_of_forall_lt {o : Ordinal.{u_1}} {a : Ordinal.{u_1}} (ha : a.IsInitial) (H : b < o, Ordinal.preOmega b < a) :
Ordinal.preOmega o a

The omega function gives the infinite initial ordinals listed by their ordinal index. omega 0 = ω, omega 1 = ω₁ is the first uncountable ordinal, and so on.

This is not to be confused with the first infinite ordinal Ordinal.omega0.

For a version including finite ordinals, see Ordinal.preOmega.

Equations

The omega function gives the infinite initial ordinals listed by their ordinal index. omega 0 = ω, omega 1 = ω₁ is the first uncountable ordinal, and so on.

This is not to be confused with the first infinite ordinal Ordinal.omega0.

For a version including finite ordinals, see Ordinal.preOmega.

Equations

ω₁ is the first uncountable ordinal.

Equations
theorem Ordinal.omega_eq_preOmega (o : Ordinal.{u_1}) :
Ordinal.omega o = Ordinal.preOmega (Ordinal.omega0 + o)
theorem Ordinal.omega_lt_omega {o₁ : Ordinal.{u_1}} {o₂ : Ordinal.{u_1}} :
Ordinal.omega o₁ < Ordinal.omega o₂ o₁ < o₂
theorem Ordinal.omega_le_omega {o₁ : Ordinal.{u_1}} {o₂ : Ordinal.{u_1}} :
Ordinal.omega o₁ Ordinal.omega o₂ o₁ o₂
theorem Ordinal.omega_max (o₁ : Ordinal.{u_1}) (o₂ : Ordinal.{u_1}) :
Ordinal.omega (max o₁ o₂) = max (Ordinal.omega o₁) (Ordinal.omega o₂)
theorem Ordinal.isInitial_omega (o : Ordinal.{u_1}) :
(Ordinal.omega o).IsInitial
theorem Ordinal.le_omega_self (o : Ordinal.{u_1}) :
o Ordinal.omega o
@[simp]
theorem Ordinal.omega_zero :
Ordinal.omega 0 = Ordinal.omega0
@[deprecated Ordinal.omega0_lt_omega1]
theorem Ordinal.omega_lt_omega1 :
Ordinal.omega0 < Ordinal.omega 1

Alias of Ordinal.omega0_lt_omega1.

Aleph cardinals #

The "pre-aleph" function gives the cardinals listed by their ordinal index. preAleph n = n, preAleph ω = ℵ₀, preAleph (ω + 1) = succ ℵ₀, etc.

For the more common aleph function skipping over finite cardinals, see Cardinal.aleph.

Equations
theorem Cardinal.preAleph_lt_preAleph {o₁ : Ordinal.{u_1}} {o₂ : Ordinal.{u_1}} :
Cardinal.preAleph o₁ < Cardinal.preAleph o₂ o₁ < o₂
theorem Cardinal.preAleph_le_preAleph {o₁ : Ordinal.{u_1}} {o₂ : Ordinal.{u_1}} :
Cardinal.preAleph o₁ Cardinal.preAleph o₂ o₁ o₂
theorem Cardinal.preAleph_max (o₁ : Ordinal.{u_1}) (o₂ : Ordinal.{u_1}) :
Cardinal.preAleph (max o₁ o₂) = max (Cardinal.preAleph o₁) (Cardinal.preAleph o₂)
@[simp]
theorem Cardinal.preAleph_zero :
Cardinal.preAleph 0 = 0
@[simp]
theorem Cardinal.preAleph_succ (o : Ordinal.{u_1}) :
Cardinal.preAleph (Order.succ o) = Order.succ (Cardinal.preAleph o)
@[simp]
theorem Cardinal.preAleph_nat (n : ) :
Cardinal.preAleph n = n
theorem Cardinal.preAleph_pos {o : Ordinal.{u_1}} :
0 < Cardinal.preAleph o 0 < o
@[simp]
theorem Cardinal.lift_preAleph (o : Ordinal.{u}) :
Cardinal.lift.{v, u} (Cardinal.preAleph o) = Cardinal.preAleph (Ordinal.lift.{v, u} o)
theorem Cardinal.preAleph_le_of_isLimit {o : Ordinal.{u_1}} (l : o.IsLimit) {c : Cardinal.{u_1}} :
Cardinal.preAleph o c o' < o, Cardinal.preAleph o' c
theorem Cardinal.preAleph_limit {o : Ordinal.{u_1}} (ho : o.IsLimit) :
Cardinal.preAleph o = ⨆ (a : (Set.Iio o)), Cardinal.preAleph a

The aleph function gives the infinite cardinals listed by their ordinal index. aleph 0 = ℵ₀, aleph 1 = succ ℵ₀ is the first uncountable cardinal, and so on.

For a version including finite cardinals, see Cardinal.aleph'.

Equations

The aleph function gives the infinite cardinals listed by their ordinal index. aleph 0 = ℵ₀, aleph 1 = succ ℵ₀ is the first uncountable cardinal, and so on.

For a version including finite cardinals, see Cardinal.aleph'.

Equations

ℵ₁ is the first uncountable cardinal.

Equations
theorem Cardinal.aleph_eq_preAleph (o : Ordinal.{u_1}) :
Cardinal.aleph o = Cardinal.preAleph (Ordinal.omega0 + o)
theorem Cardinal.aleph_lt_aleph {o₁ : Ordinal.{u_1}} {o₂ : Ordinal.{u_1}} :
Cardinal.aleph o₁ < Cardinal.aleph o₂ o₁ < o₂
@[deprecated Cardinal.aleph_lt_aleph]
theorem Cardinal.aleph_lt {o₁ : Ordinal.{u_1}} {o₂ : Ordinal.{u_1}} :
Cardinal.aleph o₁ < Cardinal.aleph o₂ o₁ < o₂

Alias of Cardinal.aleph_lt_aleph.

theorem Cardinal.aleph_le_aleph {o₁ : Ordinal.{u_1}} {o₂ : Ordinal.{u_1}} :
Cardinal.aleph o₁ Cardinal.aleph o₂ o₁ o₂
@[deprecated Cardinal.aleph_le_aleph]
theorem Cardinal.aleph_le {o₁ : Ordinal.{u_1}} {o₂ : Ordinal.{u_1}} :
Cardinal.aleph o₁ Cardinal.aleph o₂ o₁ o₂

Alias of Cardinal.aleph_le_aleph.

theorem Cardinal.aleph_max (o₁ : Ordinal.{u_1}) (o₂ : Ordinal.{u_1}) :
Cardinal.aleph (max o₁ o₂) = max (Cardinal.aleph o₁) (Cardinal.aleph o₂)
@[deprecated Cardinal.aleph_max]
theorem Cardinal.max_aleph_eq (o₁ : Ordinal.{u_1}) (o₂ : Ordinal.{u_1}) :
max (Cardinal.aleph o₁) (Cardinal.aleph o₂) = Cardinal.aleph (max o₁ o₂)
@[simp]
theorem Cardinal.aleph_succ (o : Ordinal.{u_1}) :
Cardinal.aleph (Order.succ o) = Order.succ (Cardinal.aleph o)
@[simp]
theorem Cardinal.aleph_zero :
Cardinal.aleph 0 = Cardinal.aleph0
@[simp]
theorem Cardinal.lift_aleph (o : Ordinal.{u}) :
Cardinal.lift.{v, u} (Cardinal.aleph o) = Cardinal.aleph (Ordinal.lift.{v, u} o)
theorem Cardinal.aleph_limit {o : Ordinal.{u_1}} (ho : o.IsLimit) :
Cardinal.aleph o = ⨆ (a : (Set.Iio o)), Cardinal.aleph a
theorem Cardinal.aleph_pos (o : Ordinal.{u_1}) :
0 < Cardinal.aleph o
@[simp]
theorem Cardinal.aleph_toNat (o : Ordinal.{u_1}) :
Cardinal.toNat (Cardinal.aleph o) = 0
@[simp]
theorem Cardinal.aleph_toPartENat (o : Ordinal.{u_1}) :
Cardinal.toPartENat (Cardinal.aleph o) =
instance Cardinal.nonempty_toType_aleph (o : Ordinal.{u_1}) :
Nonempty (Cardinal.aleph o).ord.toType
Equations
  • =
theorem Cardinal.ord_aleph_isLimit (o : Ordinal.{u_1}) :
(Cardinal.aleph o).ord.IsLimit
Equations
  • =
theorem Cardinal.exists_aleph {c : Cardinal.{u_1}} :
Cardinal.aleph0 c ∃ (o : Ordinal.{u_1}), c = Cardinal.aleph o
theorem Cardinal.countable_iff_lt_aleph_one {α : Type u_1} (s : Set α) :
s.Countable Cardinal.mk s < Cardinal.aleph 1
@[simp]
theorem Cardinal.aleph1_le_lift {c : Cardinal.{u}} :
Cardinal.aleph 1 Cardinal.lift.{v, u} c Cardinal.aleph 1 c
@[simp]
theorem Cardinal.lift_le_aleph1 {c : Cardinal.{u}} :
Cardinal.lift.{v, u} c Cardinal.aleph 1 c Cardinal.aleph 1
@[simp]
theorem Cardinal.aleph1_lt_lift {c : Cardinal.{u}} :
Cardinal.aleph 1 < Cardinal.lift.{v, u} c Cardinal.aleph 1 < c
@[simp]
theorem Cardinal.lift_lt_aleph1 {c : Cardinal.{u}} :
Cardinal.lift.{v, u} c < Cardinal.aleph 1 c < Cardinal.aleph 1
@[simp]
theorem Cardinal.aleph1_eq_lift {c : Cardinal.{u}} :
Cardinal.aleph 1 = Cardinal.lift.{v, u} c Cardinal.aleph 1 = c
@[simp]
theorem Cardinal.lift_eq_aleph1 {c : Cardinal.{u}} :
Cardinal.lift.{v, u} c = Cardinal.aleph 1 c = Cardinal.aleph 1
@[deprecated Cardinal.preAleph]

Alias of Cardinal.preAleph.


The "pre-aleph" function gives the cardinals listed by their ordinal index. preAleph n = n, preAleph ω = ℵ₀, preAleph (ω + 1) = succ ℵ₀, etc.

For the more common aleph function skipping over finite cardinals, see Cardinal.aleph.

Equations
@[deprecated Cardinal.preAleph]
def Cardinal.alephIdx.initialSeg :
(fun (x1 x2 : Cardinal.{u_1}) => x1 < x2) ≼i fun (x1 x2 : Ordinal.{u_1}) => x1 < x2

The aleph' index function, which gives the ordinal index of a cardinal. (The aleph' part is because unlike aleph this counts also the finite stages. So alephIdx n = n, alephIdx ω = ω, alephIdx ℵ₁ = ω + 1 and so on.) In this definition, we register additionally that this function is an initial segment, i.e., it is order preserving and its range is an initial segment of the ordinals. For the basic function version, see alephIdx. For an upgraded version stating that the range is everything, see AlephIdx.rel_iso.

Equations
@[deprecated Cardinal.preAleph]
def Cardinal.alephIdx.relIso :
(fun (x1 x2 : Cardinal.{u}) => x1 < x2) ≃r fun (x1 x2 : Ordinal.{u}) => x1 < x2

The aleph' index function, which gives the ordinal index of a cardinal. (The aleph' part is because unlike aleph this counts also the finite stages. So alephIdx n = n, alephIdx ℵ₀ = ω, alephIdx ℵ₁ = ω + 1 and so on.) In this version, we register additionally that this function is an order isomorphism between cardinals and ordinals. For the basic function version, see alephIdx.

Equations
@[deprecated Cardinal.aleph']

The aleph' index function, which gives the ordinal index of a cardinal. (The aleph' part is because unlike aleph this counts also the finite stages. So alephIdx n = n, alephIdx ω = ω, alephIdx ℵ₁ = ω + 1 and so on.) For an upgraded version stating that the range is everything, see AlephIdx.rel_iso.

Equations
@[deprecated]
theorem Cardinal.alephIdx_lt {a : Cardinal.{u_1}} {b : Cardinal.{u_1}} :
a.alephIdx < b.alephIdx a < b
@[deprecated]
theorem Cardinal.alephIdx_le {a : Cardinal.{u_1}} {b : Cardinal.{u_1}} :
a.alephIdx b.alephIdx a b
@[deprecated]
theorem Cardinal.alephIdx.init {a : Cardinal.{u_1}} {b : Ordinal.{u_1}} :
b < a.alephIdx∃ (c : Cardinal.{u_1}), c.alephIdx = b
@[deprecated Cardinal.aleph']

The aleph' function gives the cardinals listed by their ordinal index, and is the inverse of aleph_idx. aleph' n = n, aleph' ω = ω, aleph' (ω + 1) = succ ℵ₀, etc. In this version, we register additionally that this function is an order isomorphism between ordinals and cardinals. For the basic function version, see aleph'.

Equations
@[deprecated Cardinal.preAleph_lt_preAleph]
theorem Cardinal.aleph'_lt {o₁ : Ordinal.{u_1}} {o₂ : Ordinal.{u_1}} :
Cardinal.aleph' o₁ < Cardinal.aleph' o₂ o₁ < o₂
@[deprecated Cardinal.preAleph_le_preAleph]
theorem Cardinal.aleph'_le {o₁ : Ordinal.{u_1}} {o₂ : Ordinal.{u_1}} :
Cardinal.aleph' o₁ Cardinal.aleph' o₂ o₁ o₂
@[deprecated Cardinal.preAleph_max]
theorem Cardinal.aleph'_max (o₁ : Ordinal.{u_1}) (o₂ : Ordinal.{u_1}) :
Cardinal.aleph' (max o₁ o₂) = max (Cardinal.aleph' o₁) (Cardinal.aleph' o₂)
@[deprecated]
theorem Cardinal.aleph'_alephIdx (c : Cardinal.{u_1}) :
Cardinal.aleph' c.alephIdx = c
@[deprecated]
theorem Cardinal.alephIdx_aleph' (o : Ordinal.{u_1}) :
(Cardinal.aleph' o).alephIdx = o
@[deprecated Cardinal.preAleph_zero]
theorem Cardinal.aleph'_zero :
Cardinal.aleph' 0 = 0
@[deprecated Cardinal.preAleph_succ]
theorem Cardinal.aleph'_succ (o : Ordinal.{u_1}) :
Cardinal.aleph' (Order.succ o) = Order.succ (Cardinal.aleph' o)
@[deprecated Cardinal.preAleph_nat]
theorem Cardinal.aleph'_nat (n : ) :
Cardinal.aleph' n = n
@[deprecated Cardinal.lift_preAleph]
theorem Cardinal.lift_aleph' (o : Ordinal.{u}) :
Cardinal.lift.{v, u} (Cardinal.aleph' o) = Cardinal.aleph' (Ordinal.lift.{v, u} o)
@[deprecated Cardinal.preAleph_le_of_isLimit]
theorem Cardinal.aleph'_le_of_limit {o : Ordinal.{u_1}} (l : o.IsLimit) {c : Cardinal.{u_1}} :
Cardinal.aleph' o c o' < o, Cardinal.aleph' o' c
@[deprecated Cardinal.preAleph_limit]
theorem Cardinal.aleph'_limit {o : Ordinal.{u_1}} (ho : o.IsLimit) :
Cardinal.aleph' o = ⨆ (a : (Set.Iio o)), Cardinal.aleph' a
@[deprecated Cardinal.preAleph_omega0]
@[deprecated Cardinal.aleph'_omega0]

Alias of Cardinal.aleph'_omega0.

@[deprecated Cardinal.aleph']

aleph' and aleph_idx form an equivalence between Ordinal and Cardinal

Equations
theorem Cardinal.aleph_eq_aleph' (o : Ordinal.{u_1}) :
Cardinal.aleph o = Cardinal.preAleph (Ordinal.omega0 + o)
@[deprecated Cardinal.aleph0_le_preAleph]
@[deprecated Cardinal.preAleph_pos]
theorem Cardinal.aleph'_pos {o : Ordinal.{u_1}} (ho : 0 < o) :
0 < Cardinal.aleph' o
@[deprecated Cardinal.preAleph_isNormal]
@[deprecated]
theorem Cardinal.ord_card_unbounded :
Set.Unbounded (fun (x1 x2 : Ordinal.{u_1}) => x1 < x2) {b : Ordinal.{u_1} | b.card.ord = b}

Ordinals that are cardinals are unbounded.

@[deprecated]
theorem Cardinal.eq_aleph'_of_eq_card_ord {o : Ordinal.{u_1}} (ho : o.card.ord = o) :
∃ (a : Ordinal.{u_1}), (Cardinal.aleph' a).ord = o
@[deprecated]
theorem Cardinal.ord_card_unbounded' :
Set.Unbounded (fun (x1 x2 : Ordinal.{u_1}) => x1 < x2) {b : Ordinal.{u_1} | b.card.ord = b Ordinal.omega0 b}

Infinite ordinals that are cardinals are unbounded.

@[deprecated]
theorem Cardinal.eq_aleph_of_eq_card_ord {o : Ordinal.{u_1}} (ho : o.card.ord = o) (ho' : Ordinal.omega0 o) :
∃ (a : Ordinal.{u_1}), (Cardinal.aleph a).ord = o

Beth cardinals #

Beth numbers are defined so that beth 0 = ℵ₀, beth (succ o) = 2 ^ beth o, and when o is a limit ordinal, beth o is the supremum of beth o' for o' < o.

Assuming the generalized continuum hypothesis, which is undecidable in ZFC, beth o = aleph o for every o.

Equations
  • One or more equations did not get rendered due to their size.

Beth numbers are defined so that beth 0 = ℵ₀, beth (succ o) = 2 ^ beth o, and when o is a limit ordinal, beth o is the supremum of beth o' for o' < o.

Assuming the generalized continuum hypothesis, which is undecidable in ZFC, beth o = aleph o for every o.

Equations
theorem Cardinal.beth_limit {o : Ordinal.{u_1}} :
o.IsLimitCardinal.beth o = ⨆ (a : (Set.Iio o)), Cardinal.beth a
@[simp]
theorem Cardinal.beth_lt {o₁ : Ordinal.{u_1}} {o₂ : Ordinal.{u_1}} :
Cardinal.beth o₁ < Cardinal.beth o₂ o₁ < o₂
@[simp]
theorem Cardinal.beth_le {o₁ : Ordinal.{u_1}} {o₂ : Ordinal.{u_1}} :
Cardinal.beth o₁ Cardinal.beth o₂ o₁ o₂
@[deprecated Cardinal.isNormal_beth]