Associative property
Template:Short description Template:Redirect Template:Redirect2 Template:More citations needed Template:Infobox mathematical statement
In mathematics, the associative property<ref> Template:Cite book</ref> is a property of some binary operations that rearranging the parentheses in an expression will not change the result. In propositional logic, associativity is a valid rule of replacement for expressions in logical proofs.
Within an expression containing two or more occurrences in a row of the same associative operator, the order in which the operations are performed does not matter as long as the sequence of the operands is not changed. That is (after rewriting the expression with parentheses and in infix notation if necessary), rearranging the parentheses in such an expression will not change its value. Consider the following equations:
<math display="block">\begin{align} (2 + 3) + 4 &= 2 + (3 + 4) = 9 \,\\ 2 \times (3 \times 4) &= (2 \times 3) \times 4 = 24 . \end{align}</math>
Even though the parentheses were rearranged on each line, the values of the expressions were not altered. Since this holds true when performing addition and multiplication on any real numbers, it can be said that "addition and multiplication of real numbers are associative operations".
Associativity is not the same as commutativity, which addresses whether the order of two operands affects the result. For example, the order does not matter in the multiplication of real numbers, that is, Template:Math, so we say that the multiplication of real numbers is a commutative operation. However, operations such as function composition and matrix multiplication are associative, but not (generally) commutative.
Associative operations are abundant in mathematics; in fact, many algebraic structures (such as semigroups and categories) explicitly require their binary operations to be associative.
However, many important and interesting operations are non-associative; some examples include subtraction, exponentiation, and the vector cross product. In contrast to the theoretical properties of real numbers, the addition of floating point numbers in computer science is not associative, and the choice of how to associate an expression can have a significant effect on rounding error.
DefinitionEdit
Formally, a binary operation <math>\ast</math> on a set Template:Mvar is called associative if it satisfies the associative law:
- <math>(x \ast y) \ast z = x \ast (y \ast z)</math>, for all <math>x,y,z</math> in Template:Mvar.
Here, ∗ is used to replace the symbol of the operation, which may be any symbol, and even the absence of symbol (juxtaposition) as for multiplication.
- <math>(xy)z = x(yz)</math>, for all <math>x,y,z</math> in Template:Mvar.
The associative law can also be expressed in functional notation thus: <math>(f \circ (g \circ h))(x) = ((f \circ g) \circ h)(x)</math>
Generalized associative lawEdit
If a binary operation is associative, repeated application of the operation produces the same result regardless of how valid pairs of parentheses are inserted in the expression.<ref>Template:Cite book</ref> This is called the generalized associative law.
The number of possible bracketings is just the Catalan number, <math>C_n</math> , for n operations on n+1 values. For instance, a product of 3 operations on 4 elements may be written (ignoring permutations of the arguments), in <math>C_3 = 5</math> possible ways:
- <math>((ab)c)d</math>
- <math>(a(bc))d</math>
- <math>a((bc)d)</math>
- <math>(a(b(cd))</math>
- <math>(ab)(cd)</math>
If the product operation is associative, the generalized associative law says that all these expressions will yield the same result. So unless the expression with omitted parentheses already has a different meaning (see below), the parentheses can be considered unnecessary and "the" product can be written unambiguously as
- <math>abcd</math>
As the number of elements increases, the number of possible ways to insert parentheses grows quickly, but they remain unnecessary for disambiguation.
An example where this does not work is the logical biconditional Template:Math. It is associative; thus, Template:Math is equivalent to Template:Math, but Template:Math most commonly means Template:Math, which is not equivalent.
ExamplesEdit
Some examples of associative operations include the following.
Propositional logicEdit
Rule of replacementEdit
In standard truth-functional propositional logic, association,<ref>Template:Cite book</ref><ref>Template:Cite book</ref> or associativity<ref>Template:Cite book</ref> are two valid rules of replacement. The rules allow one to move parentheses in logical expressions in logical proofs. The rules (using logical connectives notation) are:
<math display="block">(P \lor (Q \lor R)) \Leftrightarrow ((P \lor Q) \lor R)</math>
and
<math display="block">(P \land (Q \land R)) \Leftrightarrow ((P \land Q) \land R),</math>
where "<math>\Leftrightarrow</math>" is a metalogical symbol representing "can be replaced in a proof with".
Truth functional connectivesEdit
Associativity is a property of some logical connectives of truth-functional propositional logic. The following logical equivalences demonstrate that associativity is a property of particular connectives. The following (and their converses, since Template:Math is commutative) are truth-functional tautologies.Template:Citation needed
- Associativity of disjunction
- <math>((P \lor Q) \lor R) \leftrightarrow (P \lor (Q \lor R))</math>
- Associativity of conjunction
- <math>((P \land Q) \land R) \leftrightarrow (P \land (Q \land R))</math>
- Associativity of equivalence
- <math>((P \leftrightarrow Q) \leftrightarrow R) \leftrightarrow (P \leftrightarrow (Q \leftrightarrow R))</math>
Joint denial is an example of a truth functional connective that is not associative.
Non-associative operationEdit
A binary operation <math>*</math> on a set S that does not satisfy the associative law is called non-associative. Symbolically,
<math display="block">(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. For example:
- Subtraction
- <math>
(5-3)-2 \, \ne \, 5-(3-2) </math>
- Division
- <math>
(4/2)/2 \, \ne \, 4/(2/2) </math>
- Exponentiation
- <math>
2^{(1^2)} \, \ne \, (2^1)^2 </math>
- Vector cross product
- <math>\begin{align}
\mathbf{i} \times (\mathbf{i} \times \mathbf{j}) &= \mathbf{i} \times \mathbf{k} = -\mathbf{j} \\ (\mathbf{i} \times \mathbf{i}) \times \mathbf{j} &= \mathbf{0} \times \mathbf{j} = \mathbf{0}
\end{align}</math>
Also although addition is associative for finite sums, it is not associative inside infinite sums (series). For example, <math display="block"> (1+-1)+(1+-1)+(1+-1)+(1+-1)+(1+-1)+(1+-1)+\dots = 0 </math> whereas <math display="block"> 1+(-1+1)+(-1+1)+(-1+1)+(-1+1)+(-1+1)+(-1+1)+\dots = 1. </math>
Some non-associative operations are fundamental in mathematics. They appear often as the multiplication in structures called non-associative algebras, which have also an addition and a scalar multiplication. Examples are the octonions and Lie algebras. In Lie algebras, the multiplication satisfies Jacobi identity instead of the associative law; this allows abstracting the algebraic nature of infinitesimal transformations.
Other examples are quasigroup, quasifield, non-associative ring, and commutative non-associative magmas.
Nonassociativity of floating point calculationEdit
In mathematics, addition and multiplication of real numbers are associative. By contrast, in computer science, addition and multiplication of floating point numbers are not associative, as different rounding errors may be introduced when dissimilar-sized values are joined in a different order.<ref>Knuth, Donald, The Art of Computer Programming, Volume 3, section 4.2.2</ref>
To illustrate this, consider a floating point representation with a 4-bit significand:
Template:Block indent Template:Block indent
Even though most computers compute with 24 or 53 bits of significand,<ref>Template:Cite book</ref> this is still an important source of rounding error, and approaches such as the Kahan summation algorithm are ways to minimise the errors. It can be especially problematic in parallel computing.<ref>Template:Citation</ref><ref name="Goldberg_1991">Template:Cite journal</ref>
Notation for non-associative operationsEdit
{{#invoke:Labelled list hatnote|labelledList|Main article|Main articles|Main page|Main pages}}
In general, parentheses must be used to indicate the order of evaluation if a non-associative operation appears more than once in an expression (unless the notation specifies the order in another way, like <math>\dfrac{2}{3/4}</math>). However, mathematicians agree on a particular order of evaluation for several common non-associative operations. This is simply a notational convention to avoid parentheses.
A left-associative operation is a non-associative operation that is conventionally evaluated from left to right, i.e.,
<math display="block"> \left. \begin{array}{l} a*b*c=(a*b)*c \\ a*b*c*d=((a*b)*c)*d \\ a*b*c*d*e=(((a*b)*c)*d)*e\quad \\ \mbox{etc.} \end{array} \right\} \mbox{for all }a,b,c,d,e\in S </math>
while a right-associative operation is conventionally evaluated from right to left:
<math display="block"> \left. \begin{array}{l} x*y*z=x*(y*z) \\ w*x*y*z=w*(x*(y*z))\quad \\ v*w*x*y*z=v*(w*(x*(y*z)))\quad\\ \mbox{etc.} \end{array} \right\} \mbox{for all }z,y,x,w,v\in S </math>
Both left-associative and right-associative operations occur. Left-associative operations include the following:
- Subtraction and division of real numbers<ref>George Mark Bergman "Order of arithmetic operations"</ref><ref>"The Order of Operations". Education Place.</ref><ref>"The Order of Operations", timestamp 5m40s. Khan Academy.</ref><ref>"Using Order of Operations and Exploring Properties" Template:Webarchive, section 9. Virginia Department of Education.</ref><ref name="Bronstein_1987">Bronstein, de:Taschenbuch der Mathematik, pages 115-120, chapter
- 2.4.1.1, Template:ISBN</ref>
- <math>x-y-z=(x-y)-z</math>
- <math>x/y/z=(x/y)/z</math>
- Function application
- <math>(f \, x \, y) = ((f \, x) \, y)</math>
This notation can be motivated by the currying isomorphism, which enables partial application.
Right-associative operations include the following:
- Exponentiation of real numbers in superscript notation
- <math>x^{y^z}=x^{(y^z)}</math>
Exponentiation is commonly used with brackets or right-associatively because a repeated left-associative exponentiation operation is of little use. Repeated powers would mostly be rewritten with multiplication:
- <math>(x^y)^z=x^{(yz)}</math>
Formatted correctly, the superscript inherently behaves as a set of parentheses; e.g. in the expression <math>2^{x+3}</math> the addition is performed before the exponentiation despite there being no explicit parentheses <math>2^{(x+3)}</math> wrapped around it. Thus given an expression such as <math>x^{y^z}</math>, the full exponent <math>y^z</math> of the base <math>x</math> is evaluated first. However, in some contexts, especially in handwriting, the difference between <math>{x^y}^z=(x^y)^z</math>, <math>x^{yz}=x^{(yz)}</math> and <math>x^{y^z}=x^{(y^z)}</math> can be hard to see. In such a case, right-associativity is usually implied.
- Function definition
- <math>\mathbb{Z} \rarr \mathbb{Z} \rarr \mathbb{Z} = \mathbb{Z} \rarr (\mathbb{Z} \rarr \mathbb{Z})</math>
- <math>x \mapsto y \mapsto x - y = x \mapsto (y \mapsto x - y)</math>
Using right-associative notation for these operations can be motivated by the Curry–Howard correspondence and by the currying isomorphism.
Non-associative operations for which no conventional evaluation order is defined include the following.
- Exponentiation of real numbers in infix notation<ref name="Codeplea_2016">Exponentiation Associativity and Standard Math Notation Codeplea. 23 August 2016. Retrieved 20 September 2016.</ref>
- <math>(x^\wedge y)^\wedge z\ne x^\wedge(y^\wedge z)</math>
- Knuth's up-arrow operators
- <math> a \uparrow \uparrow (b \uparrow \uparrow c) \ne (a \uparrow \uparrow b) \uparrow \uparrow c</math>
- <math> a \uparrow \uparrow \uparrow (b \uparrow \uparrow \uparrow c) \ne (a \uparrow \uparrow \uparrow b) \uparrow \uparrow \uparrow c</math>
- Taking the cross product of three vectors
- <math>\vec a \times (\vec b \times \vec c) \neq (\vec a \times \vec b ) \times \vec c \qquad \mbox{ for some } \vec a,\vec b,\vec c \in \mathbb{R}^3</math>
- Taking the pairwise average of real numbers
- <math>{(x+y)/2+z\over2}\ne{x+(y+z)/2\over2} \qquad \mbox{for all }x,y,z\in\mathbb{R} \mbox{ with }x\ne z.</math>
- Taking the relative complement of sets
- <math>(A\backslash B)\backslash C \neq A\backslash (B\backslash C)</math>.
(Compare material nonimplication in logic.)
HistoryEdit
William Rowan Hamilton seems to have coined the term "associative property"<ref name="Hamilton">Template:Cite journal</ref> around 1844, a time when he was contemplating the non-associative algebra of the octonions he had learned about from John T. Graves.<ref name="Baez">Template:Cite journal</ref>
See alsoEdit
- Light's associativity test
- Telescoping series, the use of addition associativity for cancelling terms in an infinite series
- A semigroup is a set with an associative binary operation.
- Commutativity and distributivity are two other frequently discussed properties of binary operations.
- Power associativity, alternativity, flexibility and N-ary associativity are weak forms of associativity.
- Moufang identities also provide a weak form of associativity.