Documentation

Mathlib.Order.TransfiniteIteration

Transfinite iteration of a function I → I #

Given φ : I → I where [SupSet I], we define the jth transfinite iteration of φ for any j : J, with J a well-ordered type: this is transfiniteIterate φ j : I → I. If i₀ : I, then transfiniteIterate φ ⊥ i₀ = i₀; if j is a non maximal element, than transfiniteIterate φ (Order.succ j) i₀ = φ (transfiniteIterate φ j i₀); and if j is a limit element, transfiniteIterate φ j i₀ is the supremum of the transfiniteIterate φ l i₀ for l < j.

If I is a complete lattice, we show that j ↦ transfiniteIterate φ j i₀ is a monotone function if i ≤ φ i for all i. Moreover, if i < φ i when i ≠ ⊤, we show in the lemma top_mem_range_transfiniteIteration that there exists j : J such that transfiniteIteration φ i₀ j = ⊤ if we assume that j ↦ transfiniteIterate φ i₀ j : J → I is not injective (which shall hold when we know Cardinal.mk I < Cardinal.mk J).

TODO (@joelriou) #

noncomputable def transfiniteIterate {I : Type u} [SupSet I] (φ : II) {J : Type w} [LinearOrder J] [SuccOrder J] [WellFoundedLT J] (j : J) :
II

The jth-iteration of a function φ : I → I when j : J belongs to a well-ordered type.

Equations
  • One or more equations did not get rendered due to their size.
Instances For
    @[simp]
    theorem transfiniteIterate_bot {I : Type u} [SupSet I] (φ : II) {J : Type w} [LinearOrder J] [SuccOrder J] [WellFoundedLT J] [OrderBot J] (i₀ : I) :
    transfiniteIterate φ i₀ = i₀
    theorem transfiniteIterate_succ {I : Type u} [SupSet I] (φ : II) {J : Type w} [LinearOrder J] [SuccOrder J] [WellFoundedLT J] (i₀ : I) (j : J) (hj : ¬IsMax j) :
    theorem transfiniteIterate_limit {I : Type u} [SupSet I] (φ : II) {J : Type w} [LinearOrder J] [SuccOrder J] [WellFoundedLT J] (i₀ : I) (j : J) (hj : Order.IsSuccLimit j) :
    transfiniteIterate φ j i₀ = ⨆ (x : (Set.Iio j)), transfiniteIterate φ (↑x) i₀
    theorem monotone_transfiniteIterate {I : Type u} [CompleteLattice I] (φ : II) (i₀ : I) {J : Type w} [LinearOrder J] [OrderBot J] [SuccOrder J] [WellFoundedLT J] (hφ : ∀ (i : I), i φ i) :
    Monotone fun (j : J) => transfiniteIterate φ j i₀
    theorem top_mem_range_transfiniteIterate {I : Type u} [CompleteLattice I] (φ : II) (i₀ : I) {J : Type w} [LinearOrder J] [OrderBot J] [SuccOrder J] [WellFoundedLT J] (hφ' : ∀ (i : I), i i < φ i) (φtop : φ = ) (H : ¬Function.Injective fun (j : J) => transfiniteIterate φ j i₀) :
    ∃ (j : J), transfiniteIterate φ j i₀ =