Functions satisfying $f(x)f(y)=2f(x+yf(x))$ over the positive reals From the IMO shortlist:

We denote by $\mathbb{R}^+$ the set of all positive real numbers.
Find all functions $f: \mathbb R^+\rightarrow\mathbb R^+$ which have the property:
$$f(x)f(y)=2f(x+yf(x))$$
for all positive real numbers $x$ and $y$.

$\textbf{My progress: }$At first assume $f$ is not injective.
Then there exist $z,y$ such that $f(z)=f(x)$ assume WLOG $z >x$.Now,We can choose some appropriate $y$ such that $x+yf(x)=z$.
Then it follows that $f(y)=2$ which means $2$ has an inverse. Now, substituting inverse of $2$ in place of $y$ from which we could get a bunch of values for which the function assumes the same value. I then thought of somehow proving this would show the function is constant which I failed to do.
The case with $f$ injective is pretty easy.interchaging $x,y$ we get, $f(x+yf(x))=f(y+xf(y))$ Using injectivity we could easily deduce from here that $f$ is linear and get a contradiction.
But I cannot do the first case. I do believe that $f(x)=2$ is the only function that works.
Any kind of hint or solution is appreciated.
 A: Let $P(x,y)$ be the statement $\color{red}{f(x)f(y)=2f(x+yf(x))}$
We will solve this functional equation dividing it into $4$ steps.
$\boxed{\text{$(1)$ $f(x)\ge 2$ $\forall x$}}$
If $f(x)<1$ for some $x$, then $P(x,\frac x{1-f(x)})$ $\implies$ $f(x)=2>1$, contradiction. So $f(x)\ge 1$ $\forall x$
If $f(x)\ge 2^t$ $\forall x$ and for some $t\ge 0$; then $P(x,x)$ $\implies$ $f(x)^2\ge 2^{1+t}$ and so $f(x)\ge 2^{\frac{1+t}2}$ $\forall x$
Setting then $a_0=0$ and $a_{n+1}=\frac{1+a_n}2$, we get $f(x)\ge 2^{a_n}$ $\forall x$, $\forall n$ and so $f(x)\ge 2$ $\forall x$.
$\boxed{\text{$(2)$ If $f(u)=2$ for some $u>0$, then $f(x)=2$ $\forall x$}}$
If $f(u)=2$ for some $u>0$, then, for $x<u$, $P(x,\frac{u-x}{f(x)})$ $\implies$ $f(x)f(\frac{u-x}{f(x)})=2^2$ and so $f(x)=2$ $\forall x\le u$
But $P(u,u)$ $\implies$ $f(u(1+2))=2$ and so $f(u(1+2)^n)=2$ and so, using previous line, $f(x)=2$ $\forall x$.
$\boxed{\text{$(3)$ $f$ is not injective}}$
If $f(x)$ is injective, comparaing of $P(x,1)$ with $P(1,x)$ we get $f(x+f(x))=f(1+xf(1))$ and so $x+f(x)=1+xf(1)$ and so $f(x)=1+x(f(1)-1)$
Plugging this back in the original equation, we get $2=1$, contradiction!
$\boxed{\text{$(4)$ $f(x)=2$ $\forall x$}}$
Since non injective, let $a>b$ such that $f(a)=f(b)$. Then let $u=\frac{b-a}{f(a)}$. Hence $P(a,u)$ $\implies$ $f(u)=2$
Therefore we have all solutions.
$\tag*{$\square$}$
A: Like you wrote, we can show that $f$ is not injective and there is some $a$ such that $f(a) = 2$. Suppose towards a contradiction that there exists a $b$ with $f( b) < 2$.
$P(a, x)$ gives $f(x) = f(2x + a)$ so we can find a $c > a$, with $f(c ) = f(b)$ Let $y \in \mathbb{R}^+$ such that $$c + f(c)y = 2y + a$$
Then $P(c, y)$ gives $f(c) = 2$ which is a contradiction.
Similarly, suppose that there exists a $b$ with $f(b ) > 2$. Then we can find a $c < a$ with $f(c) = f(b)$ and a $y$ with $$c + f(c)y = 2y + a$$
and $P(c,y)$ gives the same contradiction.
