1 Introduction

It was shown in [4] that the quasi-Polish spaces introduced in [2] can be equivalently characterized as spaces of ideals in the following sense.

Definition 1

(see [4]). Let \(\prec \) be a transitive relation on \({\mathbb N}\). A subset \(I\subseteq {\mathbb N}\) is an ideal (with respect to \(\prec \)) if and only if:

  1. 1.

    \(I \not =\emptyset \),                                                       (I is non-empty)

  2. 2.

    \((\forall a \in I) (\forall b \in {\mathbb N})\, (b \prec a \Rightarrow b \in I)\),       (I is a lower set)

  3. 3.

    \( (\forall a,b \in I)(\exists c\in I)\, (a \prec c \, \& \, b \prec c)\).       (I is directed)

The collection \({{\mathrm {\mathbf{I}}}(\prec )}\) of all ideals has the topology generated by basic open sets of the form \([n]_{\prec } = \{ I \in {{\mathrm {\mathbf{I}}}(\prec )} {\mid } n \in I\}\).    \(\square \)

We often apply the above definition to other countable sets with the implicit assumption that it has been suitably encoded as a subset of \({\mathbb N}\). If \(\prec \) is actually a partial order, then the definition of ideal above agrees with the usual definition of an ideal from order theory. Note that \({{\mathrm {\mathbf{I}}}(\prec )} \subseteq \bigcup _{n\in {\mathbb N}}[n]_{\prec }\) and if \(I \in [a]_{\prec }\cap [b]_{\prec }\) then there is \(c\in {\mathbb N}\) with \(I \in [c]_{\prec } \subseteq [a]_{\prec }\cap [b]_{\prec }\), so \(\{ [n]_{\prec } {\mid } n\in {\mathbb N}\}\) really is a basis for \({{\mathrm {\mathbf{I}}}(\prec )}\) and not just a subbasis. Also note that proving the claim in the previous sentence requires all three of the axioms that define ideals.

We first give some basic examples. If \(=\) is the equality relation on \({\mathbb N}\), then \({{\mathrm {\mathbf{I}}}(=)}\) is homeomorphic to \({\mathbb N}\) with the discrete topology. If \(\prec \) is the strict prefix relation on the set \({\mathbb N}^{<{\mathbb N}}\) of finite sequences of natural numbers, then \({{\mathrm {\mathbf{I}}}(\prec )}\) is homeomorphic to the Baire space \({\mathbb N}^{{\mathbb N}}\). If \(\subseteq \) is the usual subset relation on the set \({\mathcal P}_{\mathrm {fin}}({\mathbb N})\) of finite subsets of \({\mathbb N}\), then \({{\mathrm {\mathbf{I}}}(\subseteq )}\) is homeomorphic to \(\mathcal{P}({\mathbb N})\), the powerset of the natural numbers with the Scott-topology.

Spaces of the form \({{\mathrm {\mathbf{I}}}(\prec )}\) for some transitive computably enumerable (c.e.) relation on \({\mathbb N}\) provide an effective interpretation of quasi-Polish spaces. This effective interpretation as spaces of ideals was first investigated in [4], where they are called precomputable quasi-Polish spaces, but they are equivalent to the computable quasi-Polish spaces in [10], and they naturally correspond to c.e. propositional geometric theories via the duality in [7] (see [1] for extending this duality beyond propositional logic). In many applications it is useful to assume that \({{\mathrm {\mathbf{I}}}(\prec )}\) also comes with a c.e. set \(E_\prec = \{ n\in {\mathbb N}{\mid } [n]_{\prec }\not =\emptyset \}\), which provides an effective interpretation of overt quasi-Polish spaces. These are called computable quasi-Polish spaces in [4], and are equivalent to the effective quasi-Polish spaces in [8], and correspond to effectively enumerable computable quasi-Polish spaces in the terminology of [10]. Dually, they correspond to c.e. propositional geometric theories where satisfiability is semidecidable.

In this paper, we show some basic results on spaces of ideals, with an emphasis on the connections with computable topology. We also hope that our approach will help clarify the relationship between quasi-Polish spaces and domain theory (see abstract basis in [5] or [6]), and implicitly demonstrate how the theory of quasi-Polish spaces can be developed within relatively weak subsystems of second-order arithmetic (see the work on poset spaces in [11]).

2 Computable Functions

Computability of functions between spaces of ideals can be defined in a way that is compatible with the TTE framework [16]. We briefly review the TTE approach to computability on countably based \(T_0\)-spaces, but see [13] for the extension to the cartesian closed category of admissibly represented spaces and [12] for more general represented spaces.

Given a countably based \(T_0\)-space X with fixed basis \((B_i)_{i\in {\mathbb N}}\), the standard (admissible) representation of X is the partial function \(\delta _X:\subseteq {\mathbb N}^{{\mathbb N}}\rightarrow X\) defined as \(\delta _X(p) = x \iff range(p) = \{ i\in {\mathbb N}{\mid } x \in B_i\}\). A function \(f:X \rightarrow Y\) between spaces with standard admissible representations is computable if and only if there is a computable (partial) function \(F:\subseteq {\mathbb N}^{{\mathbb N}}\rightarrow {\mathbb N}^{{\mathbb N}}\) such that \(f\circ \delta _X = \delta _Y\circ F\). It follows that a function \(f:{{\mathrm {\mathbf{I}}}(\prec _1)} \rightarrow {{\mathrm {\mathbf{I}}}(\prec _2)}\) is computable if and only if there is an algorithm which transforms any enumeration of the elements of any \(I\in {{\mathrm {\mathbf{I}}}(\prec _1)}\) into an enumeration of the elements of \(f(I)\in {{\mathrm {\mathbf{I}}}(\prec _2)}\).

We define a code for a partial function to be any subset \(R\subseteq {\mathbb N}\times {\mathbb N}\). Each code R encodes the partial function \({\ulcorner {R}\urcorner }:\subseteq {{\mathrm {\mathbf{I}}}(\prec _1)}\rightarrow {{\mathrm {\mathbf{I}}}(\prec _2)}\) defined as

$$\begin{aligned} {\ulcorner {R}\urcorner }(I)= & {} \{ n\in {\mathbb N}{\mid } (\exists m\in I)\,\langle m,n\rangle \in R\},\\ dom({\ulcorner {R}\urcorner })= & {} \{ I \in {{\mathrm {\mathbf{I}}}(\prec _1)} {\mid } {\ulcorner {R}\urcorner }(I) \in {{\mathrm {\mathbf{I}}}(\prec _2)}\}. \end{aligned}$$

Theorem 2

Let \(\prec _1\) and \(\prec _2\) be transitive relations on \({\mathbb N}\). A total function \(f:{{\mathrm {\mathbf{I}}}(\prec _1)} \rightarrow {{\mathrm {\mathbf{I}}}(\prec _2)}\) is computable if and only if there is a c.e. code \(R\subseteq {\mathbb N}\times {\mathbb N}\) such that \(f={\ulcorner {R}\urcorner }\).

