The following trig identity looks like a mistake but is correct:
sin(x + y) sin(x – y) = (sin(x) + sin(y)) (sin(x) – sin(y))
It looks as if someone fallaciously expanded
sin(x + y) “=” sin(x) + sin(y)
sin(x – y) “=” sin(x) – sin(y).
Although both expansions are wrong, their product is correct. That is, for all x and y,
sin(x + y) sin(x – y) = sin²(x) – sin²(y).
Not only does the sine function satisfy this identity, it is almost the only function that does . The only functions f that satisfy
f(x + y) f(x – y) = f²(x) – f²(y)
are f(x) = ax and f(x) = a sin(bx), given some mild regularity conditions on f. 
If f(x) satisfies the identity above, then so does
g(x) = a f(bx)
and so the identity could only characterize sine up to a change in amplitude and frequency.
You could think of the linear solution
f(x) = ax
as the limiting case of the solution
f(x) = ab sin(x/b)
as b goes to infinity. So you could include linear functions as sine waves with “infinite amplitude” and “zero frequency.”
In  the authors also prove that if we restrict f to be a real-valued function of a real variable, the only solutions are of the form ax, a sin(bx), and a sinh(bx).
The hyperbolic sine is only a new solution from the perspective of real numbers. Since
sinh(x) = –i sin(ix),
sinh was already included in a sin(bx) as the special case a = –i and b = i.
 R. A. Rosenbaum and S. L. Segal. A Functional Equation Characterising the Sine. The Mathematical Gazette , May, 1960, Vol. 44, No. 348 (May, 1960), pp. 97-105.
 It is sufficient to assume f is an entire function, i.e. a complex function of a complex variable that is analytic everywhere. Rosenbaum and Segal give the weaker but more complicated condition that f is “on defined over all complex numbers, continuous at a point, bounded on every closed set, and such that the set of non-zero zeros of f is either empty or bounded away from zero.”