In mathematics, an existence theorem is a theorem with a statement beginning 'there exist(s) ..', or more generally 'for all x, y, ... there exist(s) ...'. That is, in more formal terms of symbolic logic, it is a theorem with a statement involving the existential quantifier. Many such theorems will not do so, as usually stated. For example, the statement that the sine function is continuous; or any theorem written in big O notation. The quantification is then hidden in definitions.
A controversy that is now quite old (about a century) concerns the issue of pure existence theorems, and the related accusation that by admitting them mathematics was betraying its responsibilities to concrete applicability (see nonconstructive proof). The point from the mathematical side was always that abstract methods are far-reaching, in a way that numerical analysis cannot be. An existence theorem can be called pure if the proof given of it doesn't also indicate a construction of whatever kind of object the existence is asserted. But to speak in that way violates the standard way mathematical theorems are encapsulated: they may be applied without knowledge of the proof; and indeed if that's not the case the statement is faulty.
From the other direction there has been considerable clarification of what constructive mathematics might be; without the emergence of a 'master theory'. For example according to Bishop's definitions the continuity of a function (such as sin(x)) should be proved as a constructive bound on the modulus of continuity, meaning that the existential content of the assertion of continuity is a promise that can always be kept. One could get another explanation from type theory, in which a proof of an existential statement can come only from a term (which we can see as the computational content).