# Documentation

Mathlib.Topology.Bornology.Basic

# Basic theory of bornology #

We develop the basic theory of bornologies. Instead of axiomatizing bounded sets and defining bornologies in terms of those, we recognize that the cobounded sets form a filter and define a bornology as a filter of cobounded sets which contains the cofinite filter. This allows us to make use of the extensive library for filters, but we also provide the relevant connecting results for bounded sets.

The specification of a bornology in terms of the cobounded filter is equivalent to the standard one (e.g., see [Bourbaki, Topological Vector Spaces][bourbaki1987], covering bornology, now often called simply bornology) in terms of bounded sets (see Bornology.ofBounded, IsBounded.union, IsBounded.subset), except that we do not allow the empty bornology (that is, we require that some set must be bounded; equivalently, ∅∅ is bounded). In the literature the cobounded filter is generally referred to as the filter at infinity.

## Main definitions #

• Bornology α: a class consisting of cobounded : Filter α and a proof that this filter contains the cofinite filter.
• Bornology.IsCobounded: the predicate that a set is a member of the cobounded α filter. For s : set α, one should prefer Bornology.IsCobounded s over s ∈ cobounded α∈ cobounded α.
• bornology.IsBounded: the predicate that states a set is bounded (i.e., the complement of a cobounded set). One should prefer Bornology.IsBounded s over sᶜ ∈ cobounded α∈ cobounded α.
• BoundedSpace α: a class extending Bornology α with the condition Bornology.IsBounded (Set.univ : Set α)

Although use of cobounded α is discouraged for indicating the (co)boundedness of individual sets, it is intended for regular use as a filter on α.

class Bornology (α : Type u_1) :
Type u_1
• The filter of cobounded sets in a bornology. This is a field of the structure, but one should always prefer Bornology.cobounded because it makes the α argument explciit.

cobounded' :
• The cobounded filter in a bornology is smaller than the cofinite filter. This is a field of the structure, but one should always prefer Bornology.le_cofinite because it makes the α argument explciit.

le_cofinite' : cobounded' Filter.cofinite

A bornology on a type α is a filter of cobounded sets which contains the cofinite filter. Such spaces are equivalently specified by their bounded sets, see Bornology.ofBounded and Bornology.ext_iff_isBounded

Instances
def Bornology.cobounded (α : Type u_1) [inst : ] :

The filter of cobounded sets in a bornology.

Equations
• = Bornology.cobounded'
def Bornology.Simps.cobounded (α : Type u_1) [inst : ] :

Alias of Bornology.cobounded.

