Module mathcomp.analysis.topology_theory.topology_structure

From HB Require Import structures.
From mathcomp Require Import boot order algebra finmap.
From mathcomp Require Import all_classical.
From mathcomp Require Export filter.

# Basic topological notions This file develops tools for the manipulation of basic topological notions. The development of topological notions builds on "filtered types" by extending the hierarchy. In the identifiers, "nbhs" is an abbreviation for "neighborhoods". ## Mathematical structures ### Topology `topologicalType` : interface type for topological space structure : The HB class is `Topological`. `subTopologicalType S` : join of `SubNbhs` and `Topological` where `S` has type `pred V` with `V` : a `topologicalType` : The HB class is `SubTopological`. `ptopologicalType` : a pointed `topologicalType` `open` : set of open sets `closed` : set of closed sets `clopen U` : `U` is both open and closed `open_nbhs p` : set of open neighbourhoods of `p` `dense S` : the set `S : set T` is dense in `T`, with `T` of type `topologicalType` `basis B` : a family of open sets that converges to each point `separable_set A` : `A : set T` admits a countable dense subset `separable T` : `separable_set T [set: T]` `second_countable T` : `T` has a countable basis `[locally P]` : `forall a, A a -> G (within A (nbhs x))` if `P` is convertible to : `G (globally A)` `U°` : all of the points which are locally in `U`, i.e., the largest open set : contained in `U` : This is a notation for `interior U`. `closure U` : the smallest closed set containing `U` `regopen U` : `U` is regular open, i.e., equal to the interior of its closure `regclosed U` : `U` is regular closed, i.e., equal to the closure of its interior `open_of_nbhs B` : the open sets induced by neighborhoods `nbhs_of_open B` : the neighborhoods induced by open sets `x^'` : set of neighbourhoods of `x` where `x` is excluded : (a "deleted neighborhood") `limit_point E` : the set of limit points of E `isolated A` : the set of isolated points of `A` `continuousType` : type of continuous functions : The HB structures is `Continuous`. `mkcts f_cts` : object of type `continuousType` corresponding to the function `f` : (`f_cts : continuous f`) ### Factories ``` Nbhs_isNbhsTopological == factory for a topology defined by a filter It builds the mixin for a topological space from the properties of nbhs and hence assumes that the carrier is a filterType. isOpenTopological == factory for a topology defined by open sets It builds the mixin for a topological space from the properties of open sets, nbhs_of_open must be used to declare a filterType. isBaseTopological == factory for a topology defined by a base of open sets It builds the mixin for a topological space from the properties of a base of open sets; the type of indices must be a pointedType isSubBaseTopological == factory for a topology defined by a subbase of open sets It builds the mixin for a topological space from a subbase of open sets b indexed on domain D ```

Reserved Notation "A °" (format "A °").
Reserved Notation "[ 'locally' P ]" (format "[ 'locally' P ]").
Reserved Notation "x ^'" (format "x ^'").

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

Local Open Scope classical_set_scope.
Local Open Scope ring_scope.

Topological spaces
HBUsed by
  • mathcomp.analysis.topology_theory.function_spaces

Source code
.mixinUsed by
  • mathcomp.analysis.topology_theory.function_spaces

Source code
RecordUsed by
  • mathcomp.analysis.topology_theory.function_spaces

Source code
Nbhs_isTopologicalUsed by
  • mathcomp.analysis.topology_theory.function_spaces

Source code
 (TUsed by
  • mathcomp.analysis.topology_theory.function_spaces

Source code
:Used by
  • mathcomp.analysis.topology_theory.function_spaces

Source code
TypeUsed by
  • mathcomp.analysis.topology_theory.function_spaces

Source code
) &Used by
  • mathcomp.analysis.topology_theory.function_spaces

Source code
NbhsUsed by
  • mathcomp.analysis.topology_theory.function_spaces

Source code
T := {
  open : set_system T;
  nbhs_pfilter_subproof : forall pSource code : T, ProperFilter (nbhs p) ;
  nbhsE_subproof : forall pSource code : T, nbhs p =
    [set ASource code : set T | exists BSource code : set T, [/\ open B, B p & B `<=` A] ] ;
  openE_subproof : open = [set ASource code : set T | A `<=` nbhs^~ A ]
}.

#[shortUsed by
  • mathcomp.analysis.topology_theory.order_topology
  • mathcomp.analysis.topology_theory.uniform_structure
  • 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.order_topology
  • mathcomp.analysis.topology_theory.uniform_structure
  • 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
"topologicalType"Used by
  • mathcomp.analysis.topology_theory.order_topology
  • mathcomp.analysis.topology_theory.uniform_structure
  • 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.order_topology
  • mathcomp.analysis.topology_theory.uniform_structure
  • 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.order_topology
  • mathcomp.analysis.topology_theory.uniform_structure
  • 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.order_topology
  • mathcomp.analysis.topology_theory.uniform_structure
  • 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.order_topology
  • mathcomp.analysis.topology_theory.uniform_structure
  • 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
TopologicalUsed by
  • mathcomp.analysis.topology_theory.order_topology
  • mathcomp.analysis.topology_theory.uniform_structure
  • 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.order_topology
  • mathcomp.analysis.topology_theory.uniform_structure
  • 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 Nbhs T & Nbhs_isTopological T}.

#[shortUsed by
  • mathcomp.analysis.topology_theory.order_topology
  • mathcomp.analysis.topology_theory.uniform_structure

Source code
(type=Used by
  • mathcomp.analysis.topology_theory.order_topology
  • mathcomp.analysis.topology_theory.uniform_structure

Source code
"ptopologicalType"Used by
  • mathcomp.analysis.topology_theory.order_topology
  • mathcomp.analysis.topology_theory.uniform_structure

Source code
)]Used by
  • mathcomp.analysis.topology_theory.order_topology
  • mathcomp.analysis.topology_theory.uniform_structure

Source code

HBUsed by
  • mathcomp.analysis.topology_theory.order_topology
  • mathcomp.analysis.topology_theory.uniform_structure

Source code
.structureUsed by
  • mathcomp.analysis.topology_theory.order_topology
  • mathcomp.analysis.topology_theory.uniform_structure

Source code
DefinitionUsed by
  • mathcomp.analysis.topology_theory.order_topology
  • mathcomp.analysis.topology_theory.uniform_structure

Source code
PointedTopologicalUsed by
  • mathcomp.analysis.topology_theory.order_topology
  • mathcomp.analysis.topology_theory.uniform_structure

Source code
:=Used by
  • mathcomp.analysis.topology_theory.order_topology
  • mathcomp.analysis.topology_theory.uniform_structure

Source code

  {TSource code of PointedNbhs T & Nbhs_isTopological T}.

#[shortSource code(type=Source code"bpTopologicalType"Source code)]Source code
HBSource code.structureSource code DefinitionSource code BiPointedTopologicalSource code :=Source code
  { XSource code of BiPointed X & Topological X }.

#[shortUsed by
  • mathcomp.analysis.normedtype_theory.tvs

Source code
(type=Used by
  • mathcomp.analysis.normedtype_theory.tvs

Source code
"subTopologicalType"Used by
  • mathcomp.analysis.normedtype_theory.tvs

Source code
)]Used by
  • mathcomp.analysis.normedtype_theory.tvs

Source code

HBUsed by
  • mathcomp.analysis.normedtype_theory.tvs

Source code
.structureUsed by
  • mathcomp.analysis.normedtype_theory.tvs

Source code
DefinitionUsed by
  • mathcomp.analysis.normedtype_theory.tvs

Source code
SubTopologicalUsed by
  • mathcomp.analysis.normedtype_theory.tvs

Source code
 (VUsed by
  • mathcomp.analysis.normedtype_theory.tvs

Source code
:Used by
  • mathcomp.analysis.normedtype_theory.tvs

Source code
topologicalTypeUsed by
  • mathcomp.analysis.normedtype_theory.tvs

Source code
)
  (S : pred V) := {USource code of SubNbhs V S U & Topological U}.

Section Topological1.
Context {TSource code : topologicalType}.

Definition open_nbhs
Used by
  • mathcomp.analysis.topology_theory.pseudometric_structure
  • mathcomp.analysis.topology_theory.uniform_structure
  • mathcomp.analysis.topology_theory.separation_axioms
  • mathcomp.analysis.topology_theory.subspace_topology
  • mathcomp.analysis.topology_theory.compact
  • mathcomp.analysis.sequences
  • mathcomp.analysis.lebesgue_integral_theory.lebesgue_integral_differentiation
  • mathcomp.analysis.normedtype_theory.pseudometric_normed_Zmodule
  • mathcomp.analysis.normedtype_theory.matrix_normedtype
  • mathcomp.analysis.normedtype_theory.normed_module

Source code
 (pSource code : T) (ASource code : set T) := open A /\ A p.

Global Instance nbhs_pfilterUsed by
  • mathcomp.analysis.topology_theory.function_spaces

Source code
 (pSource code : T) : ProperFilter (nbhs p).
Proof.
by apply: nbhs_pfilter_subproof; case: T p => ? []. Qed.
Typeclasses Opaque nbhs.
Lemma nbhs_filterUsed by
  • mathcomp.analysis.realfun
  • mathcomp.analysis.ftc
  • mathcomp.analysis.topology_theory.function_spaces
  • mathcomp.analysis.topology_theory.subspace_topology
  • mathcomp.analysis.homotopy_theory.wedge_sigT
  • mathcomp.analysis.normedtype_theory.urysohn

Source code
 (pSource code : T) : Filter (nbhs p).
Proof.
exact: (@nbhs_pfilter). Qed.

Canonical nbhs_filter_on
Used by
  • mathcomp.analysis.derive

Source code
 (xSource code : T) := FilterType (nbhs x) (@nbhs_filter x).

Lemma nbhsEUsed by
  • mathcomp.analysis.functional_analysis.hahn_banach_theorem
  • mathcomp.analysis.topology_theory.supremum_topology
  • mathcomp.analysis.topology_theory.subtype_topology
  • mathcomp.analysis.topology_theory.function_spaces
  • mathcomp.analysis.topology_theory.separation_axioms
  • mathcomp.analysis.topology_theory.initial_topology
  • mathcomp.analysis.topology_theory.one_point_compactification
  • mathcomp.analysis.topology_theory.sigT_topology
  • mathcomp.analysis.topology_theory.subspace_topology
  • mathcomp.analysis.homotopy_theory.wedge_sigT
  • mathcomp.analysis.lebesgue_integral_theory.lebesgue_integral_differentiation
  • mathcomp.analysis.normedtype_theory.tvs
  • mathcomp.analysis.normedtype_theory.ereal_normedtype
  • mathcomp.analysis.normedtype_theory.urysohn
  • mathcomp.analysis.normedtype_theory.matrix_normedtype
  • mathcomp.analysis.normedtype_theory.num_normedtype

Source code
 (pSource code : T) :
  nbhs p = [set ASource code : set T | exists2 BSource code : set T, open_nbhs p B & B `<=` A].
Proof.
have -> : nbhs p = [set ASource code : set T | exists BSource code, [/\ open B, B p & B `<=` A] ].
  exact: nbhsE_subproof.
by rewrite predeqE => A; split=> [[B [?]]|[B[]]]; exists B.
Qed.

Lemma open_nbhsEUsed by
  • mathcomp.analysis.topology_theory.subspace_topology

Source code
 (pSource code : T) (ASource code : set T) : open_nbhs p A = (open A /\ nbhs p A).
Proof.
by rewrite nbhsE propeqE; split=> [[? ?]|[? [B [? ?] BA]]]; split => //;
  [exists A | exact: BA].
Qed.

Definition interior
Used by
  • mathcomp.analysis.real_measure.measurable_realfun
  • mathcomp.analysis.real_measure.lebesgue_measure
  • mathcomp.analysis.cantor
  • mathcomp.analysis.topology_theory.order_topology
  • mathcomp.analysis.topology_theory.product_topology
  • mathcomp.analysis.topology_theory.supremum_topology
  • mathcomp.analysis.topology_theory.discrete_topology
  • mathcomp.analysis.topology_theory.subtype_topology
  • mathcomp.analysis.topology_theory.function_spaces
  • mathcomp.analysis.topology_theory.separation_axioms
  • mathcomp.analysis.topology_theory.initial_topology
  • mathcomp.analysis.topology_theory.sigT_topology
  • mathcomp.analysis.topology_theory.num_topology
  • mathcomp.analysis.topology_theory.subspace_topology
  • mathcomp.analysis.topology_theory.compact
  • mathcomp.analysis.normedtype_theory.pseudometric_normed_Zmodule
  • mathcomp.analysis.normedtype_theory.tvs
  • mathcomp.analysis.normedtype_theory.urysohn
  • mathcomp.analysis.normedtype_theory.normed_module

Source code
 (ASource code : set T) := (@nbhs _ T)^~ A.

Local Notation "A °"Source code := (interior A).

