In mathematics, associativity is a property that a binary operation can have. It means that the order of evaluation is immaterial if the operation appears more than once in an expression. Put another way, no parentheses are required for an associative operation. Consider for instance the equation
- (5+2)+1 = 5+(2+1)
Adding 5 and 2 gives 7, and adding 1 gives an end result of 8 for the left hand side. To evaluate the right hand side, we start with adding 2 and 1 giving 3, and then add 5 and 3 to get 8, again. So the equation holds true. In fact, it holds true for all real numbers, not just for 5, 2 and 1. We say that "addition of real numbers is an associative operation".
Associative operations are abundant in mathematics, and in fact most algebraic structures explicitly require their binary operations to be associative.
Formally, a binary operation * on a set S is called associative if it satisfies the associative law:
The evaluation order doesn't affect the value of such expressions, and it can be shown that the same holds for expressions containing any number of * operations. The evaluation order can therefore be left unspecified without causing ambiguity, by omitting the parentheses and writing simply:
- x * y * z.
Some examples of associative operations include the following.
- Addition and multiplication of complex numbers and quaternions is associative. Addition of octonions is also associative, but multiplication of octonions is non-associative.
- Matrix multiplication is associative. Because linear transformations can be represented by matrices, one can immediately conclude that linear transformations compose associatively.
- If M is some set and S denotes the set of all functions from M to M, then the operation of functional composition on S is associative:
A binary operation * on a set S that does not satisfy the associative law is called non-associative. Symbolically,
In general, parentheses must be used to indicate the order of evaluation if a non-associative operation appears more than once in an expression. However, mathematicians agree on a particular order of evaluation for several common non-associative operations. This has the status of a convention, not of a mathematical truth.
A left-associative operation is a non-associative operation that is conventionally evaluated from left to right, i.e.,
while a right-associative operation is conventionally evaluated from right to left:
Both left-associative and right-associative operations occur; examples are given below.
Left-associative operations include the following.
- Subtraction and division of real numbers:
Right-associative operations include the following.
- Exponentiation of real numbers:
- The reason exponentiation is right-associative is that a repeated left-associative exponentiation operation would be less useful. Multiple appearances could (and would) be rewritten with multiplication:
- (xy)z = x(yz).
- The assignment operator in many programming languages is right-associative. For example, in the C language
- x = y = z; means x = (y = z); and not (x = y) = z;
- In other words, the statement would assign the value of z to both x and y.
Non-associative operations for which no conventional evaluation order is defined include the following.
- Taking the pairwise average of real numbers:
- Taking the relative complement of sets:
The green part in the left Venn diagram represents (A\B)\C. The green part in the right Venn diagram represents A\(B\C)
- A semigroup is a set with an associative binary operation.
- Commutativity and distributivity are two other frequently discussed properties of binary operations.
- Power associativity and alternativity are weak forms of associativity.