Functional equation: $f: \mathbb{R} \rightarrow \mathbb{R}$, $f((x + 1) f(y)) = y (f(x) + 1)$ Determine all $f: \mathbb{R} \rightarrow \mathbb{R}$ such that, for all $x, y \in \mathbb{R}$, $$f((x + 1) f(y)) = y (f(x) + 1).$$  
Source: Vuong Lam Huy, on a Facebook group.  

Let $f : \mathbb{R} \to \mathbb{R}$ satisfy
$$ f((x+1)f(y)) = (f(x)+1)y, \quad : \forall x,y \in \mathbb{R} \tag{1} $$

Lemma 1. $f$ is bijective, $f(0) = 0$ and $f(f(x)) = x$.

Proof. Plug $y = 0$ to $\text{(1)}$. Then $f((x+1)f(0)) = 0$ In particular, $f(f(0)) = 0$.
Now plugging $x = f(0)$ to $\text{(1)}$, we have  $f((f(0)+1)f(y)) = y$ for all $y$. This proves that $f$ is bijective. Then by the previous step, $(x+1)f(0)$ is constant. This implies $f(0) = 0$.

Lemma 2. $f(-x) = -f(x)$ and $f(xy) = f(x)f(y)$.

Proof. From Lemma 2, replacing $y$ by $f(y)$ in $\text{(1)}$ gives
$$f((x+1)y) = (f(x)+1)f(y), \quad : \forall x,y \in \mathbb{R} \tag{2}$$
On the other hand, replacing $(x,y)$ by $(x-1,1)$ in $\text{(2)}$ gives $f(x) = (f(x-1) + 1)f(1)$. Since $f(1) \neq 0$, this gives
$$ f(xy) = (f(x-1)+1)f(y) = \frac{1}{f(1)}f(x)f(y). $$
So it suffices to show that $f(1) = 1$. To this end, we first show that $f$ is odd. Indeed,
$$ f(-x)^2 = f(1)f((-x)^2) = f(1)f(x^2) = f(x)^2$$
together with the injectivity of $f$ shows that $f(-x) = -f(x)$. Next, plugging $x = -1$ to $\text{(2)}$ gives $0 = (f(-1)+1)f(y)$ for any $y$, which implies $f(-1) = -1$. Therefore $f(1) = 1$ and the claim follows.

Proposition. $f(x) = x$.

Proof. From Lemma 2, for $x > 0$ we have $f(x) = f(\sqrt{x})^2 > 0$. Also, plugging $y = 1$ to $\text{(2)}$ shows that $f(x+1) = f(x) + 1$ for any $x \in \mathbb{R}$. So if $0 < x < y$, then
$$ f(y) = f(x(1 + \tfrac{y-x}{x})) = f(x)(1 + f(\tfrac{y-x}{x})) > f(x) $$
and $f$ is increasing on $[0,\infty)$.
On the other hand, for $n \in \Bbb{Z}_{>0}$ and $x \neq 0$ we have $f(x^n) = f(x)^n$ and this extends to all of $n \in \Bbb{Z}$ by $f(1/x)f(x) = f(1) = 1$. Then for any rational number $r = p/q$ with $p,q \in \Bbb{Z}$,
$$ f(2^r)^q = f(2^{rq}) = f(2^p) = f(2)^p = 2^p $$
and hence $f(2^r) = 2^r$. Since $f$ is increasing, for any $x> 0$ we can choose sequences of rational numbers $(l_n)$ and $(u_n)$ so that $l_n \uparrow \log_2 x$ and $u_n \downarrow \log_2 x$. Then
$$ 2^{l_n} = f(2^{l_n}) \leq f(x)  \leq f(2^{u_n}) = 2^{u_n} $$
and by the squeezing lemma, $f(x) = x$. Since $f$ is odd, the same is true for all $x \in \mathbb{R}$. ////
