Idempotence

Idempotence describes the property of operations in mathematics and computer science which yield the same result after the operation is applied multiple times. The concept of idempotence arises in a number of places in abstract algebra (in particular, in the theory of projectors, closure operators and functional programming, in which it is connected to the property of referential transparency).

There are several meanings of idempotence, depending on what the concept is applied to:


 * A unary operation (or function) is called idempotent if, whenever it is applied twice to any value, it gives the same result as if it were applied once. For example, the absolute value function is idempotent as a function from the set of real numbers to the set of real numbers: abs(abs x) = abs(x).
 * A binary operation is called idempotent if, whenever it is applied to two equal values, it gives that value as the result. For example, the operation giving the maximum value of two values is idempotent: max(x, x) = x.
 * Given a binary operation, an idempotent element (or simply an idempotent) for the operation is a value for which the operation, when given that value for both of its operands, gives the value as the result. For example, the number 1 is an idempotent of multiplication: 1 × 1 = 1.

Unary operation
A unary operation f that is a map from some set S into itself is called idempotent if, for all x in S,


 * f(f(x)) = f(x).

In particular, the identity function idS, defined by idS(x) = x, is idempotent, as is the constant function Kc, where c is an element of S, defined by Kc(x) = c.

An important class of idempotent functions is given by projections in a vector space. An example of a projection is the function πxy defined by πxy(x, y, z) = (x, y, 0), which projects an arbitrary point in 3D space to a point on the x–y-plane, where the third coordinate (z) is equal to 0.

Binary operation
A binary operation ★ on a set S is called idempotent if, for all x in S,


 * x★x = x.

For example, the operations of set union and set intersection are both idempotent, as are logical conjunction and logical disjunction, and, in general, the meet and join operations of a lattice.

An element x of S is called idempotent for ★ if, for that element,


 * x★x = x.

In particular, an identity element of ★ is idempotent for the operation.

Connections
The connections between the three notions are as follows.


 * The statement that the binary operation ★ on a set S is idempotent, is equivalent to the statement that every element of S is idempotent for ★.


 * The defining property of unary idempotence, f(f(x)) = f(x) for x in the domain of f, can equivalently be rewritten as f o f = f, using the binary operation of function composition denoted by " o ". Thus, the statement that f is an idempotent unary operation on S is equivalent to the statement that f is an idempotent element for the operation o on functions from S to S.

Functions
As mentioned above, the identity map and the constant maps are always idempotent maps. Less trivial examples are the absolute value function of a real or complex argument, and the floor function of a real argument.

The function which assigns to every subset U of some topological space X the closure of U is idempotent on the power set of X. It is an example of a closure operator; all closure operators are idempotent functions.

Idempotent ring elements
An idempotent element of a ring is, by definition, an element which is idempotent with respect to the ring's multiplication. One may define a partial order on the idempotents of a ring as follows: if a and b are idempotents, we write a ≤ b iff ab = ba = a. With respect to this order, 0 is the smallest and 1 the largest idempotent.

Two idempotents a and b are called orthogonal if ab = ba = 0. In this case, a + b is also idempotent, and we have a ≤ a + b and b ≤ a + b.

If a is idempotent in the ring R, then so is b = 1 &minus; a; a and b are orthogonal.

If a is idempotent in the ring R, then aRa is again a ring, with multiplicative identity a.

An idempotent a in R is called central if ax = xa for all x in R. In this case, Ra is a ring with multiplicative identity a. The central idempotents of R are closely related to the decompositions of R as a direct sum of rings. If R is the direct sum of the rings R1,...,Rn, then the identity elements of the rings Ri are central idempotents in R, pairwise orthogonal, and their sum is 1. Conversely, given central idempotents a1,...,an in R which are pairwise orthogonal and have sum 1, then R is the direct sum of the rings Ra1,...,Ran. So in particular, every central idempotent a in R gives rise to a decomposition of R as a direct sum of Ra and R(1 &minus; a).

Any idempotent a which is different from 0 and 1 is a zero divisor (because a(1 &minus; a) = 0). This shows that integral domains and division rings don't have such idempotents. Local rings also don't have such idempotents, but for a different reason. The only idempotent contained in the Jacobson radical of a ring is 0. There is a catenoid of idempotents in the coquaternion ring.

A ring in which all elements are idempotent is called a boolean ring. It can be shown that in every such ring, multiplication is commutative, and every element is its own additive inverse.

Relation with involutions
If a is an idempotent, then $$1-2a$$ is an involution.

If b is an involution, then $$\frac{1}{2}(1-b)$$ is an idempotent, and these are inverse: thus if 2 is invertible in a ring, idempotents and involutions are equivalent.

Further, if b is an involution, then $$\frac{1}{2}(1-b)$$ and $$\frac{1}{2}(1+b)$$ are orthogonal idempotents, corresponding to a and $$1-a$$.

Numerical examples
One may consider the ring of integers mod n, where n is squarefree. By the Chinese Remainder Theorem, this ring factors into the direct product of rings of integers mod p. Now each of these factors is a field, so it's clear that the only idempotents will be 0 and 1. That is, each factor has 2 idempotents. So if there are m factors, there will be $$2^m$$ idempotents.

We can check this for the integers mod 6. Since 6 has 2 factors (2 and 3) it should have $$2^2$$ idempotents.

0 = 0^2 = 0^3 = etc (mod 6) 1 = 1^2 = 1^3 = etc (mod 6) 3 = 3^2 = 3^3 = etc (mod 6) 4 = 4^2 = 4^3 = etc (mod 6)

Other examples
Idempotent operations can be found in Boolean algebra as well.

In linear algebra, projections are idempotent. In fact, they are defined as idempotent linear maps. By choosing a basis, any projection gives an idempotent matrix.

An idempotent semiring is a semiring whose addition (not multiplication) is idempotent.

In computing
In computer science, the term idempotent is used to describe methods or subroutine calls that can safely be called multiple times, as invoking the procedure a single time or multiple times results in the system maintaining the same state; i.e., after the method call all variables have the same value as they did before.

Example: Looking up some customer's name and address in a database are typically idempotent, since this will not cause the database to change. Placing an order for a car for the customer is not idempotent, since running the method/call several times will lead to several orders being placed, and therefore the state of the database being changed to reflect this.

In Event Stream Processing, idempotence refers to the ability of a system to produce the same outcome, even if an event or message is received more than once.