Lemma interior_subsetUsed by
  • mathcomp.analysis.real_measure.measurable_realfun
  • mathcomp.analysis.real_measure.lebesgue_measure
  • 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.num_topology
  • mathcomp.analysis.topology_theory.subspace_topology
  • mathcomp.analysis.topology_theory.compact
  • mathcomp.analysis.derive
  • mathcomp.analysis.sequences
  • mathcomp.analysis.normedtype_theory.tvs
  • mathcomp.analysis.normedtype_theory.urysohn
  • mathcomp.analysis.normedtype_theory.normed_module

Source code
 (ASource code : set T) : A° `<=` A.
Proof.
by move=> p; rewrite /interior nbhsE => -[? [? ?]]; apply.
Qed.

Lemma openEUsed by
  • mathcomp.analysis.cantor
  • mathcomp.analysis.topology_theory.order_topology
  • mathcomp.analysis.topology_theory.product_topology
  • mathcomp.analysis.topology_theory.supremum_topology
  • mathcomp.analysis.topology_theory.discrete_topology
  • mathcomp.analysis.topology_theory.subtype_topology
  • mathcomp.analysis.topology_theory.function_spaces
  • mathcomp.analysis.topology_theory.separation_axioms
  • mathcomp.analysis.topology_theory.initial_topology
  • mathcomp.analysis.topology_theory.one_point_compactification
  • mathcomp.analysis.topology_theory.sigT_topology
  • mathcomp.analysis.topology_theory.num_topology
  • mathcomp.analysis.topology_theory.subspace_topology
  • mathcomp.analysis.lebesgue_integral_theory.lebesgue_integral_differentiation
  • mathcomp.analysis.normedtype_theory.pseudometric_normed_Zmodule
  • mathcomp.analysis.normedtype_theory.tvs
  • mathcomp.analysis.normedtype_theory.ereal_normedtype
  • mathcomp.analysis.normedtype_theory.urysohn
  • mathcomp.analysis.normedtype_theory.normed_module

Source code
: open = [set ASource code : set T | A `<=` A°].
Proof.
exact: openE_subproof. Qed.

Lemma nbhs_singletonUsed by
  • mathcomp.analysis.realfun
  • mathcomp.analysis.cantor
  • mathcomp.analysis.elementary_functions.trigonometry_functions
  • mathcomp.analysis.topology_theory.pseudometric_structure
  • mathcomp.analysis.topology_theory.uniform_structure
  • mathcomp.analysis.topology_theory.edist
  • 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.one_point_compactification
  • mathcomp.analysis.topology_theory.sigT_topology
  • mathcomp.analysis.topology_theory.num_topology
  • mathcomp.analysis.topology_theory.subspace_topology
  • mathcomp.analysis.topology_theory.compact
  • mathcomp.analysis.derive
  • mathcomp.analysis.lebesgue_integral_theory.lebesgue_integral_differentiation
  • mathcomp.analysis.normedtype_theory.pseudometric_normed_Zmodule
  • mathcomp.analysis.normedtype_theory.tvs
  • mathcomp.analysis.normedtype_theory.ereal_normedtype
  • mathcomp.analysis.normedtype_theory.urysohn
  • mathcomp.analysis.normedtype_theory.normed_module
  • mathcomp.analysis.exp

Source code
 (pSource code : T) (ASource code : set T) : nbhs p A -> A p.
Proof.
by rewrite nbhsE => - [? [_ ?]]; apply. Qed.

Lemma nbhs_interiorUsed by
  • mathcomp.analysis.real_measure.lebesgue_measure
  • mathcomp.analysis.cantor
  • mathcomp.analysis.topology_theory.pseudometric_structure
  • mathcomp.analysis.topology_theory.uniform_structure
  • mathcomp.analysis.topology_theory.product_topology
  • mathcomp.analysis.topology_theory.separation_axioms
  • mathcomp.analysis.topology_theory.matrix_topology
  • mathcomp.analysis.topology_theory.subspace_topology
  • mathcomp.analysis.lebesgue_integral_theory.lebesgue_integral_differentiation
  • mathcomp.analysis.normedtype_theory.tvs
  • mathcomp.analysis.normedtype_theory.ereal_normedtype
  • mathcomp.analysis.normedtype_theory.normed_module

Source code
 (pSource code : T) (ASource code : set T) : nbhs p A -> nbhs p A°.
Proof.
rewrite nbhsE /open_nbhs openE => - [B [Bop Bp] sBA].
by exists B => // q Bq; apply: filterS sBA _; apply: Bop.
Qed.

Lemma open0Used by
  • mathcomp.analysis.real_measure.lebesgue_measure
  • mathcomp.analysis.topology_theory.subspace_topology
  • mathcomp.analysis.normedtype_theory.ereal_normedtype
  • mathcomp.analysis.normedtype_theory.normed_module

Source code
: open (set0 : set T).
Proof.
by rewrite openE. Qed.

Lemma openTUsed by
  • mathcomp.analysis.probability_theory.normal_distribution
  • mathcomp.analysis.real_measure.measurable_realfun
  • mathcomp.analysis.real_measure.lebesgue_measure
  • mathcomp.analysis.ftc
  • mathcomp.analysis.topology_theory.order_topology
  • mathcomp.analysis.topology_theory.quotient_topology
  • mathcomp.analysis.topology_theory.function_spaces
  • mathcomp.analysis.topology_theory.initial_topology
  • mathcomp.analysis.sequences
  • mathcomp.analysis.lebesgue_integral_theory.lebesgue_integral_differentiation
  • mathcomp.analysis.normedtype_theory.ereal_normedtype
  • mathcomp.analysis.normedtype_theory.num_normedtype

Source code
: open (setT : set T).
Proof.
by rewrite openE => ??; apply: filterT. Qed.

Lemma openIUsed by
  • mathcomp.analysis.borel_hierarchy
  • mathcomp.analysis.topology_theory.order_topology
  • mathcomp.analysis.topology_theory.quotient_topology
  • mathcomp.analysis.topology_theory.function_spaces
  • mathcomp.analysis.topology_theory.separation_axioms
  • mathcomp.analysis.topology_theory.initial_topology
  • mathcomp.analysis.topology_theory.subspace_topology
  • mathcomp.analysis.homotopy_theory.wedge_sigT
  • mathcomp.analysis.sequences
  • mathcomp.analysis.normedtype_theory.num_normedtype

Source code
: setI_closed (@open T).
Proof.
move=> A B; rewrite openE => Aop Bop p [Ap Bp].
by apply: filterI; [apply: Aop|apply: Bop].
Qed.

Lemma bigcup_openUsed by
  • mathcomp.analysis.real_measure.lebesgue_measure
  • mathcomp.analysis.topology_theory.order_topology
  • mathcomp.analysis.topology_theory.quotient_topology
  • mathcomp.analysis.topology_theory.function_spaces
  • mathcomp.analysis.topology_theory.separation_axioms
  • mathcomp.analysis.topology_theory.initial_topology
  • mathcomp.analysis.topology_theory.subspace_topology
  • mathcomp.analysis.sequences
  • mathcomp.analysis.normedtype_theory.ereal_normedtype
  • mathcomp.analysis.normedtype_theory.urysohn
  • mathcomp.analysis.normedtype_theory.num_normedtype

Source code
 (ISource code : Type) (DSource code : set I) (fSource code : I -> set T) :
  (forall iSource code, D i -> open (f i)) -> open (\bigcup_(iSource code in D) f i).
Proof.
rewrite openE => fop p [i Di].
by have /fop fiop := Di; move/fiop; apply: filterS => ??; exists i.
Qed.

Lemma bigcap_openSource code (FSource code : (set T) ^nat) :
  (forall iSource code, open (F i)) ->
  forall iSource code, open (\bigcap_(jSource code < i) F j).
Proof.
move=> HU; elim; [rewrite bigcap_mkord big_ord0; apply: openT|move=> n IH].
by rewrite bigcap_mkord big_ord_recr -bigcap_mkord; apply: openI.
Qed.

Lemma openUUsed by
  • mathcomp.analysis.topology_theory.order_topology
  • mathcomp.analysis.topology_theory.separation_axioms
  • mathcomp.analysis.topology_theory.subspace_topology
  • mathcomp.analysis.normedtype_theory.num_normedtype
  • mathcomp.analysis.normedtype_theory.normed_module

Source code
: setU_closed (@open T).
Proof.
by move=> A B /[!openE] AA BB p [/AA|/BB]; apply: filterS => ? ?; [left|right].
Qed.

Lemma open_subsetEUsed by
  • mathcomp.analysis.normedtype_theory.num_normedtype
  • mathcomp.analysis.normedtype_theory.normed_module

Source code
 (ASource code BSource code : set T) : open A -> (A `<=` B) = (A `<=` B°).
Proof.
rewrite openE => Aop; rewrite propeqE; split.
  by move=> sAB p Ap; apply: filterS sAB _; apply: Aop.
by move=> sAB p /sAB /interior_subset.
Qed.

Lemma open_interiorUsed by
  • mathcomp.analysis.real_measure.measurable_realfun
  • mathcomp.analysis.cantor
  • mathcomp.analysis.topology_theory.pseudometric_structure
  • mathcomp.analysis.topology_theory.uniform_structure
  • 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
  • mathcomp.analysis.derive
  • mathcomp.analysis.sequences
  • mathcomp.analysis.normedtype_theory.tvs
  • mathcomp.analysis.normedtype_theory.urysohn
  • mathcomp.analysis.normedtype_theory.normed_module

Source code
 (ASource code : set T) : open A°.
Proof.
rewrite openE => p; rewrite /interior nbhsE => - [B [Bop Bp]].
by rewrite open_subsetE //; exists B.
Qed.

Lemma interior_bigcupSource code ISource code (DSource code : set I) (fSource code : I -> set T) :
  \bigcup_(iSource code in D) (f i)° `<=` (\bigcup_(iSource code in D) f i)°.
Proof.
move=> p [i Di]; rewrite /interior nbhsE => - [B [Bop Bp] sBfi].
by exists B => // ? /sBfi; exists i.
Qed.

Lemma open_nbhsTSource code (pSource code : T) : open_nbhs p setT.
Proof.
by split=> //; apply: openT. Qed.

Lemma open_nbhsIUsed by
  • mathcomp.analysis.normedtype_theory.tvs

Source code
 (pSource code : T) : setI_closed (open_nbhs p).
Proof.
by move=> A B [Aop Ap] [Bop Bp]; split => //; exact: openI. Qed.

Lemma open_nbhs_nbhsUsed by
  • mathcomp.analysis.real_measure.measurable_realfun
  • mathcomp.analysis.topology_theory.order_topology
  • mathcomp.analysis.topology_theory.connected
  • mathcomp.analysis.topology_theory.edist
  • mathcomp.analysis.topology_theory.discrete_topology
  • mathcomp.analysis.topology_theory.function_spaces
  • mathcomp.analysis.topology_theory.separation_axioms
  • mathcomp.analysis.topology_theory.initial_topology
  • mathcomp.analysis.topology_theory.sigT_topology
  • mathcomp.analysis.topology_theory.compact
  • mathcomp.analysis.homotopy_theory.wedge_sigT
  • mathcomp.analysis.sequences
  • mathcomp.analysis.normedtype_theory.tvs
  • mathcomp.analysis.normedtype_theory.urysohn
  • mathcomp.analysis.normedtype_theory.normed_module

Source code
 (pSource code : T) (ASource code : set T) : open_nbhs p A -> nbhs p A.
Proof.
by rewrite nbhsE => p_A; exists A. Qed.

Lemma interiorISource code (ASource code BSource code : set T) : (A `&` B)° = A° `&` B°.
Proof.
rewrite /interior predeqE => //= x; rewrite nbhsE; split => [[B0 ?] | []].
- by rewrite subsetI => // -[? ?]; split; exists B0.
- by move=> -[B0 ? ?] [B1 ? ?]; exists (B0 `&` B1);
  [exact: open_nbhsI | rewrite subsetI; split; apply: subIset; [left|right]].
Qed.

End Topological1.

Lemma open_in_nearWUsed by
  • mathcomp.analysis.ftc

Source code
{TSource code : topologicalType} (PSource code : T -> Prop) (SSource code : set T) :
  open S -> {in S, forall xSource code, P x} -> {in S, forall xSource code, \forall x0Source code \near x, P x0}.
Proof.
by move=> oS SP z /set_mem Sz; apply: in_nearW SP => //=; exact: open_nbhs_nbhs.
Qed.

#[global] Hint Extern 0 (Filter (nbhs _)) =>
  solve [apply: nbhs_filter] : typeclass_instances.
#[global] Hint Extern 0 (ProperFilter (nbhs _)) =>
  solve [apply: nbhs_pfilter] : typeclass_instances.

Global Instance alias_nbhs_filterSource code {TSource code : topologicalType} xSource code :
  @Filter T^o (@nbhs T^o T x).
Proof.
apply: @nbhs_filter T x. Qed.

Global Instance alias_nbhs_pfilterSource code {TSource code : topologicalType} xSource code :
  @ProperFilter T^o (@nbhs T^o T x).
Proof.
exact: @nbhs_pfilter T x. Qed.

