Do I need to verify solutions to functional equations? I am studying the (basics of) solving functional equations. My teacher stipulates that we check any solutions obtained by substitution. Similar guidelines are given in this IMO training material.
For a typical example, consider $f:\mathbb{R} \setminus \{0\} \mapsto \mathbb{R}$
$$ 2f(x) + f \left( \frac{1}{x} \right) = x.$$
The substitutions $x \mapsto y$ and $x \mapsto \frac{1}{y}$ yield (after some algebra) the solution $f(y) = \frac{2y}{3} - \frac{1}{3y}$. Verifying, we see this is indeed a solution.
My question: In algebra we have some well-known possibilities how extraneous solutions can appear. Are there additional ways of obtaining extraneous solutions in functional equations?
 A: Here is an example of where we must check our solution into the equation to find the correct answer. 

Find all functions $f:\mathbb{Z}\to \mathbb{Z}$ such that $$f(x+f(y)+xf(y))=x+xy+f(y)$$

Solution: 
Notice that the LHS is symmetric - if we let $f(a)=x$, then swapping $a$ and $y$ keeps it the same. But the RHS isn't symmetric, hence substituting $(x,y)=(f(a),y)$ and then swapping $a$ and $y$ equates both RHS's - hence $$f(a)y=f(y)a$$ for all integers $a,y$. Then substituting $a=1$ shows $f(y)=yf(1)$, so $f(x)=cx$ for some constant $c=f(1)$. But substituting this into the original question shows that $c$ must be $1$. Hence $f(x)=x$ is our only function. 
A: Let's address solutions in algebra first and then move to functional equations. Suppose you have an equation $F_1(x) = 0$ where you are solving for $x$. Then you perform some transformation(s) to yield $F_2(x) = 0$.
In general, there are 3 cases:

*

*$F_1(x) = 0 \implies F_2(x) = 0$. This may introduce extraneous solutions.

*$F_1(x) = 0 \impliedby F_2(x) = 0$. This may lose solutions.

*$F_1(x) = 0 \iff F_2(x) = 0$. This neither adds nor loses solutions.

For example, $f(x) = g(x) \implies f^2 (x) = g^2(x)$, but the inverse does not always hold. Hence extraneous solutions can arise and you must check your final solution against $f(x) = g(x)$.
The logic is similar for functional equations. Note that substitution, the most common tool for solving functional equations, is not an equivalence transformation. Say we are solving the functional equation $F(x, f) = 0 \ \forall x \in \mathbb{R}$ for $f: \mathbb{R} \to \mathbb{R}$, and we substitute $x \mapsto g(x)$ for some function $g: \mathbb{R} \to \mathbb{R}$. Clearly, $$ \left( F(x, f) = 0 \ \forall x \in \mathbb{R} \right) \implies \left( F(g(x), f) = 0 \ \forall x \in \mathbb{R} \right), \tag{1}$$ but the inverse does not always hold.
$(1)$ becomes an equivalence if $g$ is a bijection, but this is rarely the case. E.g., if you substitute $x \mapsto a$ for some number $a \in \mathbb{R}$, then it is not bijective and extraneous solutions may arise. This is the reason why in practically all applications the final solution must be checked and it is not worth checking every substitution for bijectivity just so that you wouldn't need to check the final solution.
