Problem: Solve over $\RR$ the functional equation
\[ f(xf(y)) + f(y)=f(x+y)+f(xy). \]

\end{enumerate}

Solution: In addition to all constant functions, $f(x) \equiv x + 1$ clearly works too.
We prove these are the only solutions.
The solution that follows is by the original proposer.

Let $P(x,y)$ denote the given assertion.

\begin{claim}\label{periodic}
  If $f$ is periodic, then $f$ is constant.
\end{claim}
\begin{proof}
  Let $f$ have period $d \neq 0$.
  From $P(x,y+d)$, we have
  \[ f(x(y+d))=f(x+y+d)-f(y+d)-f(xf(y+d))=f(x+y)-f(y)-f(xf(y)). \]
  Applying $P(x,y)$ gives
  \[ f(x(y+d))=f(xy). \]
  In particular, taking $y=0$ yields that $f(dx)=f(0)$.
  Thus $f$ is constant, as $d\neq 0$.
\end{proof}

\begin{claim}\label{symmetry}
  For all real numbers $x$ and $y$, we have $f(f(x)+y)=f(f(y)+x)$.
\end{claim}
\begin{proof}
  Applying $P(f(x),y)$ and then $P(y,x)$ gives us
  \begin{align*}
  f(f(x)f(y)) &= f(f(x)+y)+f(f(x)y)-f(y) \\
              &= f(f(x)+y)+f(x+y)+f(xy)-f(x)-f(y).
  \end{align*}
  Now swapping $x$ and $y$ gives us $f(f(x)+y)=f(f(y)+x)$.
\end{proof}

\begin{claim}\label{distribute}
  If $f$ is nonconstant, then $f(f(x)+y)=f(x)+f(y)$ for all reals $x,y$.
\end{claim}
\begin{proof}
  Let $x, y \in \RR$ and let $d \coloneq f(f(x)+y)-f(x)-f(y)$.
  Let $z$ be an arbitrary real number.
  By repeatedly applying \Cref{symmetry}, we have
  \begin{align*}
    f(z+f(f(x)+y)) &= f(f(z)+f(x)+y) \\
                   &= f(f(x)+f(z)+y) \\
                   &= f(x+f(f(z)+y)) \\
                   &= f(x+f(f(y)+z)) \\
                   &= f(f(x)+f(y)+z) \\
                   &= f(z+f(x)+f(y)).
  \end{align*}
  If $d \neq 0$, then $f$ is periodic with period $d$, contradicting \Cref{periodic}.
\end{proof}

\begin{claim}\label{zero}
  If $f$ is nonconstant, then $f(0)=1$ and $f(x+1)=f(x)+1$.
\end{claim}
\begin{proof}
  From $P(z,0)$ we have $f(zf(0))=f(z)$ for all real $z$.
  Then $P(xf(0),y)$ and $P(x,y)$ give us
  \begin{align*}
    f(xf(0)+y) &= f(y)+f(xf(0)f(y))-f(xf(0)y) \\
               &=f(y)+f(xf(y))-f(xy)=f(x+y).
  \end{align*}
  If $f(0) \neq 1$, then $xf(0)-x$ is a period of $f$ for all $x$, violating \Cref{periodic}.
  So we must have $f(0) = 1$.

  Now putting $x=0$ in \Cref{distribute} gives $f(x+1)=f(x)+1$.
\end{proof}

\begin{claim}\label{additive}
  If $f$ is nonconstant, then $f(x)+f(y)=f(x+y)+1$.
\end{claim}
\begin{proof}
  From $P(x+1,y)$ and \Cref{zero}, we have
  \[ f((x+1)f(y))=f(x+y+1)+f(xy+y)-f(y)=f(x+y)+f(xy+y)-f(y)+1. \]
  Also, from \Cref{distribute} and $P(x,y)$, we have
  \[ f((x+1)f(y))=f(xf(y))+f(y)=f(x+y)+f(xy). \]
  Thus $f(xy)=f(xy+y)-f(y)+1$.
  Replacing $x$ with $\frac{x}{y}$ gives the claim for all $y\ne 0$
  (whereas $y=0$ follows from \Cref{zero}).
\end{proof}


\begin{claim}
  If $f$ is nonconstant, then $f(x)\equiv x+1$.
\end{claim}
\begin{proof}
  We apply \Cref{distribute}, \Cref{additive}, and \Cref{zero}:
  \[ f(f(x)+y)=f(x)+f(y)=f(x+y)+1=f(x+y+1). \]
  If $f(x) \neq x+1$ for some $x$, then \Cref{periodic} again gives a contradiction.
\end{proof}