Topology and uniform structure of uniform convergence #
This files endows α → β
with the topologies / uniform structures of
- uniform convergence on
α
(in theuniform_convergence
namespace) - uniform convergence on a specified family
𝔖
of sets ofα
(in theuniform_convergence_on
namespace), also called𝔖
-convergence
Usual examples of the second construction include :
- the topology of compact convergence, when
𝔖
is the set of compacts ofα
- the strong topology on the dual of a topological vector space (TVS)
E
, when𝔖
is the set of Von Neuman bounded subsets ofE
- the weak-* topology on the dual of a TVS
E
, when𝔖
is the set of singletons ofE
.
This file contains a lot of technical facts, so it is heavily commented, proofs included!
Main definitions #
uniform_convergence.gen
: basis sets for the uniformity of uniform convergence. These are sets of the formS(V) := {(f, g) | ∀ x : α, (f x, g x) ∈ V}
for someV : set (β × β)
uniform_convergence.uniform_space
: uniform structure of uniform convergence. This is theuniform_space
onα → β
whose uniformity is generated by the setsS(V)
forV ∈ 𝓤 β
. We will denote this uniform space as𝒰(α, β, uβ)
, both in the comments and as a local notation in the Lean code, whereuβ
is the uniform space structure onβ
.uniform_convergence_on.uniform_space
: uniform structure of 𝔖-convergence, where𝔖 : set (set α)
. This is the infimum, forS ∈ 𝔖
, of the pullback of𝒰 S β
by the map of restriction toS
. We will denote it𝒱(α, β, 𝔖, uβ)
, whereuβ
is the uniform space structure onβ
.
Main statements #
Basic properties #
uniform_convergence.uniform_continuous_eval
: evaluation is uniformly continuous for𝒰(α, uβ)
.uniform_convergence.t2_space
: the topology of uniform convergence onα → β
is T₂ ifβ
is T₂.uniform_convergence.tendsto_iff_tendsto_uniformly
:𝒰(α, β, uβ)
is indeed the uniform structure of uniform convergenceuniform_convergence_on.uniform_continuous_eval_of_mem
: evaluation at a point contained in a set of𝔖
is uniformly continuous for𝒱(α, β, 𝔖 uβ)
uniform_convergence.t2_space
: the topology of𝔖
-convergence onα → β
is T₂ ifβ
is T₂ and𝔖
coversα
uniform_convergence_on.tendsto_iff_tendsto_uniformly_on
:𝒱(α, β, 𝔖 uβ)
is indeed the uniform structure of𝔖
-convergence
Functoriality and compatibility with product of uniform spaces #
In order to avoid the need for filter bases as much as possible when using these definitions,
we develop an extensive API for manipulating these structures abstractly. As usual in the topology
section of mathlib, we first state results about the complete lattices of uniform_space
s on
fixed types, and then we use these to deduce categorical-like results about maps between two
uniform spaces.
We only describe these in the harder case of 𝔖
-convergence, as the names of the corresponding
results for uniform convergence can easily be guessed.
Order statements #
uniform_convergence_on.mono
: letu₁
,u₂
be two uniform structures onγ
and𝔖₁ 𝔖₂ : set (set α)
. Ifu₁ ≤ u₂
and𝔖₂ ⊆ 𝔖₁
then𝒱(α, γ, 𝔖₁, u₁) ≤ 𝒱(α, γ, 𝔖₂, u₂)
.uniform_convergence_on.infi_eq
: ifu
is a family of uniform structures onγ
, then𝒱(α, γ, 𝔖, (⨅ i, u i)) = ⨅ i, 𝒱(α, γ, 𝔖, u i)
.uniform_convergence_on.comap_eq
: ifu
is a uniform structures onβ
andf : γ → β
, then𝒱(α, γ, 𝔖, comap f u) = comap (λ g, f ∘ g) 𝒱(α, γ, 𝔖, u₁)
.
An interesting note about these statements is that they are proved without ever unfolding the basis
definition of the uniform structure of uniform convergence! Instead, we build a
(not very interesting) Galois connection uniform_convergence.gc
and then rely on the Galois
connection API to do most of the work.
Morphism statements (unbundled) #
uniform_convergence_on.postcomp_uniform_continuous
: iff : (γ, uγ) → (β, uβ)
is uniformly continuous, then(λ g, f ∘ g) : (α → γ, 𝒱(α, γ, 𝔖, uγ)) → (α → β, 𝒱(α, β, 𝔖, uβ))
is uniformly continuous.uniform_convergence_on.postcomp_uniform_inducing
: iff : (γ, uγ) → (β, uβ)
is a uniform inducing, then(λ g, f ∘ g) : (α → γ, 𝒱(α, γ, 𝔖, uγ)) → (α → β, 𝒱(α, β, 𝔖, uβ))
is a uniform inducing.uniform_convergence_on.precomp_uniform_continuous
: letf : γ → α
,𝔖 : set (set α)
,𝔗 : set (set γ)
, and assume that∀ T ∈ 𝔗, f '' T ∈ 𝔖
. Then, the function(λ g, g ∘ f) : (α → β, 𝒱(α, β, 𝔖, uβ)) → (γ → β, 𝒱(γ, β, 𝔗 uβ))
is uniformly continuous.
Isomorphism statements (bundled) #
uniform_convergence_on.congr_right
: turn a uniform isomorphism(γ, uγ) ≃ᵤ (β, uβ)
into a uniform isomorphism(α → γ, 𝒱(α, γ, 𝔖, uγ)) ≃ᵤ (α → β, 𝒱(α, β, 𝔖, uβ))
by post-composing.uniform_convergence_on.congr_left
: turn a bijectione : γ ≃ α
such that we have both∀ T ∈ 𝔗, e '' T ∈ 𝔖
and∀ S ∈ 𝔖, e ⁻¹' S ∈ 𝔗
into a uniform isomorphism(γ → β, 𝒰(γ, β, uβ)) ≃ᵤ (α → β, 𝒰(α, β, uβ))
by pre-composing.uniform_convergence_on.uniform_equiv_Pi_comm
: the natural bijection betweenα → Π i, δ i
andΠ i, α → δ i
, upgraded to a uniform isomorphism between(α → (Π i, δ i), 𝒱(α, (Π i, δ i), 𝔖, (Π i, uδ i)))
and((Π i, α → δ i), (Π i, 𝒱(α, δ i, 𝔖, uδ i)))
.
Important use cases #
- If
(G, uG)
is a uniform group, then(α → G, 𝒱(α, G, 𝔖, uG))
is a uniform group: since(/) : G × G → G
is uniformly continuous,uniform_convergence_on.postcomp_uniform_continuous
tells us that((/) ∘ —) : (α → G × G) → (α → G)
is uniformly continuous. By precomposing withuniform_convergence_on.uniform_equiv_prod_arrow
, this gives that(/) : (α → G) × (α → G) → (α → G)
is also uniformly continuous - The transpose of a continuous linear map is continuous for the strong topologies: since
continuous linear maps are uniformly continuous and map bounded sets to bounded sets,
this is just a special case of
uniform_convergence_on.precomp_uniform_continuous
.
Implementation details #
We do not declare these structures as instances, since they would conflict with Pi.uniform_space
.
TODO #
- Show that the uniform structure of
𝔖
-convergence is exactly the structure of𝔖'
-convergence, where𝔖'
is the noncovering bornology (i.e not whatbornology
currently refers to in mathlib) generated by𝔖
. - Add a type synonym for
α → β
endowed with the structures of uniform convergence?
References #
Tags #
uniform convergence
Basis sets for the uniformity of uniform convergence: gen α β V
is the set of pairs (f, g)
of functions α → β
such that ∀ x, (f x, g x) ∈ V
.
If 𝓕
is a filter on β × β
, then the set of all uniform_convergence.gen α β V
for
V ∈ 𝓕
is too. This will only be applied to 𝓕 = 𝓤 β
when β
is equipped with a uniform_space
structure, but it is useful to define it for any filter in order to be able to state that it
has a lower adjoint (see uniform_convergence.gc
).
For 𝓕 : filter (β × β)
, this is the set of all uniform_convergence.gen α β V
for
V ∈ 𝓕
is as a bundled filter_basis
. This will only be applied to 𝓕 = 𝓤 β
when β
is
equipped with a uniform_space
structure, but it is useful to define it for any filter in order
to be able to state that it has a lower adjoint (see uniform_convergence.gc
).
Equations
- uniform_convergence.basis α β 𝓕 = _.filter_basis
For 𝓕 : filter (β × β)
, this is the filter generated by the filter basis
uniform_convergence.basis α β 𝓕
. For 𝓕 = 𝓤 β
, this will be the uniformity of uniform
convergence on α
.
Equations
- uniform_convergence.filter α β 𝓕 = (uniform_convergence.basis α β 𝓕).filter
The function uniform_convergence.filter α β : filter (β × β) → filter ((α → β) × (α → β))
has a lower adjoint l
(in the sense of galois_connection
). The exact definition of l
is not
interesting; we will only use that it exists (in uniform_convergence.mono
and
uniform_convergence.infi_eq
) and that
l (filter.map (prod.map f f) 𝓕) = filter.map (prod.map ((∘) f) ((∘) f)) (l 𝓕)
for each
𝓕 : filter (γ × γ)
and f : γ → α
(in uniform_convergence.comap_eq
).
Core of the uniform structure of uniform convergence.
Equations
Uniform structure of uniform convergence. We will denote it 𝒰(α, β, uβ)
.
Equations
By definition, the uniformity of α → β
endowed with the structure of uniform convergence on
α
admits the family {(f, g) | ∀ x, (f x, g x) ∈ V}
for V ∈ 𝓤 β
as a filter basis.
Topology of uniform convergence.
If α → β
is endowed with the topology of uniform convergence, 𝓝 f
admits the family
{g | ∀ x, (f x, g x) ∈ V}
for V ∈ 𝓤 β
as a filter basis.
Evaluation at a fixed point is uniformly continuous for 𝒰(α, β, uβ)
.
If u₁
and u₂
are two uniform structures on γ
and u₁ ≤ u₂
, then
𝒰(α, γ, u₁) ≤ 𝒰(α, γ, u₂)
.
If u
is a family of uniform structures on γ
, then
𝒰(α, γ, (⨅ i, u i)) = ⨅ i, 𝒰(α, γ, u i)
.
If u₁
and u₂
are two uniform structures on γ
, then
𝒰(α, γ, u₁ ⊓ u₂) = 𝒰(α, γ, u₁) ⊓ 𝒰(α, γ, u₂)
.
If u
is a uniform structures on β
and f : γ → β
, then
𝒰(α, γ, comap f u) = comap (λ g, f ∘ g) 𝒰(α, γ, u₁)
.
Post-composition by a uniformly continuous function is uniformly continuous for the uniform structures of uniform convergence.
More precisely, if f : (γ, uγ) → (β, uβ)
is uniformly continuous, then
(λ g, f ∘ g) : (α → γ, 𝒰(α, γ, uγ)) → (α → β, 𝒰(α, β, uβ))
is uniformly continuous.
Post-composition by a uniform inducing is a uniform inducing for the uniform structures of uniform convergence.
More precisely, if f : (γ, uγ) → (β, uβ)
is a uniform inducing, then
(λ g, f ∘ g) : (α → γ, 𝒰(α, γ, uγ)) → (α → β, 𝒰(α, β, uβ))
is a uniform inducing.
Turn a uniform isomorphism (γ, uγ) ≃ᵤ (β, uβ)
into a uniform isomorphism
(α → γ, 𝒰(α, γ, uγ)) ≃ᵤ (α → β, 𝒰(α, β, uβ))
by post-composing.
Equations
- uniform_convergence.congr_right e = {to_equiv := {to_fun := (equiv.Pi_congr_right (λ (a : α), e.to_equiv)).to_fun, inv_fun := (equiv.Pi_congr_right (λ (a : α), e.to_equiv)).inv_fun, left_inv := _, right_inv := _}, uniform_continuous_to_fun := _, uniform_continuous_inv_fun := _}
Pre-composition by a any function is uniformly continuous for the uniform structures of uniform convergence.
More precisely, for any f : γ → α
, the function
(λ g, g ∘ f) : (α → β, 𝒰(α, β, uβ)) → (γ → β, 𝒰(γ, β, uβ))
is uniformly continuous.
Turn a bijection γ ≃ α
into a uniform isomorphism
(γ → β, 𝒰(γ, β, uβ)) ≃ᵤ (α → β, 𝒰(α, β, uβ))
by pre-composing.
Equations
- uniform_convergence.congr_left e = {to_equiv := {to_fun := (e.arrow_congr (equiv.refl β)).to_fun, inv_fun := (e.arrow_congr (equiv.refl β)).inv_fun, left_inv := _, right_inv := _}, uniform_continuous_to_fun := _, uniform_continuous_inv_fun := _}
The topology of uniform convergence is T₂.
The uniform structure of uniform convergence is finer than that of pointwise convergence, aka the product uniform structure.
The topology of uniform convergence indeed gives the same notion of convergence as
tendsto_uniformly
.
The natural bijection between α → β × γ
and (α → β) × (α → γ)
, upgraded to a uniform
isomorphism between (α → β × γ, 𝒰(α, β × γ, uβ × uγ))
and
((α → β) × (α → γ), 𝒰(α, β, uβ) × 𝒰(α, γ, uγ))
.
Equations
- uniform_convergence.uniform_equiv_prod_arrow = (equiv.arrow_prod_equiv_prod_arrow β γ α).to_uniform_equiv_of_uniform_inducing uniform_convergence.uniform_equiv_prod_arrow._proof_1
The natural bijection between α → Π i, δ i
and Π i, α → δ i
, upgraded to a uniform
isomorphism between (α → (Π i, δ i), 𝒰(α, (Π i, δ i), (Π i, uδ i)))
and
((Π i, α → δ i), (Π i, 𝒰(α, δ i, uδ i)))
.
Equations
- uniform_convergence.uniform_equiv_Pi_comm α δ = (equiv.Pi_comm (λ (ᾰ : α) (i : ι), δ i)).to_uniform_equiv_of_uniform_inducing _
Uniform structure of 𝔖
-convergence, i.e uniform convergence on the elements of 𝔖
.
It is defined as the infimum, for S ∈ 𝔖
, of the pullback of 𝒰 S β
by S.restrict
, the
map of restriction to S
. We will denote it 𝒱(α, β, 𝔖, uβ)
, where uβ
is the uniform structure
on β
.
Equations
- uniform_convergence_on.uniform_space α β 𝔖 = ⨅ (s : set α) (hs : s ∈ 𝔖), uniform_space.comap s.restrict (uniform_convergence.uniform_space ↥s β)
Topology of 𝔖
-convergence, i.e uniform convergence on the elements of 𝔖
.
The topology of 𝔖
-convergence is the infimum, for S ∈ 𝔖
, of topology induced by the map
of restriction to S
, where ↥S → β
is endowed with the topology of uniform convergence.
If S ∈ 𝔖
, then the restriction to S
is a uniformly continuous map from 𝒱(α, β, 𝔖, uβ)
to
𝒰(↥S, β, uβ)
.
Let u₁
, u₂
be two uniform structures on γ
and 𝔖₁ 𝔖₂ : set (set α)
. If u₁ ≤ u₂
and
𝔖₂ ⊆ 𝔖₁
then 𝒱(α, γ, 𝔖₁, u₁) ≤ 𝒱(α, γ, 𝔖₂, u₂)
.
If x : α
is in some S ∈ 𝔖
, then evaluation at x
is uniformly continuous for
𝒱(α, β, 𝔖, uβ)
.
If u
is a family of uniform structures on γ
, then
𝒱(α, γ, 𝔖, (⨅ i, u i)) = ⨅ i, 𝒱(α, γ, 𝔖, u i)
.
If u₁
and u₂
are two uniform structures on γ
, then
𝒱(α, γ, 𝔖, u₁ ⊓ u₂) = 𝒱(α, γ, 𝔖, u₁) ⊓ 𝒱(α, γ, 𝔖, u₂)
.
If u
is a uniform structures on β
and f : γ → β
, then
𝒱(α, γ, 𝔖, comap f u) = comap (λ g, f ∘ g) 𝒱(α, γ, 𝔖, u₁)
.
Post-composition by a uniformly continuous function is uniformly continuous for the
uniform structures of 𝔖
-convergence.
More precisely, if f : (γ, uγ) → (β, uβ)
is uniformly continuous, then
(λ g, f ∘ g) : (α → γ, 𝒱(α, γ, 𝔖, uγ)) → (α → β, 𝒱(α, β, 𝔖, uβ))
is uniformly continuous.
Post-composition by a uniform inducing is a uniform inducing for the
uniform structures of 𝔖
-convergence.
More precisely, if f : (γ, uγ) → (β, uβ)
is a uniform inducing, then
(λ g, f ∘ g) : (α → γ, 𝒱(α, γ, 𝔖, uγ)) → (α → β, 𝒱(α, β, 𝔖, uβ))
is a uniform inducing.
Turn a uniform isomorphism (γ, uγ) ≃ᵤ (β, uβ)
into a uniform isomorphism
(α → γ, 𝒱(α, γ, 𝔖, uγ)) ≃ᵤ (α → β, 𝒱(α, β, 𝔖, uβ))
by post-composing.
Equations
- uniform_convergence_on.congr_right e = {to_equiv := {to_fun := (equiv.Pi_congr_right (λ (a : α), e.to_equiv)).to_fun, inv_fun := (equiv.Pi_congr_right (λ (a : α), e.to_equiv)).inv_fun, left_inv := _, right_inv := _}, uniform_continuous_to_fun := _, uniform_continuous_inv_fun := _}
Let f : γ → α
, 𝔖 : set (set α)
, 𝔗 : set (set γ)
, and assume that ∀ T ∈ 𝔗, f '' T ∈ 𝔖
.
Then, the function (λ g, g ∘ f) : (α → β, 𝒱(α, β, 𝔖, uβ)) → (γ → β, 𝒱(γ, β, 𝔗 uβ))
is
uniformly continuous.
Note that one can easily see that assuming ∀ T ∈ 𝔗, ∃ S ∈ 𝔖, f '' T ⊆ S
would work too, but
we will get this for free when we prove that 𝒱(α, β, 𝔖, uβ) = 𝒱(α, β, 𝔖', uβ)
for 𝔖'
the
noncovering bornology generated by 𝔖
.
Turn a bijection e : γ ≃ α
such that we have both ∀ T ∈ 𝔗, e '' T ∈ 𝔖
and
∀ S ∈ 𝔖, e ⁻¹' S ∈ 𝔗
into a uniform isomorphism (γ → β, 𝒰(γ, β, uβ)) ≃ᵤ (α → β, 𝒰(α, β, uβ))
by pre-composing.
Equations
- uniform_convergence_on.congr_left e he he' = {to_equiv := {to_fun := (e.arrow_congr (equiv.refl β)).to_fun, inv_fun := (e.arrow_congr (equiv.refl β)).inv_fun, left_inv := _, right_inv := _}, uniform_continuous_to_fun := _, uniform_continuous_inv_fun := _}
If 𝔖
covers α
, then the topology of 𝔖
-convergence is T₂.
If 𝔖
covers α
, then the uniform structure of 𝔖
-convergence is finer than that of
pointwise convergence.
Convergence in the topology of 𝔖
-convergence means uniform convergence on S
(in the sense
of tendsto_uniformly_on
) for all S ∈ 𝔖
.
The natural bijection between α → β × γ
and (α → β) × (α → γ)
, upgraded to a uniform
isomorphism between (α → β × γ, 𝒱(α, β × γ, 𝔖, uβ × uγ))
and
((α → β) × (α → γ), 𝒱(α, β, 𝔖, uβ) × 𝒰(α, γ, 𝔖, uγ))
.
Equations
- uniform_convergence_on.uniform_equiv_prod_arrow = (equiv.arrow_prod_equiv_prod_arrow β γ α).to_uniform_equiv_of_uniform_inducing uniform_convergence_on.uniform_equiv_prod_arrow._proof_1
The natural bijection between α → Π i, δ i
and Π i, α → δ i
, upgraded to a uniform
isomorphism between (α → (Π i, δ i), 𝒱(α, (Π i, δ i), 𝔖, (Π i, uδ i)))
and
((Π i, α → δ i), (Π i, 𝒱(α, δ i, 𝔖, uδ i)))
.
Equations
- uniform_convergence_on.uniform_equiv_Pi_comm 𝔖 δ = (equiv.Pi_comm (λ (ᾰ : α) (i : ι), δ i)).to_uniform_equiv_of_uniform_inducing _