"Associativity", "Associative", and "non-associative" redirect here. For other uses, seeAssociativity (disambiguation). For associative and non-associative learning, seeLearning § Types.
Within an expression containing two or more occurrences in a row of the same associative operator, the order in which theoperations are performed does not matter as long as the sequence of theoperands 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:
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 anyreal numbers, it can be said that "addition and multiplication of real numbers are associative operations".
Associativity is not the same ascommutativity, 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,a ×b =b ×a, so we say that the multiplication of real numbers is a commutative operation. However, operations such asfunction composition andmatrix multiplication are associative, but not (generally) commutative.
Associative operations are abundant in mathematics; in fact, manyalgebraic structures (such assemigroups andcategories) explicitly require their binary operations to be associative. However, many important and interesting operations are non-associative; some examples includesubtraction,exponentiation, and thevector cross product. In contrast to the theoretical properties of real numbers, the addition offloating 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.
A binary operation ∗ on the setS is associative whenthis diagram commutes. That is, when the two paths fromS×S×S toScompose to the same function fromS×S×S toS.
Formally, abinary operation on asetS is calledassociative if it satisfies theassociative law:
, for all inS.
Here, ∗ is used to replace the symbol of the operation, which may be any symbol, and even the absence of symbol (juxtaposition) as formultiplication.
, for all inS.
The associative law can also be expressed in functional notation thus:
In the absence of the associative property, five factorsa,b,c,d,e result in aTamari lattice of order four, possibly different products.
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.[2] This is called thegeneralized associative law.
The number of possible bracketings is just theCatalan number,, forn operations onn+1 values. For instance, a product of 3 operations on 4 elements may be written (ignoring permutations of the arguments), in possible ways:
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
An example where this does not work is thelogical biconditional↔. It is associative; thus,A ↔ (B ↔C) is equivalent to(A ↔B) ↔C, butA ↔B ↔C most commonly means(A ↔B) and (B ↔C), which is not equivalent.
Some examples of associative operations include the following.
Theconcatenation of the three strings"hello"," ","world" can be computed by concatenating the first two strings (giving"hello ") and appending the third string ("world"), or by joining the second and third string (giving" world") and concatenating the first string ("hello") with the result. The two methods produce the same result; string concatenation is associative (but not commutative).
Because of associativity, the grouping parentheses can be omitted without ambiguity.
The trivial operationx ∗y =x (that is, the result is the first argument, no matter what the second argument is) is associative but not commutative. Likewise, the trivial operation (that is, the result is the second argument, no matter what the first argument is) is associative but not commutative.
Addition and multiplication ofcomplex numbers andquaternions are associative. Addition ofoctonions is also associative, but multiplication of octonions is non-associative.
IfM is some set andS denotes the set of all functions fromM toM, then the operation offunction composition onS is associative:
Slightly more generally, given four setsM,N,P andQ, withh :M →N,g :N →P, andf :P →Q, thenas before. In short, composition of maps is always associative.
Incategory theory, composition of morphisms is associative by definition. Associativity of functors and natural transformations follows from associativity of morphisms.
Consider a set with three elements,A,B, andC. The following operation:
×
A
B
C
A
A
A
A
B
A
B
C
C
A
A
A
is associative. Thus, for example,A(BC) = (AB)C =A. This operation is not commutative.
In mathematics, addition and multiplication of real numbers are associative. By contrast, in computer science, addition and multiplication offloating point numbers arenot associative, as different rounding errors may be introduced when dissimilar-sized values are joined in a different order.[7]
To illustrate this, consider a floating-point representation with a 4-bitsignificand:
Even though most computers compute with 24 or 53 bits of significand,[8] this is still an important source of rounding error, and approaches such as theKahan summation algorithm are ways to minimize the errors. It can be especially problematic in parallel computing.[9][10]
In general, parentheses must be used to indicate theorder of evaluation if a non-associative operation appears more than once in an expression (unless the notation specifies the order in another way, like). However,mathematicians agree on a particular order of evaluation for several common non-associative operations. This is simply a notational convention to avoid parentheses.
Aleft-associative operation is a non-associative operation that is conventionally evaluated from left to right, i.e.,
while aright-associative operation is conventionally evaluated from right to left:
Both left-associative and right-associative operations occur. Left-associative operations include the following:
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:
Formatted correctly, the superscript inherently behaves as a set of parentheses; e.g. in the expression the addition is performedbefore the exponentiation despite there being no explicit parentheses wrapped around it. Thus given an expression such as, the full exponent of the base is evaluated first. However, in some contexts, especially in handwriting, the difference between, and can be hard to see. In such a case, right-associativity is usually implied.
William Rowan Hamilton seems to have coined the term "associative property"[17] around 1844, a time when he was contemplating the non-associative algebra of theoctonions he had learned about fromJohn T. Graves.[18]
Relationship with commutativity in certain special cases
In general, associative operations are not commutative. However, under certain special conditions, it may be the case that associativity implies commutativity. Associative operators defined on an interval of the real number line are commutative if they are continuous and injective in both arguments.[19] A consequence is that every continuous, associative operator on two real inputs that is strictly increasing in each of its inputs is commutative.[20]
^Hungerford, Thomas W. (1974).Algebra (1st ed.).Springer. p. 24.ISBN978-0387905181.Definition 1.1 (i) a(bc) = (ab)c for all a, b, c in G.
^Durbin, John R. (1992).Modern Algebra: an Introduction (3rd ed.). New York: Wiley. p. 78.ISBN978-0-471-51001-7.If are elements of a set with an associative operation, then the product is unambiguous; this is, the same element will be obtained regardless of how parentheses are inserted in the product.