Is a function that preserves the cross product necessarily linear in $\mathbb R^3$? $f(a) \times f(b) = a \times b$ Assume that $f: \mathbb{R^3} \rightarrow \mathbb{R^3}$ is a function such that
$$
f(a) \times f(b)=a \times b
$$
for all $a,b \in \mathbb{R^3}$, where ''$\times$'' denotes the cross product in $\mathbb{R^3}$.
Does $f$ have to be a linear mapping?
 A: Yes, $f$ is necessarily linear.
Note that the image of $f$ must contain a basis of $\mathbb R^3$, otherwise it is contained in a two-dimensional subspace, say, $\{v\}^\perp$ for some nonzero vector $v$, but this is a contradiction because $f(a)\times f(b)$ always lies inside $\operatorname{span}\{v\}$, while the set of all cross products $a\times b$ is $\mathbb R^3$.
Now pick any two vectors $a,b$ and any scalar $\lambda$. For any vector $c$, we have
\begin{aligned}
f(\lambda a+b)\times f(c)
&=(\lambda a+b)\times c\\
&=\lambda(a\times c)+b\times c\\
&=\lambda\left(f(a)\times f(c)\right)+f(b)\times f(c)\\
&=\left(\lambda f(a)+f(b)\right)\times f(c).
\end{aligned}
By our previous argument, when $c$ runs through $\mathbb R^3$, its image $f(c)$ will run through at least a basis of $\mathbb R^3$.
Hence the above equalities imply that $f(\lambda a+b)=\lambda f(a)+f(b)$. Since $a,b$ and $\lambda$ are arbitrary, $f$ is linear.
A: First note that $f$ is injective; if $f(x)=f(x')$ for some $x,x'\in\Bbb{R}^3$ then for all $y\in\Bbb{R}^3$ we have
$$x\times y=f(x)\times f(y)=f(x')\times f(y)=x'\times y,$$
and hence $(x-x')\times y=0$ for all $y\in\Bbb{R}^3$, which shows that $x=x'$.
Next we want to show $f(\lambda x) = \lambda f(x)$ for all $x \in \Bbb{R}^3$ and $\lambda \in \Bbb{R}$. Note that
$$
f(x)\times f(\lambda x)=x\times(\lambda x)=\lambda(x\times x)=0
$$
for all all $x\in\Bbb{R}^3$ and $\lambda\in\Bbb{R}$. Because $f(x) \neq 0$ if $x \neq 0$, for nonzero $x$ we have $f(\lambda x)=\mu f(x)$ for some $\mu\in\Bbb{R}$, where $\mu$ may depend on $\lambda$ and $x$. In order to prove $\mu = \lambda$, for all $y\in\Bbb{R}^3$
$$
(\lambda x)\times y=f(\lambda x)\times f( y)=(\mu f(x))\times f(y)=\mu(f(x)\times f(y))=\mu(x\times y) = (\mu x) \times y,
$$
so $((\lambda - \mu)x) \times y = 0$. Therefore $(\lambda - \mu)x = 0$, so $\mu=\lambda$ since $x \not= 0$. Thus $f(\lambda x)=\lambda f(x)$ for all  all $x\in\Bbb{R}^3$ and all $\lambda\in\Bbb{R}$.
Finally, note that for all nonzero $x,y\in\Bbb{R}^3$ we have $f(y)\neq0$ and so from
$$f(x+y)\times f(y)=(x+y)\times y=(x\times y)+(y\times y)=x\times y=f(x)\times f(y),$$
it follows that $f(x+y)-f(x)=\lambda f(y)$ for some $\lambda\in\Bbb{R}$. Similarly we have
$$f(x+y)\times f(x)=f(y)\times f(x),$$
which shows that $f(x+y)-f(y)=\mu f(x)$ for some $\mu\in\Bbb{R}$. It follows that
$$f(x)+\lambda f(y)=f(x+y)=\mu f(x)+f(y),$$
and hence that $f((1-\mu)x)=f((1-\lambda)y)$. As $f$ is injective this implies $(1-\mu)x=(1-\lambda)y$, so if $x$ and $y$ are noncollinear this shows that $\lambda=\mu=1$ and hence that
$$f(x+y)=f(x)+f(y).$$
Of course if $x$ and $y$ are collinear, say $y=\lambda x$, then we already saw that
$$f(x+y)=f(x+\lambda x)=(1+\lambda)f(x)=f(x)+\lambda f(x)=f(x)+f(y).$$
This shows that $f$ is indeed linear, so the hypothesis is redundant.
A: Yes, but only in the trivial sense that the only functions $f: \mathbb R^3 \to \mathbb R^3$ that preserve the cross product in the sense used in your question (i.e. $f(a) \times f(b) = a \times b$) are the identity function $f(x) = x$ and the reflection $f(x) = -x$, which of course are indeed both linear.
This can be seen with a simple geometric argument.  First, note that if $a$ and $b$ are any two non-collinear vectors in $\mathbb R^3$, then $a \times b$ is orthogonal to the unique plane containing $a$, $b$ and the origin, and that the vectors in this plane are the only ones orthogonal to $a \times b$.  Thus $f(a) \times f(b) = a \times b$ implies that both $f(a)$ and $f(b)$ must also belong to the same plane passing through the origin as $a$ and $b$, and thus planes passing through the origin must be an invariant set of $f$.
But since any line through the origin is the intersection of two planes through the origin, and since the intersection of two invariant sets is itself an invariant set, each line through the origin must also be an invariant set of $f$.  This implies that $f(x)$ must be collinear with $x$ for all $x \in \mathbb R^3$, i.e. that $f(x) = s(x) x$ for some scaling function $s: \mathbb R^3 \to \mathbb R$, and thus that $f(a) \times f(b) = s(a) a \times s(b) b$.
All that remains to be shown is that this scaling function $s$ must in fact be constant over $\mathbb R^3$ (at least excluding the origin) and equal to $\pm 1$.  We can do this using the bilinearity of the cross product, which implies that $f(a) \times f(b) = s(a) a \times s(b) b = s(a) s(b) (a \times b)$.  If $a$ and $b$ are not collinear, then $a \times b \ne 0$, and thus $$f(a) \times f(b) = s(a) s(b) (a \times b) = a \times b \implies s(a) s(b) = 1.$$  Now, let $a$ and $b$ be any two (non-zero) vectors, and let $c$ not be collinear with either of them.  Then $s(a)s(c) = s(b)s(c) = 1$, implying that $s(a) = s(b)$, and thus that $s$ is constant over $\mathbb R^3 \setminus \{0\}$.
Finally, we merely need to note that the only constant solutions to $s^2 = 1$ in $\mathbb R$ are $s = 1$ and $s = -1$, yielding only two possible functions $f$: either $f(x) = x$ or $f(x) = -x$.  And, as $(-a) \times (-b) = a \times b$, both of these do indeed satisfy the original criterion.
