In mathematics, **Richardson's theorem** establishes a limit on the extent to which an algorithm can decide whether certain mathematical expressions are equal. It states that for a certain fairly natural class of expressions, it is undecidable whether a particular expression *E* satisfies the equation *E* = 0, and similarly undecidable whether the functions defined by expressions *E* and *F* are everywhere equal (in fact, *E* = *F* if and only if *E* − *F* = 0). It was proved in 1968 by computer scientist Daniel Richardson of the University of Bath.

Specifically, the class of expressions for which the theorem holds is that generated by rational numbers, the number π, the number ln 2, the variable *x*, the operations of addition, subtraction, multiplication, composition, and the sin, exp, and abs functions.

For some classes of expressions (generated by other primitives than in Richardson's theorem) there exist algorithms that can determine whether an expression is zero.^{[1]}

Richardson's theorem can be stated as follows:^{[2]}
Let *E* be a set of expressions that represent *ℝ→ℝ* functions. Suppose that *E* includes these expressions:

*x*(representing the identity function)*e*(representing the exponential functions)^{x}- sin
*x*(representing the sin function) - all rational numbers, ln 2, and π (representing constant functions that ignore their input and produce the given number as output)

Suppose *E* is also closed under a few standard operations. Specifically, suppose that if *A* and *B* are in *E*, then all of the following are also in *E*:

*A*+*B*(representing the pointwise addition of the functions that*A*and*B*represent)*A*–*B*(representing pointwise subtraction)*AB*(representing pointwise multiplication)*A∘B*(representing the composition of the functions represented by*A*and*B*)

Then the following decision problems are unsolvable:

- Deciding whether an expression
*A*in*E*represents a function that is nonnegative everywhere - If
*E*includes also the expression |*x*| (representing the absolute value function), deciding whether an expression*A*in*E*represents a function that is zero everywhere - If
*E*includes an expression*B*representing a function whose antiderivative has no representative in*E*, deciding whether an expression*A*in*E*represents a function whose antiderivative can be represented in*E*. (Example: has an antiderivative in the elementary functions if and only if*a*= 0.)

**^**Dan Richardson and John Fitch, 1994, "The identity problem for elementary functions and constants", Proceedings of the international symposium on Symbolic and algebraic computation, pp. 85–290.**Miklós Laczkovich removed also the need for π and reduced the use of composition.**^{[5]}In particular, given an expression*A*(*x*) in the ring generated by the integers,*x*, sin*x*, and sin(^{n}*x*sin*x*), both the question of whether^{n}*A*(*x*) > 0 for some*x*and whether*A*(*x*) = 0 for some*x*are unsolvable.By contrast, the Tarski–Seidenberg theorem says that the first-order theory of the real field is decidable, so it is not possible to remove the sine function entirely.