Let P(x,y) denote substituting (x,y) into the given condition.
P(1,1)⇒f(1)=1.
P(1,y)⇒f(1+y2f(y))=f(1+y).(1)
P(x,1)⇒f(x+1)=f(1+f(x))f(x).(2)
Comparing P(1+x2f(x),y) and P(1+y2f(y),x), we have
f(1+x2f(x)+y2f(y))=f(1+yf(1+x2f(x)))f(1+x2f(x))=f(1+yf(1+x))f(1+x)(3)=f(1+xf(1+y))f(1+y).
Therefore, consider another function g:R>−1→R+ satisfying g(x)=f(1+x) for all x>−1. Then equation (3) can be rewritten as
g(yg(x))g(x)=g(xg(y))g(y).(4)
Consider P(1+x,y) together with equation (4), we have
P(1+x,y)⇒f(1+x+y2f(y))=f(1+yf(1+x))f(1+x)(5)⇒g(x+y2g(y−1))=g(yg(x))g(x)=g(xg(y))g(y).
Suppose there exist two distinct positive real numbers a,b satisfying f(a)=f(b). From equation (2) we can deduce
f(a+1)=f(1+f(a))f(a)=f(1+f(b))f(b)=f(b+1).
Note that
g(a)=f(a+1)=f(b+1)=g(b)⇒(a+1)2g(a)=(b+1)2g(b).
g(x+(a+1)2g(a))=g(xg(a+1))g(a+1)=g(xg(b+1))g(b+1)=g(x+(b+1)2g(b)).
Let c=∣(b+1)2g(b)−(a+1)2g(a)∣>0 and M=max{(a+1)2g(a),(b+1)2g(b)}, then the above equation can be rewritten as
g(x+c)=g(x)∀x>M.
For y>−1, if g(y)=1, choose x0>g(y)M satisfying x0+y2g(y−1)=x0g(y)+mc>M for some m∈Z, and substitute (x,y)=(x0,y) into equation (5),
g(x0+y2g(y−1))=g(x0g(y))g(y)⇒g(y)=1.
Therefore, f(y)=1 for all y>0.
If there do not exist two distinct positive real numbers a,b satisfying f(a)=f(b), then equation (1) implies
1+y2f(y)=1+y⇒f(y)=y1,∀y>0.
Substituting back into the original equation to verify, we find that both f(y)≡1 and f(y)=y1 are solutions of the original equation.