Associative property: Difference between revisions
Fixed typo ,accurance Tags: Reverted Mobile edit Mobile web edit |
m →Definition: Removed extraneous template-close ("}}") |
||
(35 intermediate revisions by 23 users not shown) | |||
Line 1: | Line 1: | ||
{{Short description|Property of a mathematical operation}} |
|||
{{About|the associative property in mathematics|associativity in the central processing unit memory cache|CPU cache#Associativity|associativity in programming languages|operator associativity|the meaning of an associated group of people in linguistics|Associativity (linguistics)}} |
{{About|the associative property in mathematics|associativity in the central processing unit memory cache|CPU cache#Associativity|associativity in programming languages|operator associativity|the meaning of an associated group of people in linguistics|Associativity (linguistics)}} |
||
{{redirect2|Associative|non-associative|associative and non-associative learning|Learning#Types}} |
{{redirect2|Associative|non-associative|associative and non-associative learning|Learning#Types}} |
||
{{Short description|Property of a mathematical operation}} |
|||
{{More citations needed|date=June 2009}} |
{{More citations needed|date=June 2009}} |
||
{{Infobox mathematical statement |
|||
{{Transformation rules}} |
|||
| name = Associative property |
|||
| image = Associativity of binary operations (without question marks).svg |
|||
| caption = A visual graph representing associative operations; <math>(x\circ y)\circ z = x\circ(y\circ z)</math> |
|||
| type = [[Principle|Law]], [[rule of replacement]] |
|||
| field = {{Plainlist| |
|||
* [[Elementary algebra]] |
|||
* [[Boolean algebra]] |
|||
* [[Set theory]] |
|||
* [[Linear algebra]] |
|||
* [[Propositional calculus]] |
|||
}} |
|||
| statement = |
|||
| symbolic statement = {{Plainlist| |
|||
# Elementary algebra |
|||
#: <math>(x \,*\, y) \,*\, z = x \,*\, (y \,*\, z) \forall x,y,z \in S</math> |
|||
# Propositional calculus |
|||
#:<math>(P \lor (Q \lor R)) \Leftrightarrow ((P \lor Q) \lor R)</math> |
|||
#:<math>(P \land (Q \land R)) \Leftrightarrow ((P \land Q) \land R),</math> |
|||
}} |
|||
}} |
|||
In [[mathematics]], the '''associative property'''<ref> |
In [[mathematics]], the '''associative property'''<ref> |
||
Line 14: | Line 34: | ||
|publisher=[[Springer Science+Business Media|Springer]] |
|publisher=[[Springer Science+Business Media|Springer]] |
||
|isbn=978-0387905181 |
|isbn=978-0387905181 |
||
|quote=Definition 1.1 (i) a(bc) = (ab)c for all a, b, c in G.}}</ref> is a property of some [[binary operation]]s |
|quote=Definition 1.1 (i) a(bc) = (ab)c for all a, b, c in G.}}</ref> is a property of some [[binary operation]]s that means that rearranging the [[parentheses]] in an expression will not change the result. In [[propositional logic]], '''associativity''' is a [[Validity (logic)|valid]] [[rule of replacement]] for [[well-formed formula|expressions]] in [[Formal proof|logical proofs]]. |
||
Within an expression containing two or more |
Within an expression containing two or more occurrences in a row of the same associative operator, the order in which the [[Operation (mathematics)|operations]] are performed does not matter as long as the sequence of the [[operand]]s 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} |
|||
:<math>(2 + 3) + 4 = 2 + (3 + 4) = 9 \,</math> |
|||
(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 number]]s, it can be said that "addition and multiplication of real numbers are associative operations". |
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 number]]s, 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, {{math|1={{var|a}} × {{var|b}} = {{var|b}} × {{var|a}}}}, 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 structure]]s (such as [[semigroup (mathematics)|semigroups]] and [[category (mathematics)|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. |
|||
== Definition == |
== Definition == |
||
[[File:Semigroup_associative.svg|thumbnail|A binary operation ∗ on the set ''S'' is associative when [[Commutative diagram|this diagram commutes]]. That is, when the two paths from |
[[File:Semigroup_associative.svg|thumbnail|A binary operation ∗ on the set ''S'' is associative when [[Commutative diagram|this diagram commutes]]. That is, when the two paths from {{math|{{var|S}}×{{var|S}}×{{var|S}}}} to {{mvar|S}} [[Function composition|compose]] to the same function from {{math|{{var|S}}×{{var|S}}×{{var|S}}}} to {{mvar|S}}.]] |
||
Formally, a [[binary operation]] |
Formally, a [[binary operation]] <math>\ast</math> on a [[Set (mathematics)|set]] {{mvar|S}} 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 {{mvar|S}}. |
|||
:(''x'' ∗ ''y'') ∗ ''z'' = ''x'' ∗ (''y'' ∗ ''z'') for all ''x'', ''y'', ''z'' in ''S''. |
|||
Here, ∗ is used to replace the symbol of the operation, which may be any symbol, and even the absence of symbol ([[Juxtaposition#Mathematics|juxtaposition]]) as for [[multiplication]]. |
Here, ∗ is used to replace the symbol of the operation, which may be any symbol, and even the absence of symbol ([[Juxtaposition#Mathematics|juxtaposition]]) as for [[multiplication]]. |
||
:<math>(xy)z = x(yz)</math>, for all <math>x,y,z</math> in {{mvar|S}}. |
|||
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> |
|||
:(''xy'')''z'' = ''x''(''yz'') = ''xyz'' for all ''x'', ''y'', ''z'' in ''S''. |
|||
The associative law can also be expressed in functional notation thus: {{nowrap|1=''f''(''f''(''x'', ''y''), ''z'') = ''f''(''x'', ''f''(''y'', ''z''))}}. |
|||
==Generalized associative law== |
==Generalized associative law== |
||
[[Image:Tamari lattice.svg|thumb |
[[Image:Tamari lattice.svg|thumb|In the absence of the associative property, five factors {{mvar|a}}, {{mvar|b}},{{mvar|c}}, {{mvar|d}}, {{mvar|e}} result in a [[Tamari 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.<ref>{{cite book |last=Durbin |first=John R. |title=Modern Algebra: an Introduction |year=1992 |publisher=Wiley |location=New York |isbn=978-0-471-51001-7 |page=78 |url=http://www.wiley.com/WileyCDA/WileyTitle/productCd-EHEP000258.html |edition=3rd |quote=If <math>a_1, a_2, \dots, a_n \,\, (n \ge 2)</math> are elements of a set with an associative operation, then the product <math>a_1 a_2 \ |
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>{{cite book |last=Durbin |first=John R. |title=Modern Algebra: an Introduction |year=1992 |publisher=Wiley |location=New York |isbn=978-0-471-51001-7 |page=78 |url=http://www.wiley.com/WileyCDA/WileyTitle/productCd-EHEP000258.html |edition=3rd |quote=If <math>a_1, a_2, \dots, a_n \,\, (n \ge 2)</math> are elements of a set with an associative operation, then the product <math>a_1 a_2 \cdots a_n</math> is unambiguous; this is, the same element will be obtained regardless of how parentheses are inserted in the product.}}</ref> This is called the '''generalized associative law'''. |
||
The number of possible bracketings is just the [[Catalan number]], <math>C_n</math> |
|||
: <math>((ab)c)d</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)(cd)</math> |
|||
: <math>(a(bc))d</math> |
|||
: <math>a((bc)d)</math> |
|||
: <math>a(b(cd))</math> |
|||
*<math>((ab)c)d</math> |
|||
If the product operation is associative, the generalized associative law says that all these formulas will yield the same result. So unless the formula 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>(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 [[Catalan number#Applications in combinatorics|number of possible ways to insert parentheses]] grows quickly, but they remain unnecessary for disambiguation. |
As the number of elements increases, the [[Catalan number#Applications in combinatorics|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]] |
An example where this does not work is the [[logical biconditional]] {{math|↔}}. It is associative; thus, {{math|{{var|A}} ↔ ({{var|B}} ↔ {{var|C}})}} is equivalent to {{math|({{var|A}} ↔ {{var|B}}) ↔ {{var|C}}}}, but {{math|{{var|A}} ↔ {{var|B}} ↔ {{var|C}}}} most commonly means {{math|({{var|A}} ↔ {{var|B}}) and ({{var|B}} ↔ {{var|C}})}}, which is not equivalent. |
||
==Examples== |
==Examples== |
||
[[File:Associativity of binary operations (without question marks).svg|thumb|In associative operations is <math>(x\circ y)\circ z = x\circ(y\circ z)</math>.]] |
|||
[[File:Associativity of real number addition.svg|thumb|The addition of real numbers is associative.]] |
[[File:Associativity of real number addition.svg|thumb|The addition of real numbers is associative.]] |
||
Some examples of associative operations include the following. |
Some examples of associative operations include the following. |
||
{{unordered list |
|||
* The [[string concatenation|concatenation]] of the three strings <code>"hello"</code>, <code>" "</code>, <code>"world"</code> can be computed by concatenating the first two strings (giving <code>"hello "</code>) and appending the third string (<code>"world"</code>), or by joining the second and third string (giving <code>" world"</code>) and concatenating the first string (<code>"hello"</code>) with the result. The two methods produce the same result; string concatenation is associative (but not commutative). |
|||
|1= The [[string concatenation|concatenation]] of the three strings <code>"hello"</code>, <code>" "</code>, <code>"world"</code> can be computed by concatenating the first two strings (giving <code>"hello "</code>) and appending the third string (<code>"world"</code>), or by joining the second and third string (giving <code>" world"</code>) and concatenating the first string (<code>"hello"</code>) with the result. The two methods produce the same result; string concatenation is associative (but not commutative). |
|||
* In [[arithmetic]], [[addition]] and [[multiplication]] of [[real number]]s are associative; i.e., |
|||
|2= In [[arithmetic]], [[addition]] and [[multiplication]] of [[real number]]s are associative; i.e., |
|||
:: <math> |
|||
<math display="block"> |
|||
\left. |
\left. |
||
\begin{matrix} |
\begin{matrix} |
||
Line 71: | Line 98: | ||
\mbox{for all }x,y,z\in\mathbb{R}. |
\mbox{for all }x,y,z\in\mathbb{R}. |
||
</math> |
</math> |
||
:Because of associativity, the grouping parentheses can be omitted without ambiguity. |
|||
* The trivial operation {{math|1=''x'' ∗ ''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 {{math|1=''x'' ∘ ''y'' = ''y''}} (that is, the result is the second argument, no matter what the first argument is) is associative but not commutative. |
|||
* Addition and multiplication of [[complex number]]s and [[quaternion]]s are associative. Addition of [[octonion]]s is also associative, but multiplication of octonions is non-associative. |
|||
* The [[greatest common divisor]] and [[least common multiple]] functions act associatively. |
|||
:: <math> |
|||
Because of associativity, the grouping parentheses can be omitted without ambiguity. |
|||
|3= The trivial operation {{math|1={{var|x}} ∗ {{var|y}} = {{var|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 {{math|1={{var|x}} ∘ {{var|y}} = {{var|y}}}} (that is, the result is the second argument, no matter what the first argument is) is associative but not commutative. |
|||
|4= Addition and multiplication of [[complex number]]s and [[quaternion]]s are associative. Addition of [[octonion]]s is also associative, but multiplication of octonions is non-associative. |
|||
|5= The [[greatest common divisor]] and [[least common multiple]] functions act associatively. |
|||
<math display="block"> |
|||
\left. |
\left. |
||
\begin{matrix} |
\begin{matrix} |
||
Line 89: | Line 117: | ||
\right\}\mbox{ for all }x,y,z\in\mathbb{Z}. |
\right\}\mbox{ for all }x,y,z\in\mathbb{Z}. |
||
</math> |
</math> |
||
|6= Taking the [[intersection (set theory)|intersection]] or the [[union (set theory)|union]] of [[Set (mathematics)|sets]]: |
|||
<math display="block"> |
|||
\left. |
\left. |
||
\begin{matrix} |
\begin{matrix} |
||
Line 100: | Line 127: | ||
\right\}\mbox{for all sets }A,B,C. |
\right\}\mbox{for all sets }A,B,C. |
||
</math> |
</math> |
||
|7= If {{mvar|M}} is some set and {{mvar|S}} denotes the set of all functions from {{mvar|M}} to {{mvar|M}}, then the operation of [[function composition]] on {{mvar|S}} is associative:<math display="block">(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> |
|||
|8= Slightly more generally, given four sets {{mvar|M}}, {{mvar|N}}, {{mvar|P}} and {{mvar|Q}}, with {{math|{{var|h}} : {{var|M}} → {{var|N}}}}, {{math|{{var|g}} : {{var|N}} → {{var|P}}}}, and {{math|{{var|f}} : {{var|P}} → {{var|Q}}}}, then |
|||
<math display="block">(f\circ g)\circ h=f\circ(g\circ h)=f\circ g\circ h</math> |
|||
* 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 |
|||
as before. In short, composition of maps is always associative. |
|||
:: <math>(f\circ g)\circ h=f\circ(g\circ h)=f\circ g\circ h</math> |
|||
|9= In [[category theory]], composition of morphisms is associative by definition. Associativity of functors and natural transformations follows from associativity of morphisms. |
|||
|10= Consider a set with three elements, {{mvar|A}}, {{mvar|B}}, and {{mvar|C}}. The following operation: |
|||
{{wikitable| class="wikitable" style="text-align:center" |
|||
: as before. In short, composition of maps is always associative. |
|||
* Consider a set with three elements, A, B, and C. The following operation: |
|||
:{| class="wikitable" style="text-align:center" |
|||
|- |
|- |
||
! × !! A !! B !! C |
! × !! {{mvar|A}} !! {{mvar|B}} !! {{mvar|C}} |
||
|- |
|- |
||
! A |
! {{mvar|A}} |
||
| A || A || A |
| {{mvar|A}} || {{mvar|A}} || {{mvar|A}} |
||
|- |
|- |
||
! B |
! {{mvar|B}} |
||
| A || B || C |
| {{mvar|A}} || {{mvar|B}} || {{mvar|C}} |
||
|- |
|- |
||
! C |
! {{mvar|C}} |
||
| A || A || A |
| {{mvar|A}} || {{mvar|A}} || {{mvar|A}} |
||
}} |
|||
is associative. Thus, for example, {{math|1={{var|A}}({{var|B}}{{var|C}}) = ({{var|A}}{{var|B}}){{var|C}} = {{var|A}}}}. This operation is not commutative. |
|||
|11= Because [[Matrix (mathematics)|matrices]] represent [[linear map|linear function]]s, and [[matrix multiplication]] represents function composition, one can immediately conclude that matrix multiplication is associative.<ref>{{cite web|url=http://www.khanacademy.org/math/linear-algebra/matrix-transformations/composition-of-transformations/v/matrix-product-associativity|title=Matrix product associativity|publisher=Khan Academy|access-date=5 June 2016}}</ref> |
|||
|12= For [[real number]]s (and for any [[totally ordered set]]), the minimum and maximum operation is associative: <math display="block">\max(a, \max(b, c)) = \max(\max(a, b), c) \quad \text{ and } \quad \min(a, \min(b, c)) = \min(\min(a, b), c).</math> |
|||
}} |
|||
== Propositional logic == |
== Propositional logic == |
||
{{Transformation rules}} |
|||
=== Rule of replacement === |
=== Rule of replacement === |
||
In standard truth-functional propositional logic, ''association'',<ref>{{cite book |last1=Moore |first1=Brooke Noel |last2=Parker |first2=Richard |date=2017 |title=Critical Thinking |location=New York |publisher=McGraw-Hill Education |page=321 |isbn=9781259690877|edition=12th }}</ref><ref>{{cite book |last1=Copi |first1=Irving M. |last2=Cohen |first2=Carl |last3=McMahon |first3=Kenneth |date=2014 |title=Introduction to Logic |location=Essex |publisher=Pearson Education |page=387 |isbn=9781292024820|edition=14th }}</ref> or ''associativity''<ref>{{cite book |last1=Hurley |first1=Patrick J. |last2=Watson |first2=Lori |date=2016 |title=A Concise Introduction to Logic |location=Boston |publisher=Cengage Learning |page=427 |isbn=9781305958098|edition=13th }}</ref> are two [[Validity (logic)|valid]] [[rule of replacement|rules of replacement]]. The rules allow one to move parentheses in [[well-formed formula|logical expressions]] in [[formal proof|logical proofs]]. The rules (using [[Logical connective#In language|logical connectives]] notation) are: |
In standard truth-functional propositional logic, ''association'',<ref>{{cite book |last1=Moore |first1=Brooke Noel |last2=Parker |first2=Richard |date=2017 |title=Critical Thinking |location=New York |publisher=McGraw-Hill Education |page=321 |isbn=9781259690877|edition=12th }}</ref><ref>{{cite book |last1=Copi |first1=Irving M. |last2=Cohen |first2=Carl |last3=McMahon |first3=Kenneth |date=2014 |title=Introduction to Logic |location=Essex |publisher=Pearson Education |page=387 |isbn=9781292024820|edition=14th }}</ref> or ''associativity''<ref>{{cite book |last1=Hurley |first1=Patrick J. |last2=Watson |first2=Lori |date=2016 |title=A Concise Introduction to Logic |location=Boston |publisher=Cengage Learning |page=427 |isbn=9781305958098|edition=13th }}</ref> are two [[Validity (logic)|valid]] [[rule of replacement|rules of replacement]]. The rules allow one to move parentheses in [[well-formed formula|logical expressions]] in [[formal proof|logical proofs]]. The rules (using [[Logical connective#In language|logical connectives]] notation) are: |
||
:<math>(P \lor (Q \lor R)) \Leftrightarrow ((P \lor Q) \lor R)</math> |
|||
<math display="block">(P \lor (Q \lor R)) \Leftrightarrow ((P \lor Q) \lor R)</math> |
|||
and |
and |
||
:<math>(P \land (Q \land R)) \Leftrightarrow ((P \land Q) \land R),</math> |
|||
<math display="block">(P \land (Q \land R)) \Leftrightarrow ((P \land Q) \land R),</math> |
|||
where "<math>\Leftrightarrow</math>" is a [[metalogic]]al [[Symbol (formal)|symbol]] representing "can be replaced in a [[Formal proof|proof]] with". |
where "<math>\Leftrightarrow</math>" is a [[metalogic]]al [[Symbol (formal)|symbol]] representing "can be replaced in a [[Formal proof|proof]] with". |
||
=== Truth functional connectives === |
=== Truth functional connectives === |
||
''Associativity'' is a property of some [[logical connective]]s of truth-functional [[propositional logic]]. The following [[logical equivalence]]s demonstrate that associativity is a property of particular connectives. The following are truth-functional [[tautology (logic)|tautologies]]. |
''Associativity'' is a property of some [[logical connective]]s of truth-functional [[propositional logic]]. The following [[logical equivalence]]s demonstrate that associativity is a property of particular connectives. The following (and their converses, since {{math|↔}} is commutative) are truth-functional [[tautology (logic)|tautologies]].{{citation needed|reason=Stack Exchange is not a reliable source?|date=June 2022}} |
||
;Associativity of disjunction |
|||
:<math>((P \lor Q) \lor R) \leftrightarrow (P \lor (Q \lor R))</math> |
:<math>((P \lor Q) \lor R) \leftrightarrow (P \lor (Q \lor R))</math> |
||
;Associativity of conjunction |
|||
:<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> |
:<math>((P \land Q) \land R) \leftrightarrow (P \land (Q \land R))</math> |
||
;Associativity of equivalence |
|||
:<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> |
:<math>((P \leftrightarrow Q) \leftrightarrow R) \leftrightarrow (P \leftrightarrow (Q \leftrightarrow R))</math> |
||
:<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. |
[[Logical NOR|Joint denial]] is an example of a truth functional connective that is ''not'' associative. |
||
== Non-associative operation== |
== Non-associative operation== |
||
A binary operation <math>*</math> on a set ''S'' that does not satisfy the associative law is called '''non-associative'''. Symbolically, |
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: |
For such an operation the order of evaluation ''does'' matter. For example: |
||
; [[Subtraction]] |
|||
:<math> |
:<math> |
||
(5-3)-2 \, \ne \, 5-(3-2) |
(5-3)-2 \, \ne \, 5-(3-2) |
||
</math> |
</math> |
||
; [[Division (mathematics)|Division]] |
|||
:<math> |
:<math> |
||
(4/2)/2 \, \ne \, 4/(2/2) |
(4/2)/2 \, \ne \, 4/(2/2) |
||
</math> |
</math> |
||
; [[Exponentiation]] |
|||
:<math> |
:<math> |
||
2^{(1^2)} \, \ne \, (2^1)^2 |
2^{(1^2)} \, \ne \, (2^1)^2 |
||
</math> |
</math> |
||
; [[Vector cross product]] |
|||
:<math>\begin{align} |
:<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{i} \times \mathbf{k} = -\mathbf{j} \\ |
||
Line 176: | Line 207: | ||
Also although addition is associative for finite sums, it is not associative inside infinite sums ([[series (mathematics)|series]]). For example, |
Also although addition is associative for finite sums, it is not associative inside infinite sums ([[series (mathematics)|series]]). For example, |
||
<math display="block"> |
|||
(1+-1)+(1+-1)+(1+-1)+(1+-1)+(1+-1)+(1+-1)+\dots = 0 |
(1+-1)+(1+-1)+(1+-1)+(1+-1)+(1+-1)+(1+-1)+\dots = 0 |
||
</math> |
</math> |
||
whereas |
whereas |
||
<math display="block"> |
|||
1+(-1+1)+(-1+1)+(-1+1)+(-1+1)+(-1+1)+(-1+1)+\dots = 1. |
1+(-1+1)+(-1+1)+(-1+1)+(-1+1)+(-1+1)+(-1+1)+\dots = 1. |
||
</math> |
</math> |
||
Line 190: | Line 221: | ||
===Nonassociativity of floating point calculation=== |
===Nonassociativity of floating point calculation=== |
||
In mathematics, addition and multiplication of real numbers |
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 |
To illustrate this, consider a floating point representation with a 4-bit [[significand]]: |
||
<br />(1.000<sub>2</sub>×2<sup>0</sup> + |
|||
1.000<sub>2</sub>×2<sup>0</sup>) + |
|||
1.000<sub>2</sub>×2<sup>4</sup> = |
|||
1.000<sub>2</sub>×2<sup>{{fontcolor|red|1}}</sup> + |
|||
1.000<sub>2</sub>×2<sup>4</sup> = |
|||
1.00{{fontcolor|red|1}}<sub>2</sub>×2<sup>4</sup> |
|||
<br />1.000<sub>2</sub>×2<sup>0</sup> + |
|||
(1.000<sub>2</sub>×2<sup>0</sup> + |
|||
1.000<sub>2</sub>×2<sup>4</sup>) = |
|||
1.000<sub>2</sub>×2<sup>{{fontcolor|red|0}}</sup> + |
|||
1.000<sub>2</sub>×2<sup>4</sup> = |
|||
1.00{{fontcolor|red|0}}<sub>2</sub>×2<sup>4</sup> |
|||
{{block indent|1=(1.000<sub>2</sub>×2<sup>0</sup> + 1.000<sub>2</sub>×2<sup>0</sup>) + |
|||
Even though most computers compute with a 24 or 53 bits of mantissa,<ref>{{Cite book |title=IEEE Standard for Floating-Point Arithmetic |author=IEEE Computer Society |date=29 August 2008 |id=IEEE Std 754-2008|doi=10.1109/IEEESTD.2008.4610935 |ref=CITEREFIEEE_7542008 |isbn=978-0-7381-5753-5}}</ref> this is 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>{{Citation |
|||
1.000<sub>2</sub>×2<sup>4</sup> = 1.000<sub>2</sub>×2<sup>{{fontcolor|red|1}}</sup> + 1.000<sub>2</sub>×2<sup>4</sup> = 1.00{{fontcolor|red|1}}<sub>2</sub>×2<sup>4</sup>}} |
|||
{{block indent|1=1.000<sub>2</sub>×2<sup>0</sup> + (1.000<sub>2</sub>×2<sup>0</sup> + |
|||
1.000<sub>2</sub>×2<sup>4</sup>) = 1.000<sub>2</sub>×2<sup>{{fontcolor|red|0}}</sup> + 1.000<sub>2</sub>×2<sup>4</sup> = 1.00{{fontcolor|red|0}}<sub>2</sub>×2<sup>4</sup>}} |
|||
Even though most computers compute with 24 or 53 bits of significand,<ref>{{Cite book |title=IEEE Standard for Floating-Point Arithmetic |author=IEEE Computer Society |date=29 August 2008 |id=IEEE Std 754-2008|doi=10.1109/IEEESTD.2008.4610935 |ref=CITEREFIEEE_7542008 |isbn=978-0-7381-5753-5}}</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>{{Citation |
|||
| last1 = Villa |
| last1 = Villa |
||
| first1 = Oreste |
| first1 = Oreste |
||
Line 223: | Line 247: | ||
| archive-date = 15 February 2013 |
| archive-date = 15 February 2013 |
||
| url-status = dead |
| url-status = dead |
||
}}</ref><ref name="Goldberg_1991">{{cite journal|last=Goldberg|first=David|author-link=David Goldberg (PARC)|date=March 1991|title=What Every Computer Scientist Should Know About Floating-Point Arithmetic|url=http://perso.ens-lyon.fr/jean-michel.muller/goldberg.pdf|journal=[[ACM Computing Surveys]]|volume=23|issue=1|pages=5–48|doi=10.1145/103162.103163|s2cid=222008826|access-date=20 January 2016 |
}}</ref><ref name="Goldberg_1991">{{cite journal|last=Goldberg|first=David|author-link=David Goldberg (PARC)|date=March 1991|title=What Every Computer Scientist Should Know About Floating-Point Arithmetic|url=http://perso.ens-lyon.fr/jean-michel.muller/goldberg.pdf|journal=[[ACM Computing Surveys]]|volume=23|issue=1|pages=5–48|doi=10.1145/103162.103163|s2cid=222008826|access-date=20 January 2016|url-status=live|archive-url=https://web.archive.org/web/20220519083509/http://perso.ens-lyon.fr/jean-michel.muller/goldberg.pdf|archive-date=2022-05-19}}</ref> |
||
=== Notation for non-associative operations === |
=== Notation for non-associative operations === |
||
Line 231: | Line 255: | ||
A '''left-associative''' operation is a non-associative operation that is conventionally evaluated from left to right, i.e., |
A '''left-associative''' operation is a non-associative operation that is conventionally evaluated from left to right, i.e., |
||
:<math> |
|||
<math display="block"> |
|||
\left. |
\left. |
||
\begin{ |
\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.}\qquad\qquad\qquad\qquad\qquad\qquad\ \ \, |
|||
\\ |
|||
\end{matrix} |
|||
\mbox{etc.} |
|||
\end{array} |
|||
\right\} |
\right\} |
||
\mbox{for all } |
\mbox{for all }a,b,c,d,e\in S |
||
</math> |
</math> |
||
while a '''right-associative''' operation is conventionally evaluated from right to left: |
while a '''right-associative''' operation is conventionally evaluated from right to left: |
||
:<math> |
|||
<math display="block"> |
|||
\left. |
\left. |
||
\begin{ |
\begin{array}{l} |
||
x*y*z=x*(y*z) |
x*y*z=x*(y*z) |
||
\\ |
\\ |
||
w*x*y*z=w*(x*(y*z))\quad |
w*x*y*z=w*(x*(y*z))\quad |
||
\\ |
\\ |
||
v*w*x*y*z=v*(w*(x*(y*z)))\quad\\ |
|||
\mbox{etc.}\qquad\qquad\qquad\qquad\qquad\qquad\ \ \, |
|||
\ |
\mbox{etc.} |
||
\end{array} |
|||
\right\} |
\right\} |
||
\mbox{for all } |
\mbox{for all }z,y,x,w,v\in S |
||
</math> |
</math> |
||
Both left-associative and right-associative operations occur. Left-associative operations include the following: |
Both left-associative and right-associative operations occur. Left-associative operations include the following: |
||
; Subtraction and division of real numbers<ref>George Mark Bergman [https://math.berkeley.edu/~gbergman/misc/numbers/ord_ops.html "Order of arithmetic operations"]</ref><ref>[http://eduplace.com/math/mathsteps/4/a/index.html "The Order of Operations"]. Education Place.</ref><ref>[https://www.khanacademy.org/math/pre-algebra/pre-algebra-arith-prop/pre-algebra-order-of-operations/v/introduction-to-order-of-operations "The Order of Operations"], timestamp [https://www.youtube.com/watch?v=ClYdw4d4OmA&t=5m40s 5m40s]. [[Khan Academy]].</ref><ref>[http://www.doe.virginia.gov/instruction/mathematics/middle/algebra_readiness/curriculum_companion/order-operations.pdf#page=3 "Using Order of Operations and Exploring Properties"] {{Webarchive|url=https://web.archive.org/web/20220716062834/http://www.doe.virginia.gov/instruction/mathematics/middle/algebra_readiness/curriculum_companion/order-operations.pdf#page=3 |date=2022-07-16 }}, section 9. Virginia Department of Education.</ref><ref name="Bronstein_1987">Bronstein, ''[[:de:Taschenbuch der Mathematik]]'', pages 115-120, chapter: 2.4.1.1, {{ISBN|978-3-8085-5673-3}}</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: |
Right-associative operations include the following: |
||
; [[Exponentiation]] of real numbers in superscript notation |
|||
:<math>x^{y^z}=x^{(y^z)}</math><p>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:</p> |
|||
::<math>x^{y^z}=x^{(y^z)}</math> |
|||
:<math>(x^y)^z=x^{(yz)}</math><p>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 [[order of operations|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.</p> |
|||
; [[Function (mathematics)|Function definition]] |
|||
: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>\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><p>Using right-associative notation for these operations can be motivated by the [[Curry–Howard correspondence]] and by the [[currying]] isomorphism.</p> |
|||
::<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 [[order of operations|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 (mathematics)|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. |
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">[https://codeplea.com/exponentiation-associativity-options 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 notation|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 [[complement (set theory)|relative complement]] of sets |
|||
:<math>(A\backslash B)\backslash C \neq A\backslash (B\backslash C)</math>.<p>(Compare [[material nonimplication]] in logic.)</p> |
|||
== History == |
== History == |
||
[[William Rowan Hamilton]] seems to have coined the term "associative property"<ref name="Hamilton">{{cite journal |author-link=William Rowan Hamilton |first=W.R. |last=Hamilton |year=1844–1850 |url=http://www.maths.tcd.ie/pub/HistMath/People/Hamilton/OnQuat/ |title=On quaternions or a new system of imaginaries in algebra |journal=[[Philosophical Magazine]] |department=David R. Wilkins collection |publisher=[[Trinity College Dublin]]}}</ref> |
[[William Rowan Hamilton]] seems to have coined the term "associative property"<ref name="Hamilton">{{cite journal |author-link=William Rowan Hamilton |first=W.R. |last=Hamilton |year=1844–1850 |url=http://www.maths.tcd.ie/pub/HistMath/People/Hamilton/OnQuat/ |title=On quaternions or a new system of imaginaries in algebra |journal=[[Philosophical Magazine]] |department=David R. Wilkins collection |publisher=[[Trinity College Dublin]]}}</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">{{Cite journal | last1 = Baez | first1 = John C. | author-link = John Baez| title = The Octonions | journal = Bulletin of the American Mathematical Society | issn = 0273-0979 | volume = 39 | issue = 2 | pages = 145–205 | year = 2002 | url = https://www.ams.org/journals/bull/2002-39-02/S0273-0979-01-00934-X/S0273-0979-01-00934-X.pdf | doi = 10.1090/S0273-0979-01-00934-X | arxiv = math/0105155| mr = 1886087| s2cid = 586512}}</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">{{Cite journal | last1 = Baez | first1 = John C. | author-link = John Baez| title = The Octonions | journal = Bulletin of the American Mathematical Society | issn = 0273-0979 | volume = 39 | issue = 2 | pages = 145–205 | year = 2002 | url = http://math.ucr.edu/home/baez/octonions/ | doi = 10.1090/S0273-0979-01-00934-X | arxiv = math/0105155| mr = 1886087| s2cid = 586512}}</ref> |
|||
==See also== |
==See also== |
Latest revision as of 18:16, 16 December 2024
This article needs additional citations for verification. (June 2009) |
Type | Law, rule of replacement |
---|---|
Field | |
Symbolic statement |
|
In mathematics, the associative property[1] is a property of some binary operations that means 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:
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, a × b = b × a, 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.
Definition
[edit]Formally, a binary operation on a set S is called associative if it satisfies the associative law:
- , for all in S.
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.
- , for all in S.
The associative law can also be expressed in functional notation thus:
Generalized associative law
[edit]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 the generalized associative law.
The number of possible bracketings is just the Catalan number, , 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 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
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 ↔. It is associative; thus, A ↔ (B ↔ C) is equivalent to (A ↔ B) ↔ C, but A ↔ B ↔ C most commonly means (A ↔ B) and (B ↔ C), which is not equivalent.
Examples
[edit]Some examples of associative operations include the following.
- The concatenation 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). - In arithmetic, addition and multiplication of real numbers are associative; i.e.,
- The trivial operation x ∗ 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 x ∘ y = y (that is, the result is the second argument, no matter what the first argument is) is associative but not commutative.
- Addition and multiplication of complex numbers and quaternions are 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.
- Taking the intersection or the union of sets:
- If M is some set and S denotes the set of all functions from M to M, then the operation of function composition on S is associative:
- Slightly more generally, given four sets M, N, P and Q, with h : M → N, g : N → P, and f : P → Q, then as before. In short, composition of maps is always associative.
- In category 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, and C. The following operation:
× A B C A A A A B A B C C A A A - Because matrices represent linear functions, and matrix multiplication represents function composition, one can immediately conclude that matrix multiplication is associative.[3]
- For real numbers (and for any totally ordered set), the minimum and maximum operation is associative:
Propositional logic
[edit]Rule of replacement
[edit]In standard truth-functional propositional logic, association,[4][5] or associativity[6] 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:
and
where "" is a metalogical symbol representing "can be replaced in a proof with".
Truth functional connectives
[edit]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 ↔ is commutative) are truth-functional tautologies.[citation needed]
- Associativity of disjunction
- Associativity of conjunction
- Associativity of equivalence
Joint denial is an example of a truth functional connective that is not associative.
Non-associative operation
[edit]A binary operation on a set S that does not satisfy the associative law is called non-associative. Symbolically,
For such an operation the order of evaluation does matter. For example:
Also although addition is associative for finite sums, it is not associative inside infinite sums (series). For example, whereas
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 calculation
[edit]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.[7]
To illustrate this, consider a floating point representation with a 4-bit significand:
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 the Kahan summation algorithm are ways to minimise the errors. It can be especially problematic in parallel computing.[9][10]
Notation for non-associative operations
[edit]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 ). 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.,
while a right-associative operation is conventionally evaluated from right to left:
Both left-associative and right-associative operations occur. Left-associative operations include the following:
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
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 performed before 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.
- Function definition
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[16]
- Knuth's up-arrow operators
- Taking the cross product of three vectors
- Taking the pairwise average of real numbers
- Taking the relative complement of sets
- .
(Compare material nonimplication in logic.)
History
[edit]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 the octonions he had learned about from John T. Graves.[18]
See also
[edit]- 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.
References
[edit]- ^
Hungerford, Thomas W. (1974). Algebra (1st ed.). Springer. p. 24. ISBN 978-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. ISBN 978-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.
- ^ "Matrix product associativity". Khan Academy. Retrieved 5 June 2016.
- ^ Moore, Brooke Noel; Parker, Richard (2017). Critical Thinking (12th ed.). New York: McGraw-Hill Education. p. 321. ISBN 9781259690877.
- ^ Copi, Irving M.; Cohen, Carl; McMahon, Kenneth (2014). Introduction to Logic (14th ed.). Essex: Pearson Education. p. 387. ISBN 9781292024820.
- ^ Hurley, Patrick J.; Watson, Lori (2016). A Concise Introduction to Logic (13th ed.). Boston: Cengage Learning. p. 427. ISBN 9781305958098.
- ^ Knuth, Donald, The Art of Computer Programming, Volume 3, section 4.2.2
- ^ IEEE Computer Society (29 August 2008). IEEE Standard for Floating-Point Arithmetic. doi:10.1109/IEEESTD.2008.4610935. ISBN 978-0-7381-5753-5. IEEE Std 754-2008.
- ^ Villa, Oreste; Chavarría-mir, Daniel; Gurumoorthi, Vidhya; Márquez, Andrés; Krishnamoorthy, Sriram, Effects of Floating-Point non-Associativity on Numerical Computations on Massively Multithreaded Systems (PDF), archived from the original (PDF) on 15 February 2013, retrieved 8 April 2014
- ^ Goldberg, David (March 1991). "What Every Computer Scientist Should Know About Floating-Point Arithmetic" (PDF). ACM Computing Surveys. 23 (1): 5–48. doi:10.1145/103162.103163. S2CID 222008826. Archived (PDF) from the original on 2022-05-19. Retrieved 20 January 2016.
- ^ George Mark Bergman "Order of arithmetic operations"
- ^ "The Order of Operations". Education Place.
- ^ "The Order of Operations", timestamp 5m40s. Khan Academy.
- ^ "Using Order of Operations and Exploring Properties" Archived 2022-07-16 at the Wayback Machine, section 9. Virginia Department of Education.
- ^ Bronstein, de:Taschenbuch der Mathematik, pages 115-120, chapter: 2.4.1.1, ISBN 978-3-8085-5673-3
- ^ Exponentiation Associativity and Standard Math Notation Codeplea. 23 August 2016. Retrieved 20 September 2016.
- ^ Hamilton, W.R. (1844–1850). "On quaternions or a new system of imaginaries in algebra". David R. Wilkins collection. Philosophical Magazine. Trinity College Dublin.
- ^ Baez, John C. (2002). "The Octonions" (PDF). Bulletin of the American Mathematical Society. 39 (2): 145–205. arXiv:math/0105155. doi:10.1090/S0273-0979-01-00934-X. ISSN 0273-0979. MR 1886087. S2CID 586512.