Documentation

LeanPool.PCFTheory.Background.Ordinal

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)} :
↑(Order.succ x) = Order.succ ↑x
theorem Ordinal.succ_Iio {α : Type u_1} [PartialOrder α] [SuccOrder α] {a : α} (h : Order.IsSuccPrelimit a) {x : ↑(Set.Iio a)} :

The order isomorphism between ℕ and the first ω ordinals.

Equations
  • One or more equations did not get rendered due to their size.
Instances For
    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.

    theorem Ordinal.lift_iSup {ι : Type v} {f : ι → Ordinal.{w}} (hf : BddAbove (Set.range f)) :
    lift.{u, w} (iSup f) = ⨆ (i : ι), lift.{u, w} (f i)

    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)) :
      boundedRec H o = H o fun (o' : ↑(Set.Iio o)) => boundedRec H ↑o'
      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 ⟨↑o + 1, ⋯⟩) (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 ⟨↑o + 1, ⋯⟩) (H₃ : (o : ↑(Set.Iio l)) → Order.IsSuccLimit ↑o → ((o' : ↑(Set.Iio l)) → o' < o → motive o') → motive o) :
        boundedLimitRec' lLim ⟨0, ⋯⟩ H₁ H₂ H₃ = H₁
        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 ⟨↑o + 1, ⋯⟩) (H₃ : (o : ↑(Set.Iio l)) → Order.IsSuccLimit ↑o → ((o' : ↑(Set.Iio l)) → o' < o → motive o') → motive o) :
        boundedLimitRec' lLim ⟨↑o + 1, ⋯⟩ H₁ H₂ H₃ = H₂ o (boundedLimitRec' lLim o H₁ H₂ H₃)
        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) :
        ¬∃ (f : ↑(Set.Iio ℓ) → Set α), (∀ (o : ↑(Set.Iio ℓ)), f o ⊆ S) ∧ ∀ (o p : ↑(Set.Iio ℓ)), o < p → f p ⊂ f o

        There doesn't exist a chain of subsets of S of length longer than #S.

        theorem Ordinal.type_Iio (α : Ordinal.{u}) :
        (type fun (x1 x2 : ↑(Set.Iio α)) => x1 < x2) = lift.{u + 1, u} α