Reserved Notation "A ^°" (at level 1, format "A ^°").
Notation "A °"Source code := (interior A) : classical_set_scope.
#[deprecated(since="mathcomp-analysis 1.10.0", note="use the notation instead ° instead of ^°")]
Notation "A ^°"Source code := (A°) (only parsing).

Lemma continuousPUsed by
  • mathcomp.analysis.real_measure.measurable_realfun
  • mathcomp.analysis.topology_theory.quotient_topology
  • mathcomp.analysis.topology_theory.function_spaces
  • mathcomp.analysis.topology_theory.initial_topology
  • mathcomp.analysis.topology_theory.subspace_topology

Source code
 (SSource code TSource code : topologicalType) (fSource code : S -> T) :
  continuous f <-> forall ASource code, open A -> open (f @^-1` A).
Proof.
split=> fcont; first by rewrite !openE => A Aop ? /Aop /fcont.
move=> s A; rewrite nbhs_simpl /= !nbhsE => - [B [Bop Bfs] sBA].
by exists (f @^-1` B); [split=> //; apply/fcont|move=> ? /sBA].
Qed.

Lemma open_compUsed by
  • mathcomp.analysis.cantor
  • mathcomp.analysis.topology_theory.function_spaces
  • mathcomp.analysis.topology_theory.sigT_topology
  • mathcomp.analysis.homotopy_theory.wedge_sigT
  • mathcomp.analysis.sequences
  • mathcomp.analysis.normedtype_theory.urysohn

Source code
{TSource code USource code : topologicalType} (fSource code : T -> U) (DSource code : set U) :
  {in f @^-1` D, continuous f} -> open D -> open (f @^-1` D).
Proof.
rewrite !openE => fcont Dop x /= Dfx.
by apply: fcont; [rewrite inE|exact: Dop].
Qed.

Lemma cvg_fmapSource code {TSource code : topologicalType} {USource code : topologicalType}
  (FSource code : set_system T) xSource code (fSource code : T -> U) :
   {for x, continuous f} -> F --> x -> f @ F --> f x.
Proof.
by move=> cf fx P /cf /fx. Qed.

Lemma near_joinUsed by
  • mathcomp.analysis.derive

Source code
 (TSource code : topologicalType) (xSource code : T) (PSource code : set T) :
  (\forall x0Source code \near x, P x0) -> \forall x0Source code \near x, \forall x1Source code \near x0, P x1.
Proof.
exact: nbhs_interior. Qed.

Lemma near_bindSource code (TSource code : topologicalType) (PSource code QSource code : set T) (xSource code : T) :
  (\forall x0Source code \near x, (\forall x1Source code \near x, P x1) -> Q x0) ->
  (\forall x0Source code \near x, P x0) ->
  \forall x0Source code \near x, Q x0.
Proof.
move=> PQ xP; near=> y; apply: (near PQ y) => //;
exact: (near (near_join xP) y).
Unshelve. all: by end_near. Qed.


Lemma continuous_cvgUsed by
  • mathcomp.analysis.measure_theory.signed_measure
  • mathcomp.analysis.gauss_integral
  • mathcomp.analysis.sequences
  • mathcomp.analysis.normedtype_theory.pseudometric_normed_Zmodule
  • mathcomp.analysis.normedtype_theory.normed_module

Source code
{TSource code : Type} {VSource code USource code : topologicalType}
  (FSource code : set_system T) (FFSource code : Filter F)
  (fSource code : T -> V) (hSource code : V -> U) (aSource code : V) :
  {for a, continuous h} ->
  f @ F --> a -> (h \o f) @ F --> h a.
Proof.
move=> h_continuous fa fb; apply: (cvg_trans _ h_continuous).
exact: (cvg_comp _ h fa).
Qed.

Lemma continuous_is_cvgSource code {TSource code : Type} {VSource code USource code : ptopologicalType} [FSource code : set_system T]
  (FFSource code : Filter F) (fSource code : T -> V) (hSource code : V -> U) :
  (forall lSource code, f x @[xSource code --> F] --> l -> {for l, continuous h}) ->
  cvg (f x @[xSource code --> F]) -> cvg ((h \o f) x @[xSource code --> F]).
Proof.
move=> ach /cvg_ex[l fxl]; apply/cvg_ex; exists (h l).
by apply: continuous_cvg => //; exact: ach.
Qed.

Lemma continuous2_cvgUsed by
  • mathcomp.analysis.topology_theory.order_topology
  • mathcomp.analysis.topology_theory.function_spaces
  • mathcomp.analysis.normedtype_theory.pseudometric_normed_Zmodule
  • mathcomp.analysis.normedtype_theory.tvs
  • mathcomp.analysis.normedtype_theory.normed_module

Source code
{TSource code : Type} {VSource code WSource code USource code : topologicalType}
  (FSource code : set_system T) (FFSource code : Filter F)
  (fSource code : T -> V) (gSource code : T -> W) (hSource code : V -> W -> U) (aSource code : V) (bSource code : W) :
  h z.1 z.2 @[zSource code --> (a, b)] --> h a b ->
  f @ F --> a -> g @ F --> b -> (fun xSource code => h (f x) (g x)) @ F --> h a b.
Proof.
move=> h_continuous fa fb; apply: (cvg_trans _ h_continuous).
exact: (cvg_comp _ (fun xSource code => h x.1 x.2) (cvg_pair fa fb)).
Qed.

Lemma continuous_comp_cvgUsed by
  • mathcomp.analysis.ftc

Source code
{TSource code VSource code USource code : topologicalType}
  (fSource code : T -> V) (hSource code : V -> U) (rSource code : T) (lSource code : U) :
  {for f r, continuous h} ->
  (h \o f) x @[xSource code --> r] --> l -> h x @[xSource code --> f r] --> l.
Proof.
move=> frh hfrl X; rewrite nbhsE => -[Y [oY Yl]].
move/filterS; apply; apply: frh.
rewrite nbhsE; exists Y => //; split => //.
have /hfrl : nbhs l Y by exact: open_nbhs_nbhs.
by rewrite nbhsE => -[W [oW Wr]]; exact.
Qed.

Lemma cvg_near_cstUsed by
  • mathcomp.analysis.measure_theory.measure_extension
  • mathcomp.analysis.realfun
  • mathcomp.analysis.topology_theory.separation_axioms
  • mathcomp.analysis.lebesgue_integral_theory.lebesgue_integrable
  • mathcomp.analysis.normedtype_theory.normed_module
  • mathcomp.analysis.exp

Source code
 (TSource code : Type) (USource code : topologicalType)
  (lSource code : U) (fSource code : T -> U) (FSource code : set_system T) {FFSource code : Filter F} :
  (\forall xSource code \near F, f x = l) -> f @ F --> l.
Proof.
move=> fFl P /=; rewrite !near_simpl => Pl.
by apply: filterS fFl => _ ->; exact: nbhs_singleton.
Qed.
Arguments cvg_near_cst {T U} l {f F FF}.

Lemma is_cvg_near_cstUsed by
  • mathcomp.analysis.derive
  • mathcomp.analysis.exp

Source code
 (TSource code : Type) (USource code : ptopologicalType)
  (lSource code : U) (fSource code : T -> U) (FSource code : set_system T) {FFSource code : Filter F} :
  (\forall xSource code \near F, f x = l) -> cvg (f @ F).
Proof.
by move=> /cvg_near_cst/cvgP. Qed.
Arguments is_cvg_near_cst {T U} l {f F FF}.

Lemma near_cst_continuousUsed by
  • mathcomp.analysis.realfun

Source code
 (TSource code USource code : topologicalType)
  (lSource code : U) (fSource code : T -> U) (xSource code : T) :
  (\forall ySource code \near x, f y = l) -> {for x, continuous f}.
Proof.
move=> eq_f_l; apply: cvg_near_cst; apply: filterS (eq_f_l) => y ->.
by rewrite (nbhs_singleton eq_f_l).
Qed.
Arguments near_cst_continuous {T U} l [f x].

Lemma cvg_cstUsed by
  • mathcomp.analysis.probability_theory.beta_distribution
  • mathcomp.analysis.ftc
  • mathcomp.analysis.topology_theory.edist
  • mathcomp.analysis.lebesgue_integral_theory.radon_nikodym
  • mathcomp.analysis.normedtype_theory.pseudometric_normed_Zmodule
  • mathcomp.analysis.normedtype_theory.tvs
  • mathcomp.analysis.normedtype_theory.ereal_normedtype
  • mathcomp.analysis.normedtype_theory.normed_module

Source code
 (USource code : topologicalType) (xSource code : U) (TSource code : Type)
    (FSource code : set_system T) {FFSource code : Filter F} :
  (fun _ : T => x) @ F --> x.
Proof.
by apply: cvg_near_cst; near=> x0. Unshelve. all: by end_near. Qed.
Arguments cvg_cst {U} x {T F FF}.
#[global] Hint Extern 0 (_ @ _ --> _) => solve [apply: cvg_cst] : core.

Lemma is_cvg_cstUsed by
  • mathcomp.analysis.sequences

Source code
 (USource code : ptopologicalType) (xSource code : U) (TSource code : Type)
  (FSource code : set_system T) {FFSource code : Filter F} :
  cvg ((fun _ : T => x) @ F).
Proof.
exact: cvgP (cvg_cst _). Qed.
Arguments is_cvg_cst {U} x {T F FF}.
#[global] Hint Extern 0 (cvg (_ @ _)) => solve [apply: is_cvg_cst] : core.
#[global] Hint Extern 0 (cvgn (_ @ _)) => solve [apply: is_cvg_cst] : core.

Lemma cst_continuousUsed by
  • mathcomp.analysis.probability_theory.exponential_distribution
  • mathcomp.analysis.probability_theory.normal_distribution
  • mathcomp.analysis.realfun
  • mathcomp.analysis.cantor
  • mathcomp.analysis.ftc
  • mathcomp.analysis.gauss_integral
  • mathcomp.analysis.elementary_functions.trigonometry_functions
  • mathcomp.analysis.topology_theory.subspace_topology
  • mathcomp.analysis.derive
  • mathcomp.analysis.numfun
  • mathcomp.analysis.lebesgue_integral_theory.measurable_fun_approximation
  • mathcomp.analysis.normedtype_theory.pseudometric_normed_Zmodule
  • mathcomp.analysis.normedtype_theory.tvs
  • mathcomp.analysis.normedtype_theory.urysohn
  • mathcomp.analysis.normedtype_theory.normed_module
  • mathcomp.analysis.exp

Source code
{TSource code USource code : topologicalType} (xSource code : U) :
  continuous (fun _ : T => x).
Proof.
by move=> t; exact: cvg_cst. Qed.

Lemma id_continuousUsed by
  • mathcomp.analysis.ftc

Source code
{TSource code : topologicalType} : continuous (@id T).
Proof.
by move=> t; exact: cvg_id. Qed.

Section within_topologicalType.
Context {TSource code : topologicalType} (ASource code : set T).
Implicit Types B : set T.

Lemma within_nbhsWUsed by
  • mathcomp.analysis.normedtype_theory.normed_module

Source code
 (xSource code : T) : A x -> within A (nbhs x) `=>` globally A.
Proof.
move=> Ax P AP; rewrite /within/=; near=> y; apply: AP.
Unshelve. all: by end_near. Qed.

Definition locally_of
Source code
 (PSource code : set_system T -> Prop) & phantom Prop (P (globally A))
  := forall xSource code, A x -> P (within A (nbhs x)).
Local Notation "[ 'locally' P ]"Source code := (@locally_of _ _ _ (Phantom _ P)).

Lemma within_interiorUsed by
  • mathcomp.analysis.topology_theory.subspace_topology
  • mathcomp.analysis.normedtype_theory.num_normedtype

Source code
 (xSource code : T) : A° x -> within A (nbhs x) = nbhs x.
Proof.
move=> Aox; rewrite eqEsubset; split; last exact: cvg_within.
rewrite ?nbhsE => W /= => [[B + BsubW]].
rewrite open_nbhsE => [[oB nbhsB]].
exists (B `&` A°); last by move=> t /= [] /BsubW + /interior_subset; apply.
rewrite open_nbhsE; split; first by apply: openI => //; exact: open_interior.
by apply: filterI => //; have := open_interior A; rewrite openE; exact.
Qed.

Lemma within_subsetUsed by
  • mathcomp.analysis.realfun
  • mathcomp.analysis.topology_theory.num_topology
  • mathcomp.analysis.topology_theory.subspace_topology
  • mathcomp.analysis.derive
  • mathcomp.analysis.normedtype_theory.num_normedtype

Source code
BSource code FSource code : Filter F -> A `<=` B -> within A F `=>` within B F.
Proof.
move=> FF AsubB W; rewrite /within/=; apply: filter_app; rewrite nbhs_simpl.
by apply: filterE => ? + ?; apply; exact: AsubB.
Qed.

Lemma withinEUsed by
  • mathcomp.analysis.topology_theory.uniform_structure
  • mathcomp.analysis.topology_theory.subtype_topology
  • mathcomp.analysis.topology_theory.subspace_topology

Source code
FSource code : Filter F ->
  within A F = [set USource code | exists2 VSource code, F V & U `&` A = V `&` A].
Proof.
move=> FF; rewrite eqEsubset; split=> U.
  move=> Wu; exists [set xSource code | A x -> U x] => //.
  by rewrite eqEsubset; split => t [L R]; split=> //; apply: L.
move=> [V FV AU]; rewrite /within /prop_near1 nbhs_simpl/=; near=> w => Aw.
by have []// : (U `&` A) w; rewrite AU; split => //; apply: (near FV).
Unshelve. all: by end_near. Qed.

Lemma fmap_within_eqUsed by
  • mathcomp.analysis.topology_theory.subspace_topology

Source code
{SSource code : topologicalType} (FSource code : set_system T) (fSource code gSource code : T -> S) :
  Filter F -> {in A, f =1 g} -> f @ within A F --> g @ within A F.
Proof.
move=> FF feq U /=; near_simpl; apply: filter_app.
rewrite ?nbhs_simpl; near_simpl; near=> w; rewrite (feq w) // inE.
exact: (near (withinT A FF) w).
Unshelve. all: by end_near. Qed.

End within_topologicalType.

Notation "[ 'locally' P ]"Source code := (@locally_of _ _ _ (Phantom _ P)).

Topology defined by a filter

HBSource code.factorySource code RecordSource code Nbhs_isNbhsTopologicalSource code TSource code &Source code NbhsSource code T := {
  nbhs_filter : forall pSource code : T, ProperFilter (nbhs p);
  nbhs_singleton : forall (pSource code : T) (ASource code : set T), nbhs p A -> A p;
  nbhs_nbhs : forall (pSource code : T) (ASource code : set T), nbhs p A -> nbhs p (nbhs^~ A);
}.

HBSource code.buildersSource code ContextSource code TSource code &Source code Nbhs_isNbhsTopologicalSource code T.

Definition open_of_nbhs

open_nbhs : forall {T : topologicalType}, T -> set T -> Prop open_nbhs is not universe polymorphic Arguments open_nbhs {T} p A%_classical_set_scope open_nbhs is transparent Expands to: Constant mathcomp.analysis.topology_theory.topology_structure.open_nbhs Declared in library mathcomp.analysis.topology_theory.topology_structure, line 168, characters 11-20


Source code
:= [set ASource code : set T | A `<=` nbhs^~ A].

Let nbhsE_subproofSource code (pSource code : T) :
  nbhs p = [set ASource code | exists BSource code, [/\ open_of_nbhs B, B p & B `<=` A] ].
Proof.
rewrite predeqE => A; split=> [p_A|]; last first.
  move=> [B [Bop Bp sBA]]; apply: filterS sBA _; last exact: Bop.
  exact/nbhs_filter.
exists (nbhs^~ A); split=> //; first by move=> ?; apply: nbhs_nbhs.
by move=> q /nbhs_singleton.
Qed.

Let openE_subproofSource code : open_of_nbhs = [set ASource code : set T | A `<=` nbhs^~ A].
Proof.
by []. Qed.

HBSource code.instanceSource code DefinitionSource code _Source code :=Source code Nbhs_isTopologicalSource code.Build T
  nbhs_filter nbhsE_subproof openE_subproof.

HBSource code.endSource code.

Topology defined by open sets

Definition nbhs_of_open

nbhs_filter_on : forall {T : topologicalType}, T -> filter_on T nbhs_filter_on is not universe polymorphic Arguments nbhs_filter_on {T} x nbhs_filter_on is transparent Expands to: Constant mathcomp.analysis.topology_theory.topology_structure.nbhs_filter_on Declared in library mathcomp.analysis.topology_theory.topology_structure, line 176, characters 10-24


Source code
 (TSource code : Type) (opSource code : set_system T) (pSource code : T) (ASource code : set T) :=
  exists BSource code, [/\ op B, B p & B `<=` A].

HBSource code.factorySource code RecordSource code isOpenTopologicalSource code TSource code &Source code ChoiceSource code T := {
  op : set_system T ;
  opT : op setT ;
  opI : setI_closed op ;
  op_bigU : forall (ISource code : Type) (fSource code : I -> set T), (forall iSource code, op (f i)) ->
    op (\bigcup_iSource code f i)
}.

HBSource code.buildersSource code ContextSource code TSource code &Source code isOpenTopologicalSource code T.

HBSource code.instanceSource code DefinitionSource code _Source code :=Source code hasNbhsSource code.Build T (nbhs_of_open op).

Let nbhs_pfilter_subproofSource code (pSource code : T) : ProperFilter (nbhs p).
Proof.
apply: Build_ProperFilter_ex.
  by move=> A [B [_ Bp sBA]]; exists p; apply: sBA.
split; first by exists setT; split=> [|//|//]; exact: opT.
  move=> A B [C [Cop Cp sCA]] [D [Dop Dp sDB]].
  exists (C `&` D); split=> //; first exact: opI.
  by move=> q [/sCA Aq /sDB Bq].
move=> A B sAB [C [Cop p_C sCA]].
by exists C; split=> //; apply: subset_trans sAB.
Qed.

Let nbhsE_subproofSource code (pSource code : T) :
  nbhs p = [set ASource code | exists BSource code, [/\ op B, B p & B `<=` A] ].
Proof.
by []. Qed.

Let openE_subproofSource code : op = [set ASource code : set T | A `<=` nbhs^~ A].
Proof.
rewrite predeqE => A; split=> [Aop p Ap|Aop].
  by exists A; split=> //; split.
suff -> : A = \bigcup_(BSource code : {BSource code : set T & op B /\ B `<=` A}) projT1 B.
  by apply: op_bigU => B; have [] := projT2 B.
rewrite predeqE => p; split=> [|[B _ Bp]]; last by have [_] := projT2 B; apply.
by move=> /Aop [B [Bop Bp sBA]]; exists (existT _ B (conj Bop sBA)).
Qed.

HBSource code.instanceSource code DefinitionSource code _Source code :=Source code Nbhs_isTopologicalSource code.Build T
  nbhs_pfilter_subproof nbhsE_subproof openE_subproof.

HBSource code.endSource code.

Definition openU_from

interior : forall {T : topologicalType}, set T -> T -> Prop interior is not universe polymorphic Arguments interior {T} A%_classical_set_scope x interior is transparent Expands to: Constant mathcomp.analysis.topology_theory.topology_structure.interior Declared in library mathcomp.analysis.topology_theory.topology_structure, line 192, characters 11-19


Source code
 (TSource code : Type) (ISource code : Type) (DSource code : set I) (bSource code : I -> set T) :=
  [set \bigcup_(iSource code in D') b i | D'Source code in subset^~ D].

#[deprecated(since="mathcomp-analysis 1.17.0", use=openU_from)]
Notation open_fromSource code := openU_from (only parsing).


Topology defined by a base of open sets

HBSource code.factorySource code RecordSource code isBaseTopologicalSource code TSource code &Source code ChoiceSource code T := {
  I : pointedType ;
  D : set I ;
  b : I -> set T ;
  b_cover : \bigcup_(iSource code in D) b i = setT ;
  b_join : forall iSource code jSource code tSource code, D i -> D j -> b i t -> b j t ->
    exists kSource code, [/\ D k, b k t & b k `<=` b i `&` b j]
}.

HBSource code.buildersSource code ContextSource code TSource code &Source code isBaseTopologicalSource code T.

Local Notation openU_fromSource code := (openU_from D b).

Let openU_fromTSource code : openU_from setT.
Proof.
exists D => //; exact: b_cover. Qed.

Let openU_fromISource code : setI_closed openU_from.
Proof.
move=> A B [DA sDAD AeUbA] [DB sDBD BeUbB].
have ABU t : (A `&` B) t ->
  exists itSource code, [/\ D it, b it t & b it `<=` A `&` B].
  move=> [At Bt].
  have [iA [DiA biAt sbiA]] : exists iSource code, [/\ D i, b i t & b i `<=` A].
    move: At; rewrite -AeUbA => - [i DAi bit]; exists i.
    by split => //; [exact: sDAD|exact: bigcup_sup].
  have [iB [DiB biBt sbiB]] : exists iSource code, [/\ D i, b i t & b i `<=` B].
    move: Bt; rewrite -BeUbB => - [i DBi bit]; exists i.
    by split=> //; [exact: sDBD|exact: bigcup_sup].
  have [i [Di bit sbiAB]] := b_join DiA DiB biAt biBt.
  by exists i; split=> // s /sbiAB [/sbiA ? /sbiB].
set Dt := fun tSource code => [set itSource code | [/\ D it, b it t & b it `<=` A `&` B]].
exists [set get (Dt t) | tSource code in A `&` B].
  by move=> _ [t ABt <-]; have /ABU/getPex [] := ABt.
rewrite predeqE => t; split=> [[_ [s ABs <-] bDtst]|ABt].
  by have /ABU/getPex [_ _] := ABs; exact.
by exists (get (Dt t)); [exists t| have /ABU/getPex [?]:= ABt].
Qed.

Let openU_from_bigUSource code (I0Source code : Type) (fSource code : I0 -> set T) :
  (forall iSource code, openU_from (f i)) -> openU_from (\bigcup_iSource code f i).
Proof.
set fop := fun jSource code => [set DjSource code | Dj `<=` D /\ f j = \bigcup_(iSource code in Dj) b i].
exists (\bigcup_jSource code get (fop j)).
  move=> i [j _ fopji].
  suff /getPex [/(_ _ fopji)] : exists DjSource code, fop j Dj by [].
  by have [Dj] := H j; exists Dj.
rewrite predeqE => t; split=> [[i [j _ fopji bit]]|[j _]].
  exists j => //; suff /getPex [_ ->] : exists DjSource code, fop j Dj by exists i.
  by have [Dj] := H j; exists Dj.
have /getPex [_ ->] : exists DjSource code, fop j Dj by have [Dj] := H j; exists Dj.
by move=> [i]; exists i => //; exists j.
Qed.

HBSource code.instanceSource code DefinitionSource code _Source code :=Source code isOpenTopologicalSource code.Build T
  openU_fromT openU_fromI openU_from_bigU.

HBSource code.endSource code.


HBSource code.factorySource code RecordSource code isSubBaseTopologicalSource code TSource code &Source code ChoiceSource code T := {
  I : pointedType ;
  D : set I ;
  b : I -> set T
}.

HBSource code.buildersSource code ContextSource code TSource code &Source code isSubBaseTopologicalSource code T.

Local Notation finI_fromSource code := (open_finI_from D b).

Let finI_from_coverSource code : \bigcup_(ASource code in finI_from) A = setT.
Proof.
rewrite predeqE => t; split=> // _; exists setT => //.
by exists fset0 => //; rewrite predeqE.
Qed.

Let finI_from_joinSource code ASource code BSource code tSource code : finI_from A -> finI_from B -> A t -> B t ->
  exists kSource code, [/\ finI_from k, k t & k `<=` A `&` B].
Proof.
move=> [DA sDAD AeIbA] [DB sDBD BeIbB] At Bt.
exists (A `&` B); split => //.
exists (DA `|` DB)%fset; first by move=> i /fsetUP [/sDAD|/sDBD].
rewrite predeqE => s; split=> [Ifs|[As Bs] i /fsetUP].
  split; first by rewrite -AeIbA => i DAi; apply: Ifs; rewrite /= inE DAi.
  by rewrite -BeIbB => i DBi; apply: Ifs; rewrite /= inE DBi orbC.
by move=> [DAi|DBi];
  [have := As; rewrite -AeIbA; apply|have := Bs; rewrite -BeIbB; apply].
Qed.

HBSource code.instanceSource code DefinitionSource code _Source code :=Source code isBaseTopologicalSource code.Build T
  finI_from_cover finI_from_join.

HBSource code.endSource code.

deleted neighborhood

Definition dnbhs

locally_of : forall {T : topologicalType} [A : set T] [P : set_system T -> Prop], phantom Prop (P (globally A)) -> Prop locally_of is not universe polymorphic Arguments locally_of {T} [A]%_classical_set_scope [P]%_function_scope _ locally_of is transparent Expands to: Constant mathcomp.analysis.topology_theory.topology_structure.locally_of Declared in library mathcomp.analysis.topology_theory.topology_structure, line 443, characters 11-21


Used by
  • mathcomp.analysis.topology_theory.pseudometric_structure
  • mathcomp.analysis.topology_theory.uniform_structure
  • mathcomp.analysis.normedtype_theory.num_normedtype

Source code
{TSource code : topologicalType} (xSource code : T) :=
  within (fun ySource code => y != x) (nbhs x).
Notation "x ^'"Source code := (dnbhs x) : classical_set_scope.

Lemma nbhs_dnbhs_neqSource code {TSource code : topologicalType} (pSource code : T) :
  \forall xSource code \near nbhs p^', x != p.
Proof.
exact: withinT. Qed.

#[global] Hint Extern 0 (\forall xSource code \near nbhs _^', is_true (x != _)) =>
  solve [apply: nbhs_dnbhs_neq] : core.

Lemma nbhs_dnbhsUsed by
  • mathcomp.analysis.derive

Source code
{TSource code : topologicalType} (xSource code : T) : x^' `=>` nbhs x.
Proof.
exact: cvg_within. Qed.

Lemma dnbhsEUsed by
  • mathcomp.analysis.derive

Source code
 (TSource code : topologicalType) (xSource code : T) :
  nbhs x = x^' `&` principal_filter x.
Proof.
rewrite predeqE => A; split=> [x_A|[+ Ax]].
  by split; [exact: nbhs_dnbhs|apply/principal_filterP; exact: nbhs_singleton].
rewrite /dnbhs !nbhsE => -[B [oB x_B sBA]]; exists B => //.
by move=> y /sBA Ay; case: (eqVneq y x) => [->|//]; exact/principal_filterP.
Qed.

Global Instance dnbhs_filterSource code {TSource code : topologicalType} (xSource code : T) : Filter x^'.
Proof.
exact: within_filter. Qed.
#[global] Typeclasses Opaque dnbhs.

Canonical dnbhs_filter_on

Builders_1.open_of_nbhs : forall [T : Type], hasChoice.axioms_ T -> Equality.mixin_of T -> isFiltered.axioms_ T T -> set (set T) Builders_1.open_of_nbhs is not universe polymorphic Arguments Builders_1.open_of_nbhs [T]%_type_scope local_mixin_choice_hasChoice local_mixin_eqtype_hasDecEq local_mixin_filter_isFiltered _ Builders_1.open_of_nbhs is transparent Expands to: Constant mathcomp.analysis.topology_theory.topology_structure.Builders_1.open_of_nbhs Declared in library mathcomp.analysis.topology_theory.topology_structure, line 497, characters 11-23


Used by
  • mathcomp.analysis.derive

Source code
 (TSource code : topologicalType)  (xSource code : T) :=
  FilterType x^' (dnbhs_filter _).

Lemma cvg_fmap2Used by
  • mathcomp.analysis.topology_theory.subspace_topology

Source code
 (TSource code USource code : Type) (fSource code : T -> U):
  forall (FSource code GSource code : set_system T), G `=>` F -> f @ G `=>` f @ F.
Proof.
by move=> F G H A fFA ; exact: H (preimage f A) fFA. Qed.

Lemma cvg_within_filterUsed by
  • mathcomp.analysis.real_measure.lebesgue_stieltjes_measure
  • mathcomp.analysis.realfun
  • mathcomp.analysis.topology_theory.num_topology
  • mathcomp.analysis.derive

Source code
{TSource code USource code} {fSource code : T -> U} (FSource code : set_system T) {FFSource code : (Filter F) }
  (GSource code : set_system U) (DSource code : set T) : (f @ F) --> G -> (f @ within D F) --> G.
Proof.
exact: cvg_trans (cvg_fmap2 (cvg_within _)). Qed.

Lemma cvg_app_withinSource code {TSource code} {USource code : ptopologicalType} (fSource code : T -> U) (FSource code : set_system T)
  (DSource code : set T): Filter F -> cvg (f @ F) -> cvg (f @ within D F).
Proof.
by move => FF /cvg_ex [l H]; apply/cvg_ex; exists l; exact: cvg_within_filter.
Qed.

meets

Lemma meets_openrUsed by
  • mathcomp.analysis.topology_theory.separation_axioms
  • mathcomp.analysis.topology_theory.compact

Source code
{TSource code : topologicalType} (FSource code : set_system T) (xSource code : T) :
  F `#` nbhs x = F `#` open_nbhs x.
Proof.
rewrite propeqE; split; [exact/meetsSr/open_nbhs_nbhs|].
by move=> P A B {}/P P; rewrite nbhsE => -[B' /P + sB]; apply: subsetI_neq0.
Qed.

Lemma meets_openlUsed by
  • mathcomp.analysis.topology_theory.separation_axioms

Source code
{TSource code : topologicalType} (FSource code : set_system T) (xSource code : T) :
  nbhs x `#` F = open_nbhs x `#` F.
Proof.
by rewrite meetsC meets_openr meetsC. Qed.
Closed sets in topological spaces

Section Closed.
Context {TSource code : topologicalType}.

Definition closure

nbhs_of_open : forall [T : Type], set_system T -> T -> set T -> Prop nbhs_of_open is not universe polymorphic Arguments nbhs_of_open [T]%_type_scope op p A%_classical_set_scope nbhs_of_open is transparent Expands to: Constant mathcomp.analysis.topology_theory.topology_structure.nbhs_of_open Declared in library mathcomp.analysis.topology_theory.topology_structure, line 519, characters 11-23


Used by
  • mathcomp.analysis.real_measure.lebesgue_measure
  • mathcomp.analysis.cantor
  • mathcomp.analysis.topology_theory.pseudometric_structure
  • mathcomp.analysis.topology_theory.order_topology
  • mathcomp.analysis.topology_theory.uniform_structure
  • mathcomp.analysis.topology_theory.connected
  • mathcomp.analysis.topology_theory.function_spaces
  • mathcomp.analysis.topology_theory.separation_axioms
  • mathcomp.analysis.topology_theory.num_topology
  • mathcomp.analysis.topology_theory.subspace_topology
  • mathcomp.analysis.topology_theory.compact
  • mathcomp.analysis.normedtype_theory.pseudometric_normed_Zmodule
  • mathcomp.analysis.normedtype_theory.urysohn
  • mathcomp.analysis.normedtype_theory.vitali_lemma
  • mathcomp.analysis.normedtype_theory.normed_module

Source code
 (ASource code : set T) :=
  [set pSource code : T | forall BSource code, nbhs p B -> A `&` B !=set0].

Lemma closureEnbhsUsed by
  • mathcomp.analysis.topology_theory.compact

Source code
ASource code : closure A = [set pSource code | globally A `#` nbhs p].
Proof.
by under eq_fun do rewrite meets_globallyl. Qed.

Lemma closureEonbhsUsed by
  • mathcomp.analysis.topology_theory.separation_axioms

Source code
ASource code : closure A = [set pSource code | globally A `#` open_nbhs p].
Proof.
by under eq_fun do rewrite -meets_openr meets_globallyl. Qed.

Lemma subset_closureUsed by
  • mathcomp.analysis.real_measure.lebesgue_measure
  • mathcomp.analysis.cantor
  • mathcomp.analysis.topology_theory.pseudometric_structure
  • mathcomp.analysis.topology_theory.order_topology
  • mathcomp.analysis.topology_theory.connected
  • mathcomp.analysis.topology_theory.function_spaces
  • mathcomp.analysis.topology_theory.separation_axioms
  • mathcomp.analysis.topology_theory.num_topology
  • mathcomp.analysis.topology_theory.subspace_topology
  • mathcomp.analysis.topology_theory.compact
  • mathcomp.analysis.normedtype_theory.pseudometric_normed_Zmodule
  • mathcomp.analysis.normedtype_theory.urysohn
  • mathcomp.analysis.normedtype_theory.normed_module

Source code
 (ASource code : set T) : A `<=` closure A.
Proof.
by move=> p ??; exists p; split=> //; apply: nbhs_singleton. Qed.

Lemma closure_eq0Used by
  • mathcomp.analysis.normedtype_theory.vitali_lemma

Source code
 (ASource code : set T) : closure A = set0 -> A = set0.
Proof.
by move=> A0; apply/seteqP; split => //; rewrite -A0; exact: subset_closure.
Qed.

Lemma closureIUsed by
  • mathcomp.analysis.topology_theory.connected
  • mathcomp.analysis.topology_theory.separation_axioms
  • mathcomp.analysis.normedtype_theory.normed_module

Source code
 (ASource code BSource code : set T) : closure (A `&` B) `<=` closure A `&` closure B.
Proof.
by move=> p clABp; split=> ? /clABp [q [[]]]; exists q. Qed.

Definition limit_point

openU_from : forall [T I : Type], set I -> (I -> set T) -> set (set T) openU_from is not universe polymorphic Arguments openU_from [T I]%_type_scope D%_classical_set_scope b%_function_scope _ openU_from is transparent Expands to: Constant mathcomp.analysis.topology_theory.topology_structure.openU_from Declared in library mathcomp.analysis.topology_theory.topology_structure, line 565, characters 11-21


Used by
  • mathcomp.analysis.topology_theory.separation_axioms
  • mathcomp.analysis.sequences
  • mathcomp.analysis.normedtype_theory.normed_module

Source code
ESource code := [set tSource code : T |
  forall USource code, nbhs t U -> exists ySource code, [/\ y != t, E y & U y]].

Lemma limit_pointEnbhsSource code ESource code :
  limit_point E = [set pSource code | globally (E `\ p) `#` nbhs p].
Proof.
under eq_fun do rewrite meets_globallyl; rewrite funeqE => p /=.
apply/eq2_forall => x px; apply/eq_exists => y.
by rewrite propeqE; split => [[/eqP ? ?]|[[? /eqP ?]]]; do 2?split.
Qed.

Lemma limit_pointEonbhsSource code ESource code :
  limit_point E = [set pSource code | globally (E `\ p) `#` open_nbhs p].
Proof.
by rewrite limit_pointEnbhs; under eq_fun do rewrite meets_openr. Qed.

Lemma subset_limit_pointSource code ESource code : limit_point E `<=` closure E.
Proof.
by move=> t Et U tU; have [p [? ? ?]] := Et _ tU; exists p. Qed.

Lemma not_limit_pointEUsed by
  • mathcomp.analysis.topology_theory.separation_axioms

Source code
ASource code aSource code : (~ limit_point A a) =
  exists2 XSource code : set T, nbhs a X & A `&` X `<=` [set a].
Proof.
rewrite /limit_point/= -existsNE exists2E; apply: eq_exists => X/=.
rewrite not_implyE -forallNE; congr and; apply: eq_forall => t/=.
rewrite and3E not_andE (propext (rwP negP)) negbK implyE orC.
by rewrite -(propext (rwP eqP)).
Qed.

Definition isolated

dnbhs : forall {T : topologicalType}, T -> set_system T dnbhs is not universe polymorphic Arguments dnbhs {T} x _ dnbhs is transparent Expands to: Constant mathcomp.analysis.topology_theory.topology_structure.dnbhs Declared in library mathcomp.analysis.topology_theory.topology_structure, line 669, characters 11-16


Used by
  • mathcomp.analysis.topology_theory.separation_axioms
  • mathcomp.analysis.normedtype_theory.normed_module

Source code
 (ASource code : set T) (xSource code : T) :=
  x \in A /\ exists2 VSource code, nbhs x V & V `&` A = [set x].

Lemma isolatedSSource code (ASource code : set T) : isolated A `<=` A.
Proof.
by move=> x [/set_mem]. Qed.

Lemma disjoint_isolated_limit_pointUsed by
  • mathcomp.analysis.topology_theory.separation_axioms

Source code
 (ASource code : set T) :
  [disjoint isolated A & limit_point A].
Proof.
apply/disj_setPS => t [[At [V tV]]] /[swap].
move/(_ _ tV) => [x [xt Ax Vx]].
have /[swap] -> : [set x] `<=` V `&` A by move=> ? ->; split.
move/subset_set1 => [/seteqP[/(_ _ erefl)//]|].
by move=> /seteqP[_ /(_ _ erefl)/=]; apply/eqP; rewrite eq_sym.
Qed.

Lemma closure_isolated_limit_pointUsed by
  • mathcomp.analysis.topology_theory.separation_axioms
  • mathcomp.analysis.topology_theory.num_topology

Source code
 (ASource code : set T) :
  closure A = isolated A `|` limit_point A.
Proof.
apply/seteqP; split=> [t At0|t [|]].
- rewrite /setU/= -implyNp => /not_andP[tA U /At0[x [Ux Ax]]|+ U tU].
    by exists x; split => //; contra: tA => <-; exact/mem_set.
  move/forall2NP => /(_ U)[//|/seteqP/not_andP[|]].
    by contra => H x [Ux Ax]; apply/eqP/negPn/negP => /H /(_ Ax).
  have [At tUA|At _] := pselect (A t).
    by absurd: tUA => _ ->; split => //; exact: nbhs_singleton.
  have [x [Ax Ux]] := At0 _ tU.
  by exists x; split => //; contra: At => <-.
- by move/isolatedS; exact: subset_closure.
- exact: subset_limit_point.
Qed.

Lemma __deprecated__closure_limit_pointSource code ESource code : closure E = E `|` limit_point E.
Proof.
apply/seteqP; split => [|x]; last first.
  by case; [exact: subset_closure|exact: subset_limit_point].
by rewrite closure_isolated_limit_point => x [/isolatedS|]; [left|right].
Qed.

Definition closed

dnbhs_filter_on : forall [T : topologicalType], T -> filter_on T dnbhs_filter_on is not universe polymorphic Arguments dnbhs_filter_on [T] x dnbhs_filter_on is transparent Expands to: Constant mathcomp.analysis.topology_theory.topology_structure.dnbhs_filter_on Declared in library mathcomp.analysis.topology_theory.topology_structure, line 696, characters 10-25


Used by
  • mathcomp.analysis.real_measure.measurable_realfun
  • mathcomp.analysis.real_measure.lebesgue_measure
  • mathcomp.analysis.cantor
  • mathcomp.analysis.borel_hierarchy
  • mathcomp.analysis.topology_theory.pseudometric_structure
  • mathcomp.analysis.topology_theory.order_topology
  • mathcomp.analysis.topology_theory.connected
  • mathcomp.analysis.topology_theory.edist
  • mathcomp.analysis.topology_theory.discrete_topology
  • mathcomp.analysis.topology_theory.function_spaces
  • mathcomp.analysis.topology_theory.separation_axioms
  • mathcomp.analysis.topology_theory.one_point_compactification
  • mathcomp.analysis.topology_theory.num_topology
  • mathcomp.analysis.topology_theory.subspace_topology
  • mathcomp.analysis.topology_theory.compact
  • mathcomp.analysis.homotopy_theory.wedge_sigT
  • mathcomp.analysis.numfun
  • mathcomp.analysis.sequences
  • mathcomp.analysis.lebesgue_integral_theory.measurable_fun_approximation
  • mathcomp.analysis.normedtype_theory.ereal_normedtype
  • mathcomp.analysis.normedtype_theory.urysohn
  • mathcomp.analysis.normedtype_theory.matrix_normedtype
  • mathcomp.analysis.normedtype_theory.num_normedtype
  • mathcomp.analysis.normedtype_theory.normed_module

Source code
 (DSource code : set T) := closure D `<=` D.

Lemma open_closedCUsed by
  • mathcomp.analysis.real_measure.lebesgue_measure
  • mathcomp.analysis.topology_theory.connected
  • mathcomp.analysis.topology_theory.function_spaces
  • mathcomp.analysis.topology_theory.separation_axioms
  • mathcomp.analysis.topology_theory.subspace_topology
  • mathcomp.analysis.topology_theory.compact
  • mathcomp.analysis.normedtype_theory.ereal_normedtype
  • mathcomp.analysis.normedtype_theory.urysohn
  • mathcomp.analysis.normedtype_theory.num_normedtype

Source code
 (DSource code : set T) : open D -> closed (~` D).
Proof.
by rewrite openE => Dop p clNDp /Dop /clNDp [? []]. Qed.

Lemma closed_bigISource code {ISource code} (DSource code : set I) (fSource code : I -> set T) :
  (forall iSource code, D i -> closed (f i)) -> closed (\bigcap_(iSource code in D) f i).
Proof.
move=> fcl t clft i Di; have /fcl := Di; apply.
by move=> A /clft [s [/(_ i Di)]]; exists s.
Qed.

Lemma closedIUsed by
  • mathcomp.analysis.real_measure.lebesgue_measure
  • mathcomp.analysis.cantor
  • mathcomp.analysis.topology_theory.order_topology
  • mathcomp.analysis.topology_theory.connected
  • mathcomp.analysis.topology_theory.separation_axioms
  • mathcomp.analysis.topology_theory.subspace_topology
  • mathcomp.analysis.normedtype_theory.num_normedtype

Source code
: setI_closed closed.
Proof.
by move=> D E Dcl Ecl p clDEp; split; [apply: Dcl|apply: Ecl];
  move=> A /clDEp [q [[]]]; exists q.
Qed.

Lemma closedTUsed by
  • mathcomp.analysis.cantor
  • mathcomp.analysis.topology_theory.function_spaces
  • mathcomp.analysis.topology_theory.separation_axioms

Source code
: closed setT
Proof.
by []. Qed.

Lemma closed0Used by
  • mathcomp.analysis.cantor
  • mathcomp.analysis.topology_theory.connected
  • mathcomp.analysis.topology_theory.one_point_compactification
  • mathcomp.analysis.lebesgue_integral_theory.measurable_fun_approximation
  • mathcomp.analysis.normedtype_theory.num_normedtype

Source code
: closed set0.
Proof.
by move=> ? /(_ setT) [|? []] //; apply: filterT. Qed.

Lemma closedEUsed by
  • mathcomp.analysis.topology_theory.num_topology

Source code
: closed = [set ASource code : set T | forall pSource code, ~ (\forall xSource code \near p, ~ A x) -> A p].
Proof.
rewrite predeqE => A; split=> Acl p; last first.
  by move=> clAp; apply: Acl => /clAp [? []].
rewrite -nbhs_nearE nbhsE => /asboolP.
rewrite asbool_neg => /forallp_asboolPn2 clAp.
apply: Acl => B; rewrite nbhsE => - [C [oC pC]].
have /asboolP := clAp C.
rewrite asbool_or 2!asbool_neg => /orP[/asboolP/not_andP[]//|/existsp_asboolPn [q]].
move/asboolP; rewrite asbool_neg => /imply_asboolPn[+ /contrapT Aq sCB] => /sCB.
by exists q.
Qed.

Lemma closed_openCUsed by
  • mathcomp.analysis.real_measure.measurable_realfun
  • mathcomp.analysis.topology_theory.connected
  • mathcomp.analysis.topology_theory.function_spaces
  • mathcomp.analysis.topology_theory.separation_axioms
  • mathcomp.analysis.topology_theory.one_point_compactification
  • mathcomp.analysis.topology_theory.subspace_topology
  • mathcomp.analysis.topology_theory.compact
  • mathcomp.analysis.homotopy_theory.wedge_sigT
  • mathcomp.analysis.normedtype_theory.urysohn
  • mathcomp.analysis.normedtype_theory.normed_module

Source code
 (DSource code : set T) : closed D -> open (~` D).
Proof.
by rewrite closedE openE => Dcl t nDt; apply: contrapT => /Dcl. Qed.

Lemma closedCUsed by
  • mathcomp.analysis.topology_theory.order_topology
  • mathcomp.analysis.topology_theory.connected
  • mathcomp.analysis.topology_theory.edist
  • mathcomp.analysis.topology_theory.discrete_topology

Source code
 (DSource code : set T) : closed (~` D) = open D.
Proof.
by apply/propext; split=> [/closed_openC|]; [rewrite setCK|exact: open_closedC].
Qed.

Lemma openCUsed by
  • mathcomp.analysis.borel_hierarchy
  • mathcomp.analysis.topology_theory.function_spaces
  • mathcomp.analysis.topology_theory.separation_axioms
  • mathcomp.analysis.topology_theory.subspace_topology
  • mathcomp.analysis.normedtype_theory.urysohn
  • mathcomp.analysis.normedtype_theory.normed_module

Source code
 (DSource code : set T) : open (~` D) = closed D.
Proof.
by rewrite -closedC setCK. Qed.

Lemma closed_closureUsed by
  • mathcomp.analysis.real_measure.lebesgue_measure
  • mathcomp.analysis.cantor
  • mathcomp.analysis.topology_theory.pseudometric_structure
  • mathcomp.analysis.topology_theory.connected
  • mathcomp.analysis.topology_theory.function_spaces
  • mathcomp.analysis.topology_theory.separation_axioms
  • mathcomp.analysis.topology_theory.subspace_topology
  • mathcomp.analysis.topology_theory.compact
  • mathcomp.analysis.normedtype_theory.urysohn
  • mathcomp.analysis.normedtype_theory.normed_module

Source code
 (ASource code : set T) : closed (closure A).
Proof.
by move=> p clclAp B /nbhs_interior /clclAp [q [clAq /clAq]]. Qed.

End Closed.
#[deprecated(since="mathcomp-analysis 1.15.0", note="use `closure_isolated_limit_point` instead")]
Notation closure_limit_pointSource code := __deprecated__closure_limit_point (only parsing).

Lemma preimage_closedUsed by
  • mathcomp.analysis.topology_theory.subspace_topology
  • mathcomp.analysis.numfun
  • mathcomp.analysis.normedtype_theory.normed_module

Source code
{TSource code USource code : topologicalType} (fSource code : T -> U) (DSource code : set U) :
  {in ~` f @^-1` D, continuous f} -> closed D -> closed (f @^-1` D).
Proof.
rewrite !closedE => f_continuous D_cl x /= xDf.
apply: D_cl; apply: contra_not xDf => fxD.
have NDfx : ~ D (f x).
  by move: fxD; rewrite -nbhs_nearE nbhsE => - [A [? ?]]; exact.
by apply: f_continuous fxD; rewrite inE.
Qed.
#[deprecated(since="mathcomp-analysis 1.16.0", note="renamed to `preimage_closed`")]
Notation closed_compSource code := preimage_closed (only parsing).

Lemma closed_cvgUsed by
  • mathcomp.analysis.measure_theory.signed_measure
  • mathcomp.analysis.cantor
  • mathcomp.analysis.sequences
  • mathcomp.analysis.normedtype_theory.ereal_normedtype
  • mathcomp.analysis.normedtype_theory.normed_module

Source code
{TSource code} {VSource code : topologicalType} {FSource code} {FFSource code : ProperFilter F}
    (u_Source code : T -> V) (ASource code : V -> Prop) :
    closed A -> (\forall nSource code \near F, A (u_ n)) ->
  forall lSource code, u_ @ F --> l -> A l.
Proof.
move=> + FAu_ l u_Fl; apply => B /u_Fl /=; rewrite nbhs_filterE.
by move=> /(filterI FAu_) => /filter_ex[t [Au_t u_Bt]]; exists (u_ t).
Qed.
Arguments closed_cvg {T V F FF u_} _ _ _ _ _.

Lemma continuous_closedPUsed by
  • mathcomp.analysis.topology_theory.subspace_topology

Source code
 (SSource code TSource code : topologicalType) (fSource code : S -> T) :
  continuous f <-> forall ASource code, closed A -> closed (f @^-1` A).
Proof.
rewrite continuousP; split=> ctsf ? ?.
  by rewrite -openC preimage_setC; apply: ctsf; rewrite openC.
by rewrite -closedC preimage_setC; apply: ctsf; rewrite closedC.
Qed.

Lemma closedUUsed by
  • mathcomp.analysis.topology_theory.separation_axioms
  • mathcomp.analysis.topology_theory.one_point_compactification
  • mathcomp.analysis.topology_theory.subspace_topology
  • mathcomp.analysis.lebesgue_integral_theory.measurable_fun_approximation

Source code
 (TSource code : topologicalType) : setU_closed (@closed T).
Proof.
by move=> E D; rewrite -?openC setCU; exact: openI. Qed.

Lemma bigsetU_closedUsed by
  • mathcomp.analysis.topology_theory.separation_axioms

Source code
{TSource code : topologicalType} {ISource code : eqType} (sSource code : seq I)
    (FSource code : I -> set T) : (forall xSource code, x \in s -> closed (F x)) ->
  closed (\big[setU/set0]_(xSource code <- s) F x).
Proof.
move=> scF; rewrite big_seq.
by elim/big_ind : _ => //; [exact: closed0|exact: closedU].
Qed.
#[deprecated(since="mathcomp-analysis 1.17.0", use=bigsetU_closed)]
Notation closed_bigsetUSource code := bigsetU_closed (only parsing).

Lemma bigcup_closedUsed by
  • mathcomp.analysis.real_measure.lebesgue_measure

Source code
{TSource code : topologicalType} {ISource code : choiceType} (ASource code : set I)
    (FSource code : I -> set T) :
    finite_set A -> (forall iSource code, A i -> closed (F i)) ->
  closed (\bigcup_(iSource code in A) F i).
Proof.
move=> finA cF; rewrite -bigsetU_fset_set//; apply: bigsetU_closed => i.
by rewrite in_fset_set// inE; exact: cF.
Qed.
#[deprecated(since="mathcomp-analysis 1.17.0", use=bigcup_closed)]
Notation closed_bigcupSource code := bigcup_closed (only parsing).

Section closure_lemmas.
Context {TSource code : topologicalType}.
Implicit Types E A B U : set T.

Lemma closureSUsed by
  • mathcomp.analysis.cantor
  • mathcomp.analysis.ftc
  • mathcomp.analysis.topology_theory.pseudometric_structure
  • mathcomp.analysis.topology_theory.connected
  • mathcomp.analysis.topology_theory.function_spaces
  • mathcomp.analysis.topology_theory.separation_axioms
  • mathcomp.analysis.topology_theory.num_topology
  • mathcomp.analysis.topology_theory.subspace_topology
  • mathcomp.analysis.topology_theory.compact
  • mathcomp.analysis.normedtype_theory.urysohn

Source code
ASource code BSource code : A `<=` B -> closure A `<=` closure B.
Proof.
by move=> ? ? CAx ?; move/CAx; exact/subsetI_neq0. Qed.

#[deprecated(since="mathcomp-analysis 1.16.0", note="Use `closureS` instead.")]
Definition closure_subset

Abbreviation closure e a := (closure_mem e (mem a)) Expands to: Abbreviation mathcomp.boot.fingraph.closure Declared in library mathcomp.boot.fingraph, line 230, characters 0-48


Source code
:= closureS.

Lemma closureEUsed by
  • mathcomp.analysis.topology_theory.order_topology
  • mathcomp.analysis.topology_theory.function_spaces
  • mathcomp.analysis.topology_theory.subspace_topology
  • mathcomp.analysis.normedtype_theory.pseudometric_normed_Zmodule
  • mathcomp.analysis.normedtype_theory.normed_module

Source code
ASource code : closure A = smallest closed A.
Proof.
rewrite eqEsubset; split=> [x ? B [cB AB]|]; first exact/cB/(closureS AB).
by apply: smallest_sub; [exact: closed_closure|exact: subset_closure].
Qed.

Lemma closure_idUsed by
  • mathcomp.analysis.cantor
  • mathcomp.analysis.topology_theory.order_topology
  • mathcomp.analysis.topology_theory.connected
  • mathcomp.analysis.topology_theory.function_spaces
  • mathcomp.analysis.topology_theory.separation_axioms
  • mathcomp.analysis.topology_theory.num_topology
  • mathcomp.analysis.topology_theory.subspace_topology
  • mathcomp.analysis.topology_theory.compact
  • mathcomp.analysis.normedtype_theory.urysohn

Source code
ESource code : closed E <-> E = closure E.
Proof.
split=> [?|->]; last exact: closed_closure.
by rewrite eqEsubset; split => //; exact: subset_closure.
Qed.

End closure_lemmas.

Section regular_open_closed.
Context {TSource code : topologicalType}.

Definition regopen

limit_point : forall {T : topologicalType}, (T -> Prop) -> set T limit_point is not universe polymorphic Arguments limit_point {T} E%_function_scope _ limit_point is transparent Expands to: Constant mathcomp.analysis.topology_theory.topology_structure.limit_point Declared in library mathcomp.analysis.topology_theory.topology_structure, line 750, characters 11-22


Source code
 (ASource code : set T) := (closure A)° = A.

Definition regclosed

isolated : forall {T : topologicalType}, set T -> T -> Prop isolated is not universe polymorphic Arguments isolated {T} A%_classical_set_scope x isolated is transparent Expands to: Constant mathcomp.analysis.topology_theory.topology_structure.isolated Declared in library mathcomp.analysis.topology_theory.topology_structure, line 777, characters 11-19


Source code
 (ASource code : set T) := closure (A°) = A.

End regular_open_closed.

Section closure_interior_lemmas.
Context {TSource code : topologicalType}.
Implicit Types (A B : set T).

Lemma interiorCUsed by
  • mathcomp.analysis.topology_theory.connected
  • mathcomp.analysis.topology_theory.function_spaces

Source code
ASource code : (~` A)° = ~` closure A.
Proof.
rewrite eqEsubset; split=> x; rewrite /closure /interior nbhsE /= -existsNE.
  case=> U ? /disjoints_subset UA; exists U; rewrite not_implyE.
  split; first exact/open_nbhs_nbhs.
  by rewrite setIC UA; apply/set0P; rewrite eqxx.
case=> X; rewrite not_implyE nbhsE=> -[] -[] U xU UX AX0.
exists U => //; apply/(subset_trans UX)/disjoints_subset; rewrite setIC.
exact/eqP/negbNE/negP/set0P.
Qed.

Lemma closureCUsed by
  • mathcomp.analysis.topology_theory.num_topology

Source code
ASource code : closure (~` A) = ~` A°.
Proof.
by apply: setC_inj; rewrite -interiorC !setCK. Qed.

Lemma interiorSSource code ASource code BSource code : A `<=` B -> A° `<=` B°.
Proof.
move=> AB x.
rewrite /interior nbhsE => -[] U oxU UA.
exists U => //; move: UA AB; exact: subset_trans.
Qed.

Lemma interior_idSource code ASource code : open A <-> interior A = A.
Proof.
by rewrite -(setCK A) openC interiorC closure_id; split => [ <- | /setC_inj->].
Qed.

Lemma closureTUsed by
  • mathcomp.analysis.topology_theory.num_topology

Source code
: closure [set: T] = [set: T].
Proof.
exact/esym/closure_id/closedT. Qed.

Lemma closure0Used by
  • mathcomp.analysis.topology_theory.num_topology
  • mathcomp.analysis.topology_theory.compact
  • mathcomp.analysis.normedtype_theory.pseudometric_normed_Zmodule

Source code
: closure (@set0 T) = set0.
Proof.
exact/esym/closure_id/closed0. Qed.

Lemma interiorTUsed by
  • mathcomp.analysis.ftc
  • mathcomp.analysis.topology_theory.num_topology
  • mathcomp.analysis.normedtype_theory.num_normedtype

Source code
: (@setT T)° = setT.
Proof.
exact/interior_id/openT. Qed.

Lemma interior0Used by
  • mathcomp.analysis.topology_theory.num_topology
  • mathcomp.analysis.normedtype_theory.num_normedtype

Source code
: (@set0 T)° = set0.
Proof.
exact/interior_id/open0. Qed.

Lemma closureUUsed by
  • mathcomp.analysis.topology_theory.num_topology

Source code
ASource code BSource code : closure (A `|` B) = closure A `|` closure B.
Proof.
by apply: setC_inj; rewrite setCU -!interiorC -interiorI setCU. Qed.

Lemma interiorUSource code ASource code BSource code : A° `|` B° `<=` (A `|` B)°.
Proof.
by apply: subsetC2; rewrite setCU -!closureC setCU; exact: closureI. Qed.

Lemma closureEbigcapSource code ASource code :
  closure A = \bigcap_(xSource code in [set CSource code | closed C /\ A `<=` C]) x.
Proof.
exact: closureE. Qed.

Lemma interiorEbigcupUsed by
  • mathcomp.analysis.topology_theory.connected
  • mathcomp.analysis.topology_theory.function_spaces

Source code
ASource code : A° = \bigcup_(xSource code in [set USource code | open U /\ U `<=` A]) x.
Proof.
apply: setC_inj; rewrite -closureC closureEbigcap setC_bigcup.
rewrite -[RHS](bigcap_image _ setC idfun) /=.
apply: eq_bigcapl; split => X /=.
  by rewrite -openC -setCS setCK; exists (~` X)=> //; rewrite setCK.
by case=> Y + <-; rewrite closedC setCS.
Qed.

Lemma closureEbigcap_itvcySource code ASource code :
  closure A = \bigcap_(xSource code in closed `&` `[A, +oo[) x.
Proof.
rewrite closureEbigcap; apply: eq_bigcapl.
by split => ? /=; rewrite in_itv/= -subsetEset andbT.
Qed.

Lemma interiorEbigcup_itvNycSource code ASource code : A° = \bigcup_(xSource code in open `&` `]-oo, A]) x.
Proof.
apply: setC_inj; rewrite -closureC closureEbigcap_itvcy setC_bigcup.
rewrite -[RHS](bigcap_image _ setC); apply: eq_bigcapl.
apply/seteqP/funext => X.
rewrite -(setCK X) image_inj; first exact: setC_inj.
by rewrite /= !in_itv/= andbT !subsetEset setCS setCK openC.
Qed.

Lemma closureEbigcap_itvccUsed by
  • mathcomp.analysis.topology_theory.num_topology

Source code
ASource code BSource code :
  closed B -> A `<=` B -> closure A = \bigcap_(xSource code in closed `&` `[A, B]) x.
Proof.
move=> cB; rewrite -subsetEset => AB.
rewrite closureEbigcap_itvcy /bigcap; apply/seteqP.
split => x /= H Y [] cY; rewrite in_itv/= => /andP[] AY YB.
  by have:= H Y; apply; split => //; rewrite in_itv/= AY.
apply/(@subIsetl _ _ B)/(H (Y `&` B)); split; first exact: closedI.
rewrite in_itv/=; apply/andP.
by rewrite Order.MeetTheory.lexI Order.MeetTheory.leIr AY AB.
Qed.

Lemma interiorEbigcup_itvccSource code ASource code BSource code :
  open B -> B `<=` A -> A° = \bigcup_(xSource code in open `&` `[B, A]) x.
Proof.
rewrite -closedC -subsetCP => cB AB.
apply: setC_inj; rewrite -closureC (closureEbigcap_itvcc cB AB) setC_bigcup.
rewrite -[RHS](bigcap_image _ setC); apply: eq_bigcapl.
apply/seteqP/funext => X.
rewrite -(setCK X) image_inj; first exact: setC_inj.
by rewrite /= !in_itv/= !Order.CTBDistrLatticeTheory.leC setCK openC andbC.
Qed.

Lemma interior_closed_regopenSource code ASource code : closed A -> regopen A°.
Proof.
move=> cA; rewrite /regopen eqEsubset; split=> x.
  rewrite /closure [X in X -> _]/interior nbhsE => -[] U oxU UciA.
  rewrite /interior nbhsE /=; exists U => //.
  apply: (subset_trans UciA) => y /= yA.
  apply: cA => B /yA; apply/subset_nonempty; apply: setSI.
  exact: interior_subset.
rewrite {1}/interior nbhsE=> -[] U [] oU Ux UA.
rewrite {1}/interior nbhsE /=; exists U=> //.
have:= UA; rewrite open_subsetE// => /subset_trans; apply.
exact: subset_closure.
Qed.

Lemma closure_open_regclosedSource code ASource code : open A -> regclosed (closure A).
Proof.
rewrite /regclosed -(setCK A) openC => cCA.
by rewrite closureC -[in RHS]interior_closed_regopen// !(closureC, interiorC).
Qed.

Lemma interior_closure_idemSource code : @idempotent_fun (set T) (interior \o closure).
Proof.

Lemma closure_interior_idemSource code : @idempotent_fun (set T) (closure \o interior).
Proof.
move=> ?; exact/closure_open_regclosed/open_interior. Qed.

End closure_interior_lemmas.
#[deprecated(since="mathcomp-analysis 1.17.0", note="renamed to `closureC`")]
Notation closure_setCSource code := closureC (only parsing).

Arguments closureEbigcap_itvcc {T A}.
Arguments interiorEbigcup_itvcc {T A}.

Definition dense

Abbreviation closed e a := (closed_mem e (mem a)) Expands to: Abbreviation mathcomp.boot.fingraph.closed Declared in library mathcomp.boot.fingraph, line 229, characters 0-46


Used by
  • mathcomp.analysis.borel_hierarchy
  • mathcomp.analysis.topology_theory.num_topology
  • mathcomp.analysis.sequences
  • mathcomp.analysis.normedtype_theory.pseudometric_normed_Zmodule

Source code
 (TSource code : topologicalType) (SSource code : set T) :=
  forall (OSource code : set T), O !=set0 -> open O -> O `&` S !=set0.

Lemma denseNEUsed by
  • mathcomp.analysis.sequences

Source code
 (TSource code : topologicalType) (SSource code : set T) : ~ dense S ->
  exists OSource code, (exists xSource code, open_nbhs x O) /\ (O `&` S = set0).
Proof.
rewrite /dense /open_nbhs.
move=> /existsNP[X /not_implyP[[x Xx] /not_implyP[ Ox /forallNP A]]].
by exists X; split; [exists x | rewrite -subset0; apply/A].
Qed.

Lemma denseIUsed by
  • mathcomp.analysis.borel_hierarchy

Source code
 (TSource code : topologicalType) (ASource code BSource code : set T) :
  open A -> dense A -> dense B -> dense (A `&` B).
Proof.
move=> oA dA dB C C0 oC.
have CA0 : C `&` A !=set0 by exact: dA.
suff: (C `&` A) `&` B !=set0 by rewrite setIA.
by apply: dB => //; exact: openI.
Qed.

Lemma dense0Used by
  • mathcomp.analysis.borel_hierarchy

Source code
{RSource code : ptopologicalType} : ~ dense (@set0 R).
Proof.
apply/existsNP; exists setT.
apply/not_implyP; split; first exact/set0P/setT0.
apply/not_implyP; split; first exact: openT.
by rewrite setTI => -[].
Qed.

Section basis.
Context {TSource code : topologicalType}.

Definition basis

closure_subset : forall {T : topologicalType} [A B : set T], (A `<=` B)%classic -> (topology_structure.closure A `<=` topology_structure.closure B)%classic closure_subset is not universe polymorphic Expanded type for implicit arguments closure_subset : forall {T : topologicalType} [A B : set T], (A `<=` B)%classic -> forall [t : T], topology_structure.closure A t -> forall [B0 : set T], nbhs t B0 -> exists a : T, (B `&` B0)%classic a Arguments closure_subset {T} [A B]%_classical_set_scope _ [t] _ [B] _ closure_subset is transparent Expands to: Constant mathcomp.analysis.topology_theory.topology_structure.closure_subset Declared in library mathcomp.analysis.topology_theory.topology_structure, line 933, characters 11-25


Source code
 (BSource code : set_system T) :=
  B `<=` open /\ forall xSource code : T, filter_from [set USource code | B U /\ U x] id --> x.

Definition nbhs_basis

regopen : forall {T : topologicalType}, set T -> Prop regopen is not universe polymorphic Arguments regopen {T} A%_classical_set_scope regopen is transparent Expands to: Constant mathcomp.analysis.topology_theory.topology_structure.regopen Declared in library mathcomp.analysis.topology_theory.topology_structure, line 953, characters 11-18


Used by
  • mathcomp.analysis.normedtype_theory.tvs
  • mathcomp.analysis.normedtype_theory.normed_module

Source code
 (xSource code : T) (BSource code : set (set T)) :=
  B `<=` nbhs x /\ filter_from [set USource code | B U] id --> x.

Definition separable_set

regclosed : forall {T : topologicalType}, set T -> Prop regclosed is not universe polymorphic Arguments regclosed {T} A%_classical_set_scope regclosed is transparent Expands to: Constant mathcomp.analysis.topology_theory.topology_structure.regclosed Declared in library mathcomp.analysis.topology_theory.topology_structure, line 955, characters 11-20


Source code
 (ASource code : set T) := exists DSource code,
  [/\ countable D, D `<=` A &
      forall OSource code, A `&` O !=set0 -> open O -> O `&` D !=set0].

Lemma separable_set0Source code : separable_set set0.
Proof.
by exists set0; split => // U; rewrite set0I => /set0P; rewrite eqxx.
Qed.

Definition separable

dense : forall [T : topologicalType], set T -> Prop dense is not universe polymorphic Arguments dense [T] S%_classical_set_scope dense is transparent Expands to: Constant mathcomp.analysis.topology_theory.topology_structure.dense Declared in library mathcomp.analysis.topology_theory.topology_structure, line 1092, characters 11-16


Source code
:= separable_set setT.

Definition second_countable

basis : forall {T : topologicalType}, set_system T -> Prop basis is not universe polymorphic Arguments basis {T} B basis is transparent Expands to: Constant mathcomp.analysis.topology_theory.topology_structure.basis Declared in library mathcomp.analysis.topology_theory.topology_structure, line 1123, characters 11-16


Used by
  • mathcomp.analysis.topology_theory.compact

Source code
:= exists2 BSource code, countable B & basis B.

Lemma basisPSource code (BSource code : set_system T) : basis B <-> B `<=`open
  /\ (forall USource code: set T, open U -> U = \bigcup_(VSource code in [set WSource code | B W /\ W `<=`U]) V).
Proof.
split=> [[oB bB]|[Bo dec]].
- split=> // U oU.
  apply/seteqP; split => [x Ux/=|]; last by apply: bigcup_sub => V /= [].
  have : nbhs x U by exact: open_nbhs_nbhs.
  by move=> /(bB x U)[V [BV Vx] VU]; exists V.
- split=> // x.
  rewrite /cvg_to nbhsE/= => P [U [/(dec U)->] [A [BA AU] Ax] UP].
  by exists A => // t At; apply: UP; exists A.
Qed.

Lemma separableTESource code : separable = exists ASource code : set T, countable A /\ dense A.
Proof.
apply: eq_exists => A.
rewrite [X in [/\ _, _ & X]] (_ : _ = dense A)//.
  by under eq_forall do rewrite setTI.
by apply/propext; split=> [|] [].
Qed.

Lemma second_countable_separableSource code : second_countable -> separable.
Proof.
have [T0 _|/set0P[x _]] := eqVneq [set: T] set0.
  by rewrite /separable T0; exact: separable_set0.
move=> [B] /(sub_countable (card_le_setD B [set set0])) cB /basisP[BO BB].
have /choice[f nef] : forall USource code, exists xSource code, (B `\ set0) U -> U x.
  move=> U.
  have [[BU /eqP/set0P[y Uy]]|/not_andP[|/contrapT]] := pselect ((B `\ set0) U).
  - by exists y.
  - by move=> BU; exists x => -[].
  - by move=> U0; exists x => -[].
exists (f @` (B `\ set0)); split => //.
  exact: (card_le_trans (card_image_le _ _)).
move=> U; rewrite setTI/= => /[swap] /BB -> /bigcup_nonempty[V [BV VU]] V0.
have ? : (B `\ set0) V by split => //; exact/eqP/set0P.
by exists (f V); split; exists V => //; exact: nef.
Qed.

Lemma bigcupT_separableSource code (ASource code : (set T)^nat) :
  (forall nSource code, separable_set (A n)) -> separable_set (\bigcup_nSource code A n).
Proof.
move=> /choice[D_ /all_and3[cDx DAx dDx]].
exists (\bigcup_nSource code D_ n); split; [exact: bigcup_countable|exact: subset_bigcup|].
move=> O [x [[n _ Anx] Ox] oO].
have /dDx/(_ oO)[y [Oy Dny]] : A n `&` O !=set0 by exists x.
by exists y; split => //; exact: bigcup_sup Dny.
Qed.

Lemma bigcup_separableSource code (ASource code : (set T)^nat) (PSource code : set nat) :
  (forall nSource code, P n -> separable_set (A n)) ->
  separable_set (\bigcup_(iSource code in P) A i).
Proof.
rewrite bigcup_mkcond => nPsA; apply: bigcupT_separable => n.
by case: ifPn => [/set_mem/nPsA//|_]; exact: separable_set0.
Qed.

End basis.

Section ClopenSets.
Implicit Type T : topologicalType.

Definition clopen

nbhs_basis : forall {T : topologicalType}, T -> set (set T) -> Prop nbhs_basis is not universe polymorphic Arguments nbhs_basis {T} x B%_classical_set_scope nbhs_basis is transparent Expands to: Constant mathcomp.analysis.topology_theory.topology_structure.nbhs_basis Declared in library mathcomp.analysis.topology_theory.topology_structure, line 1126, characters 11-21


Used by
  • mathcomp.analysis.cantor
  • mathcomp.analysis.topology_theory.order_topology
  • mathcomp.analysis.topology_theory.connected
  • mathcomp.analysis.topology_theory.separation_axioms
  • mathcomp.analysis.topology_theory.subspace_topology
  • mathcomp.analysis.topology_theory.compact

Source code
{TSource code} (ASource code : set T) := open A /\ closed A.

Lemma clopenIUsed by
  • mathcomp.analysis.cantor
  • mathcomp.analysis.topology_theory.separation_axioms

Source code
{TSource code} : setI_closed (@clopen T).
Proof.
by move=> ? ? [] ? ? [] ? ?; split; [exact: openI|exact: closedI]. Qed.

Lemma clopenUSource code {TSource code} : setU_closed (@clopen T).
Proof.
by move=> ? ? [] ? ? [] ? ?; split; [exact: openU|exact: closedU]. Qed.

Lemma clopenCUsed by
  • mathcomp.analysis.cantor

Source code
{TSource code} (ASource code BSource code : set T) : clopen A -> clopen (~`A).
Proof.
by case=> ? ?; split;[exact: closed_openC | exact: open_closedC ]. Qed.

Lemma clopen0Source code {TSource code} : @clopen T set0.
Proof.
by split; [exact: open0 | exact: closed0]. Qed.

Lemma clopenTUsed by
  • mathcomp.analysis.cantor
  • mathcomp.analysis.topology_theory.separation_axioms
  • mathcomp.analysis.topology_theory.compact

Source code
{TSource code} : clopen [set: T].
Proof.
by split; [exact: openT | exact: closedT]. Qed.

Lemma preimage_clopenUsed by
  • mathcomp.analysis.topology_theory.function_spaces

Source code
{TSource code USource code : topologicalType} (fSource code : T -> U) (ASource code : set U) :
 clopen A -> continuous f -> clopen (f @^-1` A).
Proof.
by case=> ? ?; split; [ exact: open_comp | exact: preimage_closed]. Qed.

End ClopenSets.
#[deprecated(since="mathcomp-analysis 1.16.0", note="renamed to `preimage_clopen`")]
Notation clopen_compSource code := preimage_clopen (only parsing).

HBUsed by
  • mathcomp.analysis.homotopy_theory.continuous_path

Source code
.mixinUsed by
  • mathcomp.analysis.homotopy_theory.continuous_path

Source code
RecordUsed by
  • mathcomp.analysis.homotopy_theory.continuous_path

Source code
isContinuousUsed by
  • mathcomp.analysis.homotopy_theory.continuous_path

Source code
{XUsed by
  • mathcomp.analysis.homotopy_theory.continuous_path

Source code
YUsed by
  • mathcomp.analysis.homotopy_theory.continuous_path

Source code
:Used by
  • mathcomp.analysis.homotopy_theory.continuous_path

Source code
nbhsType}Used by
  • mathcomp.analysis.homotopy_theory.continuous_path

Source code
 (f : X -> Y):= {
  continuous_fun : continuous f
}.

#[shortUsed by
  • mathcomp.analysis.topology_theory.subspace_topology
  • mathcomp.analysis.normedtype_theory.tvs

Source code
(typeUsed by
  • mathcomp.analysis.topology_theory.subspace_topology
  • mathcomp.analysis.normedtype_theory.tvs

Source code
=Used by
  • mathcomp.analysis.topology_theory.subspace_topology
  • mathcomp.analysis.normedtype_theory.tvs

Source code
 "continuousType"Used by
  • mathcomp.analysis.topology_theory.subspace_topology
  • mathcomp.analysis.normedtype_theory.tvs

Source code
)]Used by
  • mathcomp.analysis.topology_theory.subspace_topology
  • mathcomp.analysis.normedtype_theory.tvs

Source code

HBUsed by
  • mathcomp.analysis.topology_theory.subspace_topology
  • mathcomp.analysis.normedtype_theory.tvs

Source code
.structureUsed by
  • mathcomp.analysis.topology_theory.subspace_topology
  • mathcomp.analysis.normedtype_theory.tvs

Source code
DefinitionUsed by
  • mathcomp.analysis.topology_theory.subspace_topology
  • mathcomp.analysis.normedtype_theory.tvs

Source code
ContinuousUsed by
  • mathcomp.analysis.topology_theory.subspace_topology
  • mathcomp.analysis.normedtype_theory.tvs

Source code
{XUsed by
  • mathcomp.analysis.topology_theory.subspace_topology
  • mathcomp.analysis.normedtype_theory.tvs

Source code
YUsed by
  • mathcomp.analysis.topology_theory.subspace_topology
  • mathcomp.analysis.normedtype_theory.tvs

Source code
:Used by
  • mathcomp.analysis.topology_theory.subspace_topology
  • mathcomp.analysis.normedtype_theory.tvs

Source code
nbhsType}Used by
  • mathcomp.analysis.topology_theory.subspace_topology
  • mathcomp.analysis.normedtype_theory.tvs

Source code
:= {
  fSource code of @isContinuous X Y f
}.

#[deprecated(since="mathcomp-analysis 1.17.0",
             note="use `continuous_fun` instead")]
Notation cts_funSource code := (continuous_fun) (only parsing).

HBSource code.instanceSource code DefinitionSource code _Source code {XSource code YSource code :Source code topologicalType}Source code :=
  gen_eqMixin (continuousType X Y).
HBSource code.instanceSource code DefinitionSource code _Source code {XSource code YSource code :Source code topologicalType}Source code :=
  gen_choiceMixin (continuousType X Y).

Lemma continuousEPSource code {XSource code YSource code : nbhsType} (fSource code gSource code : continuousType X Y) :
  f = g <-> f =1 g.
Proof.
case: f g => [f [[ffun]]] [g [[gfun]]]/=; split=> [[->//]|/funext eqfg].
rewrite eqfg in ffun *; congr {| Continuous.sort := _; Continuous.class := {|
  Continuous.topology_structure_isContinuous_mixin :=
    {|isContinuous.continuous_fun := _|}|}|}.
exact: Prop_irrelevance.
Qed.

Definition mkcts

separable_set : forall {T : topologicalType}, set T -> Prop separable_set is not universe polymorphic Arguments separable_set {T} A%_classical_set_scope separable_set is transparent Expands to: Constant mathcomp.analysis.topology_theory.topology_structure.separable_set Declared in library mathcomp.analysis.topology_theory.topology_structure, line 1129, characters 11-24


Source code
{XSource code YSource code : nbhsType} (fSource code : X -> Y) (f_ctsSource code : continuous f) := f.

HBSource code.instanceSource code DefinitionSource code _Source code {XSource code YSource code :Source code nbhsType}Source code (f: X -> Y) (f_cts : continuous f) :=
  @isContinuous.Build X Y (mkcts f_cts) f_cts.

Section continuous_comp.
Context {XSource code YSource code ZSource code : topologicalType}
  (fSource code : continuousType X Y) (gSource code : continuousType Y Z).

#[local] Lemma cts_fun_compSource code : continuous (g \o f).
Proof.
move=> x; apply: continuous_comp; exact: continuous_fun. Qed.

HBSource code.instanceSource code DefinitionSource code _Source code :=Source code @isContinuousSource code.Build X Z (g \o f) cts_fun_comp.

End continuous_comp.

Section continuous_id.
Context {XSource code : topologicalType}.

HBSource code.instanceSource code DefinitionSource code _Source code :=Source code @isContinuousSource code.Build X X (@idfun X) id_continuous.

End continuous_id.

Section continuous_const.
Context {XSource code YSource code : topologicalType} (ySource code : Y).

#[local] Lemma cts_constSource code : continuous (@cst X Y y).
Proof.
by move=> x; exact: cvg_cst. Qed.

HBSource code.instanceSource code DefinitionSource code _Source code :=Source code @isContinuousSource code.Build X Y (cst y) cts_const.

End continuous_const.