Put x=y=0; we get f(0)=3f(0) so that f(0)=0. Taking y=−1, we get f(−1)=f(x)+f(−1)+f(−x) so that f(−x)=−f(x) for all x∈R. Taking y=1, we get f(2x+1)=2f(x)+1, for all x∈R. Replace x by u+v+uv in this, we get
f(2(u+v+uv)+1)=2f(u+v+uv)+f(1)=2f(u)+2f(v)+2f(uv)+f(1),(1)
for all u,v∈R. Taking x=u, y=2v+1 in the original equation, we get
f(u+2v+1+2uv+u)=f(u)+f(2v+1)+f(2uv+u),
and this reduces to
f(2(u+v+uv)+1)=f(u)+f(2v+1)+f(2uv+u),
(2)
for all u,v∈R. Comparing (1) and (2) and using f(2x+1)=2f(x)+1, we get
f(2uv+u)=f(u)+2f(uv),
(3)
for all u,v∈R. Put v=−1/2 in (3) to get
0=f(0)=f(u)+2f(−u/2)=f(u)−2f(u/2).
This shows that f(u/2)=f(u)/2 or f(2u)=2f(u) for all u∈R. Thus
f(2uv+u)=f(2uv)+f(u),
for all u,v∈R. Given any x=0 and y, we can find u,v such that 2uv=y and u=x. Thus f(x+y)=f(x)+f(y) for all x=0 and y. However this also valid for x=0. Thus f(x+y)=f(x)+f(y) for all x,y∈R.