Regular cardinals #
This file defines regular and inaccessible cardinals.
Main definitions #
Cardinal.IsRegular c
means thatc
is a regular cardinal:ℵ₀ ≤ c ∧ c.ord.cof = c
.Cardinal.IsInaccessible c
means thatc
is strongly inaccessible:ℵ₀ < c ∧ IsRegular c ∧ IsStrongLimit c
.
TODO #
Regular cardinals #
A cardinal is regular if it is infinite and it equals its own cofinality.
If c
is a regular cardinal, then c.ord.toType
has a least element.
theorem
Cardinal.isRegular_preAleph_succ
{o : Ordinal.{u_1}}
(h : Ordinal.omega0 ≤ o)
:
(preAleph (Order.succ o)).IsRegular
@[deprecated Cardinal.isRegular_preAleph_succ (since := "2024-10-22")]
theorem
Cardinal.isRegular_aleph'_succ
{o : Ordinal.{u_1}}
(h : Ordinal.omega0 ≤ o)
:
(aleph' (Order.succ o)).IsRegular
theorem
Cardinal.lsub_lt_ord_lift_of_isRegular
{ι : Type u}
{f : ι → Ordinal.{max u v}}
{c : Cardinal.{max u v}}
(hc : c.IsRegular)
(hι : lift.{v, u} (mk ι) < c)
:
(∀ (i : ι), f i < c.ord) → Ordinal.lsub f < c.ord
theorem
Cardinal.lsub_lt_ord_of_isRegular
{ι : Type (max u_1 u_2)}
{f : ι → Ordinal.{max u_1 u_2}}
{c : Cardinal.{max u_1 u_2}}
(hc : c.IsRegular)
(hι : mk ι < c)
:
(∀ (i : ι), f i < c.ord) → Ordinal.lsub f < c.ord
theorem
Cardinal.iSup_lt_ord_lift_of_isRegular
{ι : Type u}
{f : ι → Ordinal.{max u v}}
{c : Cardinal.{max u v}}
(hc : c.IsRegular)
(hι : lift.{v, u} (mk ι) < c)
:
@[deprecated Cardinal.iSup_lt_ord_lift_of_isRegular (since := "2024-08-27")]
theorem
Cardinal.sup_lt_ord_lift_of_isRegular
{ι : Type u}
{f : ι → Ordinal.{max u v}}
{c : Cardinal.{max u v}}
(hc : c.IsRegular)
(hι : lift.{v, u} (mk ι) < c)
:
(∀ (i : ι), f i < c.ord) → Ordinal.sup f < c.ord
theorem
Cardinal.iSup_lt_ord_of_isRegular
{ι : Type u_1}
{f : ι → Ordinal.{u_1}}
{c : Cardinal.{u_1}}
(hc : c.IsRegular)
(hι : mk ι < c)
:
@[deprecated Cardinal.iSup_lt_ord_of_isRegular (since := "2024-08-27")]
theorem
Cardinal.sup_lt_ord_of_isRegular
{ι : Type (max u_1 u_2)}
{f : ι → Ordinal.{max u_1 u_2}}
{c : Cardinal.{max u_1 u_2}}
(hc : c.IsRegular)
(hι : mk ι < c)
:
(∀ (i : ι), f i < c.ord) → Ordinal.sup f < c.ord
theorem
Cardinal.blsub_lt_ord_lift_of_isRegular
{o : Ordinal.{u}}
{f : (a : Ordinal.{u}) → a < o → Ordinal.{max u v}}
{c : Cardinal.{max u v}}
(hc : c.IsRegular)
(ho : lift.{v, u} o.card < c)
:
theorem
Cardinal.blsub_lt_ord_of_isRegular
{o : Ordinal.{max u_1 u_2}}
{f : (a : Ordinal.{max u_1 u_2}) → a < o → Ordinal.{max u_1 u_2}}
{c : Cardinal.{max u_1 u_2}}
(hc : c.IsRegular)
(ho : o.card < c)
:
theorem
Cardinal.bsup_lt_ord_lift_of_isRegular
{o : Ordinal.{u}}
{f : (a : Ordinal.{u}) → a < o → Ordinal.{max u v}}
{c : Cardinal.{max u v}}
(hc : c.IsRegular)
(hι : lift.{v, u} o.card < c)
:
theorem
Cardinal.bsup_lt_ord_of_isRegular
{o : Ordinal.{max u_1 u_2}}
{f : (a : Ordinal.{max u_1 u_2}) → a < o → Ordinal.{max u_1 u_2}}
{c : Cardinal.{max u_1 u_2}}
(hc : c.IsRegular)
(hι : o.card < c)
:
theorem
Cardinal.iSup_lt_lift_of_isRegular
{ι : Type u}
{f : ι → Cardinal.{max u v}}
{c : Cardinal.{max u v}}
(hc : c.IsRegular)
(hι : lift.{v, u} (mk ι) < c)
:
theorem
Cardinal.iSup_lt_of_isRegular
{ι : Type u_1}
{f : ι → Cardinal.{u_1}}
{c : Cardinal.{u_1}}
(hc : c.IsRegular)
(hι : mk ι < c)
:
theorem
Cardinal.sum_lt_lift_of_isRegular
{ι : Type u}
{f : ι → Cardinal.{max u v}}
{c : Cardinal.{max u v}}
(hc : c.IsRegular)
(hι : lift.{v, u} (mk ι) < c)
(hf : ∀ (i : ι), f i < c)
:
theorem
Cardinal.sum_lt_of_isRegular
{ι : Type u}
{f : ι → Cardinal.{u}}
{c : Cardinal.{u}}
(hc : c.IsRegular)
(hι : mk ι < c)
:
@[simp]
theorem
Cardinal.card_lt_of_card_iUnion_lt
{ι α : Type u}
{t : ι → Set α}
{c : Cardinal.{u}}
(h : mk ↑(⋃ (i : ι), t i) < c)
(i : ι)
:
theorem
Cardinal.nfpFamily_lt_ord_lift_of_isRegular
{ι : Type u}
{f : ι → Ordinal.{max u v} → Ordinal.{max u v}}
{c : Cardinal.{max u v}}
(hc : c.IsRegular)
(hι : lift.{v, u} (mk ι) < c)
(hc' : c ≠ aleph0)
(hf : ∀ (i : ι), ∀ b < c.ord, f i b < c.ord)
{a : Ordinal.{max u v}}
(ha : a < c.ord)
:
theorem
Cardinal.nfpFamily_lt_ord_of_isRegular
{ι : Type u}
{f : ι → Ordinal.{u} → Ordinal.{u}}
{c : Cardinal.{u}}
(hc : c.IsRegular)
(hι : mk ι < c)
(hc' : c ≠ aleph0)
{a : Ordinal.{u}}
(hf : ∀ (i : ι), ∀ b < c.ord, f i b < c.ord)
:
a < c.ord → Ordinal.nfpFamily f a < c.ord
@[deprecated Cardinal.nfpFamily_lt_ord_lift_of_isRegular (since := "2024-10-14")]
theorem
Cardinal.nfpBFamily_lt_ord_lift_of_isRegular
{o : Ordinal.{u}}
{f : (a : Ordinal.{u}) → a < o → Ordinal.{max u v} → Ordinal.{max u v}}
{c : Cardinal.{max u v}}
(hc : c.IsRegular)
(ho : lift.{v, u} o.card < c)
(hc' : c ≠ aleph0)
(hf : ∀ (i : Ordinal.{u}) (hi : i < o), ∀ b < c.ord, f i hi b < c.ord)
{a : Ordinal.{max u v}}
:
a < c.ord → o.nfpBFamily f a < c.ord
@[deprecated Cardinal.nfpFamily_lt_ord_of_isRegular (since := "2024-10-14")]
theorem
Cardinal.nfpBFamily_lt_ord_of_isRegular
{o : Ordinal.{u}}
{f : (a : Ordinal.{u}) → a < o → Ordinal.{u} → Ordinal.{u}}
{c : Cardinal.{u}}
(hc : c.IsRegular)
(ho : o.card < c)
(hc' : c ≠ aleph0)
(hf : ∀ (i : Ordinal.{u}) (hi : i < o), ∀ b < c.ord, f i hi b < c.ord)
{a : Ordinal.{u}}
:
a < c.ord → o.nfpBFamily f a < c.ord
theorem
Cardinal.nfp_lt_ord_of_isRegular
{f : Ordinal.{u_1} → Ordinal.{u_1}}
{c : Cardinal.{u_1}}
(hc : c.IsRegular)
(hc' : c ≠ aleph0)
(hf : ∀ i < c.ord, f i < c.ord)
{a : Ordinal.{u_1}}
:
a < c.ord → Ordinal.nfp f a < c.ord
theorem
Cardinal.derivFamily_lt_ord_lift
{ι : Type u}
{f : ι → Ordinal.{max u v} → Ordinal.{max u v}}
{c : Cardinal.{max u v}}
(hc : c.IsRegular)
(hι : lift.{v, u} (mk ι) < c)
(hc' : c ≠ aleph0)
(hf : ∀ (i : ι), ∀ b < c.ord, f i b < c.ord)
{a : Ordinal.{max u v}}
:
a < c.ord → Ordinal.derivFamily f a < c.ord
theorem
Cardinal.derivFamily_lt_ord
{ι : Type u}
{f : ι → Ordinal.{u} → Ordinal.{u}}
{c : Cardinal.{u}}
(hc : c.IsRegular)
(hι : mk ι < c)
(hc' : c ≠ aleph0)
(hf : ∀ (i : ι), ∀ b < c.ord, f i b < c.ord)
{a : Ordinal.{u}}
:
a < c.ord → Ordinal.derivFamily f a < c.ord
@[deprecated Cardinal.derivFamily_lt_ord_lift (since := "2024-10-14")]
theorem
Cardinal.derivBFamily_lt_ord_lift
{o : Ordinal.{u}}
{f : (a : Ordinal.{u}) → a < o → Ordinal.{max u v} → Ordinal.{max u v}}
{c : Cardinal.{max u v}}
(hc : c.IsRegular)
(hι : lift.{v, u} o.card < c)
(hc' : c ≠ aleph0)
(hf : ∀ (i : Ordinal.{u}) (hi : i < o), ∀ b < c.ord, f i hi b < c.ord)
{a : Ordinal.{max u v}}
:
a < c.ord → o.derivBFamily f a < c.ord
@[deprecated Cardinal.derivFamily_lt_ord (since := "2024-10-14")]
theorem
Cardinal.derivBFamily_lt_ord
{o : Ordinal.{u}}
{f : (a : Ordinal.{u}) → a < o → Ordinal.{u} → Ordinal.{u}}
{c : Cardinal.{u}}
(hc : c.IsRegular)
(hι : o.card < c)
(hc' : c ≠ aleph0)
(hf : ∀ (i : Ordinal.{u}) (hi : i < o), ∀ b < c.ord, f i hi b < c.ord)
{a : Ordinal.{u}}
:
a < c.ord → o.derivBFamily f a < c.ord
theorem
Cardinal.deriv_lt_ord
{f : Ordinal.{u} → Ordinal.{u}}
{c : Cardinal.{u}}
(hc : c.IsRegular)
(hc' : c ≠ aleph0)
(hf : ∀ i < c.ord, f i < c.ord)
{a : Ordinal.{u}}
:
a < c.ord → Ordinal.deriv f a < c.ord
Inaccessible cardinals #
A cardinal is inaccessible if it is an uncountable regular strong limit cardinal.
Equations
- c.IsInaccessible = (Cardinal.aleph0 < c ∧ c.IsRegular ∧ c.IsStrongLimit)
theorem
Cardinal.IsInaccessible.mk
{c : Cardinal.{u_1}}
(h₁ : aleph0 < c)
(h₂ : c ≤ c.ord.cof)
(h₃ : ∀ x < c, 2 ^ x < c)
:
theorem
Ordinal.iSup_sequence_lt_omega1
{α : Type u}
[Countable α]
(o : α → Ordinal.{max u v})
(ho : ∀ (n : α), o n < (Cardinal.aleph 1).ord)
: