Module mathcomp.analysis.topology_theory.uniform_structure

From HB Require Import structures.
From mathcomp Require Import boot order algebra all_classical.
#[warning="-warn-library-file-internal-analysis"]
From mathcomp Require Import unstable.
From mathcomp Require Import topology_structure.

# Uniform Spaces This file provides uniform spaces, and their theory. It also includes complete spaces, which extends uniform in the hierarchy. ## Mathematical structures ### Uniform ``` nbhs_ ent == neighborhoods defined using entourages uniformType == interface type for uniform spaces: a type equipped with entourages The HB class is Uniform. puniformType == a pointed and uniform space entourage == set of entourages in a uniform space split_ent E == when E is an entourage, split_ent E is an entourage E' such that E' \o E' is included in E when seen as a relation countable_uniformity T == T's entourage has a countable base This is equivalent to `T` being metrizable. unif_continuous f == f is uniformly continuous entourage_ ball == entourages defined using balls ``` ## Factories ``` Nbhs_isUniform == factory to build a topological space from a mixin for a uniform space ``` ### Complete uniform spaces ``` cauchy F <-> the set of sets F is a cauchy filter (entourage definition) completeType == interface type for a complete uniform space structure The HB class is Complete. ```

Set Implicit Arguments.
Unset Strict Implicit.
Unset Printing Implicit Defensive.

Local Open Scope classical_set_scope.
Local Open Scope ring_scope.

Definition nbhs_
Used by
  • mathcomp.analysis.ereal
  • mathcomp.analysis.topology_theory.pseudometric_structure
  • mathcomp.analysis.topology_theory.metric_structure
  • mathcomp.analysis.topology_theory.product_topology
  • mathcomp.analysis.topology_theory.supremum_topology
  • mathcomp.analysis.topology_theory.discrete_topology
  • mathcomp.analysis.topology_theory.initial_topology
  • mathcomp.analysis.topology_theory.matrix_topology
  • mathcomp.analysis.topology_theory.subspace_topology
  • mathcomp.analysis.normedtype_theory.tvs
  • mathcomp.analysis.normedtype_theory.urysohn
  • mathcomp.analysis.normedtype_theory.normed_module

Source code
{TSource code T'Source code} (entSource code : set_system (T * T')) (xSource code : T) :=
  filter_from ent (fun ASource code => xsection A x).

Lemma nbhs_ESource code {TSource code T'Source code} (entSource code : set_system (T * T')) xSource code :
  nbhs_ ent x = filter_from ent (fun ASource code => xsection A x).
Proof.
by []. Qed.

Local Open Scope relation_scope.

HBSource code.mixinSource code RecordSource code Nbhs_isUniform_mixinSource code MSource code &Source code NbhsSource code M := {
  entourage : set_system (M * M);
  entourage_filter : Filter entourage;
  entourage_diagonal_subproof :
    forall ASource code, entourage A -> diagonal `<=` A;
  entourage_inv_subproof : forall ASource code, entourage A -> entourage A^-1;
  entourage_split_ex_subproof :
    forall ASource code, entourage A -> exists2 BSource code, entourage B & B \; B `<=` A;
  nbhsE_subproof : nbhs = nbhs_ entourage;
}.

#[shortUsed by
  • mathcomp.analysis.topology_theory.pseudometric_structure
  • mathcomp.analysis.topology_theory.order_topology
  • mathcomp.analysis.topology_theory.supremum_topology
  • mathcomp.analysis.topology_theory.discrete_topology
  • mathcomp.analysis.normedtype_theory.pseudometric_normed_Zmodule
  • mathcomp.analysis.normedtype_theory.tvs

Source code
(type=Used by
  • mathcomp.analysis.topology_theory.pseudometric_structure
  • mathcomp.analysis.topology_theory.order_topology
  • mathcomp.analysis.topology_theory.supremum_topology
  • mathcomp.analysis.topology_theory.discrete_topology
  • mathcomp.analysis.normedtype_theory.pseudometric_normed_Zmodule
  • mathcomp.analysis.normedtype_theory.tvs

Source code
"uniformType"Used by
  • mathcomp.analysis.topology_theory.pseudometric_structure
  • mathcomp.analysis.topology_theory.order_topology
  • mathcomp.analysis.topology_theory.supremum_topology
  • mathcomp.analysis.topology_theory.discrete_topology
  • mathcomp.analysis.normedtype_theory.pseudometric_normed_Zmodule
  • mathcomp.analysis.normedtype_theory.tvs

Source code
)]Used by
  • mathcomp.analysis.topology_theory.pseudometric_structure
  • mathcomp.analysis.topology_theory.order_topology
  • mathcomp.analysis.topology_theory.supremum_topology
  • mathcomp.analysis.topology_theory.discrete_topology
  • mathcomp.analysis.normedtype_theory.pseudometric_normed_Zmodule
  • mathcomp.analysis.normedtype_theory.tvs

Source code

HBUsed by
  • mathcomp.analysis.topology_theory.pseudometric_structure
  • mathcomp.analysis.topology_theory.order_topology
  • mathcomp.analysis.topology_theory.supremum_topology
  • mathcomp.analysis.topology_theory.discrete_topology
  • mathcomp.analysis.normedtype_theory.pseudometric_normed_Zmodule
  • mathcomp.analysis.normedtype_theory.tvs

Source code
.structureUsed by
  • mathcomp.analysis.topology_theory.pseudometric_structure
  • mathcomp.analysis.topology_theory.order_topology
  • mathcomp.analysis.topology_theory.supremum_topology
  • mathcomp.analysis.topology_theory.discrete_topology
  • mathcomp.analysis.normedtype_theory.pseudometric_normed_Zmodule
  • mathcomp.analysis.normedtype_theory.tvs

Source code
DefinitionUsed by
  • mathcomp.analysis.topology_theory.pseudometric_structure
  • mathcomp.analysis.topology_theory.order_topology
  • mathcomp.analysis.topology_theory.supremum_topology
  • mathcomp.analysis.topology_theory.discrete_topology
  • mathcomp.analysis.normedtype_theory.pseudometric_normed_Zmodule
  • mathcomp.analysis.normedtype_theory.tvs

Source code
UniformUsed by
  • mathcomp.analysis.topology_theory.pseudometric_structure
  • mathcomp.analysis.topology_theory.order_topology
  • mathcomp.analysis.topology_theory.supremum_topology
  • mathcomp.analysis.topology_theory.discrete_topology
  • mathcomp.analysis.normedtype_theory.pseudometric_normed_Zmodule
  • mathcomp.analysis.normedtype_theory.tvs

Source code
:=Used by
  • mathcomp.analysis.topology_theory.pseudometric_structure
  • mathcomp.analysis.topology_theory.order_topology
  • mathcomp.analysis.topology_theory.supremum_topology
  • mathcomp.analysis.topology_theory.discrete_topology
  • mathcomp.analysis.normedtype_theory.pseudometric_normed_Zmodule
  • mathcomp.analysis.normedtype_theory.tvs

Source code

  {TSource code of Topological T & Nbhs_isUniform_mixin T}.

#[shortSource code(type=Source code"puniformType"Source code)]Source code
HBSource code.structureSource code DefinitionSource code PointedUniformSource code :=Source code
  {TSource code of PointedTopological T & Nbhs_isUniform_mixin T}.

HBSource code.factorySource code RecordSource code Nbhs_isUniformSource code MSource code &Source code NbhsSource code M := {
  entourage : set_system (M * M);
  entourage_filter : Filter entourage;
  entourage_diagonal : forall ASource code, entourage A -> diagonal `<=` A;
  entourage_inv : forall ASource code, entourage A -> entourage A^-1;
  entourage_split_ex :
    forall ASource code, entourage A -> exists2 BSource code, entourage B & B \; B `<=` A;
  nbhsE : nbhs = nbhs_ entourage;
}.

Local Close Scope relation_scope.

HBSource code.buildersSource code ContextSource code MSource code &Source code Nbhs_isUniformSource code M.

Let nbhs_filterSource code (pSource code : M) : ProperFilter (nbhs p).
Proof.
rewrite nbhsE nbhs_E; apply: filter_from_proper; last first.
  by move=> A entA; exists p; apply/mem_set; apply: entourage_diagonal entA _ _.
apply: filter_from_filter.
  by exists setT; exact: @filterT entourage_filter.
move=> A B entA entB; exists (A `&` B); last by rewrite xsectionI.
exact: (@filterI _ _ entourage_filter).
Qed.

Let nbhs_singletonSource code (pSource code : M) ASource code : nbhs p A -> A p.
Proof.
rewrite nbhsE nbhs_E  => - [B entB sBpA].
by apply/sBpA/mem_set; exact: entourage_diagonal entB _ _.
Qed.

Let nbhs_nbhsSource code (pSource code : M) ASource code : nbhs p A -> nbhs p (nbhs^~ A).
Proof.
rewrite nbhsE nbhs_E => - [B entB sBpA].
have /entourage_split_ex[C entC sC2B] := entB.
exists C => // q Cpq; rewrite nbhs_E; exists C => // r Cqr.
by apply/sBpA/mem_set/sC2B; exists q; exact/set_mem.
Qed.

HBSource code.instanceSource code DefinitionSource code _Source code :=Source code Nbhs_isNbhsTopologicalSource code.Build M
  nbhs_filter nbhs_singleton nbhs_nbhs.

HBSource code.instanceSource code DefinitionSource code _Source code :=Source code Nbhs_isUniform_mixinSource code.Build M
  entourage_filter entourage_diagonal entourage_inv entourage_split_ex nbhsE.

HBSource code.endSource code.

Local Open Scope relation_scope.

HBSource code.factorySource code RecordSource code isUniformSource code MSource code &Source code ChoiceSource code M := {
  entourage : set_system (M * M);
  entourage_filter : Filter entourage;
  entourage_diagonal : forall ASource code, entourage A -> diagonal `<=` A;
  entourage_inv : forall ASource code, entourage A -> entourage A^-1;
  entourage_split_ex :
    forall ASource code, entourage A -> exists2 BSource code, entourage B & B \; B `<=` A;
}.

Local Close Scope relation_scope.

HBSource code.buildersSource code ContextSource code MSource code &Source code isUniformSource code M.

HBSource code.instanceSource code DefinitionSource code _Source code :=Source code @hasNbhsSource code.Build M (nbhs_ entourage).

HBSource code.instanceSource code DefinitionSource code _Source code :=Source code @Nbhs_isUniformSource code.Build M entourage
  entourage_filter entourage_diagonal entourage_inv entourage_split_ex erefl.

HBSource code.endSource code.

Lemma nbhs_entourageEUsed by
  • mathcomp.analysis.cantor
  • mathcomp.analysis.topology_theory.pseudometric_structure
  • mathcomp.analysis.topology_theory.product_topology
  • mathcomp.analysis.topology_theory.function_spaces
  • mathcomp.analysis.topology_theory.separation_axioms
  • mathcomp.analysis.topology_theory.matrix_topology
  • mathcomp.analysis.normedtype_theory.urysohn

Source code
{MSource code : uniformType} : nbhs_ (@entourage M) = nbhs.
Proof.

Lemma entourage_symUsed by
  • mathcomp.analysis.topology_theory.function_spaces

Source code
{XSource code YSource code : Type} ESource code (xSource code : X) (ySource code : Y) :
  E (x, y) <-> (E ^-1)%relation (y, x).
Proof.
by []. Qed.

Lemma filter_from_entourageEUsed by
  • mathcomp.analysis.topology_theory.subspace_topology

Source code
{MSource code : uniformType} xSource code :
  filter_from (@entourage M) (fun ASource code => xsection A x) = nbhs x.
Proof.
by rewrite -nbhs_entourageE. Qed.

Module Export NbhsEntourageSource code.
Definition nbhs_simpl
Used by
  • mathcomp.analysis.cantor
  • mathcomp.analysis.topology_theory.pseudometric_structure
  • mathcomp.analysis.topology_theory.separation_axioms
  • mathcomp.analysis.homotopy_theory.wedge_sigT
  • mathcomp.analysis.normedtype_theory.pseudometric_normed_Zmodule
  • mathcomp.analysis.normedtype_theory.urysohn

Source code
:=
  (nbhs_simpl,@filter_from_entourageE,@nbhs_entourageE).
End NbhsEntourage.

Lemma nbhsPUsed by
  • mathcomp.analysis.topology_theory.supremum_topology
  • mathcomp.analysis.topology_theory.separation_axioms
  • mathcomp.analysis.topology_theory.initial_topology
  • mathcomp.analysis.topology_theory.subspace_topology

Source code
{MSource code : uniformType} (xSource code : M) PSource code : nbhs x P <-> nbhs_ entourage x P.
Proof.
by rewrite nbhs_simpl. Qed.

Lemma filter_invUsed by
  • mathcomp.analysis.normedtype_theory.urysohn

Source code
{TSource code : Type} (FSource code : set_system (T * T)) :
  Filter F -> Filter [set V^-1 | VSource code in F]%relation.
Proof.
move=> FF; split => /=.
- by exists [set: T * T] => //; exact: filterT.
- by move=> P Q [R FR <-] [S FS <-]; exists (R `&` S) => //; exact: filterI.
- move=> P Q PQ [R FR RP]; exists Q^-1%relation => //; first last.
    by rewrite eqEsubset; split; case.
  by apply: filterS FR; case=> ? ? /= ?; apply: PQ; rewrite -RP.
Qed.

Section uniformType1.
Local Open Scope relation_scope.
Context {MSource code : uniformType}.

Lemma entourage_reflUsed by
  • mathcomp.analysis.cantor
  • mathcomp.analysis.topology_theory.product_topology
  • mathcomp.analysis.topology_theory.supremum_topology
  • mathcomp.analysis.topology_theory.function_spaces
  • mathcomp.analysis.topology_theory.separation_axioms
  • mathcomp.analysis.topology_theory.initial_topology
  • mathcomp.analysis.topology_theory.matrix_topology
  • mathcomp.analysis.topology_theory.subspace_topology
  • mathcomp.analysis.normedtype_theory.pseudometric_normed_Zmodule

Source code
 (ASource code : set (M * M)) xSource code : entourage A -> A (x, x).
Proof.
by move=> entA; exact: entourage_diagonal_subproof entA _ _. Qed.

Global Instance entourage_filter'Source code : Filter (@entourage M).
Proof.
exact: entourage_filter.
Qed.

Lemma entourageTUsed by
  • mathcomp.analysis.topology_theory.product_topology
  • mathcomp.analysis.topology_theory.supremum_topology
  • mathcomp.analysis.topology_theory.separation_axioms
  • mathcomp.analysis.topology_theory.initial_topology
  • mathcomp.analysis.topology_theory.subspace_topology
  • mathcomp.analysis.normedtype_theory.normed_module

Source code
: entourage [set: M * M].
Proof.
exact: filterT. Qed.

Lemma entourage_invUsed by
  • mathcomp.analysis.topology_theory.product_topology
  • mathcomp.analysis.topology_theory.supremum_topology
  • mathcomp.analysis.topology_theory.function_spaces
  • mathcomp.analysis.topology_theory.separation_axioms
  • mathcomp.analysis.topology_theory.initial_topology
  • mathcomp.analysis.topology_theory.matrix_topology
  • mathcomp.analysis.topology_theory.subspace_topology
  • mathcomp.analysis.normedtype_theory.urysohn

Source code
 (ASource code : set (M * M)) : entourage A -> entourage A^-1.
Proof.

Lemma entourage_split_exUsed by
  • mathcomp.analysis.topology_theory.initial_topology
  • mathcomp.analysis.topology_theory.matrix_topology
  • mathcomp.analysis.normedtype_theory.urysohn

Source code
 (ASource code : set (M * M)) :
  entourage A -> exists2 BSource code, entourage B & B \; B `<=` A.
Proof.

Definition split_ent
Used by
  • mathcomp.analysis.cantor
  • mathcomp.analysis.topology_theory.product_topology
  • mathcomp.analysis.topology_theory.supremum_topology
  • mathcomp.analysis.topology_theory.function_spaces
  • mathcomp.analysis.topology_theory.separation_axioms
  • mathcomp.analysis.topology_theory.matrix_topology
  • mathcomp.analysis.topology_theory.subspace_topology
  • mathcomp.analysis.topology_theory.compact
  • mathcomp.analysis.normedtype_theory.urysohn

Source code
 (ASource code : set (M * M)) :=
  get (entourage `&` [set BSource code | B \; B `<=` A]).

Lemma split_entPSource code (ASource code : set (M * M)) : entourage A ->
  entourage (split_ent A) /\ split_ent A \; split_ent A `<=` A.
Proof.

Lemma entourage_split_entUsed by
  • mathcomp.analysis.topology_theory.product_topology
  • mathcomp.analysis.topology_theory.supremum_topology
  • mathcomp.analysis.topology_theory.function_spaces
  • mathcomp.analysis.topology_theory.separation_axioms
  • mathcomp.analysis.topology_theory.subspace_topology

Source code
 (ASource code : set (M * M)) : entourage A ->
  entourage (split_ent A).
Proof.
by move=> /split_entP []. Qed.

Lemma subset_split_entUsed by
  • mathcomp.analysis.topology_theory.product_topology
  • mathcomp.analysis.topology_theory.function_spaces
  • mathcomp.analysis.topology_theory.separation_axioms
  • mathcomp.analysis.topology_theory.matrix_topology
  • mathcomp.analysis.topology_theory.subspace_topology

Source code
 (ASource code : set (M * M)) : entourage A ->
  split_ent A \; split_ent A `<=` A.
Proof.
by move=> /split_entP []. Qed.

Lemma entourage_splitUsed by
  • mathcomp.analysis.cantor
  • mathcomp.analysis.topology_theory.supremum_topology
  • mathcomp.analysis.topology_theory.function_spaces
  • mathcomp.analysis.topology_theory.separation_axioms
  • mathcomp.analysis.topology_theory.subspace_topology
  • mathcomp.analysis.topology_theory.compact

Source code
 (zSource code xSource code ySource code : M) ASource code : entourage A ->
  split_ent A (x, z) -> split_ent A (z, y) -> A (x, y).
Proof.
by move=> /subset_split_ent sA ? ?; apply: sA; exists z. Qed.

Lemma nbhs_entourageUsed by
  • mathcomp.analysis.topology_theory.function_spaces
  • mathcomp.analysis.topology_theory.separation_axioms
  • mathcomp.analysis.topology_theory.subspace_topology
  • mathcomp.analysis.topology_theory.compact

Source code
 (xSource code : M) ASource code : entourage A -> nbhs x (xsection A x).
Proof.
by move=> ?; apply/nbhsP; exists A. Qed.

Lemma cvg_entouragePUsed by
  • mathcomp.analysis.topology_theory.function_spaces
  • mathcomp.analysis.topology_theory.matrix_topology
  • mathcomp.analysis.topology_theory.compact

Source code
FSource code (FFSource code : Filter F) (pSource code : M) :
  F --> p <-> forall ASource code, entourage A -> \forall qSource code \near F, A (p, q).
Proof.
rewrite -filter_fromP [X in filter_from _ X](_ : _ = @xsection M M ^~ p)//.
  by apply/funext => E; apply/seteqP; split => [|] ? /xsectionP.
by rewrite filter_from_entourageE.
Qed.

Lemma cvg_entourageUsed by
  • mathcomp.analysis.topology_theory.subspace_topology

Source code
{FSource code} {FFSource code : Filter F} (xSource code : M) :
  F --> x -> forall ASource code, entourage A -> \forall ySource code \near F, A (x, y).
Proof.
by move/cvg_entourageP. Qed.

Lemma cvg_app_entouragePUsed by
  • mathcomp.analysis.topology_theory.function_spaces
  • mathcomp.analysis.topology_theory.matrix_topology

Source code
TSource code (fSource code : T -> M) FSource code (FFSource code : Filter F) pSource code :
  f @ F --> p <-> forall ASource code, entourage A -> \forall tSource code \near F, A (p, f t).
Proof.
exact: cvg_entourageP. Qed.

Lemma entourage_invIUsed by
  • mathcomp.analysis.topology_theory.separation_axioms
  • mathcomp.analysis.topology_theory.subspace_topology

Source code
 (ESource code : set (M * M)) : entourage E -> entourage (E `&` E^-1).
Proof.
by move=> ?; apply: filterI; last exact: entourage_inv. Qed.

Lemma split_ent_subsetUsed by
  • mathcomp.analysis.topology_theory.separation_axioms
  • mathcomp.analysis.topology_theory.subspace_topology

Source code
 (ESource code : set (M * M)) : entourage E -> split_ent E `<=` E.
Proof.
move=> entE; case=> x y splitxy; apply: subset_split_ent => //; exists y => //.
by apply: entourage_refl; exact: entourage_split_ent.
Qed.

End uniformType1.

Global Instance entourage_pfilterSource code {MSource code : puniformType} :
  ProperFilter (@entourage M).
Proof.
apply Build_ProperFilter_ex; last exact: entourage_filter.
by move=> A entA; exists (point, point); apply: entourage_refl.
Qed.

#[global]
Hint Extern 0 (entourage (split_ent _)) => exact: entourage_split_ent : core.
#[global]
Hint Extern 0 (entourage (get _)) => exact: entourage_split_ent : core.
#[global]
Hint Extern 0 (entourage (_^-1)%relation) => exact: entourage_inv : core.
Arguments entourage_split {M} z {x y A}.
#[global]
Hint Extern 0 (nbhs _ (xsection _ _)) => exact: nbhs_entourage : core.

Lemma ent_closureUsed by
  • mathcomp.analysis.cantor
  • mathcomp.analysis.normedtype_theory.urysohn

Source code
{MSource code : uniformType} (xSource code : M) ESource code : entourage E ->
  closure (xsection (split_ent E) x) `<=` xsection E x.
