Solving a functional equation: $f\left(x^{f(y)}\right)=f(x)^{y}$ for all positive $x$ and $y$. 
Question: determine all functions $ f : \mathbb R ^ + \to \mathbb R ^ + $, such that:
$$ f \left( x ^ { f ( y ) } \right) = f ( x ) ^ y $$
for all positive numbers $ x $ and $ y $.

It's easy to see that $ f ( 1 ) = 1 $, because letting $ x = 1 $ we have
$$ f ( 1 ) = f \left( 1 ^ { f ( y ) } \right) = f ( 1 ) ^ y \text . $$
Then for $ y = 2 $ we get $ f ( 1 ) ^ 2 = f ( 1 ) $, and since $ f ( 1 ) $ is positive, we can divide both sides by $ f ( 1 ) $.
It's also easy to see that $ f ( x ) = 1 $ and $ f ( x ) = x $ work.
 A: The only functions $ f : \mathbb R ^ + \to \mathbb R ^ + $ satisfying
$$ f \left( x ^ { f ( y ) } \right) = f ( x ) ^ y \tag 0 \label 0 $$
are $ f ( x ) = 1 $ and $ f ( x ) = x $. It's easy to check that these indeed satisfy \eqref{0}. We show that if there is an $ a \in \mathbb R ^ + $ such that $ f ( a ) \ne 1 $, then $ f $ is the identity function, and thus those are the only solutions.
First, note that letting $ x = a $ in \eqref{0} we can conclude that if $ f ( y ) = f ( z ) $, then $ f ( a ) ^ y = f ( a ) ^ z $, and since $ f ( a ) \ne 1 $, thus $ y = z $, which shows that $ f $ is injective. Then, use \eqref{0} to get
$$ f \left( 2 ^ { f ( x y ) } \right) = f ( 2 ) ^ { x y } = \big( f ( 2 ) ^ x \big) ^ y = f \left( 2 ^ { f ( x ) } \right) ^ y = f \left( \left( 2 ^ { f ( x ) } \right) ^ { f ( y ) } \right) = f \left( 2 ^ { f ( x ) f ( y ) } \right) \text , $$
which by injectivity of $ f $ shows that
$$ f ( x y ) = f ( x ) f ( y ) \text . \tag 1 \label 1 $$
Now, using \eqref{0} and \eqref{1} we have
$$ f \left( 2 ^ { f ( x + y ) } \right) = f ( 2 ) ^ { x + y } = f ( 2 ) ^ x f ( 2 ) ^ y = f \left( 2 ^ { f ( x ) } \right) f \left( 2 ^ { f ( y ) } \right) = f \left( 2 ^ { f ( x ) } 2 ^ { f ( y ) } \right) = f \left( 2 ^ { f ( x ) + f ( y ) } \right) \text , $$
which again shows that
$$ f ( x + y ) = f ( x ) + f ( y ) \text . \tag 2 \label 2 $$
It's a well-known fact that the only functions $ f : \mathbb R ^ + \to \mathbb R ^ + $ satisfying \eqref{2} are the functions of the form $ f ( x ) = c x $ for some $ c \in \mathbb R ^ + $. The idea is to follow these steps:

*

*show $ f ( n x ) = n f ( x ) $ for every $ n \in \mathbb Z ^ + $ and every $ x \in \mathbb R ^ + $, by induction and using \eqref{2};

*show $ f ( q ) = c q $ for every $ q \in \mathbb Q ^ + $ where $ c = f ( 1 ) $, using the previous step;

*use the fact that $ f $ is increasing by \eqref{2} and the fact that $ f $ only takes positive values.

The additional property \eqref{1} forces $ c = 1 $ by letting $ x = y = 1 $, and thus the only function $ f : \mathbb R ^ + \to \mathbb R ^ + $ satisfying both \eqref{1} and \eqref{2} is the identity function.
