Documentation

Mathlib.Order.Bounds.Basic

Upper / lower bounds #

In this file we prove various lemmas about upper/lower bounds of a set: monotonicity, behaviour under , , insert, and provide formulas for , univ, and intervals.

theorem mem_upperBounds {α : Type u_1} [Preorder α] {s : Set α} {a : α} :
a upperBounds s xs, x a
theorem mem_lowerBounds {α : Type u_1} [Preorder α] {s : Set α} {a : α} :
a lowerBounds s xs, a x
theorem mem_upperBounds_iff_subset_Iic {α : Type u_1} [Preorder α] {s : Set α} {a : α} :
theorem mem_lowerBounds_iff_subset_Ici {α : Type u_1} [Preorder α] {s : Set α} {a : α} :
theorem bddAbove_def {α : Type u_1} [Preorder α] {s : Set α} :
BddAbove s ∃ (x : α), ys, y x
theorem bddBelow_def {α : Type u_1} [Preorder α] {s : Set α} :
BddBelow s ∃ (x : α), ys, x y
theorem bot_mem_lowerBounds {α : Type u_1} [Preorder α] [OrderBot α] (s : Set α) :
theorem top_mem_upperBounds {α : Type u_1} [Preorder α] [OrderTop α] (s : Set α) :
@[simp]
theorem isLeast_bot_iff {α : Type u_1} [Preorder α] {s : Set α} [OrderBot α] :
@[simp]
theorem isGreatest_top_iff {α : Type u_1} [Preorder α] {s : Set α} [OrderTop α] :
theorem not_bddAbove_iff' {α : Type u_1} [Preorder α] {s : Set α} :
¬BddAbove s ∀ (x : α), ys, ¬y x

A set s is not bounded above if and only if for each x there exists y ∈ s such that x is not greater than or equal to y. This version only assumes Preorder structure and uses ¬(y ≤ x). A version for linear orders is called not_bddAbove_iff.

theorem not_bddBelow_iff' {α : Type u_1} [Preorder α] {s : Set α} :
¬BddBelow s ∀ (x : α), ys, ¬x y

A set s is not bounded below if and only if for each x there exists y ∈ s such that x is not less than or equal to y. This version only assumes Preorder structure and uses ¬(x ≤ y). A version for linear orders is called not_bddBelow_iff.

theorem not_bddAbove_iff {α : Type u_4} [LinearOrder α] {s : Set α} :
¬BddAbove s ∀ (x : α), ys, x < y

A set s is not bounded above if and only if for each x there exists y ∈ s that is greater than x. A version for preorders is called not_bddAbove_iff'.

theorem not_bddBelow_iff {α : Type u_4} [LinearOrder α] {s : Set α} :
¬BddBelow s ∀ (x : α), ys, y < x

A set s is not bounded below if and only if for each x there exists y ∈ s that is less than x. A version for preorders is called not_bddBelow_iff'.

@[simp]
@[simp]
theorem BddAbove.dual {α : Type u_1} [Preorder α] {s : Set α} (h : BddAbove s) :
theorem BddBelow.dual {α : Type u_1} [Preorder α] {s : Set α} (h : BddBelow s) :
theorem IsLeast.dual {α : Type u_1} [Preorder α] {s : Set α} {a : α} (h : IsLeast s a) :
theorem IsGreatest.dual {α : Type u_1} [Preorder α] {s : Set α} {a : α} (h : IsGreatest s a) :
theorem IsLUB.dual {α : Type u_1} [Preorder α] {s : Set α} {a : α} (h : IsLUB s a) :
theorem IsGLB.dual {α : Type u_1} [Preorder α] {s : Set α} {a : α} (h : IsGLB s a) :
@[reducible, inline]
abbrev IsLeast.orderBot {α : Type u_1} [Preorder α] {s : Set α} {a : α} (h : IsLeast s a) :

If a is the least element of a set s, then subtype s is an order with bottom element.

