# Associative

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. However, many important and interesting operations are non-associative; one common example would be the vector cross product.

## Definition

Formally, a binary operation $\displaystyle *$ on a set S is called associative if it satisfies the associative law:

$\displaystyle (x*y)*z=x*(y*z)\qquad\mbox{for all }x,y,z\in S.$

The evaluation order does not affect the value of such expressions, and it can be shown that the same holds for expressions containing any number of $\displaystyle *$ operations. Thus, when $\displaystyle *$ is associative, the evaluation order can therefore be left unspecified without causing ambiguity, by omitting the parentheses and writing simply:

$\displaystyle x*y*z.$

## Examples

Some examples of associative operations include the following.

$\displaystyle \left. \begin{matrix} (x+y)+z=x+(y+z)=x+y+z\quad \\ (x\,y)z=x(y\,z)=x\,y\,z\qquad\qquad\qquad\quad\ \ \, \end{matrix} \right\} \mbox{for all }x,y,z\in\mathbb{R}.$
$\displaystyle \left. \begin{matrix} \operatorname{gcd}(\operatorname{gcd}(x,y),z)= \operatorname{gcd}(x,\operatorname{gcd}(y,z))= \operatorname{gcd}(x,y,z)\ \quad \\ \operatorname{lcm}(\operatorname{lcm}(x,y),z)= \operatorname{lcm}(x,\operatorname{lcm}(y,z))= \operatorname{lcm}(x,y,z)\quad \end{matrix} \right\}\mbox{ for all }x,y,z\in\mathbb{Z}.$
$\displaystyle \left. \begin{matrix} (A\cap B)\cap C=A\cap(B\cap C)=A\cap B\cap C\quad \\ (A\cup B)\cup C=A\cup(B\cup C)=A\cup B\cup C\quad \end{matrix} \right\}\mbox{for all sets }A,B,C.$
• 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:
$\displaystyle (f\circ g)\circ h=f\circ(g\circ h)=f\circ g\circ h\qquad\mbox{for all }f,g,h\in S.$
• Slightly more generally, given four sets M, N, P and Q, with h: M to N, g: N to P, and f: P to Q, then
$\displaystyle (f\circ g)\circ h=f\circ(g\circ h)=f\circ g\circ h$
as before. In short, composition of maps is always associative.

## Non-associativity

A binary operation $\displaystyle *$ on a set S that does not satisfy the associative law is called non-associative. Symbolically,

$\displaystyle (x*y)*z\ne x*(y*z)\qquad\mbox{for some }x,y,z\in S.$

For such an operation the order of evaluation does matter. Subtraction, division and exponentiation are well-known examples of non-associative operations:

$\displaystyle \begin{matrix} (5-3)-2\ne 5-(3-2)\quad \\ (4/2)/2\ne 4/(2/2)\qquad\qquad \\ 2^{(1^2)}\ne (2^1)^2.\quad\qquad\qquad \end{matrix}$

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 is simply a syntactical convention to avoid parentheses.

A left-associative operation is a non-associative operation that is conventionally evaluated from left to right, i.e.,

$\displaystyle \left. \begin{matrix} x*y*z=(x*y)*z\qquad\qquad\quad\, \\ w*x*y*z=((w*x)*y)*z\quad \\ \mbox{etc.}\qquad\qquad\qquad\qquad\qquad\qquad\ \ \, \end{matrix} \right\} \mbox{for all }w,x,y,z\in S$

while a right-associative operation is conventionally evaluated from right to left:

$\displaystyle \left. \begin{matrix} x*y*z=x*(y*z)\qquad\qquad\quad\, \\ w*x*y*z=w*(x*(y*z))\quad \\ \mbox{etc.}\qquad\qquad\qquad\qquad\qquad\qquad\ \ \, \end{matrix} \right\} \mbox{for all }w,x,y,z\in S$

Both left-associative and right-associative operations occur; examples are given below.

## More examples

Left-associative operations include the following.

• Subtraction and division of real numbers:
$\displaystyle x-y-z=(x-y)-z\qquad\mbox{for all }x,y,z\in\mathbb{R};$
$\displaystyle x/y/z=(x/y)/z\qquad\qquad\quad\mbox{for all }x,y,z\in\mathbb{R}\mbox{ with }y\ne0,z\ne0.$

Right-associative operations include the following.

$\displaystyle x^{y^z}=x^{(y^z)}.$
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:
$\displaystyle (x^y)^z=x^{(yz)}.$

Non-associative operations for which no conventional evaluation order is defined include the following.

• Taking the pairwise average of real numbers:
$\displaystyle {(x+y)/2+z\over2}\ne{x+(y+z)/2\over2}\ne{x+y+z\over3}\qquad\mbox{for some }x,y,z\in\mathbb{R}.$
$\displaystyle (A\backslash B)\backslash C\ne A\backslash (B\backslash C)\qquad\mbox{for some sets }A,B,C.$

The green part in the left Venn diagram represents (A\B)\C. The green part in the right Venn diagram represents A\(B\C)