This theory deals with convergence in topological spaces. Contributed by Daniel de la Concepcion.
Nets are a generalization of sequences. It is known that sequences do not determine the behavior of the topological spaces that are not first countable; i.e., have a countable neighborhood base for each point. To solve this problem, nets were defined so that the behavior of any topological space can be thought in terms of convergence of nets.
We say that a relation \(r\) directs a set \(X\) if the relation is reflexive, transitive on \(X\) and for every two elements \(x,y\) of \(X\) there is some element \(z\) such that both \(x\) and \(y\) are in the relation with \(z\). Note that this naming is a bit inconsistent with what is defined in Order_ZF where we define what it means that \(r\) \( up-directs \) \(X\) (the third condition in the definition below) or \(r\) \( down-directs \) \(X\). This naming inconsistency will be fixed in the future (maybe).
definition
\( r\text{ directs }X \equiv \text{refl}(X,r) \wedge \text{trans}(r) \wedge (\forall x\in X.\ \forall y\in X.\ \exists z\in X.\ \langle x,z\rangle \in r \wedge \langle y,z\rangle \in r) \)
Any linear order is a directed set; in particular \((\mathbb{N},\leq)\).
lemma linorder_imp_directed:
assumes \( \text{IsLinOrder}(X,r) \)
shows \( r\text{ directs }X \)proofNatural numbers are a directed set.
corollary Le_directs_nat:
shows \( \text{IsLinOrder}(nat,Le) \), \( Le\text{ directs }nat \)proofWe are able to define the concept of net, now that we now what a directed set is.
definition
\( N \text{ is a net on } X \equiv \text{fst}(N):domain(\text{fst}(N))\rightarrow X \wedge (\text{snd}(N)\text{ directs }domain(\text{fst}(N))) \wedge domain(\text{fst}(N))\neq 0 \)
Provided a topology and a net directed on its underlying set, we can talk about convergence of the net in the topology.
definition (in topology0)
\( N \text{ is a net on } \bigcup T \Longrightarrow N \rightarrow _N x \equiv \) \( (x\in \bigcup T) \wedge (\forall U\in Pow(\bigcup T).\ (x\in int(U) \longrightarrow (\exists t\in domain(\text{fst}(N)).\ \forall m\in domain(\text{fst}(N)).\ \) \( (\langle t,m\rangle \in \text{snd}(N) \longrightarrow \text{fst}(N)m\in U)))) \)
One of the most important directed sets, is the neighborhoods of a point.
theorem (in topology0) directedset_neighborhoods:
assumes \( x\in \bigcup T \)
defines \( \text{Neigh}\equiv \{U\in Pow(\bigcup T).\ x\in int(U)\} \)
defines \( r\equiv \{\langle U,V\rangle \in (\text{Neigh} \times \text{Neigh}).\ V\subseteq U\} \)
shows \( r\text{ directs }\text{Neigh} \)proofThere can be nets directed by the neighborhoods that converge to the point; if there is a choice function.
theorem (in topology0) net_direct_neigh_converg:
assumes \( x\in \bigcup T \)
defines \( \text{Neigh}\equiv \{U\in Pow(\bigcup T).\ x\in int(U)\} \)
defines \( r\equiv \{\langle U,V\rangle \in (\text{Neigh} \times \text{Neigh}).\ V\subseteq U\} \)
assumes \( f:\text{Neigh}\rightarrow \bigcup T \), \( \forall U\in \text{Neigh}.\ f(U) \in U \)
shows \( \langle f,r\rangle \rightarrow _N x \)proofNets are a generalization of sequences that can make us see that not all topological spaces can be described by sequences. Nevertheless, nets are not always the tool used to deal with convergence. The reason is that they make use of directed sets which are completely unrelated with the topology.
The topological tools to deal with convergence are what is called filters.
definition
\( \mathfrak{F} \text{ is a filter on } X \equiv (\emptyset \notin \mathfrak{F} ) \wedge (X\in \mathfrak{F} ) \wedge \mathfrak{F} \subseteq Pow(X) \wedge \) \( (\forall A\in \mathfrak{F} .\ \forall B\in \mathfrak{F} .\ A\cap B\in \mathfrak{F} ) \wedge (\forall B\in \mathfrak{F} .\ \forall C\in Pow(X).\ B\subseteq C \longrightarrow C\in \mathfrak{F} ) \)
The next lemma splits the the definition of a filter into four conditions to make it easier to reference each one separately in proofs.
lemma is_filter_def_split:
assumes \( \mathfrak{F} \text{ is a filter on } X \)
shows \( \emptyset \notin \mathfrak{F} \), \( X\in \mathfrak{F} \), \( \mathfrak{F} \subseteq Pow(X) \), \( \forall A\in \mathfrak{F} .\ \forall B\in \mathfrak{F} .\ A\cap B\in \mathfrak{F} \) and \( \forall B\in \mathfrak{F} .\ \forall C\in Pow(X).\ B\subseteq C \longrightarrow C\in \mathfrak{F} \) using assms unfolding IsFilter_defFilters are closed with respect to taking finite intersections.
lemma filter_fin_inter_closed:
assumes \( \mathfrak{F} \text{ is a filter on } X \), \( M\in \text{FinPow}(\mathfrak{F} )\setminus \{\emptyset \} \)
shows \( \bigcap M \in \mathfrak{F} \) using assms, is_filter_def_split(4), inter_two_inter_finFilters are closed with respect to taking supersets.
lemma filter_superset_closed:
assumes \( \mathfrak{F} \text{ is a filter on } X \), \( \mathcal{A} \subseteq \mathfrak{F} \)
shows \( \text{Supersets}(X,\mathcal{A} ) \subseteq \mathfrak{F} \) using assms, is_filter_def_split(5) unfolding Supersets_defNot all the sets of a filter are needed to be consider at all times; as it happens with a topology we can consider bases.
definition
\( C \text{ is a base filter } \mathfrak{F} \equiv C\subseteq \mathfrak{F} \wedge \mathfrak{F} =\{A\in Pow(\bigcup \mathfrak{F} ).\ (\exists D\in C.\ D\subseteq A)\} \)
Not every set is a base for a filter, as it happens with topologies, there is a condition to be satisfied.
definition
\( C \text{ satisfies the filter base condition } \equiv (\forall A\in C.\ \forall B\in C.\ \exists D\in C.\ D\subseteq A\cap B) \wedge C\neq 0 \wedge 0\notin C \)
Every set of a filter contains a set from the filter's base.
lemma basic_element_filter:
assumes \( A\in \mathfrak{F} \) and \( C \text{ is a base filter } \mathfrak{F} \)
shows \( \exists D\in C.\ D\subseteq A \)proofThe following two results state that the filter base condition is necessary and sufficient for the filter generated by a base, to be an actual filter. The third result, rewrites the previous two.
theorem basic_filter_1:
assumes \( C \text{ is a base filter } \mathfrak{F} \) and \( C \text{ satisfies the filter base condition } \)
shows \( \mathfrak{F} \text{ is a filter on } \bigcup \mathfrak{F} \)proofA base filter satisfies the filter base condition.
theorem basic_filter_2:
assumes \( C \text{ is a base filter } \mathfrak{F} \) and \( \mathfrak{F} \text{ is a filter on } \bigcup \mathfrak{F} \)
shows \( C \text{ satisfies the filter base condition } \)proofA base filter for a collection satisfies the filter base condition iff that collection is in fact a filter.
theorem basic_filter:
assumes \( C \text{ is a base filter } \mathfrak{F} \)
shows \( (C \text{ satisfies the filter base condition }) \longleftrightarrow (\mathfrak{F} \text{ is a filter on } \bigcup \mathfrak{F} ) \) using assms, basic_filter_1, basic_filter_2A base for a filter determines a filter up to the underlying set.
theorem base_unique_filter:
assumes \( C \text{ is a base filter } \mathfrak{F} _1 \) and \( C \text{ is a base filter } \mathfrak{F} _2 \)
shows \( \mathfrak{F} _1=\mathfrak{F} _2 \longleftrightarrow \bigcup \mathfrak{F} _1=\bigcup \mathfrak{F} _2 \) using assms unfolding IsBaseFilter_defSuppose that we take any nonempty collection \(C\) of subsets of some set \(X\). Then this collection is a base filter for the collection of all supersets (in \(X\)) of sets from \(C\).
theorem base_unique_filter_set1:
assumes \( C \subseteq Pow(X) \) and \( C\neq 0 \)
shows \( C \text{ is a base filter } \{A\in Pow(X).\ \exists D\in C.\ D\subseteq A\} \) and \( \bigcup \{A\in Pow(X).\ \exists D\in C.\ D\subseteq A\}=X \)proofA collection \(C\) that satisfies the filter base condition is a base filter for some other collection \(\frak F\) iff \(\frak F\) is the collection of supersets of \(C\).
theorem base_unique_filter_set2:
assumes \( C\subseteq Pow(X) \) and \( C \text{ satisfies the filter base condition } \)
shows \( ((C \text{ is a base filter } \mathfrak{F} ) \wedge \bigcup \mathfrak{F} =X) \longleftrightarrow \mathfrak{F} =\{A\in Pow(X).\ \exists D\in C.\ D\subseteq A\} \) using assms, IsBaseFilter_def, SatisfiesFilterBase_def, base_unique_filter_set1A simple corollary from the previous lemma.
corollary base_unique_filter_set3:
assumes \( C\subseteq Pow(X) \) and \( C \text{ satisfies the filter base condition } \)
shows \( C \text{ is a base filter } \{A\in Pow(X).\ \exists D\in C.\ D\subseteq A\} \) and \( \bigcup \{A\in Pow(X).\ \exists D\in C.\ D\subseteq A\} = X \)proofEvery filter can be expanded by a set
lemma extend_filter:
assumes \( A\in Pow(X) \), \( \mathfrak{F} \text{ is a filter on } X \), \( A\neq 0 \), \( A\notin \mathfrak{F} \), \( X\setminus A\notin \mathfrak{F} \)
shows \( \exists \mathfrak{G} .\ (\mathfrak{G} \text{ is a filter on } X) \wedge A\in \mathfrak{G} \wedge \mathfrak{F} \subseteq \mathfrak{G} \)proofThe convergence for filters is much easier concept to write. Given a topology and a filter on the same underlying set, we can define convergence as containing all the neighborhoods of the point.
definition (in topology0)
\( \mathfrak{F} \text{ is a filter on }\bigcup T \Longrightarrow \mathfrak{F} \rightarrow _Fx \equiv \) \( x\in \bigcup T \wedge (\{U\in Pow(\bigcup T).\ x\in int(U)\} \subseteq \mathfrak{F} ) \)
The neighborhoods of a point form a filter that converges to that point.
lemma (in topology0) neigh_filter:
assumes \( x\in \bigcup T \)
defines \( \text{Neigh}\equiv \{U\in Pow(\bigcup T).\ x\in int(U)\} \)
shows \( \text{Neigh} \text{ is a filter on }\bigcup T \) and \( \text{Neigh} \rightarrow _F x \)proofNote that with the net we built in a previous result, it wasn't clear that we could construct an actual net that converged to the given point without the axiom of choice. With filters, there is no problem.
Another positive point of filters is due to the existence of filter basis. If we have a basis for a filter, then the filter converges to a point iff every neighborhood of that point contains a basic filter element.
theorem (in topology0) convergence_filter_base1:
assumes \( \mathfrak{F} \text{ is a filter on } \bigcup T \) and \( C \text{ is a base filter } \mathfrak{F} \) and \( \mathfrak{F} \rightarrow _F x \)
shows \( \forall U\in Pow(\bigcup T).\ x\in int(U) \longrightarrow (\exists D\in C.\ D\subseteq U) \) and \( x\in \bigcup T \)proofA sufficient condition for a filter to converge to a point.
theorem (in topology0) convergence_filter_base2:
assumes \( \mathfrak{F} \text{ is a filter on } \bigcup T \) and \( C \text{ is a base filter } \mathfrak{F} \) and \( \forall U\in Pow(\bigcup T).\ x\in int(U) \longrightarrow (\exists D\in C.\ D\subseteq U) \) and \( x\in \bigcup T \)
shows \( \mathfrak{F} \rightarrow _F x \)proofA necessary and sufficient condition for a filter to converge to a point.
theorem (in topology0) convergence_filter_base_eq:
assumes \( \mathfrak{F} \text{ is a filter on } \bigcup T \) and \( C \text{ is a base filter } \mathfrak{F} \)
shows \( (\mathfrak{F} \rightarrow _F x) \longleftrightarrow ((\forall U\in Pow(\bigcup T).\ x\in int(U) \longrightarrow (\exists D\in C.\ D\subseteq U)) \wedge x\in \bigcup T) \)proofassumes \( r \text{ is total on } X \)
shows \( \text{refl}(X,r) \)assumes \( \text{IsLinOrder}(X,r) \)
shows \( r\text{ directs }X \)assumes \( U\subseteq A \) and \( U\in T \)
shows \( U \subseteq int(A) \)assumes \( x\in \bigcup T \)
defines \( \text{Neigh}\equiv \{U\in Pow(\bigcup T).\ x\in int(U)\} \)
defines \( r\equiv \{\langle U,V\rangle \in (\text{Neigh} \times \text{Neigh}).\ V\subseteq U\} \)
shows \( r\text{ directs }\text{Neigh} \)assumes \( \mathfrak{F} \text{ is a filter on } X \)
shows \( \emptyset \notin \mathfrak{F} \), \( X\in \mathfrak{F} \), \( \mathfrak{F} \subseteq Pow(X) \), \( \forall A\in \mathfrak{F} .\ \forall B\in \mathfrak{F} .\ A\cap B\in \mathfrak{F} \) and \( \forall B\in \mathfrak{F} .\ \forall C\in Pow(X).\ B\subseteq C \longrightarrow C\in \mathfrak{F} \)assumes \( \forall V\in T.\ \forall W\in T.\ V \cap W \in T \) and \( N \neq 0 \) and \( N \in \text{FinPow}(T) \)
shows \( \bigcap N \in T \)assumes \( \mathfrak{F} \text{ is a filter on } X \)
shows \( \emptyset \notin \mathfrak{F} \), \( X\in \mathfrak{F} \), \( \mathfrak{F} \subseteq Pow(X) \), \( \forall A\in \mathfrak{F} .\ \forall B\in \mathfrak{F} .\ A\cap B\in \mathfrak{F} \) and \( \forall B\in \mathfrak{F} .\ \forall C\in Pow(X).\ B\subseteq C \longrightarrow C\in \mathfrak{F} \)assumes \( A\in \mathfrak{F} \) and \( C \text{ is a base filter } \mathfrak{F} \)
shows \( \exists D\in C.\ D\subseteq A \)assumes \( C \text{ is a base filter } \mathfrak{F} \) and \( C \text{ satisfies the filter base condition } \)
shows \( \mathfrak{F} \text{ is a filter on } \bigcup \mathfrak{F} \)assumes \( C \text{ is a base filter } \mathfrak{F} \) and \( \mathfrak{F} \text{ is a filter on } \bigcup \mathfrak{F} \)
shows \( C \text{ satisfies the filter base condition } \)assumes \( C \subseteq Pow(X) \) and \( C\neq 0 \)
shows \( C \text{ is a base filter } \{A\in Pow(X).\ \exists D\in C.\ D\subseteq A\} \) and \( \bigcup \{A\in Pow(X).\ \exists D\in C.\ D\subseteq A\}=X \)assumes \( C\subseteq Pow(X) \) and \( C \text{ satisfies the filter base condition } \)
shows \( ((C \text{ is a base filter } \mathfrak{F} ) \wedge \bigcup \mathfrak{F} =X) \longleftrightarrow \mathfrak{F} =\{A\in Pow(X).\ \exists D\in C.\ D\subseteq A\} \)assumes \( C \subseteq Pow(X) \) and \( C\neq 0 \)
shows \( C \text{ is a base filter } \{A\in Pow(X).\ \exists D\in C.\ D\subseteq A\} \) and \( \bigcup \{A\in Pow(X).\ \exists D\in C.\ D\subseteq A\}=X \)assumes \( C\subseteq Pow(X) \) and \( C \text{ satisfies the filter base condition } \)
shows \( C \text{ is a base filter } \{A\in Pow(X).\ \exists D\in C.\ D\subseteq A\} \) and \( \bigcup \{A\in Pow(X).\ \exists D\in C.\ D\subseteq A\} = X \)assumes \( C \text{ is a base filter } \mathfrak{F} \)
shows \( (C \text{ satisfies the filter base condition }) \longleftrightarrow (\mathfrak{F} \text{ is a filter on } \bigcup \mathfrak{F} ) \)assumes \( \mathfrak{F} \text{ is a filter on } \bigcup T \) and \( C \text{ is a base filter } \mathfrak{F} \) and \( \mathfrak{F} \rightarrow _F x \)
shows \( \forall U\in Pow(\bigcup T).\ x\in int(U) \longrightarrow (\exists D\in C.\ D\subseteq U) \) and \( x\in \bigcup T \)assumes \( \mathfrak{F} \text{ is a filter on } \bigcup T \) and \( C \text{ is a base filter } \mathfrak{F} \) and \( \forall U\in Pow(\bigcup T).\ x\in int(U) \longrightarrow (\exists D\in C.\ D\subseteq U) \) and \( x\in \bigcup T \)
shows \( \mathfrak{F} \rightarrow _F x \)