Associativity
|
- This article is about associativity in mathematics, for associativity in central_processor_unit memory cache architecture, see CPU cache.
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.
Contents |
Definition
Formally, a binary operation <math>*<math> on a set S is called associative if it satisfies the associative law:
- <math>(x*y)*z=x*(y*z)\qquad\mbox{for all }x,y,z\in S.<math>
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 <math>*<math> operations. The evaluation order can therefore be left unspecified without causing ambiguity, by omitting the parentheses and writing simply:
- <math>x*y*z.<math>
Examples
Some examples of associative operations include the following.
- In arithmetic, addition and multiplication of real numbers are associative; i.e.,
- <math>
\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}. <math>
- Addition and multiplication of complex numbers and quaternions is associative. Addition of octonions is also associative, but multiplication of octonions is non-associative.
- The greatest common divisor and least common multiple functions act associatively.
- <math>
\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}. <math>
- Matrix multiplication is associative. Because linear transformations can be represented by matrices, one can immediately conclude that linear transformations compose associatively.
- Taking the intersection or the union of sets:
- <math>
\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.
<math>
- 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:
- <math>(f\circ g)\circ h=f\circ(g\circ h)=f\circ g\circ h\qquad\mbox{for all }f,g,h\in S.<math>
Non-associativity
A binary operation <math>*<math> on a set S that does not satisfy the associative law is called non-associative. Symbolically,
- <math>(x*y)*z\ne x*(y*z)\qquad\mbox{for some }x,y,z\in S.<math>
For such an operation the order of evaluation does matter. Subtraction, division and exponentiation are well-known examples of non-associative operations:
- <math>
\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}
<math> 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.,
- <math>
\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 <math>
while a right-associative operation is conventionally evaluated from right to left:
- <math>
\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 <math>
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:
- <math>x-y-z=(x-y)-z\qquad\mbox{for all }x,y,z\in\mathbb{R};<math>
- <math>x/y/z=(x/y)/z\qquad\qquad\quad\mbox{for all }x,y,z\in\mathbb{R}\mbox{ with }y\ne0,z\ne0.<math>
Right-associative operations include the following.
- Exponentiation of real numbers:
- <math>x^{y^z}=x^{(y^z)}.<math>
- 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:
- <math>(x^y)^z=x^{(yz)}.<math>
- 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:
- <math>{(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}.<math>
- Taking the relative complement of sets:
- <math>(A\backslash B)\backslash C\ne A\backslash (B\backslash C)\qquad\mbox{for some sets }A,B,C.<math>
- Missing image
RelativeComplement.png
Venn diagram of the relative complements (A\B)\C and 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)
See also
- 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.bg:Асоциативност
da:Associativitet de:Assoziativgesetz eo:Asocieco fr:Associativit ko:결합법칙 nl:Associativiteit ja:結合法則 pl:Łączność działań ru:Ассоциативная операция sk:Asociatvna opercia sl:Asociativnost sv:Associativitet zh:結合律