The [Hilbert curve](https://en.wikipedia.org/wiki/Hilbert_curve) is a continuous space-filling curve that maps $I$ to $I^n$ where $I$ denotes the unit interval [1]. Like all other space-filling curves, it is not one-to-one. I am wondering if the Hilbert curve, or a common variant thereof, becomes a continuous bijective map if we restrict its domain/range to $\mathbb{CN} \mapsto \mathbb{CN}^n$ where $\mathbb{CN} \subset I$ denotes the set of computable numbers that lie within the unit interval.


At first glance, this seems like a true statement because we have the following two algorithms [2]:


* A forward algorithm that takes any number $t \in \mathbb{CN}$ as input, iterates over its binary digits, and sequentially produces the binary digits of all numbers in a corresponding (unique) tuple $T \in \mathbb{CN}^n$.
* A reverse algorithm that takes any tuple $T \in \mathbb{CN}^n$ as input, (simultaneously) iterates over the binary digits of $T$'s elements, and sequentially produces the binary digits of a (unique) number $t \in \mathbb{CN}$.


However, I'm not sure if this simple reasoning neglects to account for any of the finer points in computable analysis, especially with respect to the curve's continuity.


[1] As Pietro Majer points out, the *original* Hilbert curve maps $I$ to $I^2$. In this question, I am referring to its standard n-dimensional extension that uses Gray codes to construct its finite approximations.


[2] The algorithms I mention above is described [here](https://aip.scitation.org/doi/abs/10.1063/1.1751381?journalCode=apc). As far as I can tell, these algorithms operate on the standard n-dimensional Hilbert curve (and utilize Gray codes to construct outputs from given inputs).


Thanks in advance for any comments, ideas and pointers to the relevant literature.



Is the Hilbert space-filling curve bijective over computable numbers?
The Hilbert curve, due to its fractal nature, is mapping certain subintervals of the unit interval to certain squares in the unit square. On any given resolution, we have a bijection between the subintervals we consider on that scale, and the squares we consider at that scale. The non-injectivity of the actual map then comes from the fact that the intervals intersect in at most one point, whereas the squares can have an entire line as intersection.


Given any fractal space filling curve with these properties, we can compute two distinct points in the interval that get mapped to the same point in the unit square: Pick two non-adjacent intervals that get mapped to adjacent squares, and decide that our target points will be in these. On the next scale, there have to be matching subintervals/squares, and so on. The intersections of the intervals/squares yield points which are computable relative to the original space filling curve.


We thus see that a computable Hilbert curve is a never a bijection on the computable points.


However, given the curve and a point in the square, we can follow the bijections between squares and intervals back to compute *some* point in its preimage. Hence, the inverse of a computable Hilbert curve is not a function, but it is computable as a multivalued function.


