In mathematics, an **equaliser** is a set of arguments where two or more functions have equal values.
An equaliser is the solution set of an equation.
In certain contexts, a **difference kernel** is the equaliser of exactly two functions.

Let *X* and *Y* be sets.
Let *f* and *g* be functions, both from *X* to *Y*.
Then the *equaliser* of *f* and *g* is the set of elements *x* of *X* such that *f*(*x*) equals *g*(*x*) in *Y*.
Symbolically:

The equaliser may be denoted Eq(*f*, *g*) or a variation on that theme (such as with lowercase letters "eq").
In informal contexts, the notation {*f* = *g*} is common.

The definition above used two functions *f* and *g*, but there is no need to restrict to only two functions, or even to only finitely many functions.
In general, if **F** is a set of functions from *X* to *Y*, then the *equaliser* of the members of **F** is the set of elements *x* of *X* such that, given any two members *f* and *g* of **F**, *f*(*x*) equals *g*(*x*) in *Y*.
Symbolically:

This equaliser may be written as Eq(*f*, *g*, *h*, ...) if is the set {*f*, *g*, *h*, ...}.
In the latter case, one may also find {*f* = *g* = *h* = ···} in informal contexts.

As a degenerate case of the general definition, let **F** be a singleton {*f*}.
Since *f*(*x*) always equals itself, the equaliser must be the entire domain *X*.
As an even more degenerate case, let **F** be the empty set. Then the equaliser is again the entire domain *X*, since the universal quantification in the definition is vacuously true.

A binary equaliser (that is, an equaliser of just two functions) is also called a *difference kernel*. This may also be denoted DiffKer(*f*, *g*), Ker(*f*, *g*), or Ker(*f* − *g*). The last notation shows where this terminology comes from, and why it is most common in the context of abstract algebra: The difference kernel of *f* and *g* is simply the kernel of the difference *f* − *g*. Furthermore, the kernel of a single function *f* can be reconstructed as the difference kernel Eq(*f*, 0), where 0 is the constant function with value zero.

Of course, all of this presumes an algebraic context where the kernel of a function is the preimage of zero under that function; that is not true in all situations. However, the terminology "difference kernel" has no other meaning.

Equalisers can be defined by a universal property, which allows the notion to be generalised from the category of sets to arbitrary categories.

In the general context, *X* and *Y* are objects, while *f* and *g* are morphisms from *X* to *Y*.
These objects and morphisms form a diagram in the category in question, and the equaliser is simply the limit of that diagram.

In more explicit terms, the equaliser consists of an object *E* and a morphism *eq* : *E* → *X* satisfying ,
and such that, given any object *O* and morphism *m* : *O* → *X*, if , then there exists a unique morphism *u* : *O* → *E* such that .

A morphism is said to **equalise** and if .^{[1]}

In any universal algebraic category, including the categories where difference kernels are used, as well as the category of sets itself, the object *E* can always be taken to be the ordinary notion of equaliser, and the morphism *eq* can in that case be taken to be the inclusion function of *E* as a subset of *X*.

The generalisation of this to more than two morphisms is straightforward; simply use a larger diagram with more morphisms in it.
The degenerate case of only one morphism is also straightforward; then *eq* can be any isomorphism from an object *E* to *X*.

The correct diagram for the degenerate case with *no* morphisms is slightly subtle: one might initially draw the diagram as consisting of the objects *X* and *Y* and no morphisms. This is incorrect, however, since the limit of such a diagram is the product of *X* and *Y*, rather than the equaliser. (And indeed products and equalisers are different concepts: the set-theoretic definition of product doesn't agree with the set-theoretic definition of the equaliser mentioned above, hence they are actually different.) Instead, the appropriate insight is that every equaliser diagram is fundamentally concerned with *X*, including *Y* only because *Y* is the codomain of morphisms which appear in the diagram. With this view, we see that if there are no morphisms involved, *Y* does not make an appearance and the equaliser diagram consists of *X* alone. The limit of this diagram is then any isomorphism between *E* and *X*.

It can be proved that any equaliser in any category is a monomorphism.
If the converse holds in a given category, then that category is said to be *regular* (in the sense of monomorphisms).
More generally, a regular monomorphism in any category is any morphism *m* that is an equaliser of some set of morphisms.
Some authors require more strictly that *m* be a *binary* equaliser, that is an equaliser of exactly two morphisms.
However, if the category in question is complete, then both definitions agree.

The notion of difference kernel also makes sense in a category-theoretic context.
The terminology "difference kernel" is common throughout category theory for any binary equaliser.
In the case of a preadditive category (a category enriched over the category of Abelian groups), the term "difference kernel" may be interpreted literally, since subtraction of morphisms makes sense.
That is, Eq(*f*, *g*) = Ker(*f* - *g*), where Ker denotes the category-theoretic kernel.

Any category with fibre products (pullbacks) and products has equalisers.