Equations
theorem Bornology.le_cofinite (α : Type u_1) [inst : ] :
Filter.cofinite
theorem Bornology.ext {α : Type u_1} (t : ) (t' : ) (h_cobounded : ) :
t = t'
theorem Bornology.ext_iff {α : Type u_1} (t : ) (t' : ) :
t = t'
@[simp]
theorem Bornology.ofBounded_cobounded_sets {α : Type u_1} (B : Set (Set α)) (empty_mem : B) (subset_mem : ∀ (s₁ : Set α), s₁ B∀ (s₂ : Set α), s₂ s₁s₂ B) (union_mem : ∀ (s₁ : Set α), s₁ B∀ (s₂ : Set α), s₂ Bs₁ s₂ B) (singleton_mem : ∀ (x : α), {x} B) :
().sets = { s | s B }
def Bornology.ofBounded {α : Type u_1} (B : Set (Set α)) (empty_mem : B) (subset_mem : ∀ (s₁ : Set α), s₁ B∀ (s₂ : Set α), s₂ s₁s₂ B) (union_mem : ∀ (s₁ : Set α), s₁ B∀ (s₂ : Set α), s₂ Bs₁ s₂ B) (singleton_mem : ∀ (x : α), {x} B) :

A constructor for bornologies by specifying the bounded sets, and showing that they satisfy the appropriate conditions.

Equations
• One or more equations did not get rendered due to their size.
@[simp]
theorem Bornology.ofBounded'_cobounded_sets {α : Type u_1} (B : Set (Set α)) (empty_mem : B) (subset_mem : ∀ (s₁ : Set α), s₁ B∀ (s₂ : Set α), s₂ s₁s₂ B) (union_mem : ∀ (s₁ : Set α), s₁ B∀ (s₂ : Set α), s₂ Bs₁ s₂ B) (unionₛ_univ : ⋃₀ B = Set.univ) :
().sets = { s | s B }
def Bornology.ofBounded' {α : Type u_1} (B : Set (Set α)) (empty_mem : B) (subset_mem : ∀ (s₁ : Set α), s₁ B∀ (s₂ : Set α), s₂ s₁s₂ B) (union_mem : ∀ (s₁ : Set α), s₁ B∀ (s₂ : Set α), s₂ Bs₁ s₂ B) (unionₛ_univ : ⋃₀ B = Set.univ) :

A constructor for bornologies by specifying the bounded sets, and showing that they satisfy the appropriate conditions.

Equations
def Bornology.IsCobounded {α : Type u_1} [inst : ] (s : Set α) :

IsCobounded is the predicate that s is in the filter of cobounded sets in the ambient bornology on α

Equations
def Bornology.IsBounded {α : Type u_1} [inst : ] (s : Set α) :

IsBounded is the predicate that s is bounded relative to the ambient bornology on α.

Equations
theorem Bornology.isCobounded_def {α : Type u_1} [inst : ] {s : Set α} :
theorem Bornology.isBounded_def {α : Type u_1} [inst : ] {s : Set α} :
@[simp]
theorem Bornology.isBounded_compl_iff {α : Type u_1} [inst : ] {s : Set α} :
@[simp]
theorem Bornology.isCobounded_compl_iff {α : Type u_1} [inst : ] {s : Set α} :
theorem Bornology.IsBounded.of_compl {α : Type u_1} [inst : ] {s : Set α} :

Alias of the forward direction of Bornology.isBounded_compl_iff.

theorem Bornology.IsCobounded.compl {α : Type u_1} [inst : ] {s : Set α} :

Alias of the reverse direction of Bornology.isBounded_compl_iff.

theorem Bornology.IsBounded.compl {α : Type u_1} [inst : ] {s : Set α} :

Alias of the reverse direction of Bornology.isCobounded_compl_iff.

theorem Bornology.IsCobounded.of_compl {α : Type u_1} [inst : ] {s : Set α} :

Alias of the forward direction of Bornology.isCobounded_compl_iff.

@[simp]
theorem Bornology.isBounded_empty {α : Type u_1} [inst : ] :
@[simp]
theorem Bornology.isBounded_singleton {α : Type u_1} [inst : ] {x : α} :
@[simp]
theorem Bornology.isCobounded_univ {α : Type u_1} [inst : ] :
@[simp]
theorem Bornology.isCobounded_inter {α : Type u_1} [inst : ] {s : Set α} {t : Set α} :
theorem Bornology.IsCobounded.inter {α : Type u_1} [inst : ] {s : Set α} {t : Set α} (hs : ) (ht : ) :
@[simp]
theorem Bornology.isBounded_union {α : Type u_1} [inst : ] {s : Set α} {t : Set α} :
theorem Bornology.IsBounded.union {α : Type u_1} [inst : ] {s : Set α} {t : Set α} (hs : ) (ht : ) :
theorem Bornology.IsCobounded.superset {α : Type u_1} [inst : ] {s : Set α} {t : Set α} (hs : ) (ht : s t) :
theorem Bornology.IsBounded.subset {α : Type u_1} [inst : ] {s : Set α} {t : Set α} (ht : ) (hs : s t) :
@[simp]
theorem Bornology.unionₛ_bounded_univ {α : Type u_1} [inst : ] :
⋃₀ { s | } = Set.univ
theorem Bornology.comap_cobounded_le_iff {α : Type u_2} {β : Type u_1} [inst : ] [inst : ] {f : αβ} :
∀ ⦃s : Set α⦄, Bornology.IsBounded (f '' s)
theorem Bornology.ext_iff' {α : Type u_1} {t : } {t' : } :
t = t' ∀ (s : Set α),
theorem Bornology.ext_iff_isBounded {α : Type u_1} {t : } {t' : } :
t = t' ∀ (s : Set α),
theorem Bornology.isCobounded_ofBounded_iff {α : Type u_1} {s : Set α} (B : Set (Set α)) {empty_mem : B} {subset_mem : ∀ (s₁ : Set α), s₁ B∀ (s₂ : Set α), s₂ s₁s₂ B} {union_mem : ∀ (s₁ : Set α), s₁ B∀ (s₂ : Set α), s₂ Bs₁ s₂ B} {sUnion_univ : ∀ (x : α), {x} B} :
s B
theorem Bornology.isBounded_ofBounded_iff {α : Type u_1} {s : Set α} (B : Set (Set α)) {empty_mem : B} {subset_mem : ∀ (s₁ : Set α), s₁ B∀ (s₂ : Set α), s₂ s₁s₂ B} {union_mem : ∀ (s₁ : Set α), s₁ B∀ (s₂ : Set α), s₂ Bs₁ s₂ B} {sUnion_univ : ∀ (x : α), {x} B} :
s B
theorem Bornology.isCobounded_binterᵢ {ι : Type u_1} {α : Type u_2} [inst : ] {s : Set ι} {f : ιSet α} (hs : ) :
Bornology.IsCobounded (Set.interᵢ fun i => Set.interᵢ fun h => f i) ∀ (i : ι), i s
@[simp]
theorem Bornology.isCobounded_binterᵢ_finset {ι : Type u_1} {α : Type u_2} [inst : ] (s : ) {f : ιSet α} :
Bornology.IsCobounded (Set.interᵢ fun i => Set.interᵢ fun h => f i) ∀ (i : ι), i s
@[simp]
theorem Bornology.isCobounded_interᵢ {ι : Type u_1} {α : Type u_2} [inst : ] [inst : ] {f : ιSet α} :
Bornology.IsCobounded (Set.interᵢ fun i => f i) ∀ (i : ι),
theorem Bornology.isCobounded_interₛ {α : Type u_1} [inst : ] {S : Set (Set α)} (hs : ) :
∀ (s : Set α), s S
theorem Bornology.isBounded_bunionᵢ {ι : Type u_1} {α : Type u_2} [inst : ] {s : Set ι} {f : ιSet α} (hs : ) :
Bornology.IsBounded (Set.unionᵢ fun i => Set.unionᵢ fun h => f i) ∀ (i : ι), i sBornology.IsBounded (f i)
theorem Bornology.isBounded_bunionᵢ_finset {ι : Type u_1} {α : Type u_2} [inst : ] (s : ) {f : ιSet α} :
Bornology.IsBounded (Set.unionᵢ fun i => Set.unionᵢ fun h => f i) ∀ (i : ι), i sBornology.IsBounded (f i)
theorem Bornology.isBounded_unionₛ {α : Type u_1} [inst : ] {S : Set (Set α)} (hs : ) :
∀ (s : Set α), s S
@[simp]
theorem Bornology.isBounded_unionᵢ {ι : Type u_1} {α : Type u_2} [inst : ] [inst : ] {s : ιSet α} :
Bornology.IsBounded (Set.unionᵢ fun i => s i) ∀ (i : ι), Bornology.IsBounded (s i)
theorem Set.Finite.isBounded {α : Type u_1} [inst : ] {s : Set α} (hs : ) :
Equations
def Bornology.cofinite {α : Type u_1} :

The cofinite filter as a bornology

Equations
• Bornology.cofinite = { cobounded' := Filter.cofinite, le_cofinite' := (_ : Filter.cofinite Filter.cofinite) }
class BoundedSpace (α : Type u_1) [inst : ] :

A space with a Bornology is a bounded space if Set.univ : Set α is bounded.

Instances
theorem Bornology.isBounded_univ {α : Type u_1} [inst : ] :
theorem Bornology.cobounded_eq_bot_iff {α : Type u_1} [inst : ] :
theorem Bornology.IsBounded.all {α : Type u_1} [inst : ] [inst : ] (s : Set α) :
theorem Bornology.IsCobounded.all {α : Type u_1} [inst : ] [inst : ] (s : Set α) :
@[simp]
theorem Bornology.cobounded_eq_bot (α : Type u_1) [inst : ] [inst : ] :