Background lemmas on ordinals #
Auxiliary results about ordinals and recursion on bounded ordinals used in the PCF-theory formalization.
theorem
Ordinal.coe_succ_Iio
{α : Type u_1}
[PartialOrder α]
[SuccOrder α]
{a : α}
(h : Order.IsSuccPrelimit a)
{x : ↑(Set.Iio a)}
:
theorem
Ordinal.succ_Iio
{α : Type u_1}
[PartialOrder α]
[SuccOrder α]
{a : α}
(h : Order.IsSuccPrelimit a)
{x : ↑(Set.Iio a)}
:
@[simp]
theorem
Ordinal.strictMono_of_succ_lt_omega0
{α : Type u_1}
[Preorder α]
(f : ↑(Set.Iio omega0) → α)
(hf : ∀ (i : ↑(Set.Iio omega0)), f i < f (Order.succ i))
:
The lift of a supremum is the supremum of the lifts.
The lift of a supremum is the supremum of the lifts.
def
Ordinal.boundedRec
{l : Ordinal.{u_2}}
{C : ↑(Set.Iio l) → Sort u_1}
(H : (o : ↑(Set.Iio l)) → ((o' : ↑(Set.Iio o)) → C ↑o') → C o)
(o : ↑(Set.Iio l))
:
C o
Strong recursion on Iio l: given a recursor that builds C o from values of C on
all predecessors o' : Iio o, we get a function (o : Iio l) → C o.
Equations
- One or more equations did not get rendered due to their size.
Instances For
theorem
Ordinal.boundedRec_eq
{l : Ordinal.{u_1}}
{C : ↑(Set.Iio l) → Sort u_2}
(H : (o : ↑(Set.Iio l)) → ((o' : ↑(Set.Iio o)) → C ↑o') → C o)
(o : ↑(Set.Iio l))
:
noncomputable def
Ordinal.boundedLimitRec'
{l : Ordinal.{u_2}}
(lLim : Order.IsSuccLimit l)
{motive : ↑(Set.Iio l) → Sort u_1}
(o : ↑(Set.Iio l))
(zero : motive ⟨0, ⋯⟩)
(succAux : (o : ↑(Set.Iio l)) → motive o → motive ⟨Order.succ ↑o, ⋯⟩)
(limit : (o : ↑(Set.Iio l)) → Order.IsSuccLimit ↑o → ((o' : ↑(Set.Iio l)) → o' < o → motive o') → motive o)
:
motive o
Bounded version of limitRecOn: an Iio l version that mirrors the deprecated
boundedLimitRecOn API used in PCF-theory.
Equations
- One or more equations did not get rendered due to their size.
Instances For
theorem
Ordinal.boundedLimitRec'_zero
{l : Ordinal.{u_1}}
(lLim : Order.IsSuccLimit l)
{motive : ↑(Set.Iio l) → Sort u_2}
(H₁ : motive ⟨0, ⋯⟩)
(H₂ : (o : ↑(Set.Iio l)) → motive o → motive ⟨Order.succ ↑o, ⋯⟩)
(H₃ : (o : ↑(Set.Iio l)) → Order.IsSuccLimit ↑o → ((o' : ↑(Set.Iio l)) → o' < o → motive o') → motive o)
:
theorem
Ordinal.boundedLimitRec'_succ
{l : Ordinal.{u_1}}
(lLim : Order.IsSuccLimit l)
{motive : ↑(Set.Iio l) → Sort u_2}
(o : ↑(Set.Iio l))
(H₁ : motive ⟨0, ⋯⟩)
(H₂ : (o : ↑(Set.Iio l)) → motive o → motive ⟨Order.succ ↑o, ⋯⟩)
(H₃ : (o : ↑(Set.Iio l)) → Order.IsSuccLimit ↑o → ((o' : ↑(Set.Iio l)) → o' < o → motive o') → motive o)
:
theorem
Ordinal.not_exists_ssubset_chain_lift
{α : Type u}
{S : Set α}
{ℓ : Ordinal.{v}}
(hℓ : Order.IsSuccLimit ℓ)
(h : Cardinal.lift.{v, u} (Cardinal.mk ↑S) < Cardinal.lift.{u, v} ℓ.card)
:
There doesn't exist a chain of subsets of S of length longer than #S.