Proof

It is clear that if \(f={\ulcorner {R}\urcorner }\) for some c.e. code R, then there is an algorithm which transforms any enumeration of the elements of any \(I\in {{\mathrm {\mathbf{I}}}(\prec _1)}\) into an enumeration of the elements of \(f(I)\in {{\mathrm {\mathbf{I}}}(\prec _2)}\). Therefore, f is computable.

For the other direction, assume \(f:{{\mathrm {\mathbf{I}}}(\prec _1)} \rightarrow {{\mathrm {\mathbf{I}}}(\prec _2)}\) is computable. It is a standard result that there is a computable enumeration \((U_n)_{n\in {\mathbb N}}\) of c.e. subsets of \({\mathbb N}\) such that \(f^{-1}([n]_{\prec _2}) = \bigcup _{m \in U_n} [m]_{\prec _1}\). Let \(R = \{\langle m,n\rangle {\mid } m \in U_n \}\). Given \(I\in {{\mathrm {\mathbf{I}}}(\prec _1)}\), if \(n\in {\ulcorner {R}\urcorner }(I)\), then there is some \(m\in I\) with \(\langle m,n\rangle \in R\), hence \(m \in U_n\). Thus \(I \in [m]_{\prec _1} \subseteq f^{-1}([n]_{\prec _2})\) which implies \(n\in f(I)\). Conversely, if \(n\in f(I)\) then \(I \in f^{-1}([n]_{\prec _2})\), so there must be \(m\in U_n\) with \(I \in [m]_{\prec _1}\). It follows that \(\langle m,n\rangle \in R\) and that \(n \in {\ulcorner {R}\urcorner }(I)\). Therefore, R is a c.e. code satisfying \(f = {\ulcorner {R}\urcorner }\).    \(\square \)

3 Basic Constructions

3.1 Products

Given relations \(\prec _1\) and \(\prec _2\) on \({\mathbb N}\), define the relation \(\prec ^\times _{1,2}\) on \({\mathbb N}\) as

$$ \begin{aligned} \langle a,b\rangle \prec ^\times _{1,2} \langle a',b'\rangle \iff a \prec _1 a'\ { \& }\ b \prec _2 b', \end{aligned}$$

where \(\langle \cdot , \cdot \rangle :{\mathbb N}\times {\mathbb N}\rightarrow {\mathbb N}\) is a computable bijection. Then \({{\mathrm {\mathbf{I}}}(\prec ^\times _{1,2})}\) is computably homeomorphic to the product \({{\mathrm {\mathbf{I}}}(\prec _1)}\times {{\mathrm {\mathbf{I}}}(\prec _2)}\) via the pairing function \(\langle \cdot ,\cdot \rangle :{{\mathrm {\mathbf{I}}}(\prec _1)}\times {{\mathrm {\mathbf{I}}}(\prec _2)}\rightarrow {{\mathrm {\mathbf{I}}}(\prec ^\times _{1,2})}\)

$$ \begin{aligned} \langle I_1, I_2 \rangle = \{\langle a,b\rangle {\mid } a\in I_1\ { \& }\ b\in I_2\} \end{aligned}$$

and the projections \(\pi _i :{{\mathrm {\mathbf{I}}}(\prec ^\times _{1,2})} \rightarrow {{\mathrm {\mathbf{I}}}(\prec _i)}\) (\(i \in \{1,2\}\))

$$\begin{aligned} \pi _1(I)= & {} \{ a \in {\mathbb N}{\mid } (\exists b\in {\mathbb N}) \langle a,b\rangle \in I\},\\ \pi _2(I)= & {} \{ b \in {\mathbb N}{\mid } (\exists a\in {\mathbb N}) \langle a,b\rangle \in I\}. \end{aligned}$$

We leave most of the proof to the reader as an exercise, but we will show that \(\pi _1(I)\) really is a lower set because it is a nice example of how directedness and transitivity often compensate for the lack of reflexivity of the relations. Assume \(I\in {{\mathrm {\mathbf{I}}}(\prec ^\times _{1,2})}\) and \(a \in \pi _1(I)\) and \(a_0 \prec _1 a\). Then there is \(b\in {\mathbb N}\) with \(\langle a,b\rangle \in I\). If \(\prec _2\) was reflexive, then we would have \(\langle a_0,b\rangle \prec ^\times _{1,2} \langle a,b\rangle \in I\), and since I is a lower set we would immediately conclude \(\langle a_0,b\rangle \in I\). But without reflexivity, we must instead use the directedness of I to first obtain \(\langle a',b'\rangle \in I\) with \(\langle a,b\rangle \prec ^\times _{1,2} \langle a',b'\rangle \), and then we have \(\langle a_0,b\rangle \prec ^\times _{1,2} \langle a',b'\rangle \in I\) by the transitivity of \(\prec _1\) and \(\prec _2\). We still get the desired conclusion \(\langle a_0,b\rangle \in I\) (hence \(a_0 \in \pi _1(I)\)), albeit with a slight detour that required directedness and transitivity.

A simple modification of Definition 2.3.13 in [11] can be used to construct countable products from an enumeration \((\prec _i)_{i\in {\mathbb N}}\) of transitive relations.

3.2 Co-products

We get co-products (i.e., disjoint unions) by defining the relation \(\prec ^+_{1,2}\) on \({\mathbb N}\) as

$$ \begin{aligned} \langle a,i\rangle \prec ^+_{1,2} \langle a',j\rangle \iff i=j\in \{1,2\}\ { \& }\ a \prec _i a'. \end{aligned}$$

Then it is an easy exercise to show that \({{\mathrm {\mathbf{I}}}(\prec ^+_{1,2})}\) is computably homeomorphic to the co-product \({{\mathrm {\mathbf{I}}}(\prec _1)}+ {{\mathrm {\mathbf{I}}}(\prec _2)}\). It should be clear to the reader how to extend this to countable co-products.

3.3 \({\varPi }^0_{2}\)-subspaces and Equalizers

Let \(\prec \) be a transitive relation on \({\mathbb N}\). The \({\varSigma }^0_{1}\)-subsets (or c.e. open subsets) of \({{\mathrm {\mathbf{I}}}(\prec )}\) are encoded by c.e. subsets \(U\subseteq {\mathbb N}\) by defining

$$\begin{aligned} {\ulcorner {U}\urcorner } = \bigcup _{n\in U}[n]_{\prec }. \end{aligned}$$

The \({\varPi }^0_{2}\)-subsets of \({{\mathrm {\mathbf{I}}}(\prec )}\) are encoded by computable enumerations \((U_i, V_i)_{i\in {\mathbb N}}\) of c.e. subsets of \({\mathbb N}\) by defining

$$\begin{aligned} {\ulcorner {(\forall i)U_i\Rightarrow V_i}\urcorner }= \{ I \in {{\mathrm {\mathbf{I}}}(\prec )} {\mid } (\forall i\in {\mathbb N})[ I \in {\ulcorner {U_i}\urcorner } \Rightarrow I \in {\ulcorner {V_i}\urcorner }]\}. \end{aligned}$$

The next theorem is part of the characterization of precomputable quasi-Polish spaces from [4]. We provide a direct proof for convenience.

Theorem 3

(see [4]). Let \(\prec \) be a transitive c.e. relation on \({\mathbb N}\). Given a code of a \({\varPi }^0_{2}\)-subset A of \({{\mathrm {\mathbf{I}}}(\prec )}\), one can computably obtain a transitive c.e. relation \(\sqsubset \) on \({\mathbb N}\) such that \({{\mathrm {\mathbf{I}}}(\sqsubset )}\) is computably homeomorphic to A.

Proof

Assume \(A = {\ulcorner {(\forall i)U_i\Rightarrow V_i}\urcorner }\) for some computable enumeration \((U_i, V_i)_{i\in {\mathbb N}}\) of c.e. subsets of \({\mathbb N}\). Let \(\prec ^{(\cdot )}\) be a decidable relation such that

Let \((U_i^{(k)})_{i,k\in {\mathbb N}}\) be a double enumeration of decidable subsets of \({\mathbb N}\) such that

$$\begin{aligned} U_i = \bigcup _{k\in {\mathbb N}} U_i^{(k)} \text { and } k\le k' \Rightarrow U_i^{(k)} \subseteq U_i^{(k')}. \end{aligned}$$

For \(F_1,F_2 \in {\mathcal P}_{\mathrm {fin}}({\mathbb N})\) and \(k_1,k_2\in {\mathbb N}\), define \(\langle F_1, k_1 \rangle \sqsubset \langle F_2, k_2\rangle \) if and only if the following all hold:

  1. 1.

    \(k_1 < k_2\)

  2. 2.

    \(F_1 \subseteq F_2\)

  3. 3.

    \(F_2\not =\emptyset \)

  4. 4.

    \((\forall m \le k_1)\left[ [(\exists n\in F_1)\,m\prec ^{(k_1)} n] \Rightarrow m\in F_2\right] \)

  5. 5.

    \( (\forall a,b\in F_1)(\exists c \in F_2)[ a \prec c\ { \& }\ b \prec c]\)

  6. 6.

    \((\forall i \le k_1)[F_1 \cap U_i^{(k_1)}\not =\emptyset \Rightarrow F_2\cap V_i \not =\emptyset ]\).

It is clear that \(\sqsubset \) is c.e., and the monotonicity assumptions on \(\prec ^{(\cdot )}\) and \(U_i^{(k)}\) imply that if \(\langle F_1, k_1\rangle \sqsubset \langle F_2,k_2\rangle \) and \(F\subseteq F_1\) and \(k \le k_1\) then \(\langle F, k\rangle \sqsubset \langle F_2,k_2\rangle \), hence \(\sqsubset \) is transitive.

Define \(f:{{\mathrm {\mathbf{I}}}(\sqsubset )} \rightarrow {\ulcorner {(\forall i)U_i\Rightarrow V_i}\urcorner }\) by \(f(I) = \bigcup _{\langle F,k\rangle \in I} F\). Given \(I\in {{\mathrm {\mathbf{I}}}(\sqsubset )}\), the directedness of I implies any \(\langle F_0, k_0\rangle \in I\) can be extended to a finite \(\sqsubset \)-chain in I of arbitrary length, hence for any \(k\in {\mathbb N}\) there are \(\langle F_1, k_1\rangle ,\langle F_2, k_2\rangle \in I\) with \(\langle F_0, k_0\rangle \sqsubset \langle F_1, k_1\rangle \sqsubset \langle F_2, k_2\rangle \) and \(k < k_1\). Thus \(\langle F_0, k \rangle \sqsubset \langle F_2,k_2\rangle \), which implies \(\langle F_0, k \rangle \in I\). It follows that \(n\in f(I)\) if and only if \(\langle \{n\}, k\rangle \in I\) for some (equivalently, every) \(k\in {\mathbb N}\). By using the directedness of I this observation generalizes from singletons to all finite sets, and so for any \(F\in {\mathcal P}_{\mathrm {fin}}({\mathbb N})\) we have \(F\subseteq f(I)\) if and only if \(\langle F,k\rangle \in I\) for some (equivalently, every) \(k\in {\mathbb N}\). Then conditions 3, 4, and 5 in the definition of \(\sqsubset \) imply that f(I) is indeed an ideal of \(\prec \), and condition 6 implies \(f(I)\in {\ulcorner {(\forall i)U_i\Rightarrow V_i}\urcorner }\). Thus f is well-defined, and it is clearly a computable injection.

A computable inverse of f is given by \(g:{\ulcorner {(\forall i)U_i\Rightarrow V_i}\urcorner } \rightarrow {{\mathrm {\mathbf{I}}}(\sqsubset )}\) defined as \( g(I) = \{\langle F,k\rangle {\mid } k\in {\mathbb N}\,\, \& \,F \subseteq I\,\mathrm{is\,finite}\}\). The only part of the proof that g is well-defined which requires a little thought is showing that g(I) is directed for each \(I\in {\ulcorner {(\forall i)U_i\Rightarrow V_i}\urcorner }\), but it is not difficult to see that if \(\langle F_1,k_1\rangle , \langle F_2, k_2\rangle \in g(I)\), then one can find a finite \(G\subseteq I\) which contains \(F_1\cup F_2\) and enough of I to satisfy conditions 3 through 6 and obtain \(\langle F_1,k_1\rangle , \langle F_2, k_2\rangle \sqsubset \langle G, k_1+k_2+1\rangle \in g(I)\). The claim that g is an inverse to f follows from the observations in the previous paragraph.    \(\square \)

If R and S are codes for total functions \({\ulcorner {R}\urcorner },{\ulcorner {S}\urcorner }:{{\mathrm {\mathbf{I}}}(\prec _1)} \rightarrow {{\mathrm {\mathbf{I}}}(\prec _2)}\), then for any \(I \in {{\mathrm {\mathbf{I}}}(\prec _1)}\) we have \({\ulcorner {R}\urcorner }(I) = {\ulcorner {S}\urcorner }(I)\) if and only if

$$\begin{aligned} (\forall n\in {\mathbb N})\left[ n\in {\ulcorner {R}\urcorner }(I) \iff n\in {\ulcorner {S}\urcorner }(I)\right] . \end{aligned}$$

This is a \({\varPi }^0_{2}\)-subset of \({{\mathrm {\mathbf{I}}}(\prec _1)}\) whenever \(\prec _1\), \(\prec _2\), R, and S are c.e. It follows that we can computably obtain a c.e. relation \(\sqsubset \) such that \({{\mathrm {\mathbf{I}}}(\sqsubset )}\) is an equalizer of \({\ulcorner {R}\urcorner }\) and \({\ulcorner {S}\urcorner }\).

Note that Theorem 3 is the best result possible because if \(\prec \), \(\sqsubset \), R, and S are c.e. such that \({\ulcorner {R}\urcorner }:{{\mathrm {\mathbf{I}}}(\sqsubset )} \rightarrow {{\mathrm {\mathbf{I}}}(\prec )}\) is total with partial inverse \({\ulcorner {S}\urcorner }:{{\mathrm {\mathbf{I}}}(\prec )} \rightarrow {{\mathrm {\mathbf{I}}}(\sqsubset )}\) (meaning \((\forall J\in {{\mathrm {\mathbf{I}}}(\sqsubset )})[ J = {\ulcorner {S}\urcorner }({\ulcorner {R}\urcorner }(J))]\)) then \(I\in range({\ulcorner {R}\urcorner })\) if and only if \(I\in dom({\ulcorner {S}\urcorner })\) and \(I = {\ulcorner {R}\urcorner }({\ulcorner {S}\urcorner }(I))\). Since \(dom({\ulcorner {S}\urcorner })\) is \({\varPi }^0_{2}\), it follows that \({{\mathrm {\mathbf{I}}}(\sqsubset )}\) is computably homeomorphic to the \({\varPi }^0_{2}\)-subset \(range({\ulcorner {R}\urcorner })\) of \({{\mathrm {\mathbf{I}}}(\prec )}\).

4 Examples from Computable Topology

4.1 Completion of (Computable) Separable Metric Spaces

Let (Xd) be a separable metric space. Fix a countable dense subset \(D\subseteq X\), and define a transitive relation \(\prec \) on \(P = D\times {\mathbb N}\) as

$$\begin{aligned} \langle x,n\rangle \prec \langle y, m\rangle \iff d(x,y) < 2^{-n}-2^{-m}. \end{aligned}$$

This definition guarantees that the open ball with center x and radius \(2^{-n}\) contains the closed ball with center y and radius \(2^{-m}\). The pair \((P,\prec )\) is a countable substructure of the formal balls of (Xd), a well-known construction in domain theory (see Section V-6 of [5] and Section 7.3 of [6]). It is straightforward to see that \(\prec \) is transitive by using the triangular inequality for d.

If \(I \in {{\mathrm {\mathbf{I}}}(\prec )}\) then it contains a cofinal infinite ascending \(\prec \)-chain \((\langle x_i, n_i \rangle )_{i\in {\mathbb N}}\), which means that \(\langle x_i,n_i \rangle \prec \langle x_{i+1}, n_{i+1} \rangle \) for all \(i\in {\mathbb N}\) and that for any \(\langle x,n \rangle \in I\) there is \(i\in {\mathbb N}\) with \(\langle x,n \rangle \prec \langle x_i,n_i \rangle \). Note that \((n_i)_{i\in {\mathbb N}}\) is strictly increasing because \(0\le d(x_i, x_{i+1}) < 2^{-n_i} - 2^{-n_{i+1}}\), and therefore \((x_i)_{i\in {\mathbb N}}\) is a Cauchy sequence. It follows that \(\lim _{i\rightarrow \infty } d(x,x_i)\) is well-defined for all \(x\in D\).

Next we show that \(\langle x,n \rangle \in I\) if and only if \(\lim _{i\rightarrow \infty } d(x,x_i)< 2^{-n}\). For any \(\langle x,n \rangle \in I\) the cofinality of \((\langle x_i, n_i \rangle )_{i\in {\mathbb N}}\) implies there is \(i_0\in {\mathbb N}\) with \(\langle x,n \rangle \prec \langle x_i, n_i \rangle \) for all \(i\ge i_0\). Let \(\varepsilon >0\) be such that \(d(x,x_{i_0}) = 2^{-n} - 2^{-n_{i_0}} - \varepsilon \). Then for \(i\ge i_0\) we have

$$\begin{aligned} d(x, x_i) \le d(x, x_{i_0}) + d(x_{i_0}, x_i)< (2^{-n} - 2^{-n_{i_0}}-\varepsilon ) + (2^{-n_{i_0}} - 2^{-n_i}) < 2^{-n}-\varepsilon , \end{aligned}$$

hence \(\lim _{i\rightarrow \infty } d(x,x_i) \le 2^{-n} -\varepsilon < 2^{-n}\). Conversely, assume \(x\in D\) and there is \(\varepsilon >0\) such that \(\lim _{i\rightarrow \infty } d(x,x_i) < 2^{-n} - \varepsilon \). Fix \(i \in {\mathbb N}\) such that \(d(x,x_i)+\varepsilon < 2^{-n}\) and \(2^{-n_i} < \varepsilon \). Then \(d(x,x_i)< d(x,x_i)+\varepsilon -2^{-n_i} < 2^{-n}-2^{-n_i}\), hence \(\langle x,n \rangle \prec \langle x_i,n_i \rangle \), which implies \(\langle x,n \rangle \in I\).

It is now easy to see that \({{\mathrm {\mathbf{I}}}(\prec )}\) is homeomorphic to the completion \((\widehat{X},\widehat{d})\) of (Xd). The usual admissible representation for \(\widehat{X}\) is to represent each \(x \in \widehat{X}\) by the fast Cauchy sequences \((x_i)_{i\in {\mathbb N}}\) in D that converge to x (by fast Cauchy we mean \(d(x_i,x_i+1)<2^{-(i+1)}\) for each \(i\in {\mathbb N}\)). From an enumeration of \(I\in {{\mathrm {\mathbf{I}}}(\prec )}\) we can extract a cofinal infinite ascending \(\prec \)-chain \((\langle x_i, n_i \rangle )_{i\in {\mathbb N}}\) in I so that \((x_i)_{i\in {\mathbb N}}\) is a fast Cauchy sequence determining a point in \(\widehat{X}\). In the other direction, given a fast Cauchy sequence \((x_i)_{i\in {\mathbb N}}\) in D, we have \(d(x_i,x_{i+1}) < 2^{-(i+1)} = 2^{-i} - 2^{-(i+1)}\) for each \(i\in {\mathbb N}\), hence \((\langle x_i, i \rangle )_{i\in {\mathbb N}}\) is an infinite ascending \(\prec \)-chain which generates an ideal \(I\in {{\mathrm {\mathbf{I}}}(\prec )}\). This determines a homeomorphism between \({{\mathrm {\mathbf{I}}}(\prec )}\) and \(\widehat{X}\).

A computable metric space (Xd) comes with an indexing \(\alpha :{\mathbb N}\rightarrow D\) for some dense \(D\subseteq X\) in such a way that \(\{ (q,r,i,j) \in {\mathbb Q}^2\times {\mathbb N}^2 {\mid } q< d(\alpha (i),\alpha (j)) < r\}\) is computably enumerable. Defining \(\langle i,n \rangle \prec \langle j, m\rangle \) if and only if \(d(\alpha (i),\alpha (j)) < 2^{-n}-2^{-m}\) determines a transitive c.e. relation \(\prec \) such that \({{\mathrm {\mathbf{I}}}(\prec )}\) and \(\widehat{X}\) are computably homeomorphic.

