Let $\mathbb{R}^{+}=(0, \infty)$ be the set of all positive real numbers. Find all functions $f: \mathbb{R}^{+} \rightarrow \mathbb{R}^{+}$ and polynomials $P(x)$ with non-negative real coefficients such that $P(0)=0$ which satisfy the equality

$$
f(f(x)+P(y))=f(x-y)+2 y
$$

for all real numbers $x>y>0$.
Assume that $f: \mathbb{R}^{+} \rightarrow \mathbb{R}^{+}$ and the polynomial $P$ with non-negative coefficients and $P(0)=0$ satisfy the conditions of the problem. For positive reals with $x>y$, we shall write $Q(x, y)$ for the relation:

$$
f(f(x)+P(y))=f(x-y)+2 y
$$

1. Step 1. $f(x) \geq x$. Assume that this is not true. Since $P(0)=0$ and $P$ is with non-negative coefficients, $P(x)+x$ is surjective on positive reals. If $f(x) < x$, then there exists a positive real $y$ such that $f(x) = x - y$. By $Q(x, y)$, we get:

$$
f(f(x)+P(y))=f(x-y)+2 y
$$

Since $f(x) = x - y$, we have $f(x-y) = f(f(x)+P(y)) \geq f(x) + P(y) \geq f(x) + 2y$. Therefore, $f(x-y) \geq f(x)$. We get $f(y) \geq f(2y) \geq \cdots \geq f(ny) \geq ny$ for all positive integers $n$, which is a contradiction.
2. Step 2. If $c \neq 0$, then $f(f(x)+2z+c^2) = f(x+1) + 2(z-1) + 2c$ for $z > 1$. Indeed, by $Q(f(x+z) + cz, c)$, we get:

$$
f(f(f(x+z) + cz) + c^2) = f(f(x+z) + cz - c) + 2c = f(x+1) + 2(z-1) + 2c
$$

On the other hand, by $Q(x+z, z)$, we have:

$$
f(x) + 2z + c^2 = f(f(x+z) + P(z)) + c^2 = f(f(x+z) + cz) + c^2
$$

Substituting in the LHS of $Q(f(x+z) + cz, c)$, we get $f(f(x) + 2z + c^2) = f(x+1) + 2(z-1) + 2c$.
3. Step 3. There is $x_0$ such that $f(x)$ is linear on $(x_0, \infty)$. If $c \neq 0$, then by Step 2, fixing $x=1$, we get $f(f(1) + 2z + c^2) = f(2) + 2(z-1) + 2c$ which implies that $f$ is linear for $z > f(1) + 2 + c^2$. As for the case $c=0$, consider $y, z \in (0, \infty)$. Pick $x > \max(y, z)$, then by $Q(x, x-y)$ and $Q(x, x-z)$ we get:

$$
f(y) + 2(x-y) = f(f(x)) = f(z) + 2(x-z)
$$

which proves that $f(y) - 2y = f(z) - 2z$ and therefore $f$ is linear on $(0, \infty)$.
4. Step 4. $P(y) = y$ and $f(x) = x$ on $(x_0, \infty)$. By Step 3, let $f(x) = ax + b$ on $(x_0, \infty)$. Since $f$ takes only positive values, $a \geq 0$. If $a=0$, then by $Q(x+y, y)$ for $y > x_0$ we get:

$$
2y + f(x) = f(f(x+y) + P(y)) = f(b + cy)
$$

Since the LHS is not constant, we conclude $c \neq 0$, but then for $y > x_0 / c$, we get that the RHS equals $b$ which is a contradiction.

Hence $a > 0$. Now for $x > x_0$ and $x > (x_0 - b) / a$ large enough by $P(x+y, y)$ we get:
$ax + b + 2y = f(x) + 2y = f(f(x+y) + P(y)) = f(ax + ay + b + cy) = a(ax + ay + b + cy) + b$.
Comparing the coefficients before $x$, we see $a^2 = a$ and since $a \neq 0, a = 1$. Now $2b = b$ and thus $b = 0$. Finally, equalizing the coefficients before $y$, we conclude $2 = 1 + c$ and therefore $c = 1$.

Now we know that $f(x) = x$ on $(x_0, \infty)$ and $P(y) = y$. Let $y > x_0$. Then by $Q(x+y, x)$ we conclude:

$$
f(x) + 2y = f(f(x+y) + P(y)) = f(x + y + y) = x + 2y
$$

Therefore $f(x) = x$ for every $x$. Conversely, it is straightforward that $f(x) = x$ and $P(y) = y$ do indeed satisfy the conditions of the problem.