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 (0\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 \( 0\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_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 \)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) \)proofIn this section we show that filters do not generalize nets, but still nets and filter are in w way equivalent as far as convergence is considered.
Let's build now a net from a filter, such that both converge to the same points.
definition
\( \mathfrak{F} \text{ is a filter on } \bigcup \mathfrak{F} \Longrightarrow \text{Net}(\mathfrak{F} ) \equiv \) \( \langle \{\langle A,\text{fst}(A)\rangle .\ A\in \{\langle x,F\rangle \in (\bigcup \mathfrak{F} )\times \mathfrak{F} .\ x\in F\}\},\{\langle A,B\rangle \in \{\langle x,F\rangle \in (\bigcup \mathfrak{F} )\times \mathfrak{F} .\ x\in F\}\times \{\langle x,F\rangle \in (\bigcup \mathfrak{F} )\times \mathfrak{F} .\ x\in F\}.\ \text{snd}(B)\subseteq \text{snd}(A)\}\rangle \)
Net of a filter is indeed a net.
theorem net_of_filter_is_net:
assumes \( \mathfrak{F} \text{ is a filter on } X \)
shows \( (\text{Net}(\mathfrak{F} )) \text{ is a net on } X \)proofIf a filter converges to some point then its net converges to the same point.
theorem (in topology0) filter_conver_net_of_filter_conver:
assumes \( \mathfrak{F} \text{ is a filter on } \bigcup T \) and \( \mathfrak{F} \rightarrow _F x \)
shows \( (\text{Net}(\mathfrak{F} )) \rightarrow _N x \)proofIf a net converges to a point, then a filter also converges to a point.
theorem (in topology0) net_of_filter_conver_filter_conver:
assumes \( \mathfrak{F} \text{ is a filter on }\bigcup T \) and \( (\text{Net}(\mathfrak{F} )) \rightarrow _N x \)
shows \( \mathfrak{F} \rightarrow _F x \)proofA filter converges to a point if and only if its net converges to the point.
theorem (in topology0) filter_conver_iff_net_of_filter_conver:
assumes \( \mathfrak{F} \text{ is a filter on }\bigcup T \)
shows \( (\mathfrak{F} \rightarrow _F x) \longleftrightarrow ((\text{Net}(\mathfrak{F} )) \rightarrow _N x) \) using filter_conver_net_of_filter_conver, net_of_filter_conver_filter_conver, assmsThe previous result states that, when considering convergence, the filters do not generalize nets. When considering a filter, there is always a net that converges to the same points of the original filter.
Now we see that with nets, results come naturally applying the axiom of choice; but with filters, the results come, may be less natural, but with no choice. The reason is that \( \text{Net}(\mathfrak{F} ) \) is a net that doesn't come into our attention as a first choice; maybe because we restrict ourselves to the anti-symmetry property of orders without realizing that a directed set is not an order.
The following results will state that filters are not just a subclass of nets, but that nets and filters are equivalent on convergence: for every filter there is a net converging to the same points, and also, for every net there is a filter converging to the same points.
definition
\( (N \text{ is a net on } X) \Longrightarrow Filter N.\ .\ X \equiv \{A\in Pow(X).\ \exists D\in \{\{\text{fst}(N)\text{snd}(s).\ s\in \{s\in domain(\text{fst}(N))\times domain(\text{fst}(N)).\ s\in \text{snd}(N) \wedge \text{fst}(s)=t0\}\}.\ t0\in domain(\text{fst}(N))\}.\ D\subseteq A\} \)
Filter of a net is indeed a filter
theorem filter_of_net_is_filter:
assumes \( N \text{ is a net on } X \)
shows \( (Filter N.\ .\ X) \text{ is a filter on } X \) and \( \{\{\text{fst}(N)\text{snd}(s).\ s\in \{s\in domain(\text{fst}(N))\times domain(\text{fst}(N)).\ s\in \text{snd}(N) \wedge \text{fst}(s)=t0\}\}.\ t0\in domain(\text{fst}(N))\} \text{ is a base filter } (Filter N.\ .\ X) \)proofConvergence of a net implies the convergence of the corresponding filter.
theorem (in topology0) net_conver_filter_of_net_conver:
assumes \( N \text{ is a net on } \bigcup T \) and \( N \rightarrow _N x \)
shows \( (Filter N.\ .\ (\bigcup T)) \rightarrow _F x \)proofConvergence of a filter corresponding to a net implies convergence of the net.
theorem (in topology0) filter_of_net_conver_net_conver:
assumes \( N \text{ is a net on } \bigcup T \) and \( (Filter N.\ .\ (\bigcup T)) \rightarrow _F x \)
shows \( N \rightarrow _N x \)proofFilter of net converges to a point \(x\) if and only the net converges to \(x\).
theorem (in topology0) filter_of_net_conv_iff_net_conv:
assumes \( N \text{ is a net on } \bigcup T \)
shows \( ((Filter N.\ .\ (\bigcup T)) \rightarrow _F x) \longleftrightarrow (N \rightarrow _N x) \) using assms, filter_of_net_conver_net_conver, net_conver_filter_of_net_converWe know now that filters and nets are the same thing, when working convergence of topological spaces. Sometimes, the nature of filters makes it easier to generalized them as follows.
Instead of considering all subsets of some set \(X\), we can consider only open sets (we get an open filter) or closed sets (we get a closed filter). There are many more useful examples that characterize topological properties.
This type of generalization cannot be done with nets.
Also a filter can give us a topology in the following way:
theorem top_of_filter:
assumes \( \mathfrak{F} \text{ is a filter on } \bigcup \mathfrak{F} \)
shows \( (\mathfrak{F} \cup \{0\}) \text{ is a topology } \)proofWe can use topology0 locale with filters.
lemma topology0_filter:
assumes \( \mathfrak{F} \text{ is a filter on } \bigcup \mathfrak{F} \)
shows \( topology0(\mathfrak{F} \cup \{0\}) \) using top_of_filter, topology0_def, assmsThe next abbreviation introduces notation where we want to specify the space where the filter convergence takes place.
abbreviation
\( \mathfrak{F} \rightarrow _F x\text{ in }T \equiv topology0.\ \text{FilterConverges}(T,\mathfrak{F} ,x) \)
The next abbreviation introduces notation where we want to specify the space where the net convergence takes place.
abbreviation
\( N \rightarrow _N x\text{ in }T \equiv topology0.\ \text{NetConverges}(T,N,x) \)
Each point of a the union of a filter is a limit of that filter.
lemma lim_filter_top_of_filter:
assumes \( \mathfrak{F} \text{ is a filter on } \bigcup \mathfrak{F} \) and \( x\in \bigcup \mathfrak{F} \)
shows \( \mathfrak{F} \rightarrow _F x\text{ in }(\mathfrak{F} \cup \{0\}) \)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 \( 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 \( \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 \)assumes \( \forall x\in X.\ b(x) \in Y \)
shows \( \{\langle x,b(x)\rangle .\ x\in X\} : X\rightarrow Y \)assumes \( \mathfrak{F} \text{ is a filter on } X \)
shows \( (\text{Net}(\mathfrak{F} )) \text{ is a net on } X \)assumes \( f:A\rightarrow C \)
shows \( domain(f) = A \)assumes \( f:X\rightarrow Y \), \( x\in X \) and \( f = \{\langle x,b(x)\rangle .\ x\in X\} \)
shows \( f(x) = b(x) \) and \( b(x)\in Y \)assumes \( \mathfrak{F} \text{ is a filter on } \bigcup T \) and \( \mathfrak{F} \rightarrow _F x \)
shows \( (\text{Net}(\mathfrak{F} )) \rightarrow _N x \)assumes \( \mathfrak{F} \text{ is a filter on }\bigcup T \) and \( (\text{Net}(\mathfrak{F} )) \rightarrow _N x \)
shows \( \mathfrak{F} \rightarrow _F 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 \( N \text{ is a net on } X \)
shows \( (Filter N.\ .\ X) \text{ is a filter on } X \) and \( \{\{\text{fst}(N)\text{snd}(s).\ s\in \{s\in domain(\text{fst}(N))\times domain(\text{fst}(N)).\ s\in \text{snd}(N) \wedge \text{fst}(s)=t0\}\}.\ t0\in domain(\text{fst}(N))\} \text{ is a base filter } (Filter N.\ .\ X) \)assumes \( N \text{ is a net on } \bigcup T \) and \( (Filter N.\ .\ (\bigcup T)) \rightarrow _F x \)
shows \( N \rightarrow _N x \)assumes \( N \text{ is a net on } \bigcup T \) and \( N \rightarrow _N x \)
shows \( (Filter N.\ .\ (\bigcup T)) \rightarrow _F x \)assumes \( \mathfrak{F} \text{ is a filter on } \bigcup \mathfrak{F} \)
shows \( (\mathfrak{F} \cup \{0\}) \text{ is a topology } \)