Maps of $\mathbb{R}^3$ commuting with the cross product

Given a map $\phi:\Bbb R^3 \rightarrow \Bbb R^3$ such that for all $a,b \in \Bbb R^3$:

$$\phi(a \times b)=\phi(a) \times \phi(b)$$

Is $\phi$ necessarily a rotation around the origin or the map which sends every point to $0$?

(Note that, $\phi$ is not required to be continuous or even linear.)


Suppose there is a nonzero vector $c$ such that $\phi(c)=0$. Let $P$ be the plane orthogonal to $c$. Any vector $a \in P$ can be written as $a=b\times c$ for some $b\in \mathbb R^3$. Hence, $\phi(a)=\phi(b)\times \phi(c)=0$. Furthermore, any vector $v\in\mathbb R^3$ can be written as $a\times b$ for some $a\in P$ and $b\in\mathbb R^3$. It follows that $\phi(v)=0$, that is $\phi$ is identically zero.

From now on assume that $\phi$ is not identically zero, hence $\phi(v)=0 \iff v=0$. Therefore, $$ a\parallel b \iff \phi(a) \parallel \phi(b) \tag{1}$$ If $a\perp b$, then there exists $c$ such that $a=b\times c$, hence $\phi(a)=\phi(b)\times \phi(c)$. Thus, $$ a \perp b \implies \phi(a) \perp \phi(b) \implies |\phi(a\times b)|=|\phi(a)||\phi(b)| \tag{2}$$

Let $e_1,e_2,e_3$ be the standard basis of $\mathbb R^3$. By (2) the vectors $\phi(e_j)$ are orthogonal. Also by (2), they satisfy relations such as $|\phi(e_2)|=|\phi(e_1)||\phi(e_3)|=|\phi(e_1)|^2|\phi(e_2)|$, hence $|\phi(e_1)|=1$ and similarly for others. Thus, $(\phi(e_j))$ is an orthonormal basis of $\mathbb R^3$, and it is positively oriented since $\phi(e_3)=\phi(e_1)\times \phi(e_2)$. Composing $\phi$ with rotation, we can and do assume that $\phi(e_j)=e_j$, $j=1,2,3$.

The map $P_{23}(x)=(e_1\times x)\times e_1$ is the orthogonal projection onto the $e_2e_3$ plane. Since $\phi$ fixes $e_1$, we have $\phi\circ P_{23} = P_{23}\circ \phi$. Same commutation relation holds for projections onto other coordinate planes. Therefore, $\phi$ commutes with projections $P_1,P_2,P_3$ onto the coordinate axis (e.g., $P_3 = P_{23}P_{13}$). This allows us to write $$\phi(x_1,x_2,x_3)=(f_1(x_1),f_2(x_2),f_3(x_3))\tag{3}$$ for some real functions $f_1,f_2,f_3$.

The map $\phi$ is odd (i.e., $\phi(-x)=-\phi(x)$) because any vector $x$ can be written as $a\times b$, making $$\phi(-x)=\phi(b\times a)=\phi(b)\times \phi(a) = -\phi(a)\times \phi(b) = -\phi(x)$$ Furthermore, $$f_1(t)e_1 = \phi(t e_1) = \phi(t e_2 \times e_3) = \phi(te_2)\times e_3 = f_2(t)e_1 $$ which yields $f_1\equiv f_2$, and similarly for others. Thus, $$\phi(x_1,x_2,x_3)=(f(x_1),f(x_2),f(x_3)) \tag{4}$$ where $f:\mathbb R\to\mathbb R$ is odd and vanishes only at $0$.

For any $s,t\in\mathbb R$ we have $f(st)e_3 = \phi(se_1\times te_2) = f(s)f(t)e_3$. Thus, $f$ is a multiplicative homomorphism: $$f(st)=f(s)f(t) \quad \forall s,t\in\mathbb R\tag{5}$$ As a consequence, for $s>0$ we have $f(s)=f(\sqrt{s})^2>0$.

If $s+t=u$, then the vector $(s,t,-u)$ is orthogonal to $(1,1,1)$. By (2) the vector $(f(s),f(t),-f(u))$ is orthogonal to $(f(1),f(1),f(1))$. It follows that $f$ is an additive homomorphism:
$$f(s+t)=f(s)+f(t) \quad \forall s,t\in\mathbb R\tag{6}$$ Since $f(1)=1$ by (5), property (6) implies that $f(q)=q$ for all $q\in \mathbb Q$. Since $f(s)>0$ when $s>0$, (6) also implies that $f$ is strictly increasing. We conclude that $f(x)=x$ for all real $x$, appealing to the definition of real numbers as Dedekind cuts in the rationals.