Equations
Instances For
    @[reducible, inline]
    abbrev IsGreatest.orderTop {α : Type u_1} [Preorder α] {s : Set α} {a : α} (h : IsGreatest s a) :

    If a is the greatest element of a set s, then subtype s is an order with top element.

    Equations
    Instances For
      theorem isLUB_congr {α : Type u_1} [Preorder α] {s t : Set α} {a : α} (h : upperBounds s = upperBounds t) :
      IsLUB s a IsLUB t a
      theorem isGLB_congr {α : Type u_1} [Preorder α] {s t : Set α} {a : α} (h : lowerBounds s = lowerBounds t) :
      IsGLB s a IsGLB t a
      @[simp]
      theorem IsCofinalFor.of_subset {α : Type u_1} [Preorder α] {s t : Set α} (hst : s t) :
      @[simp]
      theorem IsCoinitialFor.of_subset {α : Type u_1} [Preorder α] {s t : Set α} (hst : s t) :
      theorem HasSubset.Subset.iscofinalfor {α : Type u_1} [Preorder α] {s t : Set α} (hst : s t) :

      Alias of IsCofinalFor.of_subset.

      theorem HasSubset.Subset.iscoinitialfor {α : Type u_1} [Preorder α] {s t : Set α} (hst : s t) :

      Alias of IsCoinitialFor.of_subset.

      theorem IsCofinalFor.rfl {α : Type u_1} [Preorder α] {s : Set α} :
      theorem IsCoinitialFor.rfl {α : Type u_1} [Preorder α] {s : Set α} :
      theorem IsCofinalFor.trans {α : Type u_1} [Preorder α] {s t u : Set α} (hst : IsCofinalFor s t) (htu : IsCofinalFor t u) :
      theorem IsCoinitialFor.trans {α : Type u_1} [Preorder α] {s t u : Set α} (hst : IsCoinitialFor s t) (htu : IsCoinitialFor t u) :
      theorem IsCofinalFor.mono_left {α : Type u_1} [Preorder α] {s t u : Set α} (hst : s t) (htu : IsCofinalFor t u) :
      theorem IsCoinitialFor.mono_left {α : Type u_1} [Preorder α] {s t u : Set α} (hst : s t) (htu : IsCoinitialFor t u) :
      theorem IsCofinalFor.mono_right {α : Type u_1} [Preorder α] {s t u : Set α} (htu : t u) (hst : IsCofinalFor s t) :
      theorem IsCoinitialFor.mono_right {α : Type u_1} [Preorder α] {s t u : Set α} (htu : t u) (hst : IsCoinitialFor s t) :
      theorem DirectedOn.isCofinalFor_fst_image_prod_snd_image {α : Type u_1} [Preorder α] {β : Type u_4} [Preorder β] {s : Set (α × β)} (hs : DirectedOn (fun (x1 x2 : α × β) => x1 x2) s) :

      Monotonicity #

      theorem upperBounds_mono_set {α : Type u_1} [Preorder α] s t : Set α (hst : s t) :
      theorem lowerBounds_mono_set {α : Type u_1} [Preorder α] s t : Set α (hst : s t) :
      theorem upperBounds_mono_mem {α : Type u_1} [Preorder α] {s : Set α} a b : α (hab : a b) :
      theorem lowerBounds_mono_mem {α : Type u_1} [Preorder α] {s : Set α} a b : α (hab : a b) :
      theorem upperBounds_mono {α : Type u_1} [Preorder α] s t : Set α (hst : s t) a b : α (hab : a b) :
      theorem lowerBounds_mono {α : Type u_1} [Preorder α] s t : Set α (hst : s t) a b : α (hab : a b) :
      theorem BddAbove.mono {α : Type u_1} [Preorder α] s t : Set α (h : s t) :

      If s ⊆ t and t is bounded above, then so is s.

      theorem BddBelow.mono {α : Type u_1} [Preorder α] s t : Set α (h : s t) :

      If s ⊆ t and t is bounded below, then so is s.

      theorem IsLUB.of_subset_of_superset {α : Type u_1} [Preorder α] {a : α} {s t p : Set α} (hs : IsLUB s a) (hp : IsLUB p a) (hst : s t) (htp : t p) :
      IsLUB t a

      If a is a least upper bound for sets s and p, then it is a least upper bound for any set t, s ⊆ t ⊆ p.

      theorem IsGLB.of_subset_of_superset {α : Type u_1} [Preorder α] {a : α} {s t p : Set α} (hs : IsGLB s a) (hp : IsGLB p a) (hst : s t) (htp : t p) :
      IsGLB t a

      If a is a greatest lower bound for sets s and p, then it is a greater lower bound for any set t, s ⊆ t ⊆ p.

      theorem IsLeast.mono {α : Type u_1} [Preorder α] {s t : Set α} {a b : α} (ha : IsLeast s a) (hb : IsLeast t b) (hst : s t) :
      b a
      theorem IsGreatest.mono {α : Type u_1} [Preorder α] {s t : Set α} {a b : α} (ha : IsGreatest s a) (hb : IsGreatest t b) (hst : s t) :
      a b
      theorem IsLUB.mono {α : Type u_1} [Preorder α] {s t : Set α} {a b : α} (ha : IsLUB s a) (hb : IsLUB t b) (hst : s t) :
      a b
      theorem IsGLB.mono {α : Type u_1} [Preorder α] {s t : Set α} {a b : α} (ha : IsGLB s a) (hb : IsGLB t b) (hst : s t) :
      b a

      Conversions #

      theorem IsLeast.isGLB {α : Type u_1} [Preorder α] {s : Set α} {a : α} (h : IsLeast s a) :
      IsGLB s a
      theorem IsGreatest.isLUB {α : Type u_1} [Preorder α] {s : Set α} {a : α} (h : IsGreatest s a) :
      IsLUB s a
      theorem IsLUB.upperBounds_eq {α : Type u_1} [Preorder α] {s : Set α} {a : α} (h : IsLUB s a) :
      theorem IsGLB.lowerBounds_eq {α : Type u_1} [Preorder α] {s : Set α} {a : α} (h : IsGLB s a) :
      theorem IsLeast.lowerBounds_eq {α : Type u_1} [Preorder α] {s : Set α} {a : α} (h : IsLeast s a) :
      theorem IsGreatest.upperBounds_eq {α : Type u_1} [Preorder α] {s : Set α} {a : α} (h : IsGreatest s a) :
      theorem IsGreatest.lt_iff {α : Type u_1} [Preorder α] {s : Set α} {a b : α} (h : IsGreatest s a) :
      a < b xs, x < b
      theorem IsLeast.lt_iff {α : Type u_1} [Preorder α] {s : Set α} {a b : α} (h : IsLeast s a) :
      b < a xs, b < x
      theorem isLUB_le_iff {α : Type u_1} [Preorder α] {s : Set α} {a b : α} (h : IsLUB s a) :
      theorem le_isGLB_iff {α : Type u_1} [Preorder α] {s : Set α} {a b : α} (h : IsGLB s a) :
      theorem isLUB_iff_le_iff {α : Type u_1} [Preorder α] {s : Set α} {a : α} :
      IsLUB s a ∀ (b : α), a b b upperBounds s
      theorem isGLB_iff_le_iff {α : Type u_1} [Preorder α] {s : Set α} {a : α} :
      IsGLB s a ∀ (b : α), b a b lowerBounds s
      theorem IsLUB.bddAbove {α : Type u_1} [Preorder α] {s : Set α} {a : α} (h : IsLUB s a) :

      If s has a least upper bound, then it is bounded above.

      theorem IsGLB.bddBelow {α : Type u_1} [Preorder α] {s : Set α} {a : α} (h : IsGLB s a) :

      If s has a greatest lower bound, then it is bounded below.

      theorem IsGreatest.bddAbove {α : Type u_1} [Preorder α] {s : Set α} {a : α} (h : IsGreatest s a) :

      If s has a greatest element, then it is bounded above.

      theorem IsLeast.bddBelow {α : Type u_1} [Preorder α] {s : Set α} {a : α} (h : IsLeast s a) :

      If s has a least element, then it is bounded below.

      theorem IsLeast.nonempty {α : Type u_1} [Preorder α] {s : Set α} {a : α} (h : IsLeast s a) :
      theorem IsGreatest.nonempty {α : Type u_1} [Preorder α] {s : Set α} {a : α} (h : IsGreatest s a) :

      Union and intersection #

      @[simp]
      theorem upperBounds_union {α : Type u_1} [Preorder α] {s t : Set α} :
      @[simp]
      theorem lowerBounds_union {α : Type u_1} [Preorder α] {s t : Set α} :
      theorem isLeast_union_iff {α : Type u_1} [Preorder α] {a : α} {s t : Set α} :
      theorem isGreatest_union_iff {α : Type u_1} [Preorder α] {s t : Set α} {a : α} :
      theorem BddAbove.inter_of_left {α : Type u_1} [Preorder α] {s t : Set α} (h : BddAbove s) :

      If s is bounded, then so is s ∩ t

      theorem BddAbove.inter_of_right {α : Type u_1} [Preorder α] {s t : Set α} (h : BddAbove t) :

      If t is bounded, then so is s ∩ t

      theorem BddBelow.inter_of_left {α : Type u_1} [Preorder α] {s t : Set α} (h : BddBelow s) :

      If s is bounded, then so is s ∩ t

      theorem BddBelow.inter_of_right {α : Type u_1} [Preorder α] {s t : Set α} (h : BddBelow t) :

      If t is bounded, then so is s ∩ t

      theorem BddAbove.union {α : Type u_1} [Preorder α] [IsDirected α fun (x1 x2 : α) => x1 x2] {s t : Set α} :
      BddAbove sBddAbove tBddAbove (s t)

      In a directed order, the union of bounded above sets is bounded above.

      theorem bddAbove_union {α : Type u_1} [Preorder α] [IsDirected α fun (x1 x2 : α) => x1 x2] {s t : Set α} :

      In a directed order, the union of two sets is bounded above if and only if both sets are.

      theorem BddBelow.union {α : Type u_1} [Preorder α] [IsDirected α fun (x1 x2 : α) => x1 x2] {s t : Set α} :
      BddBelow sBddBelow tBddBelow (s t)

      In a codirected order, the union of bounded below sets is bounded below.

      theorem bddBelow_union {α : Type u_1} [Preorder α] [IsDirected α fun (x1 x2 : α) => x1 x2] {s t : Set α} :

      In a codirected order, the union of two sets is bounded below if and only if both sets are.

      theorem IsLUB.union {γ : Type u_3} [SemilatticeSup γ] {a b : γ} {s t : Set γ} (hs : IsLUB s a) (ht : IsLUB t b) :
      IsLUB (s t) (ab)

      If a is the least upper bound of s and b is the least upper bound of t, then a ⊔ b is the least upper bound of s ∪ t.

      theorem IsGLB.union {γ : Type u_3} [SemilatticeInf γ] {a₁ a₂ : γ} {s t : Set γ} (hs : IsGLB s a₁) (ht : IsGLB t a₂) :
      IsGLB (s t) (a₁a₂)

      If a is the greatest lower bound of s and b is the greatest lower bound of t, then a ⊓ b is the greatest lower bound of s ∪ t.

      theorem IsLeast.union {γ : Type u_3} [LinearOrder γ] {a b : γ} {s t : Set γ} (ha : IsLeast s a) (hb : IsLeast t b) :
      IsLeast (s t) (min a b)

      If a is the least element of s and b is the least element of t, then min a b is the least element of s ∪ t.

      theorem IsGreatest.union {γ : Type u_3} [LinearOrder γ] {a b : γ} {s t : Set γ} (ha : IsGreatest s a) (hb : IsGreatest t b) :
      IsGreatest (s t) (max a b)

      If a is the greatest element of s and b is the greatest element of t, then max a b is the greatest element of s ∪ t.

      theorem IsLUB.inter_Ici_of_mem {γ : Type u_3} [LinearOrder γ] {s : Set γ} {a b : γ} (ha : IsLUB s a) (hb : b s) :
      IsLUB (s Set.Ici b) a
      theorem IsGLB.inter_Iic_of_mem {γ : Type u_3} [LinearOrder γ] {s : Set γ} {a b : γ} (ha : IsGLB s a) (hb : b s) :
      IsGLB (s Set.Iic b) a
      theorem bddAbove_iff_exists_ge {γ : Type u_3} [SemilatticeSup γ] {s : Set γ} (x₀ : γ) :
      BddAbove s ∃ (x : γ), x₀ x ys, y x
      theorem bddBelow_iff_exists_le {γ : Type u_3} [SemilatticeInf γ] {s : Set γ} (x₀ : γ) :
      BddBelow s xx₀, ys, x y
      theorem BddAbove.exists_ge {γ : Type u_3} [SemilatticeSup γ] {s : Set γ} (hs : BddAbove s) (x₀ : γ) :
      ∃ (x : γ), x₀ x ys, y x
      theorem BddBelow.exists_le {γ : Type u_3} [SemilatticeInf γ] {s : Set γ} (hs : BddBelow s) (x₀ : γ) :
      xx₀, ys, x y

      Specific sets #

      Unbounded intervals #

      theorem isLeast_Ici {α : Type u_1} [Preorder α] {a : α} :
      theorem isGreatest_Iic {α : Type u_1} [Preorder α] {a : α} :
      theorem isLUB_Iic {α : Type u_1} [Preorder α] {a : α} :
      theorem isGLB_Ici {α : Type u_1} [Preorder α] {a : α} :
      theorem upperBounds_Iic {α : Type u_1} [Preorder α] {a : α} :
      theorem lowerBounds_Ici {α : Type u_1} [Preorder α] {a : α} :
      theorem bddAbove_Iic {α : Type u_1} [Preorder α] {a : α} :
      theorem bddBelow_Ici {α : Type u_1} [Preorder α] {a : α} :
      theorem bddAbove_Iio {α : Type u_1} [Preorder α] {a : α} :
      theorem bddBelow_Ioi {α : Type u_1} [Preorder α] {a : α} :
      theorem lub_Iio_le {α : Type u_1} [Preorder α] {b : α} (a : α) (hb : IsLUB (Set.Iio a) b) :
      b a
      theorem le_glb_Ioi {α : Type u_1} [Preorder α] {b : α} (a : α) (hb : IsGLB (Set.Ioi a) b) :
      a b
      theorem lub_Iio_eq_self_or_Iio_eq_Iic {γ : Type u_3} [PartialOrder γ] {j : γ} (i : γ) (hj : IsLUB (Set.Iio i) j) :
      theorem glb_Ioi_eq_self_or_Ioi_eq_Ici {γ : Type u_3} [PartialOrder γ] {j : γ} (i : γ) (hj : IsGLB (Set.Ioi i) j) :
      theorem exists_lub_Iio {γ : Type u_3} [LinearOrder γ] (i : γ) :
      ∃ (j : γ), IsLUB (Set.Iio i) j
      theorem exists_glb_Ioi {γ : Type u_3} [LinearOrder γ] (i : γ) :
      ∃ (j : γ), IsGLB (Set.Ioi i) j
      theorem isLUB_Iio {γ : Type u_3} [LinearOrder γ] [DenselyOrdered γ] {a : γ} :
      theorem isGLB_Ioi {γ : Type u_3} [LinearOrder γ] [DenselyOrdered γ] {a : γ} :
      theorem upperBounds_Iio {γ : Type u_3} [LinearOrder γ] [DenselyOrdered γ] {a : γ} :
      theorem lowerBounds_Ioi {γ : Type u_3} [LinearOrder γ] [DenselyOrdered γ] {a : γ} :

      Singleton #

      @[simp]
      theorem isGreatest_singleton {α : Type u_1} [Preorder α] {a : α} :
      @[simp]
      theorem isLeast_singleton {α : Type u_1} [Preorder α] {a : α} :
      @[simp]
      theorem isLUB_singleton {α : Type u_1} [Preorder α] {a : α} :
      @[simp]
      theorem isGLB_singleton {α : Type u_1} [Preorder α] {a : α} :
      @[simp]
      theorem bddAbove_singleton {α : Type u_1} [Preorder α] {a : α} :
      @[simp]
      theorem bddBelow_singleton {α : Type u_1} [Preorder α] {a : α} :
      @[simp]
      theorem upperBounds_singleton {α : Type u_1} [Preorder α] {a : α} :
      @[simp]
      theorem lowerBounds_singleton {α : Type u_1} [Preorder α] {a : α} :

      Bounded intervals #

      @[simp]
      theorem bddAbove_Icc {α : Type u_1} [Preorder α] {a b : α} :
      @[simp]
      theorem bddBelow_Icc {α : Type u_1} [Preorder α] {a b : α} :
      @[simp]
      theorem bddAbove_Ico {α : Type u_1} [Preorder α] {a b : α} :
      @[simp]
      theorem bddBelow_Ico {α : Type u_1} [Preorder α] {a b : α} :
      @[simp]
      theorem bddAbove_Ioc {α : Type u_1} [Preorder α] {a b : α} :
      @[simp]
      theorem bddBelow_Ioc {α : Type u_1} [Preorder α] {a b : α} :
      @[simp]
      theorem bddAbove_Ioo {α : Type u_1} [Preorder α] {a b : α} :
      @[simp]
      theorem bddBelow_Ioo {α : Type u_1} [Preorder α] {a b : α} :
      theorem isGreatest_Icc {α : Type u_1} [Preorder α] {a b : α} (h : a b) :
      theorem isLUB_Icc {α : Type u_1} [Preorder α] {a b : α} (h : a b) :
      IsLUB (Set.Icc a b) b
      theorem upperBounds_Icc {α : Type u_1} [Preorder α] {a b : α} (h : a b) :
      theorem isLeast_Icc {α : Type u_1} [Preorder α] {a b : α} (h : a b) :
      theorem isGLB_Icc {α : Type u_1} [Preorder α] {a b : α} (h : a b) :
      IsGLB (Set.Icc a b) a
      theorem lowerBounds_Icc {α : Type u_1} [Preorder α] {a b : α} (h : a b) :
      theorem isGreatest_Ioc {α : Type u_1} [Preorder α] {a b : α} (h : a < b) :
      theorem isLUB_Ioc {α : Type u_1} [Preorder α] {a b : α} (h : a < b) :
      IsLUB (Set.Ioc a b) b
      theorem upperBounds_Ioc {α : Type u_1} [Preorder α] {a b : α} (h : a < b) :
      theorem isLeast_Ico {α : Type u_1} [Preorder α] {a b : α} (h : a < b) :
      theorem isGLB_Ico {α : Type u_1} [Preorder α] {a b : α} (h : a < b) :
      IsGLB (Set.Ico a b) a
      theorem lowerBounds_Ico {α : Type u_1} [Preorder α] {a b : α} (h : a < b) :
      theorem isGLB_Ioo {γ : Type u_3} [SemilatticeSup γ] [DenselyOrdered γ] {a b : γ} (h : a < b) :
      IsGLB (Set.Ioo a b) a
      theorem lowerBounds_Ioo {γ : Type u_3} [SemilatticeSup γ] [DenselyOrdered γ] {a b : γ} (hab : a < b) :
      theorem isGLB_Ioc {γ : Type u_3} [SemilatticeSup γ] [DenselyOrdered γ] {a b : γ} (hab : a < b) :
      IsGLB (Set.Ioc a b) a
      theorem lowerBounds_Ioc {γ : Type u_3} [SemilatticeSup γ] [DenselyOrdered γ] {a b : γ} (hab : a < b) :
      theorem isLUB_Ioo {γ : Type u_3} [SemilatticeInf γ] [DenselyOrdered γ] {a b : γ} (hab : a < b) :
      IsLUB (Set.Ioo a b) b
      theorem upperBounds_Ioo {γ : Type u_3} [SemilatticeInf γ] [DenselyOrdered γ] {a b : γ} (hab : a < b) :
      theorem isLUB_Ico {γ : Type u_3} [SemilatticeInf γ] [DenselyOrdered γ] {a b : γ} (hab : a < b) :
      IsLUB (Set.Ico a b) b
      theorem upperBounds_Ico {γ : Type u_3} [SemilatticeInf γ] [DenselyOrdered γ] {a b : γ} (hab : a < b) :
      theorem bddBelow_iff_subset_Ici {α : Type u_1} [Preorder α] {s : Set α} :
      BddBelow s ∃ (a : α), s Set.Ici a
      theorem bddAbove_iff_subset_Iic {α : Type u_1} [Preorder α] {s : Set α} :
      BddAbove s ∃ (a : α), s Set.Iic a
      theorem bddBelow_bddAbove_iff_subset_Icc {α : Type u_1} [Preorder α] {s : Set α} :
      BddBelow s BddAbove s ∃ (a : α) (b : α), s Set.Icc a b

      Univ #

      @[simp]
      theorem isGreatest_univ_iff {α : Type u_1} [Preorder α] {a : α} :
      theorem isLUB_univ {α : Type u_1} [Preorder α] [OrderTop α] :
      @[simp]
      theorem isLeast_univ_iff {α : Type u_1} [Preorder α] {a : α} :
      theorem isGLB_univ {α : Type u_1} [Preorder α] [OrderBot α] :
      @[deprecated NoTopOrder.upperBounds_univ (since := "2025-04-18")]

      Alias of NoTopOrder.upperBounds_univ.

      @[deprecated NoBotOrder.lowerBounds_univ (since := "2025-04-18")]

      Alias of NoBotOrder.lowerBounds_univ.

      @[simp]
      @[simp]

      Empty set #

      @[simp]
      @[simp]
      @[simp]
      theorem bddAbove_empty {α : Type u_1} [Preorder α] [Nonempty α] :
      @[simp]
      theorem bddBelow_empty {α : Type u_1} [Preorder α] [Nonempty α] :
      @[simp]
      theorem isGLB_empty_iff {α : Type u_1} [Preorder α] {a : α} :
      @[simp]
      theorem isLUB_empty_iff {α : Type u_1} [Preorder α] {a : α} :
      theorem isGLB_empty {α : Type u_1} [Preorder α] [OrderTop α] :
      theorem isLUB_empty {α : Type u_1} [Preorder α] [OrderBot α] :
      theorem IsLUB.nonempty {α : Type u_1} [Preorder α] {s : Set α} {a : α} [NoBotOrder α] (hs : IsLUB s a) :
      theorem IsGLB.nonempty {α : Type u_1} [Preorder α] {s : Set α} {a : α} [NoTopOrder α] (hs : IsGLB s a) :
      theorem nonempty_of_not_bddAbove {α : Type u_1} [Preorder α] {s : Set α} [ha : Nonempty α] (h : ¬BddAbove s) :
      theorem nonempty_of_not_bddBelow {α : Type u_1} [Preorder α] {s : Set α} [Nonempty α] (h : ¬BddBelow s) :

      insert #

      @[simp]
      theorem bddAbove_insert {α : Type u_1} [Preorder α] [IsDirected α fun (x1 x2 : α) => x1 x2] {s : Set α} {a : α} :

      Adding a point to a set preserves its boundedness above.

      theorem BddAbove.insert {α : Type u_1} [Preorder α] [IsDirected α fun (x1 x2 : α) => x1 x2] {s : Set α} (a : α) :
      @[simp]
      theorem bddBelow_insert {α : Type u_1} [Preorder α] [IsDirected α fun (x1 x2 : α) => x1 x2] {s : Set α} {a : α} :

      Adding a point to a set preserves its boundedness below.

      theorem BddBelow.insert {α : Type u_1} [Preorder α] [IsDirected α fun (x1 x2 : α) => x1 x2] {s : Set α} (a : α) :
      theorem IsLUB.insert {γ : Type u_3} [SemilatticeSup γ] (a : γ) {b : γ} {s : Set γ} (hs : IsLUB s b) :
      IsLUB (insert a s) (ab)
      theorem IsGLB.insert {γ : Type u_3} [SemilatticeInf γ] (a : γ) {b : γ} {s : Set γ} (hs : IsGLB s b) :
      IsGLB (insert a s) (ab)
      theorem IsGreatest.insert {γ : Type u_3} [LinearOrder γ] (a : γ) {b : γ} {s : Set γ} (hs : IsGreatest s b) :
      IsGreatest (insert a s) (max a b)
      theorem IsLeast.insert {γ : Type u_3} [LinearOrder γ] (a : γ) {b : γ} {s : Set γ} (hs : IsLeast s b) :
      IsLeast (insert a s) (min a b)
      @[simp]
      theorem upperBounds_insert {α : Type u_1} [Preorder α] (a : α) (s : Set α) :
      @[simp]
      theorem lowerBounds_insert {α : Type u_1} [Preorder α] (a : α) (s : Set α) :
      @[simp]
      theorem OrderTop.bddAbove {α : Type u_1} [Preorder α] [OrderTop α] (s : Set α) :

      When there is a global maximum, every set is bounded above.

      @[simp]
      theorem OrderBot.bddBelow {α : Type u_1} [Preorder α] [OrderBot α] (s : Set α) :

      When there is a global minimum, every set is bounded below.

      Sets are automatically bounded or cobounded in complete lattices. To use the same statements in complete and conditionally complete lattices but let automation fill automatically the boundedness proofs in complete lattices, we use the tactic bddDefault in the statements, in the form (hA : BddAbove A := by bddDefault).

      Equations
      Instances For

        Pair #

        theorem isLUB_pair {γ : Type u_3} [SemilatticeSup γ] {a b : γ} :
        IsLUB {a, b} (ab)
        theorem isGLB_pair {γ : Type u_3} [SemilatticeInf γ] {a b : γ} :
        IsGLB {a, b} (ab)
        theorem isLeast_pair {γ : Type u_3} [LinearOrder γ] {a b : γ} :
        IsLeast {a, b} (min a b)
        theorem isGreatest_pair {γ : Type u_3} [LinearOrder γ] {a b : γ} :
        IsGreatest {a, b} (max a b)

        Lower/upper bounds #

        @[simp]
        theorem isLUB_lowerBounds {α : Type u_1} [Preorder α] {s : Set α} {a : α} :
        @[simp]
        theorem isGLB_upperBounds {α : Type u_1} [Preorder α] {s : Set α} {a : α} :

        (In)equalities with the least upper bound and the greatest lower bound #

        theorem lowerBounds_le_upperBounds {α : Type u_1} [Preorder α] {s : Set α} {a b : α} (ha : a lowerBounds s) (hb : b upperBounds s) :
        s.Nonemptya b
        theorem isGLB_le_isLUB {α : Type u_1} [Preorder α] {s : Set α} {a b : α} (ha : IsGLB s a) (hb : IsLUB s b) (hs : s.Nonempty) :
        a b
        theorem isLUB_lt_iff {α : Type u_1} [Preorder α] {s : Set α} {a b : α} (ha : IsLUB s a) :
        a < b cupperBounds s, c < b
        theorem lt_isGLB_iff {α : Type u_1} [Preorder α] {s : Set α} {a b : α} (ha : IsGLB s a) :
        b < a clowerBounds s, b < c
        theorem le_of_isLUB_le_isGLB {α : Type u_1} [Preorder α] {s : Set α} {a b x y : α} (ha : IsGLB s a) (hb : IsLUB s b) (hab : b a) (hx : x s) (hy : y s) :
        x y
        @[simp]
        theorem upperBounds_prod {α : Type u_1} {β : Type u_2} [Preorder α] [Preorder β] {s : Set α} {t : Set β} (hs : s.Nonempty) (ht : t.Nonempty) :
        @[simp]
        theorem lowerBounds_prod {α : Type u_1} {β : Type u_2} [Preorder α] [Preorder β] {s : Set α} {t : Set β} (hs : s.Nonempty) (ht : t.Nonempty) :
        theorem IsLUB.prod {α : Type u_1} {β : Type u_2} [Preorder α] [Preorder β] {s : Set α} {t : Set β} {a : α} {b : β} (hs : s.Nonempty) (ht : t.Nonempty) (ha : IsLUB s a) (hb : IsLUB t b) :
        IsLUB (s ×ˢ t) (a, b)
        theorem IsGLB.prod {α : Type u_1} {β : Type u_2} [Preorder α] [Preorder β] {s : Set α} {t : Set β} {a : α} {b : β} (hs : s.Nonempty) (ht : t.Nonempty) (ha : IsGLB s a) (hb : IsGLB t b) :
        IsGLB (s ×ˢ t) (a, b)
        theorem IsLeast.unique {α : Type u_1} [PartialOrder α] {s : Set α} {a b : α} (Ha : IsLeast s a) (Hb : IsLeast s b) :
        a = b
        theorem IsLeast.isLeast_iff_eq {α : Type u_1} [PartialOrder α] {s : Set α} {a b : α} (Ha : IsLeast s a) :
        IsLeast s b a = b
        theorem IsGreatest.unique {α : Type u_1} [PartialOrder α] {s : Set α} {a b : α} (Ha : IsGreatest s a) (Hb : IsGreatest s b) :
        a = b
        theorem IsGreatest.isGreatest_iff_eq {α : Type u_1} [PartialOrder α] {s : Set α} {a b : α} (Ha : IsGreatest s a) :
        IsGreatest s b a = b
        theorem IsLUB.unique {α : Type u_1} [PartialOrder α] {s : Set α} {a b : α} (Ha : IsLUB s a) (Hb : IsLUB s b) :
        a = b
        theorem IsGLB.unique {α : Type u_1} [PartialOrder α] {s : Set α} {a b : α} (Ha : IsGLB s a) (Hb : IsGLB s b) :
        a = b
        theorem Set.subsingleton_of_isLUB_le_isGLB {α : Type u_1} [PartialOrder α] {s : Set α} {a b : α} (Ha : IsGLB s a) (Hb : IsLUB s b) (hab : b a) :
        theorem isGLB_lt_isLUB_of_ne {α : Type u_1} [PartialOrder α] {s : Set α} {a b : α} (Ha : IsGLB s a) (Hb : IsLUB s b) {x y : α} (Hx : x s) (Hy : y s) (Hxy : x y) :
        a < b
        theorem lt_isLUB_iff {α : Type u_1} [LinearOrder α] {s : Set α} {a b : α} (h : IsLUB s a) :
        b < a cs, b < c
        theorem isGLB_lt_iff {α : Type u_1} [LinearOrder α] {s : Set α} {a b : α} (h : IsGLB s a) :
        a < b cs, c < b
        theorem IsLUB.exists_between {α : Type u_1} [LinearOrder α] {s : Set α} {a b : α} (h : IsLUB s a) (hb : b < a) :
        cs, b < c c a
        theorem IsLUB.exists_between' {α : Type u_1} [LinearOrder α] {s : Set α} {a b : α} (h : IsLUB s a) (h' : as) (hb : b < a) :
        cs, b < c c < a
        theorem IsGLB.exists_between {α : Type u_1} [LinearOrder α] {s : Set α} {a b : α} (h : IsGLB s a) (hb : a < b) :
        cs, a c c < b
        theorem IsGLB.exists_between' {α : Type u_1} [LinearOrder α] {s : Set α} {a b : α} (h : IsGLB s a) (h' : as) (hb : a < b) :
        cs, a < c c < b
        theorem isGreatest_himp {α : Type u_1} [GeneralizedHeytingAlgebra α] (a b : α) :
        IsGreatest {w : α | wa b} (a b)
        theorem isLeast_sdiff {α : Type u_1} [GeneralizedCoheytingAlgebra α] (a b : α) :
        IsLeast {w : α | a bw} (a \ b)
        theorem isGreatest_compl {α : Type u_1} [HeytingAlgebra α] (a : α) :
        theorem isLeast_hnot {α : Type u_1} [CoheytingAlgebra α] (a : α) :
        IsLeast {w : α | Codisjoint a w} (a)
        instance Nat.instDecidableIsLeast (p : Prop) (n : ) [DecidablePred p] :
        Equations