Proof.
pose E' := (split_ent E) `&` (split_ent E)^-1%relation.
move=> entE z /(_ (xsection E' z))[].
  by rewrite -nbhs_entourageE; exists E' => //; exact: filterI.
move=> y; rewrite xsectionI => -[/xsectionP xy [_ /xsectionP yz]].
by apply/xsectionP; move: xy yz; exact: entourage_split.
Qed.

Lemma continuous_withinNxUsed by
  • mathcomp.analysis.derive
  • mathcomp.analysis.normedtype_theory.num_normedtype
  • mathcomp.analysis.normedtype_theory.normed_module
  • mathcomp.analysis_stdlib.Rstruct_topology

Source code
{USource code VSource code : uniformType} (fSource code : U -> V) xSource code :
  {for x, continuous f} <-> f @ x^' --> f x.
Proof.
split=> - cfx P /= fxP.
  by rewrite !near_simpl; apply: cvg_within; apply: cfx.
rewrite !nbhs_nearE !near_map in fxP *; have /= := cfx P fxP.
rewrite !near_simpl near_withinE near_simpl => Pf; near=> y.
by have [->|] := eqVneq y x; [by apply: nbhs_singleton|near: y].
Unshelve. all: by end_near. Qed.

Lemma continuous_injective_withinNxSource code
  (TSource code USource code : topologicalType) (fSource code : T -> U) (xSource code : T) :
  {for x, continuous f} ->
  (forall ySource code, f y = f x -> y = x) -> f @ x^' --> (f x)^'.
Proof.
move=> cf fI A; rewrite /nbhs /= /dnbhs !withinE/= => -[V Vfx AV].
exists (f @^-1` V); first exact: cf Vfx.
by apply/seteqP; split=> y/=;
  move/predeqP : AV => /(_ (f y))/= AV [AVfy yx];
  have /contra_neq /(_ yx) := fI y; tauto.
Qed.

Definition countable_uniformity
Used by
  • mathcomp.analysis.topology_theory.pseudometric_structure
  • mathcomp.analysis.topology_theory.supremum_topology
  • mathcomp.analysis.topology_theory.separation_axioms

Source code
 (TSource code : uniformType) :=
  exists RSource code : set_system (T * T), [/\
    countable R,
    R `<=` entourage &
    forall PSource code, entourage P -> exists2 QSource code, R Q & Q `<=` P].

Lemma countable_uniformityPUsed by
  • mathcomp.analysis.cantor
  • mathcomp.analysis.topology_theory.pseudometric_structure
  • mathcomp.analysis.topology_theory.separation_axioms

Source code
{TSource code : uniformType} :
  countable_uniformity T <-> exists2 fSource code : nat -> set (T * T),
    (forall ASource code, entourage A -> exists NSource code, f N `<=` A) &
    (forall nSource code, entourage (f n)).
Proof.
split=> [[M []]|[f fsubE entf]].
  move=> /pfcard_geP[-> _ /(_ _ (@entourageT _))[]//|/unsquash f eM Msub].
  exists f; last by move=> n; apply: eM; exact: funS.
  by move=> ? /Msub [Q + ?] => /(@surj _ _ _ _ f)[n _ fQ]; exists n; rewrite fQ.
exists (range f); split; first exact: card_image_le.
  by move=> E [n _] <-; exact: entf.
by move=> E /fsubE [n fnA]; exists (f n) => //; exists n.
Qed.

Lemma open_nbhs_entourageUsed by
  • mathcomp.analysis.topology_theory.supremum_topology

Source code
 (USource code : uniformType) (xSource code : U) (ASource code : set (U * U)) :
  entourage A -> open_nbhs x (xsection A x)°.
Proof.
move=> entA; split; first exact: open_interior.
by apply: nbhs_singleton; apply: nbhs_interior; exact: nbhs_entourage.
Qed.

Definition unif_continuous

nbhs_ : forall {T T' : Type}, set_system (T * T') -> T -> set_system T' nbhs_ is not universe polymorphic Arguments nbhs_ {T T'}%_type_scope ent x _ nbhs_ is transparent Expands to: Constant mathcomp.analysis.topology_theory.uniform_structure.nbhs_ Declared in library mathcomp.analysis.topology_theory.uniform_structure, line 54, characters 11-16


Used by
  • mathcomp.analysis.topology_theory.pseudometric_structure
  • mathcomp.analysis.topology_theory.product_topology
  • mathcomp.analysis.topology_theory.initial_topology
  • mathcomp.analysis.topology_theory.subspace_topology
  • mathcomp.analysis.normedtype_theory.pseudometric_normed_Zmodule
  • mathcomp.analysis.normedtype_theory.tvs

Source code
 (USource code VSource code : uniformType) (fSource code : U -> V) :=
  (map_pair f) @ entourage --> entourage.

Lemma unif_continuous_continuousUsed by
  • mathcomp.analysis.normedtype_theory.pseudometric_normed_Zmodule

Source code
 (USource code VSource code : uniformType) (fSource code : U -> V) :
  unif_continuous f -> continuous f.
Proof.
rewrite /unif_continuous /cvg_to !nbhs_simpl => ucf.
rewrite /cvg_to /= => u X; rewrite !nbhs_simpl /= -!nbhs_entourageE.
case => Y /ucf /=; set Y' := (Y' in entourage Y') => eY' YX.
exists Y' => //.
rewrite /Y' /=.
rewrite -image_sub => v [] u' /= Yfuu' <-.
exact: YX.
Qed.

Lemma unif_continuous_compUsed by
  • mathcomp.analysis.topology_theory.initial_topology
  • mathcomp.analysis.normedtype_theory.tvs

Source code
{USource code VSource code WSource code : uniformType} (fSource code : U -> V) (gSource code : V -> W) :
  unif_continuous f -> unif_continuous g -> unif_continuous (g \o f).
Proof.
by move=> cf cg A /cg /cf; exact. Qed.

Definition entourage_set

NbhsEntourage.nbhs_simpl : (forall (T : Type) (F : set_system T), nbhs F = F) * (forall (T : Type) (F : filter_on T), nbhs F = nbhs F) * (forall (M : uniformType) (x : M), filter_from entourage ((xsection (T2:=M))^~ x) = nbhs x) * (forall M : uniformType, nbhs_ entourage = nbhs) NbhsEntourage.nbhs_simpl is not universe polymorphic NbhsEntourage.nbhs_simpl is transparent Expands to: Constant mathcomp.analysis.topology_theory.uniform_structure.NbhsEntourage.nbhs_simpl Declared in library mathcomp.analysis.topology_theory.uniform_structure, line 162, characters 11-21


Source code
 (USource code : uniformType) (ASource code : set ((set U) * (set U))) :=
  exists2 BSource code, entourage B & forall PQSource code, A PQ -> forall pSource code qSource code,
    PQ.1 p -> PQ.2 q -> B (p,q).

Complete uniform spaces

Definition cauchy

split_ent : forall {M : uniformType}, set (M * M) -> prod__canonical__classical_sets_Pointed (fun=> sort__canonical__classical_sets_Pointed) split_ent is not universe polymorphic Arguments split_ent {M} A%_classical_set_scope t split_ent is transparent Expands to: Constant mathcomp.analysis.topology_theory.uniform_structure.split_ent Declared in library mathcomp.analysis.topology_theory.uniform_structure, line 202, characters 11-20


Used by
  • mathcomp.analysis.topology_theory.pseudometric_structure
  • mathcomp.analysis.topology_theory.function_spaces
  • mathcomp.analysis.topology_theory.matrix_topology
  • mathcomp.analysis.topology_theory.compact
  • mathcomp.analysis.sequences
  • mathcomp.analysis.normedtype_theory.complete_normed_module

Source code
{TSource code : uniformType} (FSource code : set_system T) := (F, F) --> entourage.

Lemma cvg_cauchyUsed by
  • mathcomp.analysis.sequences

Source code
{TSource code : puniformType} (FSource code : set_system T) : Filter F ->
  [cvg F in T] -> cauchy F.
Proof.
move=> FF cvF A entA; have /entourage_split_ex [B entB sB2A] := entA.
exists (xsection (B^-1%relation) (lim F), xsection B (lim F)).
  split=> /=; apply: cvF; rewrite /= -nbhs_entourageE; last by exists B.
  by exists B^-1%relation => //; exact: entourage_inv.
move=> ab [/= /xsectionP Balima /xsectionP Blimb]; apply: sB2A.
by exists (lim F).
Qed.

HBSource code.mixinSource code RecordSource code Uniform_isCompleteSource code TSource code &Source code PointedUniformSource code T := {
  cauchy_cvg :
    forall (FSource code : set_system T), ProperFilter F -> cauchy F -> cvg F
}.

#[shortUsed by
  • mathcomp.analysis.topology_theory.pseudometric_structure
  • mathcomp.analysis.normedtype_theory.complete_normed_module

Source code
(type=Used by
  • mathcomp.analysis.topology_theory.pseudometric_structure
  • mathcomp.analysis.normedtype_theory.complete_normed_module

Source code
"completeType"Used by
  • mathcomp.analysis.topology_theory.pseudometric_structure
  • mathcomp.analysis.normedtype_theory.complete_normed_module

Source code
)]Used by
  • mathcomp.analysis.topology_theory.pseudometric_structure
  • mathcomp.analysis.normedtype_theory.complete_normed_module

Source code

HBUsed by
  • mathcomp.analysis.topology_theory.pseudometric_structure
  • mathcomp.analysis.normedtype_theory.complete_normed_module

Source code
.structureUsed by
  • mathcomp.analysis.topology_theory.pseudometric_structure
  • mathcomp.analysis.normedtype_theory.complete_normed_module

Source code
DefinitionUsed by
  • mathcomp.analysis.topology_theory.pseudometric_structure
  • mathcomp.analysis.normedtype_theory.complete_normed_module

Source code
CompleteUsed by
  • mathcomp.analysis.topology_theory.pseudometric_structure
  • mathcomp.analysis.normedtype_theory.complete_normed_module

Source code
:=Used by
  • mathcomp.analysis.topology_theory.pseudometric_structure
  • mathcomp.analysis.normedtype_theory.complete_normed_module

Source code

  {TSource code of Uniform T & Uniform_isComplete T & isPointed T}.

Section completeType1.

Context {TSource code : completeType}.

Lemma cauchy_cvgPUsed by
  • mathcomp.analysis.numfun
  • mathcomp.analysis.sequences

Source code
 (FSource code : set_system T) (FFSource code : ProperFilter F) : cauchy F <-> cvg F.
Proof.
by split=> [/cauchy_cvg|/cvg_cauchy]. Qed.

End completeType1.
Arguments cauchy_cvg {T} F {FF} _ : rename.
Arguments cauchy_cvgP {T} F {FF}.