Zulip Chat Archive

Stream: Is there code for X?

Topic: Combining BddBelow and BddAbove


Terence Tao (Jan 27 2024 at 18:37):

Is it worth bundling together the BddBelow and BddAbove properties into a single predicate, say OrdBounded? This would be particularly useful on the reals since in that case it is equivalent to Bornology.IsBounded. One could bundle a large number of the existing lemmas concerning BddBelow and BddAbove separately into lemmas for OrdBounded, e.g.,

import Mathlib

variable {α : Type*} [Preorder α]

def OrdBounded (s : Set α) := (BddBelow s)  (BddAbove s)

lemma OrdBounded.mono s : Set α t : Set α (h : s  t) :
OrdBounded t  OrdBounded s := by
  intro hb
  exact  BddBelow.mono h hb.1, BddAbove.mono h hb.2 

@[simp]
lemma OrdBounded.icc (a b:α) : OrdBounded (Set.Icc a b) :=  bddBelow_Icc, bddAbove_Icc 

@[simp]
lemma OrdBounded.ico (a b:α) : OrdBounded (Set.Ico a b) :=  bddBelow_Ico, bddAbove_Ico 

@[simp]
lemma OrdBounded.ioc (a b:α) : OrdBounded (Set.Ioc a b) :=  bddBelow_Ioc, bddAbove_Ioc 

@[simp]
lemma OrdBounded.ioo (a b:α) : OrdBounded (Set.Ioo a b) :=  bddBelow_Ioo, bddAbove_Ioo 

lemma ordBounded_of_subset_of_icc {α : Type*} [Preorder α] {s : Set α} {a b:α} (h: s  Set.Icc a b) : OrdBounded s := OrdBounded.mono h (OrdBounded.icc a b)

lemma ordBounded_def {α : Type*} [Preorder α] {s : Set α} : OrdBounded s  ( a b, s  Set.Icc a b) := bddBelow_bddAbove_iff_subset_Icc

lemma ordBounded_iff_bounded {s: Set } : OrdBounded s   Bornology.IsBounded s := Real.isBounded_iff_bddBelow_bddAbove.symm

lemma Int.finite_iff_bounded {I: Set } : OrdBounded I  Set.Finite I :=  Set.finite_iff_bddBelow_bddAbove.symm

Anatole Dedecker (Jan 27 2024 at 19:04):

I think what we should have is a class OrderBornology asserting that the ambient bornology on a type is the one induced by the order. But yes, we should make some API for this kind of things

Anatole Dedecker (Jan 27 2024 at 19:05):

In fact, I think I would also like to remove the MetricSpace -> Bornology instance (maybe localize it ?), and have a MetricBornology class, but this is an other discussion

Terence Tao (Jan 27 2024 at 19:51):

Anatole Dedecker said:

I think what we should have is a class OrderBornology asserting that the ambient bornology on a type is the one induced by the order. But yes, we should make some API for this kind of things

Perhaps one should have both, since `OrdBounded' only defines a bornology assuming one has meets and joins.

Jireh Loreaux (Jan 27 2024 at 19:54):

Anatole, having a MetricBornology class wouldn't really solve our bornology problems, would it? I thought the issue was more that we don't want it to be a class at all.

Jireh Loreaux (Jan 27 2024 at 19:55):

Feel free to split the discussion topic.


Last updated: May 02 2025 at 03:31 UTC