Denote φ(f(0))=c. Clearly, f is a bijective because
f(f(y))=y+c.
Replacing y by f(y) in the relation, we have
f(y+c)=f(y)+c.
Because f is a bijective then there exists a real number d that f(d)=0. Replacing (x,y) by (d,y+c), we get
f(φ(d)+f(y+c))=y+c.
Note that f is an injective, it implies that
φ(d)+f(y)+c=φ(d)+f(y+c)=φ(d)+f(y+c)=f(y),
which means
φ(d)+c=0.
On the other hand, because φ(x)≥0 and the equality only happens when x=0, thus
f(0)=d=0.
Hence, f(f(y))=y and replace y=0 in the original equation, we get
f(φ(x))=φ(f(x))
but it is clear that φ(x)≥0 for all x, which leads to f(t)≥0,∀t≥0. Replacing y by f(y) and φ(x)=t≥0 for any arbitrary t≥0, we obtain
f(y+t)=f(y)+f(t),∀t≥0.
Therefore, for all pairs (x,y)∈R×R and t≥max(−y,0), we have
f(x+y)+f(t)=f(x+y+t)=f(x)+f(y+t)=f(x)+f(y)+f(t)
or f is additive. We also have proved that f(x)≥0 for all real numbers x, it implies that f(x)=kx for all x∈R. By replacing f(x)=kx in the original equation, we can find that k=1. Thus, f(x)=x for all real numbers x. □