4.2 Completion of Computable Topological Spaces

A (countably based) computable topological space (also called an effective topological space; see [8,9,10, 14, 17]) is a tuple \((X, \varphi , S)\) where:

  1. 1.

    X is a \(T_0\)-space (we write \({\mathrm {\mathbf{O}}}(X)\) for its topology),

  2. 2.

    \(\varphi :{\mathbb N}\rightarrow {\mathrm {\mathbf{O}}}(X)\) is an enumeration of a basis for X,

  3. 3.

    \(S \subseteq {\mathbb N}^3\) is a c.e. set satisfying \(\varphi (n) \cap \varphi (m) = \bigcup \{ \varphi (k) {\mid } \langle n,m,k \rangle \in S\}\) for each \(n,m\in {\mathbb N}\).

Note that the only effective aspect of this definition is the c.e. set S, and there are no specifications as to how the space X and the enumeration \(\varphi \) should be defined. As a result, if \((X,\varphi , S)\) is a computable topological space, then for any subspace \(Y \subseteq X\) we can restrict \(\varphi \) in the obvious way to obtain a map \(\varphi ':{\mathbb N}\rightarrow {\mathrm {\mathbf{O}}}(Y)\) such that \((Y,\varphi ', S)\) is also a computable topological space. A common extension of the above definition additionally requires that \(\{ n\in {\mathbb N}{\mid } \varphi (n)\not =\emptyset \}\) is a c.e. set, but even in this case one can define highly non-constructive dense subspaces of a computable topological space which are still computable topological spaces.

Since the effective part of the above definition is compatible with infinitely many computable topological spaces, a natural question to ask is whether there is any canonical computable topological space associated to a given c.e. set S. This question leads to Definition 4 below. In the following, for any continuous function \(f:X \rightarrow Y\), the function \({\mathrm {\mathbf{O}}}(f) :{\mathrm {\mathbf{O}}}(Y) \rightarrow {\mathrm {\mathbf{O}}}(X)\) is defined as \({\mathrm {\mathbf{O}}}(f)(U) = f^{-1}(U)\).

Definition 4

Let \(S\subseteq {\mathbb N}^3\) be a c.e. set. A computable topological space \((X,\varphi , S)\) is complete if and only if for any computable topological space \((Y,\psi ,S)\) there is a unique computable embedding \(e:Y \rightarrow X\) satisfying \(\psi = {\mathrm {\mathbf{O}}}(e)\circ \varphi \).

