Find all functions $f: \mathbb{Z}_{\ge 0}\rightarrow \mathbb{Z}_{\ge 0}$ such that $f(f(m)+f(n))=m+n.$
My idea was to set $m_0$ such that $f(m_0)=0$ and then:
$$ f(f(m_0)+f(n))=f(0+f(n))=f(f(n))=m_0+n$$
Then to set $m=n$:
$$ f(2f(n))=2n $$
But here I run out of ideas, as I don't know what to do to get $f(n)$ instead of $f(f(n))$ or $f(2f(n))$. Could somebody show me some hints?
The surjectivity is pretty much trivial. For the injectivity assume that $f(m) = f(n)$, then there exists (from surjectivity) $f(m_1) = m$, $f(n_1) = n$ and $f(k) = 0$. So we have:
$$m_1 + k = f(f(m_1) + f(k)) = f(m) = f(n) = f(f(n_1) + f(k)) = n_1 + k \implies m_1 = n_1 \implies m=n$$
Therefore the function is bijective. Now assume that $f(k) = 0$. Then:
$$f(f(k) + f(k)) = 2k = f(f(2k) + f(0))$$
From the bijectivity we have: $f(2k) + f(0) = f(k) + f(k) = 0$. But as $f(x) \ge 0 $ we get that $f(0) = 0$. Finally:
$$f(f(m) + f(n)) = m+n =f(f(m+n) + f(0)) \implies f(m+n) = f(m) + f(n)$$
The last equation can be easily solved using induction and later you can find a suitable value for $f(1)$.