# Cardinality of the set of open functions?

I was wondering what is the cardinality of the set $\{ f : \mathbb{R} \to \mathbb{R} \mid f \text{ is open } \}$ (i.e., $f(U) \subseteq \mathbb{R}$ is open for all open $U$). There are at least $c = 2^{\aleph_0}$ such functions, since all linear maps $f(x) = ax$ with $a \neq 0$ are open. If we add the condition $f$ continuous, or $f$ injective, it's easy to see that there are no more than $2^{\aleph_0}$ functions. But I don't know if there are a lot of open functions which are neither injective nor continuous.

-
I think Brian M. Scott's construction is useful to solve this problem. – Hanul Jeon May 8 '13 at 0:41
@tetori Yes, it does. Nice question. Why don't you post this as an answer? (The number is $2^{\mathfrak c}$.) – Andrés Caicedo May 8 '13 at 0:47
Even easier, take any permutation of $\Bbb R$ and compose it on Conway base 13 function, that every non-degenerate closed interval is mapped onto $\Bbb R$ itself. It follows that there are $2^\frak c$ maps which send every non-empty open set to $\Bbb R$ itself. – Asaf Karagila May 8 '13 at 1:11

OK, here is the suggestion given by @tetori. Let $\mathfrak c=|\mathbb R|$. Write $A\sim B$ for "There is a bijection between $A$ and $B$."

Note first that $2^{\mathfrak c}=\mathfrak c^{\mathfrak c}$. We start by claiming that there are $2^{\mathfrak c}$ bijections $\pi:\mathbb R\to\mathbb R$. This is because $\mathbb R\sim \mathbb R\times\{0,1\}$. Given any function $f:\mathbb R\to 2$, it can be coded via a bijection $$\pi_f:\mathbb R\times\{0,1\}\to\mathbb R\times\{0,1\}$$ as follows: If $f(x)=0$, let $\pi_f(x,i)=(x,i)$ for $i=0,1$. If $f(x)=1$, let $\pi_f(x,i)=(x,1-i)$ for $i=0,1$.

With that out the way, note that $\mathbb R/\mathbb Q$ has size $\mathfrak c$, where $\mathbb R/\mathbb Q$ is the collection of equivalence classes of Vitali's equivalence relation that identifies $x,y\in\mathbb R$ iff $x-y\in\mathbb Q$. Write $[x]$ for the equivalence class of $x$ under this relation.

Brian's construction associates to each bijection $h:\mathbb R/\mathbb Q\to \mathbb R$ an open map $f_h:\mathbb R\to\mathbb R$ via $$f_h(x)=h([x]).$$ The point is that, as explained in the link, $f_h(U)=\mathbb R$ for any nontrivial open set $U$, since any $U$ intersects each equivalence class, so $f_h$ is open.

But the association $h\mapsto f_h$ is injective, so there are at least as many open maps as there are bijections between $\mathbb R/\mathbb Q$ and $\mathbb R$. We already argued that there are $2^{\mathfrak c}$ bijections between $\mathbb R\times\{0,1\}$ and itself, and since $$\mathbb R\times\{0,1\}\sim\mathbb R\sim\mathbb R/\mathbb Q,$$ there are $2^{\mathfrak c}$ bijections $h:\mathbb R/\mathbb Q\to\mathbb R$. Since this is the same as the total number of functions $g:\mathbb R\to\mathbb R$, we cannot have more than that. So there are precisely $2^{\mathfrak c}$ open maps.

In a comment, Asaf suggests to use Conway's base 13 function in a similar fashion. This function, call it $c$, also has the key property $(*)$:

The image of every nontrivial interval is $\mathbb R$,

so if $f$ is a permutation of $\mathbb R$, then $f\circ c$ gives an open map, as before. Different permutations $f$ give rise to different functions $f\circ c$ so, again, we obtain $2^{\mathfrak c}$ open functions this way, with the additional niceness brought up by using $c$ instead of an arbitrary $c'$ with property $(*)$. (Thanks to @hot_queen for solving the problem I was having with this neat argument.)

-
Let $c: \mathbb{R} \rightarrow \mathbb{R}$ be any function sending all intervals onto $\mathbb{R}$. If $f_1, f_2$ are different surjections from reals to reals, then isn't it clear that $f_1 \circ c$ and $f_2 \circ c$ are different? – hot_queen May 8 '13 at 3:27
@hot_queen Yes, of course! I kept thinking of $c\circ f_1$ and $c\circ f_2$, which is how I interpreted the suggestion. – Andrés Caicedo May 8 '13 at 4:25

Another easy way to get the desired functions is to construct an infinite sequence of pairwise disjoint nowhere dense perfect sets, so that each rational interval contains one of them, and map each of those perfect sets onto the whole line. This defines a real-valued function on a meager subset of the line. You can give it arbitrary values on the remaining comeager set. In this way you get $2^\frak c$ different functions, each of which maps every nonempty open set onto the whole line.

I believe this is the standard way of constructing such functions, but I'm too lazy to try and look it up.

-