Intuitively, \((X,\varphi , S)\) is a complete computable topological space if and only if all other computable topological spaces associated to S are essentially just restrictions of the kind \((Y,\varphi ', S)\) we saw earlier. Also note that any complete computable topological space associated to S is unique up to computable homeomorphism. The next lemma shows that every c.e. subset \(S\subseteq {\mathbb N}^3\) determines a complete computable topological space.

Lemma 5

For any c.e. subset \(S\subseteq {\mathbb N}^3\), there is a \({\varPi }^0_{2}\)-subspace \(X \subseteq \mathcal{P}({\mathbb N})\) such that \(\varphi :{\mathbb N}\rightarrow {\mathrm {\mathbf{O}}}(X)\) defined as \(\varphi (n) = \{x\in X{\mid } n\in x\}\) is an enumeration of a basis for X and \((X, \varphi , S)\) is a complete computable topological space.

Proof

Let \(S\subseteq {\mathbb N}^3\) be a c.e. subset. Define \(X\subseteq \mathcal{P}({\mathbb N})\) so that \(x\in X\) if and only if the following conditions are all satisfied:

  1. (i)

    \(x\not =\emptyset \),

  2. (ii)

    \((\forall \langle n,m,k \rangle \in S)\,[ k\in x \Rightarrow \{n,m\}\subseteq x]\), and

  3. (iii)

    \((\forall n,m\in {\mathbb N})\,[ \{n,m\}\subseteq x \Rightarrow (\exists k\in x)\, \langle n,m,k \rangle \in S]\).

It is clear that X is a \({\varPi }^0_{2}\)-subspace of \(\mathcal{P}({\mathbb N})\). We first show that \(\varphi \) is an enumeration of a basis for X. It is clear that each \(\varphi (n)\) is an open subset of X, and that \(\{ \varphi (n) {\mid } n\in {\mathbb N}\}\) covers X because each \(x\in X\) is non-empty. Next, note that if \(\langle n,m,k \rangle \in S\), then condition (ii) implies \(\varphi (k) \subseteq \varphi (n)\cap \varphi (m)\). So for any \(x\in \varphi (n)\cap \varphi (m)\), by using condition (iii) it follows that there is \(k\in {\mathbb N}\) with \(x\in \varphi (k) \subseteq \varphi (n)\cap \varphi (m)\). Therefore, \(\varphi \) is an enumeration of a basis for X. It is then easy to see (using condition (iii) again), that \((X,\varphi ,S)\) is a computable topological space.

Given another computable topological space \((Y,\psi ,S)\), define \(e:Y \rightarrow X\) as \(e(y) = \{ n\in {\mathbb N}{\mid } y \in \psi (n)\}\). We first show that \(e(y) \in X\) for each \(y\in Y\). Clearly, e(y) is non-empty because the basis enumerated by \(\psi \) must cover Y. Next, if \(\langle n,m,k \rangle \in S\) then \(\psi (k)\) must be a subset of \(\psi (n)\cap \psi (m)\) by condition (3) of the definition of a computable topological space, hence e(y) satisfies condition (ii). Finally, condition (iii) is satisfied because if \(\{n,m\}\subseteq e(y)\) then \(y \in \psi (n)\cap \psi (m)\) hence there must be \(\langle n,m,k \rangle \in S\) with \(y\in \psi (k)\) which implies \(k\in e(y)\). Therefore, e is well-defined.

Using the fact that \(\psi \) enumerates a basis for Y, it is easy to see that e is a computable topological embedding. Furthermore, \(y \in \psi (n)\) if and only if \(n \in e(y)\) if and only if \(e(y) \in \varphi (n)\), hence \(\psi (n) = e^{-1}(\varphi (n))\). This proves that \(\psi = {\mathrm {\mathbf{O}}}(e)\circ \varphi \), and it is clear that e is the only possible embedding of Y into X that satisfies this property.    \(\square \)

We take a brief moment to consider the extension where a computable topological space comes with an additional c.e. set \(E =\{n\in {\mathbb N}{\mid } \varphi (n)\not =\emptyset \}\). Completeness is defined as in Definition 4, but with quantification over spaces of the form \((Y,\psi ,S,E)\). There is no guarantee that arbitrarily chosen S and E will be compatible, but if they are compatible with at least one computable topological space, then a complete space can be obtained by adding a fourth (\({\varPi }^0_{2}\)) axiom “\((\forall n\in {\mathbb N})\,[n\in x \Rightarrow n\in E]\)” to the construction in the proof of Lemma 5. These modifications could also be made to the following theorem, which shows that complete computable topological spaces provide an effective interpretation of quasi-Polish spaces that is equivalent to the approach using spaces of ideals.

Theorem 6

Every complete computable topological space is computably homeomorphic to \({{\mathrm {\mathbf{I}}}(\prec )}\) for some transitive c.e. relation \(\prec \) on \({\mathbb N}\). Conversely, given a transitive c.e. relation \(\prec \) on \({\mathbb N}\) one can computably obtain a c.e. subset \(S\subseteq {\mathbb N}^3\) such that \(({{\mathrm {\mathbf{I}}}(\prec )}, \varphi _{\prec }, S)\) is a complete computable topological space, where \(\varphi _{\prec }:{\mathbb N}\rightarrow {\mathrm {\mathbf{O}}}({{\mathrm {\mathbf{I}}}(\prec )})\) is the standard enumeration of a basis for \({{\mathrm {\mathbf{I}}}(\prec )}\) given by \(\varphi _{\prec }(n) = [n]_{\prec }\).

Proof

The first claim follows from Lemma 5 and Theorem 3.

For the converse, let \(\prec \) be a transitive c.e. relation on \({\mathbb N}\). Define

$$\begin{aligned} S = \{\langle n,m,k \rangle \in {\mathbb N}^3 {\mid } n\prec k \text { and } m\prec k\}, \end{aligned}$$

and let \((X,\varphi , S)\) be the complete computable topological space for S as constructed in the proof of Lemma 5. The proof will be completed by showing that \(X = {{\mathrm {\mathbf{I}}}(\prec )}\) as subsets of \(\mathcal{P}({\mathbb N})\).

First we show \({{\mathrm {\mathbf{I}}}(\prec )} \subseteq X\). Fix \(I \in {{\mathrm {\mathbf{I}}}(\prec )}\). It is clear that I satisfies condition (i) of the definition of X. Next, condition (ii) is satisfied because if \(\langle n,m,k \rangle \in S\) and \(k\in I\), then \(n,m \prec k\) by the definition of S, hence \(\{n,m\}\subseteq I\) because I is a lower set. Finally, condition (iii) is satisfied because if \(\{n,m\}\subseteq I\) the directedness of I implies there is \(k\in I\) with \(n,m\prec k\), hence \(\langle n,m,k \rangle \in S\). Therefore, \(I\in X\).

To show \(X \subseteq {{\mathrm {\mathbf{I}}}(\prec )}\), fix any \(x \in X\). Clearly x is non-empty. Next, assume \(k \in x\) and \(n \prec k\). Then \(\langle n,n,k \rangle \in S\), hence condition (ii) on X implies \(n\in x\), so x is a lower set. Finally, if \(n,m \in x\) then condition (iii) on X implies there is \(\langle n,m,k\rangle \in S\) with \(k\in x\). By definition of S we have \(n \prec k\) and \(m\prec k\), which shows that x is directed. Therefore, \(x \in {{\mathrm {\mathbf{I}}}(\prec )}\).    \(\square \)

The above theorem shows that we get a computably equivalent definition of computable topological space if we simply define them to be a pair \((\prec , X)\), where \(\prec \) is a transitive c.e. relation and \(X\subseteq {{\mathrm {\mathbf{I}}}(\prec )}\). A more rigorous approach would also require a precise definition of the set X, for example by defining a (countably based) “computable topological space” to be a pair \((\prec , \varPhi _X)\) that contains an explicit (finite) formula \(\varPhi _X\) with a single free variable I that defines the set \(X = \{ I \in {{\mathrm {\mathbf{I}}}(\prec )} {\mid } \varPhi _X(I)\}\) within some fixed formal system. This would lead us more into the realm of effective descriptive set theory, but adopting such a definition would guarantee that computable topological spaces are unambiguously defined by a finite amount of information.

5 Powerspaces

Given a topological space X, we write \({\mathrm {\mathbf{A}}}(X)\) for the lower powerspace of X (the closed subsets of X with the lower Vietoris topology), and \({\mathrm {\mathbf{K}}}(X)\) for the upper powerspace of X (the saturated compact subsets of X with the upper Vietoris topology). Our notation follows that of [3], where other basic results on quasi-Polish powerspaces can be found. For countably based spaces, the lower powerspace defined here is equivalent to the space of (closed) overt sets in [4, 12]. In this section, we show how to represent powerspaces as spaces of ideals using the construction introduced in [15] for \(\omega \)-algebraic domains (which is equivalent to the case that \(\prec \) is a partial order within our framework). We fix a transitive relation \(\prec \) on \({\mathbb N}\) for the rest of this section.

5.1 Lower Powerspace

A basis for the lower Vietoris topology on \({\mathrm {\mathbf{A}}}({{\mathrm {\mathbf{I}}}(\prec )})\) is given by sets of the form

$$\begin{aligned} \bigcap _{n\in F}\Diamond [n]_{\prec } = \{ A \in {\mathrm {\mathbf{A}}}({{\mathrm {\mathbf{I}}}(\prec )}) {\mid } (\forall n\in F)(\exists I \in A)\, n \in I\} \end{aligned}$$

for \(F \in {\mathcal P}_{\mathrm {fin}}({\mathbb N})\). Define the transitive relation \(\prec _L\) on \({\mathcal P}_{\mathrm {fin}}({\mathbb N})\) as

$$\begin{aligned} F \prec _L G \text { if and only if } (\forall m\in F)\,(\exists n\in G)\, m \prec n. \end{aligned}$$

Transitivity of \(\prec _L\) easily follows from the transitivity of \(\prec \), and it is clear that \(\prec _L\) is c.e. whenever \(\prec \) is. Next, define \({f_L}:{\mathrm {\mathbf{A}}}({{\mathrm {\mathbf{I}}}(\prec )}) \rightarrow {{\mathrm {\mathbf{I}}}(\prec _L)}\) as

$$\begin{aligned} {f_L}(A) = \{ F \in {\mathcal P}_{\mathrm {fin}}({\mathbb N}) {\mid } (\forall m\in F)(\exists I\in A)\, m\in I\} \end{aligned}$$

and \({g_L}:{{\mathrm {\mathbf{I}}}(\prec _L)} \rightarrow {\mathrm {\mathbf{A}}}({{\mathrm {\mathbf{I}}}(\prec )})\) as

$$\begin{aligned} {g_L}(J) = \{ I \in {{\mathrm {\mathbf{I}}}(\prec )} {\mid } (\forall m\in I)(\exists F \in J)\, m \in F\}. \end{aligned}$$

We will need the following lemma when we prove that these two functions are well-defined computable homeomorphisms.

Lemma 7

If \(J \in {{\mathrm {\mathbf{I}}}(\prec _L)}\) and \(F \in {\mathcal P}_{\mathrm {fin}}({\mathbb N})\), then \((\forall m\in F)\, {g_L}(J) \cap [m]_{\prec }\not =\emptyset \) if and only if \(F \in J\).

Proof

First assume \((\forall m\in F)\, {g_L}(J) \cap [m]_{\prec }\not =\emptyset \). For each \(m \in F\), there is \(I \in {g_L}(J)\) with \(m \in I\), and as I is directed, there is \(n \in I\) with \(m \prec n\), but since \(I \in {g_L}(J)\) there must be \(G \in J\) with \(n \in G\), and therefore \(\{m\} \prec _L G \in J\). This shows that \(\{ m\} \in J\) for each \(m \in F\). Since F is finite and J is directed, there is \(H \in J\) such that \((\forall m\in F)\, \{m\} \prec _L H\). It follows that \(F \prec _L H\), and therefore \(F \in J\).

For the converse, assume \(F \in J\), and fix any \(m \in F\). Since J is directed there exists an infinite sequence \(F = F_0 \prec _L F_1 \prec _L F_2 \prec _L \cdots \) with \(F_i \in J\) for each \(i\in {\mathbb N}\). From the definition of \(\prec _L\), there exists an infinite sequence \(m = m_0 \prec m_1 \prec m_2 \prec \cdots \) with \(m_i \in F_i\) for each \(i\in {\mathbb N}\). Then \(I = \{ n \in {\mathbb N}{\mid } (\exists i\in {\mathbb N})\, n \prec m_i \}\) is in \({{\mathrm {\mathbf{I}}}(\prec )}\) and \(m\in I\). For any \(n\in I\) there is \(i\in {\mathbb N}\) with \(n \prec m_i \in F_i\), thus \(\{n\} \prec _L F_i \in J\) which implies \(\{n\} \in J\). Therefore, \(I \in {g_L}(J) \cap [m]_{\prec }\).    \(\square \)

Theorem 8

\({\mathrm {\mathbf{A}}}({{\mathrm {\mathbf{I}}}(\prec )})\) and \({{\mathrm {\mathbf{I}}}(\prec _L)}\) are computably homeomorphic.

Proof

We will prove that \({f_L}\) and \({g_L}\) are well-defined computable inverses of each other in several steps.

  • \({f_L}\) is well-defined: We must show that \({f_L}(A)\) is an ideal.

  1. 1.

    (\({f_L}(A)\) is non-empty). \({f_L}(A) \not =\emptyset \) because \(\emptyset \in {f_L}(A)\).

  2. 2.

    (\({f_L}(A)\) is a lower set). If \(G \in {f_L}(A)\) and \(F \prec _L G\), then for any \(m\in F\) there is \(n \in G\) with \(m \prec n\). There is some \(I \in A\) with \(n\in I\), and also \(m \in I\) because I is a lower set. Therefore, \(F \in {f_L}(A)\).

  3. 3.

    (\({f_L}(A)\) is directed). Assume \(F, G \in {f_L}(A)\). For each \(m \in F \cup G\) there is some \(I \in A\) with \(m \in I\), and by directedness of I we can choose some \(n_m \in I\) with \(m \prec n_m\). Combine these choices into a single (finite) set \(H = \{ n_m {\mid } m \in F\ \cup \ G\}\). Then \(H \in {f_L}(A)\) and \(F,G \prec _L H\).

  • \({g_L}\) is well-defined: We must show that \({g_L}(J)\) is a closed subset of \({{\mathrm {\mathbf{I}}}(\prec )}\). If \(I \not \in {g_L}(J)\), then by definition of \({g_L}(J)\) there must be \(m \in I\) such that \((\forall F\in J)\, m\not \in F\). Then \([m]_{\prec }\) is an open neighborhood of I that does not intersect \({g_L}(J)\), hence \({g_L}(J)\) is closed.

  • \({f_L}\) is computable: Clearly, \({f_L}(A) \in [F]_{\prec _L}\) if and only if \(A \in {\bigcap }_{m\in F} \Diamond [m]_{\prec }\).

  • \({g_L}\) is computable: Lemma 7 is the statement \({g_L}(J) \in \bigcap _{m\in F} \Diamond [m]_{\prec }\) if and only if \(J \in [F]_{\prec _L}\).

  • \({f_L}({g_L}(J)) = J\) : The above proofs that \({f_L}\) and \({g_L}\) are computable imply that \(F \in {f_L}({g_L}(J))\) if and only if \({g_L}(J) \in {\bigcap }_{m\in F} \Diamond [m]_{\prec }\) if and only if \(F \in J\).

  • \({g_L}({f_L}(A)) = A\) : The above proofs that \({g_L}\) and \({f_L}\) are computable imply that \({g_L}({f_L}(A)) \in \bigcap _{m\in F} \Diamond [m]_{\prec }\) if and only if \(F \in {f_L}(A)\) if and only if \(A \in \bigcap _{m\in F} \Diamond [m]_{\prec }\).

   \(\square \)

5.2 Upper Powerspace

A basis for the upper Vietoris topology on \({\mathrm {\mathbf{K}}}({{\mathrm {\mathbf{I}}}(\prec )})\) is given by sets of the form

$$\begin{aligned} \Box \bigcup _{n\in F} [n]_{\prec } = \{ K \in {\mathrm {\mathbf{K}}}({{\mathrm {\mathbf{I}}}(\prec )}) {\mid } (\forall I \in K)(\exists n \in F)\, n \in I\} \end{aligned}$$

for \(F \in {\mathcal P}_{\mathrm {fin}}({\mathbb N})\). Define the transitive relation \(\prec _U\) on \({\mathcal P}_{\mathrm {fin}}({\mathbb N})\) as

$$\begin{aligned} F \prec _U G \text { if and only if }(\forall n\in G)\,(\exists m\in F)\, m \prec n. \end{aligned}$$

Transitivity of \(\prec _U\) easily follows from the transitivity of \(\prec \), and it is clear that \(\prec _U\) is c.e. whenever \(\prec \) is. Next, define \({f_U}:{\mathrm {\mathbf{K}}}({{\mathrm {\mathbf{I}}}(\prec )}) \rightarrow {{\mathrm {\mathbf{I}}}(\prec _U)}\) as

$$\begin{aligned} {f_U}(K) = \{ F \in {\mathcal P}_{\mathrm {fin}}({\mathbb N}) {\mid } (\forall I \in K)(\exists m\in F)\, m\in I\} \end{aligned}$$

and \({g_U}:{{\mathrm {\mathbf{I}}}(\prec _U)} \rightarrow {\mathrm {\mathbf{K}}}({{\mathrm {\mathbf{I}}}(\prec )})\) as

$$\begin{aligned} {g_U}(J) = \{ I \in {{\mathrm {\mathbf{I}}}(\prec )} {\mid } (\forall F\in J)(\exists m\in I)\, m \in F \}. \end{aligned}$$

We will need the following lemma when we prove that these two functions are well-defined computable homeomorphisms.

Lemma 9

If \(J \in {{\mathrm {\mathbf{I}}}(\prec _U)}\) and \(S\subseteq {\mathbb N}\), then \({g_U}(J) \subseteq \bigcup _{m\in S} [m]_{\prec }\) if and only if there is finite \(F\subseteq S\) with \(F \in J\).

Proof

For the easy direction, assume \(F\subseteq S\) is finite and \(F \in J\). Then every \(I \in {g_U}(J)\) intersects F, which implies \({g_U}(J) \subseteq \bigcup _{m\in F} [m]_{\prec } \subseteq \bigcup _{m\in S} [m]_{\prec }\).

Conversely, assume \({g_U}(J) \subseteq \bigcup _{m\in S} [m]_{\prec }\). Since J is an ideal and countable, there is a sequence \((F_i)_{i\in {\mathbb N}}\) in J satisfying \((\forall i\in {\mathbb N})\, F_i \prec _U F_{i+1}\) and \((\forall F\in J)(\exists i\in {\mathbb N})\, F \prec _U F_i\). It is straightforward to see that \(I \in {g_U}(J)\) if and only if \((\forall i\in {\mathbb N})\,F_i\cap I \not =\emptyset \). Define T to be the set of all \(\sigma \in {\mathbb N}^{<{\mathbb N}}\) satisfying:

  1. 1.

    \((\forall i<len(\sigma )-1)\,\sigma (i) \prec \sigma (i+1)\),

  2. 2.

    \((\forall i<len(\sigma ))\,\sigma (i)\in F_i\),

  3. 3.

    \((\forall i<len(\sigma ))(\forall m\in S)\,m\not \prec \sigma (i)\).

Clearly T is closed under subsequences, hence T is a finitely branching tree because of item 2. If T contained an infinite path p then the ideal \(I = \{ n \in {\mathbb N}{\mid } (\exists i\in {\mathbb N})\, n \prec p(i) \}\) would be in \({g_U}(J)\) even though item 3 prevents I from being in \(\bigcup _{m\in S} [m]_{\prec }\), which would be a contradiction. It follows from König’s lemma that T is finite. Let \(k\in {\mathbb N}\) be an upper bound for \(\{ len(\sigma ) {\mid } \sigma \in T\}\).

Assume for a contradiction that there is \(n_k\in F_k\) such that \((\forall m\in S)\, m \not \prec n_k\). If \(k>0\), then \(F_{k-1} \prec _U F_k\), hence there is \(n_{k-1} \in F_{k-1}\) with \(n_{k-1} \prec n_k\), and transitivity of \(\prec \) implies \((\forall m\in S)\, m \not \prec n_{k-1}\). Continuing in this way, we can construct a finite sequence \(\sigma \in {\mathbb N}^{<{\mathbb N}}\) as \(\sigma (k) = n_k\), \(\sigma (k-1)=n_{k-1}\), and so on, in such a way that \(\sigma \in T\) but \(len(\sigma ) = k+1\), which contradicts the choice of k.

Therefore, for each \(n \in F_k\) there is \(m_n \in S\) with \(m_n \prec n\). Then \(F = \{ m_n {\mid } n \in F_k\}\) is a finite subset of S satisfying \(F \prec _U F_k\), hence \(F \in J\).    \(\square \)

Theorem 10

\({\mathrm {\mathbf{K}}}({{\mathrm {\mathbf{I}}}(\prec )})\) and \({{\mathrm {\mathbf{I}}}(\prec _U)}\) are computably homeomorphic.

Proof

We will prove that \({f_U}\) and \({g_U}\) are well-defined computable inverses of each other in several steps.

  • \({f_U}\) is well-defined: We must show that \({f_U}(K)\) is an ideal.

  1. 1.

    (\({f_U}(K)\) is non-empty). Ideals are non-empty, so we can fix some \(m_I \in I\) for each \(I \in K\). By compactness of K there is a finite subset F of \(\{ m_I {\mid } I \in K\}\) such that \(K \subseteq \bigcup _{m_I \in F} [m_I]_{\prec }\). Then \(F \in {f_U}(K)\), hence \({f_U}(K) \not =\emptyset \).

  2. 2.

    (\({f_U}(K)\) is a lower set). Assume \(G \in {f_U}(K)\) and \(F \prec _U G\). For any \(I\in K\) there exists \(n \in G \cap I\), and since \(F \prec _U G\) there is \(m \in F\) with \(m \prec n\). Then \(m \in F \cap I\) because I is a lower set, and it follows that \(F \in {f_U}(K)\).

  3. 3.

    (\({f_U}(K)\) is directed). Assume \(F, G \in {f_U}(A)\). For each \(I \in K\) there exist \(m_I \in F \cap I\) and \(n_I \in G \cap I\). Since I is an ideal, there is \(p_I \in I\) with \(m_I \prec p_I\) and \(n_I \prec p_I\). By compactness of K there is a finite subset H of \(\{ p_I {\mid } I \in K\}\) such that \(K \subseteq \bigcup _{p_I \in H} [p_I]_{\prec }\). Then \(H \in {f_U}(K)\) and \(F, G \prec _U H\).

  • \({g_U}(J)\) is well-defined: We must show that \({g_U}(J)\) is a saturated compact subset of \({{\mathrm {\mathbf{I}}}(\prec )}\). It is clear that \({g_U}(J)\) is saturated, because the specialization order on \({{\mathrm {\mathbf{I}}}(\prec )}\) is subset inclusion, and if I intersects each \(F \in J\) then so does any superset \(I'\) of I. To show compactness, assume \(S \subseteq {\mathbb N}\) is such that \({g_U}(J) \subseteq \bigcup _{m\in S} [m]_{\prec }\). Using Lemma 9, there is finite \(F\subseteq S\) with \(F \in J\), hence \({g_U}(J) \subseteq \bigcup _{m\in F} [m]_{\prec }\).

  • \({f_U}\) is computable: Clearly, \({f_U}(K) \in [F]_{\prec _U}\) if and only if \(K \in \Box \bigcup _{m\in F} [m]_{\prec }\).

  • \({g_U}\) is computable: Lemma 9 implies \({g_U}(J) \in \Box \bigcup _{m\in F} [m]_{\prec }\) if and only if \(J \in [F]_{\prec _U}\).

  • \({f_U}({g_U}(J)) = J\) : The above proofs that \({f_U}\) and \({g_U}\) are computable imply that \(F\in {f_U}({g_U}(J))\) if and only if \({g_U}(J) \in \Box \bigcup _{m\in F} [m]_{\prec }\) if and only if \(F \in J\).

  • \({g_U}({f_U}(K)) = K\) : The above proofs that \({g_U}\) and \({f_U}\) are computable imply that \({g_U}({f_U}(K)) \in \Box \bigcup _{m\in F} [m]_{\prec }\) if and only if \(F \in {f_U}(K)\) if and only if \(K \in \Box \bigcup _{m\in F} [m]_{\prec }\).

   \(\square \)