Documentation

Mathlib.Order.IsNormal

Normal functions #

A normal function between well-orders is a strictly monotonic continuous function. Normal functions arise chiefly in the context of cardinal and ordinal-valued functions.

We opt for an equivalent definition that's both simpler and often more convenient: a normal function is a strictly monotonic function f such that at successor limits a, f a is the least upper bound of f b with b < a.

TODO #

structure Order.IsNormal {α : Type u_1} {β : Type u_2} [LinearOrder α] [LinearOrder β] (f : αβ) :

A normal function between well-orders is a strictly monotonic continuous function.

Instances For
    theorem Order.IsNormal.of_mem_lowerBounds_upperBounds {α : Type u_1} {β : Type u_2} [LinearOrder α] [LinearOrder β] {f : αβ} (hf : StrictMono f) (hl : ∀ {a : α}, IsSuccLimit af a lowerBounds (upperBounds (f '' Set.Iio a))) :

    This condition is the LHS of the IsLUB (f '' Iio a) (f a) predicate.

    theorem Order.IsNormal.of_succ_lt {α : Type u_1} {β : Type u_2} {f : αβ} [LinearOrder α] [LinearOrder β] [SuccOrder α] [WellFoundedLT α] (hs : ∀ (a : α), f a < f (succ a)) (hl : ∀ {a : α}, IsSuccLimit aIsLUB (f '' Set.Iio a) (f a)) :
    theorem Order.IsNormal.le_iff_forall_le {α : Type u_1} {β : Type u_2} {a : α} {f : αβ} [LinearOrder α] [LinearOrder β] (hf : IsNormal f) (ha : IsSuccLimit a) {b : β} :
    f a b a' < a, f a' b
    theorem Order.IsNormal.lt_iff_exists_lt {α : Type u_1} {β : Type u_2} {a : α} {f : αβ} [LinearOrder α] [LinearOrder β] (hf : IsNormal f) (ha : IsSuccLimit a) {b : β} :
    b < f a a' < a, b < f a'
    theorem Order.IsNormal.map_isSuccLimit {α : Type u_1} {β : Type u_2} {a : α} {f : αβ} [LinearOrder α] [LinearOrder β] (hf : IsNormal f) (ha : IsSuccLimit a) :
    theorem Order.IsNormal.map_isLUB {α : Type u_1} {β : Type u_2} {a : α} {f : αβ} [LinearOrder α] [LinearOrder β] (hf : IsNormal f) {s : Set α} (hs : IsLUB s a) (hs' : s.Nonempty) :
    IsLUB (f '' s) (f a)
    theorem InitialSeg.isNormal {α : Type u_1} {β : Type u_2} [LinearOrder α] [LinearOrder β] (f : InitialSeg (fun (x1 x2 : α) => x1 < x2) fun (x1 x2 : β) => x1 < x2) :
    theorem PrincipalSeg.isNormal {α : Type u_1} {β : Type u_2} [LinearOrder α] [LinearOrder β] (f : PrincipalSeg (fun (x1 x2 : α) => x1 < x2) fun (x1 x2 : β) => x1 < x2) :
    theorem OrderIso.isNormal {α : Type u_1} {β : Type u_2} [LinearOrder α] [LinearOrder β] (f : α ≃o β) :
    theorem Order.IsNormal.comp {α : Type u_1} {β : Type u_2} {γ : Type u_3} {f : αβ} {g : βγ} [LinearOrder α] [LinearOrder β] [LinearOrder γ] (hg : IsNormal g) (hf : IsNormal f) :
    theorem Order.IsNormal.map_sSup {α : Type u_1} {β : Type u_2} {f : αβ} [ConditionallyCompleteLinearOrder α] [ConditionallyCompleteLinearOrder β] (hf : IsNormal f) {s : Set α} (hs : s.Nonempty) (hs' : BddAbove s) :
    f (sSup s) = sSup (f '' s)
    theorem Order.IsNormal.map_iSup {α : Type u_1} {β : Type u_2} {f : αβ} [ConditionallyCompleteLinearOrder α] [ConditionallyCompleteLinearOrder β] {ι : Sort u_4} [Nonempty ι] {g : ια} (hf : IsNormal f) (hg : BddAbove (Set.range g)) :
    f (⨆ (i : ι), g i) = ⨆ (i : ι), f (g i)